IyEgL2Jpbi9zaAouICIke3NyY2Rpcj0ufS9pbml0LnNoIjsgcGF0aF9wcmVwZW5kXyAuIC4uL3NyYwoKIyBUZXN0IHRoYXQgZ2V0dGV4dCgpIHJldHVybnMgdGhlIG1lc3NhZ2UgY29udmVydGVkIHRvIHRoZSBsb2NhbGUncyBlbmNvZGluZy4KCnRlc3QgLWQgaW4tMi0xIHx8IG1rZGlyIGluLTItMQp0ZXN0IC1kIGluLTItMS9mciB8fCBta2RpciBpbi0yLTEvZnIKdGVzdCAtZCBpbi0yLTEvZnIvTENfTUVTU0FHRVMgfHwgbWtkaXIgaW4tMi0xL2ZyL0xDX01FU1NBR0VTCgo6ICR7TVNHRk1UPW1zZ2ZtdH0KJHtNU0dGTVR9IC1vIGluLTItMS9mci9MQ19NRVNTQUdFUy90c3Rwcm9nLm1vICIkd2Fic19zcmNkaXIiL2ludGwtMi0xLnBvCgp0ZXN0IC1kIGluLTItMiB8fCBta2RpciBpbi0yLTIKdGVzdCAtZCBpbi0yLTIvZnIgfHwgbWtkaXIgaW4tMi0yL2ZyCnRlc3QgLWQgaW4tMi0yL2ZyL0xDX01FU1NBR0VTIHx8IG1rZGlyIGluLTItMi9mci9MQ19NRVNTQUdFUwoKOiAke01TR0ZNVD1tc2dmbXR9CiR7TVNHRk1UfSAtbyBpbi0yLTIvZnIvTENfTUVTU0FHRVMvdHN0cHJvZy5tbyAiJHdhYnNfc3JjZGlyIi9pbnRsLTItMi5wbwoKOiAke0RJRkY9ZGlmZn0KY2F0IDw8RU9GID4gaW4tMi0xLm9rCkvkc2UKRU9GCmNhdCA8PEVPRiA+IGluLTItMi5vawpLw6RzZQpFT0YKCjogJHtMT0NBTEVfRlI9ZnJfRlJ9CjogJHtMT0NBTEVfRlJfVVRGOD1mcl9GUi5VVEYtOH0KaWYgdGVzdCAkTE9DQUxFX0ZSICE9IG5vbmU7IHRoZW4KICBwcmVwYXJlX2xvY2FsZV8gaW4tMi0xL2ZyIGluLTItMS8kTE9DQUxFX0ZSCiAgcHJlcGFyZV9sb2NhbGVfIGluLTItMi9mciBpbi0yLTIvJExPQ0FMRV9GUgogIC4uL2ludGwtMS1wcmcgaW4tMi0xICRMT0NBTEVfRlIgPiBpbi0yLnRtcCB8fCBFeGl0IDEKICBMQ19BTEw9QyB0ciAtZCAnXHInIDwgaW4tMi50bXAgPiBpbi0yLm91dCB8fCBFeGl0IDEKICAke0RJRkZ9IGluLTItMS5vayBpbi0yLm91dCB8fCBFeGl0IDEKICAuLi9pbnRsLTEtcHJnIGluLTItMiAkTE9DQUxFX0ZSID4gaW4tMi50bXAgfHwgRXhpdCAxCiAgTENfQUxMPUMgdHIgLWQgJ1xyJyA8IGluLTIudG1wID4gaW4tMi5vdXQgfHwgRXhpdCAxCiAgJHtESUZGfSBpbi0yLTEub2sgaW4tMi5vdXQgfHwgRXhpdCAxCmZpCmlmIHRlc3QgJExPQ0FMRV9GUl9VVEY4ICE9IG5vbmU7IHRoZW4KICBwcmVwYXJlX2xvY2FsZV8gaW4tMi0xL2ZyIGluLTItMS8kTE9DQUxFX0ZSX1VURjgKICBwcmVwYXJlX2xvY2FsZV8gaW4tMi0yL2ZyIGluLTItMi8kTE9DQUxFX0ZSX1VURjgKICAuLi9pbnRsLTEtcHJnIGluLTItMSAkTE9DQUxFX0ZSX1VURjggPiBpbi0yLnRtcCB8fCBFeGl0IDEKICBMQ19BTEw9QyB0ciAtZCAnXHInIDwgaW4tMi50bXAgPiBpbi0yLm91dCB8fCBFeGl0IDEKICAke0RJRkZ9IGluLTItMi5vayBpbi0yLm91dCB8fCBFeGl0IDEKICAuLi9pbnRsLTEtcHJnIGluLTItMiAkTE9DQUxFX0ZSX1VURjggPiBpbi0yLnRtcCB8fCBFeGl0IDEKICBMQ19BTEw9QyB0ciAtZCAnXHInIDwgaW4tMi50bXAgPiBpbi0yLm91dCB8fCBFeGl0IDEKICAke0RJRkZ9IGluLTItMi5vayBpbi0yLm91dCB8fCBFeGl0IDEKZmkKaWYgdGVzdCAkTE9DQUxFX0ZSID0gbm9uZSAmJiB0ZXN0ICRMT0NBTEVfRlJfVVRGOCA9IG5vbmU7IHRoZW4KICBpZiB0ZXN0IC1mIC91c3IvYmluL2xvY2FsZWRlZjsgdGhlbgogICAgZWNobyAiU2tpcHBpbmcgdGVzdDogbm8gZnJlbmNoIGxvY2FsZSBpcyBpbnN0YWxsZWQiCiAgZWxzZQogICAgZWNobyAiU2tpcHBpbmcgdGVzdDogbm8gZnJlbmNoIGxvY2FsZSBpcyBzdXBwb3J0ZWQiCiAgZmkKICBFeGl0IDc3CmZpCgpFeGl0IDAK