IiBUZXN0IGZvciA6bWtzZXNzaW9uLCA6bWt2aWV3IGFuZCA6bG9hZHZpZXcgaW4gbGF0aW4xIGVuY29kaW5nCgpzZXQgZW5jb2Rpbmc9bGF0aW4xCnNjcmlwdGVuY29kaW5nIGxhdGluMQoKaWYgIWhhcygnbXVsdGlfYnl0ZScpIHx8ICFoYXMoJ21rc2Vzc2lvbicpCiAgZmluaXNoCmVuZGlmCgpmdW5jIFRlc3RfbWtzZXNzaW9uKCkKICB0YWJuZXcKICBsZXQgd3JhcF9zYXZlID0gJndyYXAKICBzZXQgc2Vzc2lvbm9wdGlvbnM9YnVmZmVycyBzcGxpdGJlbG93IGZpbGVlbmNvZGluZz1sYXRpbjEKICBjYWxsIHNldGxpbmUoMSwgWwogICAgXCAgICdzdGFydDonLAogICAgXCAgICdubyBtdWx0aWJ5dGUgY2hBcmFjdGVyJywKICAgIFwgICAnCW9uZSBsZWFEaW5nIHRhYicsCiAgICBcICAgJyAgICBmb3VyIGxlYWRpbkcgc3BhY2VzJywKICAgIFwgICAndHdvCQljb25zZWN1dGl2ZSB0YWJzJywKICAgIFwgICAndHdvCXRhYnMJaW4gb25lIGxpbmUnLAogICAgXCAgICdvbmUg5CBtdWx0aWJ5dGVDaGFyYWN0ZXInLAogICAgXCAgICdh5CDEICB0d28gbXVsdGlCeXRlIGNoYXJhY3RlcnMnLAogICAgXCAgICdB5Pb8ICB0aHJlZSBtdWxUaWJ5dGUgY2hhcmFjdGVycycKICAgIFwgXSkKICBsZXQgdG1wZmlsZSA9ICdYdGVtcCcKICBleGVjICd3ISAnIC4gdG1wZmlsZQogIC9ec3RhcnQ6CiAgc2V0IHdyYXAKICB2c3BsaXQKICBub3JtISBqMTZ8CiAgc3BsaXQKICBub3JtISBqMTZ8CiAgc3BsaXQKICBub3JtISBqMTZ8CiAgc3BsaXQKICBub3JtISBqOHwKICBzcGxpdAogIG5vcm0hIGo4fAogIHNwbGl0CiAgbm9ybSEgajE2fAogIHNwbGl0CiAgbm9ybSEgajE2fAogIHNwbGl0CiAgbm9ybSEgajE2fAogIHdpbmNtZCBsCgogIHNldCBub3dyYXAKICAvXnN0YXJ0OgogIG5vcm0hIGoxNnwzemwKICBzcGxpdAogIG5vcm0hIGowMTZ8M3psCiAgc3BsaXQKICBub3JtISBqMDE2fDN6bAogIHNwbGl0CiAgbm9ybSEgajA4fDN6bAogIHNwbGl0CiAgbm9ybSEgajA4fDN6bAogIHNwbGl0CiAgbm9ybSEgajAxNnwzemwKICBzcGxpdAogIG5vcm0hIGowMTZ8M3psCiAgc3BsaXQKICBub3JtISBqMDE2fDN6bAogIHNwbGl0CiAgY2FsbCB3aW5jb2woKQogIG1rc2Vzc2lvbiEgWHRlc3RfbWtzLm91dAogIGxldCBsaSA9IGZpbHRlcihyZWFkZmlsZSgnWHRlc3RfbWtzLm91dCcpLCAndjp2YWwgPX4jICJcXCheICpub3JtYWwhIDBcXHxeICpleGUgJydub3JtYWwhXFwpIicpCiAgbGV0IGV4cGVjdGVkID0gWwogICAgXCAgICdub3JtYWwhIDAxNnwnLAogICAgXCAgICdub3JtYWwhIDAxNnwnLAogICAgXCAgICdub3JtYWwhIDAxNnwnLAogICAgXCAgICdub3JtYWwhIDA4fCcsCiAgICBcICAgJ25vcm1hbCEgMDh8JywKICAgIFwgICAnbm9ybWFsISAwMTZ8JywKICAgIFwgICAnbm9ybWFsISAwMTZ8JywKICAgIFwgICAnbm9ybWFsISAwMTZ8JywKICAgIFwgICAiICBleGUgJ25vcm1hbCEgJyAuIHM6YyAuICd8enMnIC4gMTYgLiAnfCciLAogICAgXCAgICIgIG5vcm1hbCEgMDE2fCIsCiAgICBcICAgIiAgZXhlICdub3JtYWwhICcgLiBzOmMgLiAnfHpzJyAuIDE2IC4gJ3wnIiwKICAgIFwgICAiICBub3JtYWwhIDAxNnwiLAogICAgXCAgICIgIGV4ZSAnbm9ybWFsISAnIC4gczpjIC4gJ3x6cycgLiAxNiAuICd8JyIsCiAgICBcICAgIiAgbm9ybWFsISAwMTZ8IiwKICAgIFwgICAiICBleGUgJ25vcm1hbCEgJyAuIHM6YyAuICd8enMnIC4gOCAuICd8JyIsCiAgICBcICAgIiAgbm9ybWFsISAwOHwiLAogICAgXCAgICIgIGV4ZSAnbm9ybWFsISAnIC4gczpjIC4gJ3x6cycgLiA4IC4gJ3wnIiwKICAgIFwgICAiICBub3JtYWwhIDA4fCIsCiAgICBcICAgIiAgZXhlICdub3JtYWwhICcgLiBzOmMgLiAnfHpzJyAuIDE2IC4gJ3wnIiwKICAgIFwgICAiICBub3JtYWwhIDAxNnwiLAogICAgXCAgICIgIGV4ZSAnbm9ybWFsISAnIC4gczpjIC4gJ3x6cycgLiAxNiAuICd8JyIsCiAgICBcICAgIiAgbm9ybWFsISAwMTZ8IiwKICAgIFwgICAiICBleGUgJ25vcm1hbCEgJyAuIHM6YyAuICd8enMnIC4gMTYgLiAnfCciLAogICAgXCAgICIgIG5vcm1hbCEgMDE2fCIsCiAgICBcICAgIiAgZXhlICdub3JtYWwhICcgLiBzOmMgLiAnfHpzJyAuIDE2IC4gJ3wnIiwKICAgIFwgICAiICBub3JtYWwhIDAxNnwiCiAgICBcIF0KICBjYWxsIGFzc2VydF9lcXVhbChleHBlY3RlZCwgbGkpCiAgdGFiY2xvc2UhCgogIGNhbGwgZGVsZXRlKCdYdGVzdF9ta3Mub3V0JykKICBjYWxsIGRlbGV0ZSh0bXBmaWxlKQogIGxldCAmd3JhcCA9IHdyYXBfc2F2ZQplbmRmdW5jCgpmdW5jIFRlc3RfbWtzZXNzaW9uX3dpbmhlaWdodCgpCiAgbmV3CiAgc2V0IHdpbmhlaWdodD0xMCB3aW5taW5oZWlnaHQ9MgogIG1rc2Vzc2lvbiEgWHRlc3RfbWtzLm91dAogIHNvdXJjZSBYdGVzdF9ta3Mub3V0CgogIGNhbGwgZGVsZXRlKCdYdGVzdF9ta3Mub3V0JykKZW5kZnVuYwoKZnVuYyBUZXN0X21rc2Vzc2lvbl9hcmdsaXN0KCkKICBhcmdkZWwgKgogIG5leHQgZmlsZTEgZmlsZTIgZmlsZTMgZmlsZTQKICBta3Nlc3Npb24hIFh0ZXN0X21rcy5vdXQKICBzb3VyY2UgWHRlc3RfbWtzLm91dAogIGNhbGwgYXNzZXJ0X2VxdWFsKFsnZmlsZTEnLCAnZmlsZTInLCAnZmlsZTMnLCAnZmlsZTQnXSwgYXJndigpKQoKICBjYWxsIGRlbGV0ZSgnWHRlc3RfbWtzLm91dCcpCiAgYXJnZGVsICoKZW5kZnVuYwoKCiIgdmltOiBzaGlmdHdpZHRoPTIgc3RzPTIgZXhwYW5kdGFiCg==