DQppbXBvcnQgb3MNCmltcG9ydCBqc29uDQpmcm9tIHBhdGhlbHAgaW1wb3J0IFBhdGgNCg0KZGVmIGZpeF9qc29uX2VuY29kaW5nKGZpbGVfcGF0aCk6DQogICAgIiIiSlNPTiDtjM1s7Yy0IOyXkCDtlZzquIAg6ryo7KeQIO2YhOyDgeydhCDsiJjsoJXtlZwg66as7Y6Y7Ja0IiIiDQogICAgdHJ5Og0KICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAncicsIGVuY29kaW5nPSdjcTk0OScpIGFzIGY6DQogICAgICAgICAgICBkYXRhID0ganNvbi5sb2FkKGYpDQogICAgICAgIA0KICAgICAgICB3aXRoIG9wZW4oZmlsZV9wYXRoLCAndycsIGVuY29kaW5nPSd1dGYtOCcpIGFzIGY6DQogICAgICAgICAgICBqc29uLmR1bXAoZGF0YSwgZiwgZW5zdXJlX2FzY2lpPUZhbHNlLCBpbmRlbnQ9MikNCiAgICAgICAgcHJpbnQoZidGaXhlZDoge2ZpbGVfcGF0aH0nKQ0KICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToNCiAgICAgICAgcHJpbnQoZidFcnJvciBmaXhpbmcge2ZpbGVfcGF0aH06IHtlfScpDQoNCmlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6DQogICAgIyDsi6TtlonqsIAg7ZWE7JqU7ZWcIOqyveuhnCDshKTsoJUg7ZuEIOyLpGhlbmcg7LKY66asDQogICAgcGFzc2UNCg==