IiBNZW51IHRyYW5zbGF0aW9ucyBmb3IgQ2F0YWxhbgoiCiIgTWFpbnRhaW5lcjoJRXJuZXN0IEFkcm9ndekgPGVhZHJvZ3VlQGdteC5uZXQ+CiIgTGFzdCBDaGFuZ2U6CTYgSnVuIDIwMDgKIgoKIiBRdWl0IHdoZW4gbWVudSB0cmFuc2xhdGlvbnMgaGF2ZSBhbHJlYWR5IGJlZW4gZG9uZS4KaWYgZXhpc3RzKCJkaWRfbWVudV90cmFucyIpCiAgZmluaXNoCmVuZGlmCmxldCBkaWRfbWVudV90cmFucyA9IDEKbGV0IHM6a2VlcGNwbz0gJmNwbwpzZXQgY3BvJnZpbQoKIiBUaGUgdHJhbnNsYXRpb25zIGJlbG93IGFyZSBpbiBsYXRpbjEsIGJ1dCB0aGV5IHdvcmsgZm9yIGNwMTI1MiwKIiBpc28tODg1OS0xNSB3aXRob3V0IGNvbnZlcnNpb24gYXMgd2VsbC4KaWYgJmVuYyAhPSAiY3AxMjUyIiAmJiAmZW5jICE9ICJpc28tODg1OS0xNSIKICBzY3JpcHRlbmNvZGluZyBsYXRpbjEKZW5kaWYKCiIgbWVu+iBBanVkYQptZW51dHJhbnMgJkhlbHAJCQkJJkFqdWRhCm1lbnV0cmFucyAmT3ZlcnZpZXc8VGFiPjxGMT4JCSZJbnRyb2R1Y2Np8zxUYWI+PEYxPgptZW51dHJhbnMgJlVzZXJcIE1hbnVhbAkJCSZNYW51YWxcIGRlXCBsJ3VzdWFyaQptZW51dHJhbnMgJkhvdy10b1wgbGlua3MJCUNvbVwgJmZlclwuXC5cLj8KbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJkNlcmNhXC5cLlwuCm1lbnV0cmFucyAmQ3JlZGl0cwkJCSZBdXRvcnMKbWVudXRyYW5zIENvJnB5aW5nCQkJQ29uJmRpY2lvbnMKbWVudXRyYW5zICZTcG9uc29yL1JlZ2lzdGVyCSZQYXRyb2NpbmkvUmVnaXN0cmUKbWVudXRyYW5zIE8mcnBoYW5zCQkJJk9yZmVzCm1lbnV0cmFucyAmVmVyc2lvbgkJCSZWZXJzafMKbWVudXRyYW5zICZBYm91dAkJCSZRdWFudFwgYVwuXC5cLgoiIHRleHQgZGVsIGRp4GxlZyBBanVkYS9DZXJjYS4uLgpsZXQgZzptZW51dHJhbnNfaGVscF9kaWFsb2cgPSAiSW50cm9kde91IGVsIHRlcm1lIHNvYnJlIGVsIHF1YWwgbmVjZXNzaXRldSBhanVkYS5cblxuVXNldSBlbCBwcmVmaXggaV8gcGVyIG9yZHJlcyBkJ2VudHJhZGEgKHAuZXguOiBpX0NUUkwtWClcblVzZXUgZWwgcHJlZml4IGNfIHBlciBvcmRyZXMgZGUgbGEgbO1uaWEgZCdvcmRyZXMgKHAuZXguOiBjXzxEZWw+KVxuVXNldSBlbCBwcmVmaXggJyBwZXIgbm9tcyBkJ29wY2lvbnMgKHAuZXguOiAnc2hpZnR3aWR0aCcpIgoKIiBtZW76IEZpdHhlcgptZW51dHJhbnMgJkZpbGUJCQkJJkZpdHhlcgptZW51dHJhbnMgJk9wZW5cLlwuXC48VGFiPjplCQkmT2JyZVwuXC5cLjxUYWI+OmUKbWVudXRyYW5zIFNwJmxpdC1PcGVuXC5cLlwuPFRhYj46c3AJT2JyZVwgZW5cIHVuYVwgJmZpbmVzdHJhXCBub3ZhXC5cLlwuPFRhYj46c3AKbWVudXRyYW5zIE9wZW5cIFRhYlwuXC5cLjxUYWI+OnRhYm5ldwlPYnJlXCBwZXN0YW55YVwuXC5cLjxUYWI+OnRhYm5ldwptZW51dHJhbnMgJk5ldzxUYWI+OmVuZXcJCSZOb3U8VGFiPjplbmV3Cm1lbnV0cmFucyAmQ2xvc2U8VGFiPjpjbG9zZQkJJlRhbmNhPFRhYj46Y2xvc2UKbWVudXRyYW5zICZTYXZlPFRhYj46dwkJCSZEZXNhPFRhYj46dwptZW51dHJhbnMgU2F2ZVwgJkFzXC5cLlwuPFRhYj46c2F2CSZBbm9tZW5hXCBpXCBkZXNhXC5cLlwuPFRhYj46c2F2Cm1lbnV0cmFucyBTcGxpdFwgJkRpZmZcIHdpdGhcLlwuXC4JJk1vc3RyYVwgbGVzXCBkaWZlcuhuY2llc1wgcmVzcGVjdGVcLlwuXC4KbWVudXRyYW5zIFNwbGl0XCBQYXRjaGVkXCAmQnlcLlwuXC4JQXBsaWNhXCBsZXNcIG1vZGlmaWNhY2lvbnNcIGRlXC5cLlwuCm1lbnV0cmFucyAmUHJpbnQJCQkmSW1wcmltZWl4Cm1lbnV0cmFucyBTYSZ2ZS1FeGl0PFRhYj46d3FhCQlEZXNhXCBpXCBzJnVydDxUYWI+OndxYQptZW51dHJhbnMgRSZ4aXQ8VGFiPjpxYQkJCSZTdXJ0PFRhYj46cWEKCiIgbWVu+iBFZGl0YQptZW51dHJhbnMgJkVkaXQJCQkJJkVkaXRhCm1lbnV0cmFucyAmVW5kbzxUYWI+dQkJCSZEZXNm6XM8VGFiPnUKbWVudXRyYW5zICZSZWRvPFRhYj5eUgkJCSZSZWbpczxUYWI+XlIKbWVudXRyYW5zIFJlcCZlYXQ8VGFiPlwuCQlSZSZwZXRlaXg8VGFiPlwuCm1lbnV0cmFucyBDdSZ0PFRhYj4iK3gJCQlSZSZ0YWxsYTxUYWI+Iit4Cm1lbnV0cmFucyAmQ29weTxUYWI+Iit5CQkJJkNvcGlhPFRhYj4iK3kKbWVudXRyYW5zICZQYXN0ZTxUYWI+IitnUAkJRW5nYW4meGE8VGFiPiIrZ1AKbWVudXRyYW5zIFB1dFwgJkJlZm9yZTxUYWI+W3AJCVBvc2FcICZhYmFuczxUYWI+W3AKbWVudXRyYW5zIFB1dFwgJkFmdGVyPFRhYj5dcAkJUCZvc2FcIGRlc3By6XM8VGFiPl1wCm1lbnV0cmFucyAmRGVsZXRlPFRhYj54CQkJU3VwcmltZWl4PFRhYj54Cm1lbnV0cmFucyAmU2VsZWN0XCBBbGw8VGFiPmdnVkcJCSZTZWxlY2Npb25hLWhvXCB0b3Q8VGFiPmdnVkcKbWVudXRyYW5zICZGaW5kXC5cLlwuCQkJJkNlcmNhXC5cLlwuCm1lbnV0cmFucyAmRmluZDxUYWI+LwkJCSZDZXJjYTxUYWI+LwptZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZQkJQ2VyY2FcIGlcIHMmdWJzdGl0dWVpeAptZW51dHJhbnMgRmluZFwgYW5kXCBSZXAmbGFjZVwuXC5cLglDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4XC5cLlwuCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46JXMJQ2VyY2FcIGlcIHMmdWJzdGl0dWVpeDxUYWI+OiVzCm1lbnV0cmFucyBGaW5kXCBhbmRcIFJlcCZsYWNlPFRhYj46cwlDZXJjYVwgaVwgcyZ1YnN0aXR1ZWl4PFRhYj46cwptZW51dHJhbnMgU2V0dGluZ3NcICZXaW5kb3cJCUZpbiZlc3RyYVwgZCdvcGNpb25zCm1lbnV0cmFucyBTdGFydHVwXCAmU2V0dGluZ3MgICAgT3BjaW9uc1wgaSZuaWNpYWxzCm1lbnV0cmFucyAmR2xvYmFsXCBTZXR0aW5ncwkJT3BjaW9uc1wgJmdsb2JhbHMKIiBzdWJtZW76IEVkaXRhL09wY2lvbnMgR2xvYmFscwogIG1lbnV0cmFucyBUb2dnbGVcIFBhdHRlcm5cICZIaWdobGlnaHQ8VGFiPjpzZXRcIGhscyEJUmVzc2FsdFwgZGVcICZwYXRyb25zPFRhYj46c2V0XCBobHMhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJklnbm9yZS1jYXNlPFRhYj46c2V0XCBpYyEJCVNlbnNpYmlsaXRhdFwgYVwgbGVzXCBtYSZq+nNjdWxlczxUYWI+OnNldFwgaWMhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlNob3dtYXRjaDxUYWI+OnNldFwgc20hCQkmUmVzc2FsdFwgZGVcIGNvaW5jaWTobmNpZXM8VGFiPjpzZXRcIHNtIQogIG1lbnV0cmFucyAmQ29udGV4dFwgbGluZXMJCQkJTO1uaWVzXCBkZVwgY28mbnRleHQKICBtZW51dHJhbnMgJlZpcnR1YWxcIEVkaXQJCQkJRWRpY2nzXCAmdmlydHVhbAoiIHN1Ym1lbvogRWRpdGEvT3BjaW9ucyBHbG9iYWxzL0VkaWNp8yB2aXJ0dWFsCiAgICBtZW51dHJhbnMgTmV2ZXIJCQkJCSZNYWkKICAgIG1lbnV0cmFucyBCbG9ja1wgU2VsZWN0aW9uCQkJCSZTZWxlY2Np81wgZGVcIGJsb2NzCiAgICBtZW51dHJhbnMgSW5zZXJ0XCBtb2RlCQkJCU1vZGVcIGQnJmluc2VyY2nzCiAgICBtZW51dHJhbnMgQmxvY2tcIGFuZFwgSW5zZXJ0CQkJJkJsb2NzIGkgaW5zZXJjafMKICAgIG1lbnV0cmFucyBBbHdheXMJCQkJCVMmZW1wcmUKICBtZW51dHJhbnMgVG9nZ2xlXCBJbnNlcnRcICZNb2RlPFRhYj46c2V0XCBpbSEJCU1vZGVcIGQnJmluc2VyY2nzPFRhYj46c2V0XCBpbSEKICBtZW51dHJhbnMgVG9nZ2xlXCBWaVwgQyZvbXBhdGlibGU8VGFiPjpzZXRcIGNwIQlDbyZtcGF0aWJsZVwgYW1iXCBWaTxUYWI+OnNldFwgY3AhCiAgbWVudXRyYW5zIFNlYXJjaFwgJlBhdGhcLlwuXC4JCQkJJlViaWNhY2lvbnNcLlwuXC4KICBtZW51dHJhbnMgVGEmZ1wgRmlsZXNcLlwuXC4JCQkJRml0eGVyc1wgZCcmZXRpcXVldGVzXC5cLlwuCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlRvb2xiYXIJCQkJJkJhcnJhXCBkJ2VpbmVzCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkJvdHRvbVwgU2Nyb2xsYmFyCQkJQmFycmFcIGRlXCAmZGVzcGxh52FtZW50XCBpbmZlcmlvcgogIG1lbnV0cmFucyBUb2dnbGVcICZMZWZ0XCBTY3JvbGxiYXIJCQlCYXJyYVwgZGVcIGRlc3BsYedhbWVudFwgZSZzcXVlcnJhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJlJpZ2h0XCBTY3JvbGxiYXIJCQlCYXJyYVwgZGVcIGRlc3BsYedhbWVudFwgZHJlJnRhCm1lbnV0cmFucyBGJmlsZVwgU2V0dGluZ3MJCQkJT3BjaW9uc1wgZGVsXCBmJml0eGVyCiIgc3VibWVu+iBFZGl0YS9PcGNpb25zIGRlbCBmaXR4ZXIKICBtZW51dHJhbnMgVG9nZ2xlXCBMaW5lXCAmTnVtYmVyaW5nPFRhYj46c2V0XCBudSEJJkVubnVtZXJhXCBsZXNcIGztbmllczxUYWI+OnNldFwgbnUhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJkxpc3RcIE1vZGU8VGFiPjpzZXRcIGxpc3QhCQlNb2RlXCAmbGxpc3RhPFRhYj46c2V0XCBsaXN0IQogIG1lbnV0cmFucyBUb2dnbGVcIExpbmVcICZXcmFwPFRhYj46c2V0XCB3cmFwIQkJQSZqdXN0YVwgbGVzXCBs7W5pZXNcIGxsYXJndWVzPFRhYj46c2V0XCB3cmFwIQogIG1lbnV0cmFucyBUb2dnbGVcIFcmcmFwXCBhdFwgd29yZDxUYWI+OnNldFwgbGJyIQlBanVzdGFcIHNlbnNlXCBwYXJ0aXJcICZwYXJhdWxlczxUYWI+OnNldFwgbGJyIQogIG1lbnV0cmFucyBUb2dnbGVcICZleHBhbmQtdGFiPFRhYj46c2V0XCBldCEJCUVzdOluXCBsZXNcIHRhJmJ1bGFjaW9uczxUYWI+OnNldFwgZXQhCiAgbWVudXRyYW5zIFRvZ2dsZVwgJmF1dG8taW5kZW50PFRhYj46c2V0XCBhaSEJCSZTYWduaWFcIGF1dG9t4HRpY2E8VGFiPjpzZXRcIGFpIQogIG1lbnV0cmFucyBUb2dnbGVcICZDLWluZGVudGluZzxUYWI+OnNldFwgY2luIQkJU2FnbmlhXCBlc3RpbFwgJkM8VGFiPjpzZXRcIGNpbiEKICBtZW51dHJhbnMgJlNoaWZ0d2lkdGgJCQkJCVNhJmduaWEKICBtZW51dHJhbnMgU29mdFwgJlRhYnN0b3AJCQkJQW1wbGFkYVwgZGVcICZ0YWJ1bGFjafMKICBtZW51dHJhbnMgVGUmeHRcIFdpZHRoXC5cLlwuCQkJCSZBbXBsYWRhXCBkZWxcIHRleHRcLlwuXC4KICBtZW51dHJhbnMgJkZpbGVcIEZvcm1hdFwuXC5cLgkJCQkmRm9ybWF0XCBkZWxcIGZpdHhlclwuXC5cLgptZW51dHJhbnMgU2VsZWN0XCBGbyZudFwuXC5cLgkJJkZvc2FcLlwuXC4KbWVudXRyYW5zIEMmb2xvclwgU2NoZW1lCQlFcyZxdWVtYVwgZGVcIGNvbG9ycwoiIHN1Ym1lbvogRWRpdGEvRXNxdWVtYSBkZSBjb2xvcnMKICBtZW51dHJhbnMgYmx1ZQkJCWJsYXUKICBtZW51dHJhbnMgZGFya2JsdWUJCQlibGF1XCBmb3NjCiAgbWVudXRyYW5zIGRlZmF1bHQJCQlub3JtYWwKICBtZW51dHJhbnMgZGVzZXJ0CQkJZGVzZXJ0CiAgbWVudXRyYW5zIGV2ZW5pbmcJCQl2ZXNwcmFkYQogIG1lbnV0cmFucyBtb3JuaW5nCQkJbWF0aW5hZGEKICBtZW51dHJhbnMgcGVhY2hwdWZmCQkJcHLpc3NlYwogIG1lbnV0cmFucyBzaGluZQkJCWJyaWxsYW50Cm1lbnV0cmFucyAmS2V5bWFwCQkJJk1hcGFcIGRlXCB0ZWNsZXMKIiBzdWJtZW76IEVkaXRhL01hcGEgZGUgdGVjbGVzCiAgbWVudXRyYW5zIE5vbmUJCQlDYXAKICBtZW51dHJhbnMgYWNjZW50cwkJCUFjY2VudHMKICBtZW51dHJhbnMgYXJhYmljCQkJwHJhYgogIG1lbnV0cmFucyBjemVjaAkJCVR4ZWMKICBtZW51dHJhbnMgZXNwZXJhbnRvCQkJRXNwZXJhbnRvCiAgbWVudXRyYW5zIGdyZWVrCQkJR3JlYwogIG1lbnV0cmFucyBoZWJyZXcJCQlIZWJyZXUKICBtZW51dHJhbnMgaGVicmV3cAkJCUhlYnJldVwgKGZvbuh0aWMpCiAgbWVudXRyYW5zIGxpdGh1YW5pYW4tYmFsdGljCQlMaXR14FwgKGLgbHRpYykKICBtZW51dHJhbnMgcGlueWluCQkJTWFuZGFy7VwgKGZvbuh0aWMpCiAgbWVudXRyYW5zIHJ1c3NpYW4tamN1a2VuCQlSdXNcIChqY3VrZW4pCiAgbWVudXRyYW5zIHJ1c3NpYW4tamN1a2Vud2luCQlSdXNcIChqY3VrZW53aW4pCiAgbWVudXRyYW5zIHJ1c3NpYW4teWF3ZXJ0eQkJUnVzXCAoeWF3ZXJ0eSkKICBtZW51dHJhbnMgc2VyYmlhbgkJCVNlcmJpCiAgbWVudXRyYW5zIHNlcmJpYW4tbGF0aW4JCVNlcmJpXCAobGxhdO0pCiAgbWVudXRyYW5zIHNsb3ZhawkJCUVzbG92YWMKIiB0ZXh0IGRlbCBkaeBsZWcgRWRpdGEvT3BjaW9ucyBnbG9iYWxzL1ViaWNhY2lvbnMuLi4KbGV0IGc6bWVudXRyYW5zX3BhdGhfZGlhbG9nID0gIkludHJvZHXvdSBsZXMgdWJpY2FjaW9ucyBvbiBjZXJjYXIgZml0eGVycy5cblNlcGFyZXUgZWxzIG5vbXMgZGVscyBkaXJlY3RvcmlzIGFtYiB1bmEgY29tYS4iCiIgdGV4dCBkZWwgZGngbGVnIEVkaXRhL09wY2lvbnMgZ2xvYmFscy9GaXR4ZXJzIGQnZXRpcXVldGVzLi4uCmxldCBnOm1lbnV0cmFuc190YWdzX2RpYWxvZyA9ICJJbnRyb2R173UgZWxzIG5vbXMgZGVscyBmaXR4ZXJzIGQnZXRpcXVldGVzLlxuU2VwYXJldSBlbHMgbm9tcyBhbWIgdW5hIGNvbWEuIgoiIHRleHQgZGVsIGRp4GxlZyBFZGl0YS9PcGNpb25zIGRlbCBmaXR4ZXIvQW1wbGFkYSBkZWwgdGV4dC4uLgpsZXQgZzptZW51dHJhbnNfdGV4dHdpZHRoX2RpYWxvZyA9ICJJbnRyb2R173UgbGEgbm92YSBhbXBsYWRhIGRlbCB0ZXh0ICgwIHBlciBpbmZpbml0KTogIgoiIHRleHQgZGVsIGRp4GxlZyBFZGl0YS9PcGNpb25zIGRlbCBmaXR4ZXIvRm9ybWF0IGRlbCBmaXR4ZXIuLi4KbGV0IGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfZGlhbG9nID0gIlNlbGVjY2lvbmV1IGVsIGZvcm1hdCBwZXIgZXNjcml1cmUgZWwgZml0eGVyLiIKCgoiIG1lbvogRWluZXMKbWVudXRyYW5zICZUb29scwkJCUVpJm5lcwptZW51dHJhbnMgJkp1bXBcIHRvXCB0aGlzXCB0YWc8VGFiPmdeXQkmU2FsdGFcIGFcIGFxdWVzdGFcIGV0aXF1ZXRhPFRhYj5nXl0KbWVudXRyYW5zIEp1bXBcICZiYWNrPFRhYj5eVAkJU2FsdGFcIGVuJnJlcmU8VGFiPl5UCm1lbnV0cmFucyBCdWlsZFwgJlRhZ3NcIEZpbGUJCUNyZWFcIHVuXCBmaXR4ZXJcIGQnZXRpJnF1ZXRlcwptZW51dHJhbnMgJlNwZWxsaW5nICAgICAgICAgJk9ydG9ncmFmaWEKIiBzdWJtZW76IEVpbmVzL09ydG9ncmFmaWEKICBtZW51dHJhbnMgJlNwZWxsXCBDaGVja1wgT24gICAgICAgICBBY3RpdmFcIGxhXCAmcmV2aXNp81wgb3J0b2dy4GZpY2EKICBtZW51dHJhbnMgU3BlbGxcIENoZWNrXCAmT2ZmICAgICAgICAmRGVzYWN0aXZhXCBsYVwgcmV2aXNp81wgb3J0b2dy4GZpY2EKICBtZW51dHJhbnMgVG9cICZOZXh0XCBlcnJvcjxUYWI+XXMgICAgICAgRXJyb3JcICZzZWf8ZW50PHRhYj5dcwogIG1lbnV0cmFucyBUb1wgJlByZXZpb3VzXCBlcnJvcjxUYWI+W3MgICBFcnJvclwgJmFudGVyaW9yPHRhYj5bcwogIG1lbnV0cmFucyBTdWdnZXN0XCAmQ29ycmVjdGlvbnM8VGFiPno9ICBTdSZnZ2VyaW1lbnRzPFRhYj56PQogIG1lbnV0cmFucyAmUmVwZWF0XCBjb3JyZWN0aW9uPFRhYj46c3BlbGxyZXBhbGwgIFJlJnBldGVpeFwgbGFcIGNvcnJlY2Np8zxUYWI+OnNwZWxscmVwYWxsCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW4iICAgICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW4iCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fYXUiICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW5fYXUiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fY2EiICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW5fY2EiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fZ2IiICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW5fZ2IiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fbnoiICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW5fbnoiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZW5fdXMiICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZW5fdXMiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiY2EiICAgICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiY2EiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZXMiICAgICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZXMiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiZnIiICAgICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiZnIiCiAgbWVudXRyYW5zIFNldFwgbGFuZ3VhZ2VcIHRvXCAiaXQiICAgICAgIFNlbGVjY2lvbmFcIGwnaWRpb21hXCAiaXQiCiAgbWVudXRyYW5zICZGaW5kXCBNb3JlXCBMYW5ndWFnZXMgICAgICAgICZDZXJjYVwgYWx0cmVzXCBpZGlvbWVzCm1lbnV0cmFucyAmRm9sZGluZwkJCSZQbGVjcwoiIHN1Ym1lbvogRWluZXMvUGxlY3MKICBtZW51dHJhbnMgJkVuYWJsZS9EaXNhYmxlXCBmb2xkczxUYWI+emkgICZIYWJpbGl0YS9EZXNoYWJpbGl0YVwgZWxzXCBwbGVjczxUYWI+emkKICBtZW51dHJhbnMgJlZpZXdcIEN1cnNvclwgTGluZTxUYWI+enYJJkztbmlhXCBkZWxcIGN1cnNvclwgdmlzaWJsZTxUYWI+enYKICBtZW51dHJhbnMgVmllJndcIEN1cnNvclwgTGluZVwgb25seTxUYWI+ek16eCAgJk5vbelzXCB2aXNpYmxlXCBsYVwgbO1uaWFcIGRlbFwgY3Vyc29yPFRhYj56TXp4CiAgbWVudXRyYW5zIEMmbG9zZVwgbW9yZVwgZm9sZHM8VGFiPnptCSZUYW5jYVwgbelzXCBwbGVjczxUYWI+em0KICBtZW51dHJhbnMgJkNsb3NlXCBhbGxcIGZvbGRzPFRhYj56TQlUYW5jYVwgdCZvdHNcIGVsc1wgcGxlY3M8VGFiPnpNCiAgbWVudXRyYW5zIE8mcGVuXCBtb3JlXCBmb2xkczxUYWI+enIJT2JyZVwgJm3pc1wgcGxlY3M8VGFiPnpyCiAgbWVudXRyYW5zICZPcGVuXCBhbGxcIGZvbGRzPFRhYj56UglPJmJyZVwgdG90c1wgZWxzXCBwbGVjczxUYWI+elIKICBtZW51dHJhbnMgRm9sZFwgTWV0JmhvZAkJTeh0byZkZQoiIHN1Ym1lbvogRWluZXMvUGzoY3MvTeh0b2RlCiAgICBtZW51dHJhbnMgTSZhbnVhbAkJCU0mYW51YWwKICAgIG1lbnV0cmFucyBJJm5kZW50CQkJJlNhZ25pYQogICAgbWVudXRyYW5zIEUmeHByZXNzaW9uCQlFJnhwcmVzc2nzCiAgICBtZW51dHJhbnMgUyZ5bnRheAkJCVMmaW50YXhpCiAgICBtZW51dHJhbnMgJkRpZmYJCQkmRGlmZXLobmNpZXMKICAgIG1lbnV0cmFucyBNYSZya2VyCQkJJk1hcnF1ZXMKICBtZW51dHJhbnMgQ3JlYXRlXCAmRm9sZDxUYWI+emYJJkNyZWFcIHVuXCBwbGVjPFRhYj56ZgogIG1lbnV0cmFucyAmRGVsZXRlXCBGb2xkPFRhYj56ZAkmRWxpbWluYVwgdW5cIHBsZWM8VGFiPnpkCiAgbWVudXRyYW5zIERlbGV0ZVwgJkFsbFwgRm9sZHM8VGFiPnpECUVsaW1pbmFcIHRvdCZzXCBlbHNcIHBsZWNzPFRhYj56RAogIG1lbnV0cmFucyBGb2xkXCBjb2wmdW1uXCB3aWR0aAkmQW1wbGFkYVwgZGVcIGxhXCBjb2x1bW5hXCBkZVwgcGxlY3MKbWVudXRyYW5zICZEaWZmCQkJCSZEaWZlcuhuY2llcwoiIHN1Ym1lbvogRWluZXMvRGlmZXLobmNpZXMKICAgIG1lbnV0cmFucyAmVXBkYXRlCQkJJkFjdHVhbGl0emEKICAgIG1lbnV0cmFucyAmR2V0XCBCbG9jawkJJk9idGluZ3Vlc1wgdW5cIGJsb2MKICAgIG1lbnV0cmFucyAmUHV0XCBCbG9jawkJJlBvc2FcIHVuXCBibG9jCm1lbnV0cmFucyAmTWFrZTxUYWI+Om1ha2UJCUNyaWRhXCBhXCAmbWFrZTxUYWI+Om1ha2UKbWVudXRyYW5zICZMaXN0XCBFcnJvcnM8VGFiPjpjbAkJTGxpc3RhXCBkJyZlcnJvcnM8VGFiPjpjbAptZW51dHJhbnMgTCZpc3RcIE1lc3NhZ2VzPFRhYj46Y2whCSZMbGlzdGFcIGRlXCBtaXNzYXRnZXM8VGFiPjpjbCEKbWVudXRyYW5zICZOZXh0XCBFcnJvcjxUYWI+OmNuCQlFcnJvclwgc2UmZ/xlbnQ8VGFiPjpjbgptZW51dHJhbnMgJlByZXZpb3VzXCBFcnJvcjxUYWI+OmNwCUVycm9yXCBhbiZ0ZXJpb3I8VGFiPjpjcAptZW51dHJhbnMgJk9sZGVyXCBMaXN0PFRhYj46Y29sZAlMbGlzdGFcICZhbnRpZ2E8VGFiPjpjb2xkCm1lbnV0cmFucyBOJmV3ZXJcIExpc3Q8VGFiPjpjbmV3CUxsaXN0YVwgbm8mdmE8VGFiPjpjbmV3Cm1lbnV0cmFucyBFcnJvclwgJldpbmRvdwkJRiZpbmVzdHJhXCBkJ2Vycm9ycwoiIHN1Ym1lbvogRWluZXMvRmluZXN0cmEgZCdlcnJvcnMKICBtZW51dHJhbnMgJlVwZGF0ZTxUYWI+OmN3aW4JCSZBY3R1YWxpdHphPFRhYj46Y3dpbgogIG1lbnV0cmFucyAmT3BlbjxUYWI+OmNvcGVuCQkmT2JyZTxUYWI+OmNvcGVuCiAgbWVudXRyYW5zICZDbG9zZTxUYWI+OmNjbG9zZQkJJlRhbmNhPFRhYj46Y2Nsb3NlCm1lbnV0cmFucyAmU2V0XCBDb21waWxlcgkJJkNvbXBpbGFkb3IKbWVudXRyYW5zICZTZVRcIENvbXBpbGVyICAgICAgICAmQ29tcGlsYWRvcgptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIRVg8VGFiPjolIXh4ZAlDb252ZXJ0ZWl4XCBhXCAmSEVYPFRhYj46JSF4eGQKbWVudXRyYW5zIENvbnZlJnJ0XCBiYWNrPFRhYj46JSF4eGRcIC1yCVRvcm5hXCBhbFwgZm9ybWF0XCAmb3JpZ2luYWw8VGFiPjolIXh4ZFwgLXIKCgoiIG1lbvogQnVmZmVycwptZW51dHJhbnMgJkJ1ZmZlcnMJCQkmQnVmZmVycwptZW51dHJhbnMgJlJlZnJlc2hcIG1lbnUJCSZSZWZyZXNjYVwgZWxcIG1lbvoKbWVudXRyYW5zICZEZWxldGUJCQkmRWxpbWluYQptZW51dHJhbnMgJkFsdGVybmF0ZQkJCSZBbHRlcm5hCm1lbnV0cmFucyAmTmV4dAkJCQkmU2Vn/GVudAptZW51dHJhbnMgJlByZXZpb3VzCQkJQSZudGVyaW9yCmxldCBnOm1lbnV0cmFuc19ub19maWxlID0gIltDYXAgZml0eGVyXSIKCgoiIG1lbvogRmluZXN0cmEKbWVudXRyYW5zICZXaW5kb3cJCQlGJmluZXN0cmEKbWVudXRyYW5zICZOZXc8VGFiPl5XbgkJCSZOb3ZhPFRhYj5eV24KbWVudXRyYW5zIFMmcGxpdDxUYWI+XldzCQkmRGl2aWRlaXg8VGFiPl5XcwptZW51dHJhbnMgU3AmbGl0XCBUb1wgIzxUYWI+XldeXglEaXZpZGVpeFwgJmVuXCAjPFRhYj5eV15eCm1lbnV0cmFucyBTcGxpdFwgJlZlcnRpY2FsbHk8VGFiPl5XdglEaXZpZGVpeFwgJnZlcnRpY2FsbWVudDxUYWI+Xld2Cm1lbnV0cmFucyBTcGxpdFwgRmlsZVwgRSZ4cGxvcmVyCUUmeHBsb3JhZG9yXCBkZVwgZml0eGVycwptZW51dHJhbnMgJkNsb3NlPFRhYj5eV2MJCSZUYW5jYTxUYWI+XldjCm1lbnV0cmFucyBDbG9zZVwgJk90aGVyKHMpPFRhYj5eV28JVGFuY2FcIGxlc1wgYWx0cmUmczxUYWI+XldvCm1lbnV0cmFucyBNb3ZlXCAmVG8JCQlNJm91XCBhCiIgc3VibWVu+iBGaW5lc3RyYS9Nb3UKICBtZW51dHJhbnMgJlRvcDxUYWI+XldLCQkmRGFsdFwgZGVcIHRvdDxUYWI+XldLCiAgbWVudXRyYW5zICZCb3R0b208VGFiPl5XSgkJJkJhaXhcIGRlXCB0b3Q8VGFiPl5XSgogIG1lbnV0cmFucyAmTGVmdFwgc2lkZTxUYWI+XldICQlDb3N0YXRcICZlc3F1ZXJyYTxUYWI+XldICiAgbWVudXRyYW5zICZSaWdodFwgc2lkZTxUYWI+XldMCUNvc3RhdFwgZCZyZXQ8VGFiPl5XTAptZW51dHJhbnMgUm90YXRlXCAmVXA8VGFiPl5XUgkJQWx0ZXJuYVwgY2FwXCBhbSZ1bnQ8VGFiPl5XUgptZW51dHJhbnMgUm90YXRlXCAmRG93bjxUYWI+XldyCQlBbHRlJnJuYVwgY2FwXCBhdmFsbDxUYWI+XldyCm1lbnV0cmFucyAmRXF1YWxcIFNpemU8VGFiPl5XPQkJJklndWFsYTxUYWI+Xlc9Cm1lbnV0cmFucyAmTWF4XCBIZWlnaHQ8VGFiPl5XXwkJTeB4aW1hXCAmYWznYWRhPFRhYj5eV18KbWVudXRyYW5zIE0maW5cIEhlaWdodDxUYWI+XlcxXwkJTe1uaW1hXCBhJmznYWRhPFRhYj5eVzFfCm1lbnV0cmFucyBNYXhcICZXaWR0aDxUYWI+XldcfAkJTeB4aW1hXCBhJm1wbGFkYTxUYWI+XldcfAptZW51dHJhbnMgTWluXCBXaWR0Jmg8VGFiPl5XMVx8CQlN7W5pbWFcIGFtJnBsYWRhPFRhYj5eVzFcfAoKCiIgbWVu+iBlbWVyZ2VudAptZW51dHJhbnMgJlVuZG8JCQkJJkRlc2bpcwptZW51dHJhbnMgQ3UmdAkJCQkmUmV0YWxsYQptZW51dHJhbnMgJkNvcHkJCQkJJkNvcGlhCm1lbnV0cmFucyAmUGFzdGUJCQkmRW5nYW54YQptZW51dHJhbnMgJkRlbGV0ZQkJCSZTdXByaW1laXgKbWVudXRyYW5zIFNlbGVjdFwgQmxvY2t3aXNlCQlTZSZsZWNjafMKbWVudXRyYW5zIFNlbGVjdFwgJldvcmQJCQlTZWxlY2Np81wgZGVcICZwYXJhdWxlcwptZW51dHJhbnMgU2VsZWN0XCAmTGluZQkJCVNlbGVjY2nzXCBkZVwgJmztbmllcwptZW51dHJhbnMgU2VsZWN0XCAmQmxvY2sJCVNlbGVjY2nzXCBkZVwgYmwmb2NzCm1lbnV0cmFucyBTZWxlY3RcICZBbGwJCQlTZWxlY2Npb25hLWhvXCAmdG90CgoKIiBiYXJyYSBkJ2VpbmVzCmlmIGhhcygidG9vbGJhciIpCiAgaWYgZXhpc3RzKCIqRG9fdG9vbGJhcl90bWVudSIpCiAgICBkZWxmdW4gRG9fdG9vbGJhcl90bWVudQogIGVuZGlmCiAgZnVuIERvX3Rvb2xiYXJfdG1lbnUoKQogICAgdG1lbnUgVG9vbEJhci5PcGVuCQlPYnJlIHVuIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlCQlEZXNhIGVsIGZpdHhlcgogICAgdG1lbnUgVG9vbEJhci5TYXZlQWxsCURlc2EgdG90cyBlbHMgZml0eGVycwogICAgdG1lbnUgVG9vbEJhci5QcmludAkJSW1wcmltZWl4CiAgICB0bWVudSBUb29sQmFyLlVuZG8JCURlc2bpcwogICAgdG1lbnUgVG9vbEJhci5SZWRvCQlSZWbpcwogICAgdG1lbnUgVG9vbEJhci5DdXQJCVJldGFsbGEKICAgIHRtZW51IFRvb2xCYXIuQ29weQkJQ29waWEKICAgIHRtZW51IFRvb2xCYXIuUGFzdGUJCUVuZ2FueGEKICAgIHRtZW51IFRvb2xCYXIuRmluZAkJQ2VyY2EKICAgIHRtZW51IFRvb2xCYXIuRmluZE5leHQJQ2VyY2EgZWwgc2Vn/GVudAogICAgdG1lbnUgVG9vbEJhci5GaW5kUHJldglDZXJjYSBsJ2FudGVyaW9yCiAgICB0bWVudSBUb29sQmFyLlJlcGxhY2UJQ2VyY2EgaSBzdWJzdGl0dWVpeAogICAgaWYgMAkiIGRpc2FibGVkOyBUaGVzZSBhcmUgaW4gdGhlIFdpbmRvd3MgbWVudQogICAgICB0bWVudSBUb29sQmFyLk5ldwkJRmluZXN0cmEgbm92YQogICAgICB0bWVudSBUb29sQmFyLldpblNwbGl0CURpdmlkZWl4IGxhIGZpbmVzdHJhCiAgICAgIHRtZW51IFRvb2xCYXIuV2luTWF4CUFs52FkYSBt4HhpbWEKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NaW4JQWznYWRhIG3tbmltYQogICAgICB0bWVudSBUb29sQmFyLldpblZTcGxpdAlEaXZpZGVpeCBsYSBmaW5lc3RyYSB2ZXJ0aWNhbG1lbnQKICAgICAgdG1lbnUgVG9vbEJhci5XaW5NYXhXaWR0aAlBbXBsYWRhIG3geGltYQogICAgICB0bWVudSBUb29sQmFyLldpbk1pbldpZHRoCUFtcGxhZGEgbe1uaW1hCiAgICAgIHRtZW51IFRvb2xCYXIuV2luQ2xvc2UJVGFuY2EgbGEgZmluZXN0cmEKICAgIGVuZGlmCiAgICB0bWVudSBUb29sQmFyLkxvYWRTZXNuCUNhcnJlZ2EgdW5hIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5TYXZlU2VzbglEZXNhIGxhIHNlc3Np8wogICAgdG1lbnUgVG9vbEJhci5SdW5TY3JpcHQJRXhlY3V0YSB1biBzY3JpcHQKICAgIHRtZW51IFRvb2xCYXIuTWFrZQkJQ3JpZGEgYSBtYWtlCiAgICB0bWVudSBUb29sQmFyLlNoZWxsCQlPYnJlIGwnaW506HJwcmV0IGQnb3JkcmVzCiAgICB0bWVudSBUb29sQmFyLlJ1bkN0YWdzCUNyZWEgdW4gZml0eGVyIGQnZXRpcXVldGVzCiAgICB0bWVudSBUb29sQmFyLlRhZ0p1bXAJU2FsdGEgYSB1bmEgZXRpcXVldGEKICAgIHRtZW51IFRvb2xCYXIuSGVscAkJQWp1ZGEKICAgIHRtZW51IFRvb2xCYXIuRmluZEhlbHAJQ2VyY2EgYSBsJ2FqdWRhCiAgZW5kZnVuCmVuZGlmCgoKIiBtZW76IFNpbnRheGkKbWVudXRyYW5zICZTeW50YXgJCQkmU2ludGF4aQptZW51dHJhbnMgJk1hbnVhbAkJCSZNYW51YWwKbWVudXRyYW5zIEEmdXRvbWF0aWMJCQlBJnV0b23gdGljYQptZW51dHJhbnMgb24vb2ZmXCBmb3JcICZUaGlzXCBmaWxlCUFjdGl2YS9EZXNhY3RpdmFcIGVuXCAmYXF1ZXN0XCBmaXR4ZXIKbWVudXRyYW5zICZTaG93XCBmaWxldHlwZXNcIGluXCBtZW51CU1vc3RyYVwgdG90c1wgZWxzXCAmdGlwdXNcIGFsXCBtZW76Cm1lbnV0cmFucyAmT2ZmCQkJCSZEZXNhY3RpdmEKbWVudXRyYW5zIENvJmxvclwgdGVzdAkJCVByb3ZhXCBkZWxzXCAmY29sb3JzCm1lbnV0cmFucyAmSGlnaGxpZ2h0XCB0ZXN0CQlQcm92YVwgZGVsXCAmcmVzc2FsdAptZW51dHJhbnMgJkNvbnZlcnRcIHRvXCBIVE1MCQlDb252ZXJ0ZWl4XCBhXCAmSFRNTAptZW51dHJhbnMgQXNzZW1ibHkJCQlFbnNhbWJsYWRvcgptZW51dHJhbnMgQ29uZmlnCQkJQ29uZmlndXJhY2nzCm1lbnV0cmFucyBTZXRcICcmc3ludGF4J1wgb25seQkJTm9t6XNcIGVsXCByZXNzYWx0XCBkZVwgc2ludGF4aQptZW51dHJhbnMgU2V0XCAnJmZpbGV0eXBlJ1wgdG9vCQlDYXJyZWdhXCB0YW1i6VwgZWxzXCBwbHVnaW5zCgpsZXQgJmNwbyA9IHM6a2VlcGNwbwp1bmxldCBzOmtlZXBjcG8K