From a78cbd658347f25a1ff1aee37dbdb5c96da73b82 Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 06:54:10 +0000 Subject: [PATCH] Tower: upload cetmix_tower_server 16.0.3.0.1 (via marketplace) --- addons/cetmix_tower_server/tests/test_shortcut.py | 1 + 1 file changed, 1 insertion(+) create mode 100644 addons/cetmix_tower_server/tests/test_shortcut.py diff --git a/addons/cetmix_tower_server/tests/test_shortcut.py b/addons/cetmix_tower_server/tests/test_shortcut.py new file mode 100644 index 0000000..2206e2b --- /dev/null +++ b/addons/cetmix_tower_server/tests/test_shortcut.py @@ -0,0 +1 @@ +ZnJvbSAuY29tbW9uIGltcG9ydCBUZXN0VG93ZXJDb21tb24KCgpjbGFzcyBUZXN0VG93ZXJTaG9ydGN1dChUZXN0VG93ZXJDb21tb24pOgogICAgIiIiVGVzdCBUb3dlciBTaG9ydGN1dCIiIgoKICAgIEBjbGFzc21ldGhvZAogICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKICAgICAgICBzdXBlcigpLnNldFVwQ2xhc3MoKQoKICAgICAgICAjIFNlcnZlcgogICAgICAgIGNscy5zZXJ2ZXJfdGVzdF8xX3BybyA9IGNscy5TZXJ2ZXIuY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJUZXN0IDEgUHJvIiwKICAgICAgICAgICAgICAgICJpcF92NF9hZGRyZXNzIjogImxvY2FsaG9zdCIsCiAgICAgICAgICAgICAgICAic3NoX3VzZXJuYW1lIjogImFkbWluIiwKICAgICAgICAgICAgICAgICJzc2hfcGFzc3dvcmQiOiAicGFzc3dvcmQiLAogICAgICAgICAgICAgICAgInNzaF9hdXRoX21vZGUiOiAicCIsCiAgICAgICAgICAgICAgICAic2tpcF9ob3N0X2tleSI6IFRydWUsCiAgICAgICAgICAgIH0KICAgICAgICApCgogICAgICAgICMgVmFyaWFibGUKICAgICAgICBjbHMudmFyaWFibGVfcGF0aF9wcm8gPSBjbHMuVmFyaWFibGUuY3JlYXRlKHsibmFtZSI6ICJ0ZXN0X3BhdGhfcHJvIn0pCgogICAgICAgICMgQ29tbWFuZAogICAgICAgIGNscy5jb21tYW5kX2xpc3RfZGlyX3BybyA9IGNscy5Db21tYW5kLmNyZWF0ZSgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiVGVzdCBjcmVhdGUgZGlyZWN0b3J5IiwKICAgICAgICAgICAgICAgICJjb2RlIjogImxzIC1sIHt7IHRlc3RfcGF0aF8gfX0iLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgICAgICAjIEZsaWdodCBwbGFuCiAgICAgICAgY2xzLnBsYW5fMV9wcm8gPSBjbHMuUGxhbi5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIlRlc3QgcGxhbiAxIFBybyIsCiAgICAgICAgICAgICAgICAibm90ZSI6ICJMaXN0IGRpcmVjdG9yeSBjb250ZW50cyIsCiAgICAgICAgICAgIH0KICAgICAgICApCiAgICAgICAgY2xzLnBsYW5fbGluZV8xX3BybyA9IGNscy5wbGFuX2xpbmUuY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAic2VxdWVuY2UiOiA1LAogICAgICAgICAgICAgICAgInBsYW5faWQiOiBjbHMucGxhbl8xX3Byby5pZCwKICAgICAgICAgICAgICAgICJjb21tYW5kX2lkIjogY2xzLmNvbW1hbmRfbGlzdF9kaXJfcHJvLmlkLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgICAgICAjIFNob3J0Y3V0cwogICAgICAgIGNscy5zaG9ydGN1dF9mb3JfY29tbWFuZCA9IGNscy5TaG9ydGN1dC5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIlNob3J0Y3V0IGZvciBDb21tYW5kIiwKICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiY29tbWFuZCIsCiAgICAgICAgICAgICAgICAiY29tbWFuZF9pZCI6IGNscy5jb21tYW5kX2xpc3RfZGlyX3Byby5pZCwKICAgICAgICAgICAgICAgICJzZXJ2ZXJfaWRzIjogWyg0LCBjbHMuc2VydmVyX3Rlc3RfMV9wcm8uaWQpXSwKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICAgICAgY2xzLnNob3J0Y3V0X2Zvcl9mbGlnaHRfcGxhbiA9IGNscy5TaG9ydGN1dC5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIlNob3J0Y3V0IGZvciBGbGlnaHQgUGxhbiIsCiAgICAgICAgICAgICAgICAiYWN0aW9uIjogInBsYW4iLAogICAgICAgICAgICAgICAgInBsYW5faWQiOiBjbHMucGxhbl8xX3Byby5pZCwKICAgICAgICAgICAgICAgICJzZXJ2ZXJfaWRzIjogWyg0LCBjbHMuc2VydmVyX3Rlc3RfMV9wcm8uaWQpXSwKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICBkZWYgdGVzdF9zaG9ydGN1dF91c2VyX2FjY2Vzc19ydWxlcyhzZWxmKToKICAgICAgICAiIiJUZXN0IHNob3J0Y3V0IHVzZXIgYWNjZXNzIHJ1bGVzIiIiCiAgICAgICAgIyBDcmVhdGUgc2hvcnRjdXRzIHdpdGggZGlmZmVyZW50IGFjY2VzcyBsZXZlbHMgYW5kIHNlcnZlci90ZW1wbGF0ZSBhc3NpZ25tZW50cwogICAgICAgIHNob3J0Y3V0X2xldmVsXzFfc2VydmVyID0gc2VsZi5TaG9ydGN1dC5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIkxldmVsIDEgU2VydmVyIFNob3J0Y3V0IiwKICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiY29tbWFuZCIsCiAgICAgICAgICAgICAgICAiY29tbWFuZF9pZCI6IHNlbGYuY29tbWFuZF9saXN0X2Rpcl9wcm8uaWQsCiAgICAgICAgICAgICAgICAic2VydmVyX2lkcyI6IFsoNCwgc2VsZi5zZXJ2ZXJfdGVzdF8xX3Byby5pZCldLAogICAgICAgICAgICAgICAgImFjY2Vzc19sZXZlbCI6ICIxIiwKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICAgICAgc2hvcnRjdXRfbGV2ZWxfMl90ZW1wbGF0ZSA9IHNlbGYuU2hvcnRjdXQuY3JlYXRlKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibmFtZSI6ICJMZXZlbCAyIFRlbXBsYXRlIFNob3J0Y3V0IiwKICAgICAgICAgICAgICAgICJhY3Rpb24iOiAiY29tbWFuZCIsCiAgICAgICAgICAgICAgICAiY29tbWFuZF9pZCI6IHNlbGYuY29tbWFuZF9saXN0X2Rpcl9wcm8uaWQsCiAgICAgICAgICAgICAgICAic2VydmVyX3RlbXBsYXRlX2lkcyI6IFsoNCwgc2VsZi5zZXJ2ZXJfdGVtcGxhdGVfc2FtcGxlLmlkKV0sCiAgICAgICAgICAgICAgICAiYWNjZXNzX2xldmVsIjogIjIiLAogICAgICAgICAgICB9CiAgICAgICAgKQoKICAgICAgICAjIFJlbW92ZSBib2IgZnJvbSBhbGwgY3h0b3dlcl9zZXJ2ZXIgZ3JvdXBzCiAgICAgICAgc2VsZi5yZW1vdmVfZnJvbV9ncm91cCgKICAgICAgICAgICAgc2VsZi51c2VyX2JvYiwKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgImNldG1peF90b3dlcl9zZXJ2ZXIuZ3JvdXBfdXNlciIsCiAgICAgICAgICAgICAgICAiY2V0bWl4X3Rvd2VyX3NlcnZlci5ncm91cF9tYW5hZ2VyIiwKICAgICAgICAgICAgICAgICJjZXRtaXhfdG93ZXJfc2VydmVyLmdyb3VwX3Jvb3QiLAogICAgICAgICAgICBdLAogICAgICAgICkKCiAgICAgICAgc2hvcnRjdXRfc2VydmVyX2FzX2JvYiA9IHNob3J0Y3V0X2xldmVsXzFfc2VydmVyLndpdGhfdXNlcihzZWxmLnVzZXJfYm9iKQogICAgICAgIHNob3J0Y3V0X3RlbXBsYXRlX2FzX2JvYiA9IHNob3J0Y3V0X2xldmVsXzJfdGVtcGxhdGUud2l0aF91c2VyKHNlbGYudXNlcl9ib2IpCgogICAgICAgICMgVGVzdDogVXNlciBhY2Nlc3MKICAgICAgICBzZWxmLmFkZF90b19ncm91cChzZWxmLnVzZXJfYm9iLCAiY2V0bWl4X3Rvd2VyX3NlcnZlci5ncm91cF91c2VyIikKICAgICAgICBzZWxmLnNlcnZlcl90ZXN0XzFfcHJvLndyaXRlKHsidXNlcl9pZHMiOiBbKDQsIHNlbGYudXNlcl9ib2IuaWQpXX0pCgogICAgICAgICMgVXNlciBzaG91bGQgc2VlIGxldmVsIDEgc2hvcnRjdXRzIGZvciB0aGVpciBzZXJ2ZXJzCiAgICAgICAgcmVzID0gc2hvcnRjdXRfc2VydmVyX2FzX2JvYi5yZWFkKFsibmFtZSJdKQogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzWzBdWyJuYW1lIl0sIHNob3J0Y3V0X2xldmVsXzFfc2VydmVyLm5hbWUpCgogICAgICAgICMgVXNlciBzaG91bGQgTk9UIHNlZSBsZXZlbCAyIHNob3J0Y3V0cwogICAgICAgIHNlYXJjaF9yZXN1bHQgPSBzaG9ydGN1dF90ZW1wbGF0ZV9hc19ib2Iuc2VhcmNoKAogICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2hvcnRjdXRfbGV2ZWxfMl90ZW1wbGF0ZS5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlYXJjaF9yZXN1bHQpLCAwKQoKICAgICAgICAjIFRlc3Q6IE1hbmFnZXIgYWNjZXNzIHRocm91Z2ggc2VydmVyIGFzc2lnbm1lbnQKICAgICAgICBzZWxmLmFkZF90b19ncm91cChzZWxmLnVzZXJfYm9iLCAiY2V0bWl4X3Rvd2VyX3NlcnZlci5ncm91cF9tYW5hZ2VyIikKICAgICAgICBzZWxmLnNlcnZlcl90ZXN0XzFfcHJvLndyaXRlKHsibWFuYWdlcl9pZHMiOiBbKDQsIHNlbGYudXNlcl9ib2IuaWQpXX0pCgogICAgICAgICMgTWFuYWdlciBzaG91bGQgc2VlIHNob3J0Y3V0cyBmb3Igc2VydmVycyB0aGV5IG1hbmFnZQogICAgICAgIHJlcyA9IHNob3J0Y3V0X3NlcnZlcl9hc19ib2IucmVhZChbIm5hbWUiXSkKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc1swXVsibmFtZSJdLCBzaG9ydGN1dF9sZXZlbF8xX3NlcnZlci5uYW1lKQoKICAgICAgICAjIE1hbmFnZXIgc2hvdWxkIE5PVCBzZWUgdGVtcGxhdGUgc2hvcnRjdXRzIHdpdGhvdXQgdGVtcGxhdGUgYWNjZXNzCiAgICAgICAgc2VhcmNoX3Jlc3VsdCA9IHNob3J0Y3V0X3RlbXBsYXRlX2FzX2JvYi5zZWFyY2goCiAgICAgICAgICAgIFsoImlkIiwgIj0iLCBzaG9ydGN1dF9sZXZlbF8yX3RlbXBsYXRlLmlkKV0KICAgICAgICApCiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VhcmNoX3Jlc3VsdCksIDApCgogICAgICAgICMgVGVzdDogTWFuYWdlciBhY2Nlc3MgdGhyb3VnaCB0ZW1wbGF0ZSBhc3NpZ25tZW50CiAgICAgICAgc2VsZi5zZXJ2ZXJfdGVtcGxhdGVfc2FtcGxlLndyaXRlKHsibWFuYWdlcl9pZHMiOiBbKDQsIHNlbGYudXNlcl9ib2IuaWQpXX0pCgogICAgICAgICMgTWFuYWdlciBzaG91bGQgbm93IHNlZSB0ZW1wbGF0ZSBzaG9ydGN1dHMKICAgICAgICByZXMgPSBzaG9ydGN1dF90ZW1wbGF0ZV9hc19ib2IucmVhZChbIm5hbWUiXSkKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc1swXVsibmFtZSJdLCBzaG9ydGN1dF9sZXZlbF8yX3RlbXBsYXRlLm5hbWUpCgogICAgICAgICMgVGVzdDogTWFuYWdlciBhY2Nlc3MgYXMgdGVtcGxhdGUgdXNlcgogICAgICAgIHNlbGYuc2VydmVyX3RlbXBsYXRlX3NhbXBsZS53cml0ZSgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm1hbmFnZXJfaWRzIjogWygzLCBzZWxmLnVzZXJfYm9iLmlkKV0sICAjIFJlbW92ZSBmcm9tIG1hbmFnZXJzCiAgICAgICAgICAgICAgICAidXNlcl9pZHMiOiBbKDQsIHNlbGYudXNlcl9ib2IuaWQpXSwgICMgQWRkIGFzIHVzZXIKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICAgICAgIyBNYW5hZ2VyIHNob3VsZCBzdGlsbCBzZWUgdGVtcGxhdGUgc2hvcnRjdXRzIHdoZW4gdGhleSdyZSBhIHRlbXBsYXRlIHVzZXIKICAgICAgICByZXMgPSBzaG9ydGN1dF90ZW1wbGF0ZV9hc19ib2IucmVhZChbIm5hbWUiXSkKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc1swXVsibmFtZSJdLCBzaG9ydGN1dF9sZXZlbF8yX3RlbXBsYXRlLm5hbWUpCgogICAgICAgICMgVGVzdDogUm9vdCBhY2Nlc3MgdG8gYWxsIHNob3J0Y3V0cwogICAgICAgIHNob3J0Y3V0X2xldmVsXzMgPSBzZWxmLlNob3J0Y3V0LmNyZWF0ZSgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIm5hbWUiOiAiTGV2ZWwgMyBNaXhlZCBTaG9ydGN1dCIsCiAgICAgICAgICAgICAgICAiYWN0aW9uIjogImNvbW1hbmQiLAogICAgICAgICAgICAgICAgImNvbW1hbmRfaWQiOiBzZWxmLmNvbW1hbmRfbGlzdF9kaXJfcHJvLmlkLAogICAgICAgICAgICAgICAgInNlcnZlcl9pZHMiOiBbKDQsIHNlbGYuc2VydmVyX3Rlc3RfMV9wcm8uaWQpXSwKICAgICAgICAgICAgICAgICJzZXJ2ZXJfdGVtcGxhdGVfaWRzIjogWyg0LCBzZWxmLnNlcnZlcl90ZW1wbGF0ZV9zYW1wbGUuaWQpXSwKICAgICAgICAgICAgICAgICJhY2Nlc3NfbGV2ZWwiOiAiMyIsCiAgICAgICAgICAgIH0KICAgICAgICApCiAgICAgICAgc2hvcnRjdXRfbGV2ZWxfM19hc19ib2IgPSBzaG9ydGN1dF9sZXZlbF8zLndpdGhfdXNlcihzZWxmLnVzZXJfYm9iKQoKICAgICAgICAjIE1hbmFnZXIgc2hvdWxkIE5PVCBzZWUgbGV2ZWwgMyBzaG9ydGN1dHMKICAgICAgICBzZWFyY2hfcmVzdWx0ID0gc2hvcnRjdXRfbGV2ZWxfM19hc19ib2Iuc2VhcmNoKAogICAgICAgICAgICBbKCJpZCIsICI9Iiwgc2hvcnRjdXRfbGV2ZWxfMy5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlYXJjaF9yZXN1bHQpLCAwKQoKICAgICAgICAjIFJvb3Qgc2hvdWxkIHNlZSBhbGwgc2hvcnRjdXRzCiAgICAgICAgc2VsZi5hZGRfdG9fZ3JvdXAoc2VsZi51c2VyX2JvYiwgImNldG1peF90b3dlcl9zZXJ2ZXIuZ3JvdXBfcm9vdCIpCiAgICAgICAgc2VhcmNoX3Jlc3VsdCA9IHNob3J0Y3V0X2xldmVsXzNfYXNfYm9iLnNlYXJjaCgKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgICJpZCIsCiAgICAgICAgICAgICAgICAgICAgImluIiwKICAgICAgICAgICAgICAgICAgICBbCiAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0Y3V0X2xldmVsXzFfc2VydmVyLmlkLAogICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGN1dF9sZXZlbF8yX3RlbXBsYXRlLmlkLAogICAgICAgICAgICAgICAgICAgICAgICBzaG9ydGN1dF9sZXZlbF8zLmlkLAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgIF0KICAgICAgICApCiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oc2VhcmNoX3Jlc3VsdCksIDMpCgogICAgZGVmIHRlc3Rfc2hvcnRjdXRfcnVuX3R5cGVfY29tbWFuZChzZWxmKToKICAgICAgICAiIiJUZXN0IHJ1biBzaG9ydGN1dCBvZiB0eXBlICdjb21tYW5kJyIiIgogICAgICAgIHNlbGYuc2hvcnRjdXRfZm9yX2NvbW1hbmQucnVuKHNlbGYuc2VydmVyX3Rlc3RfMV9wcm8pCgogICAgICAgICMgQ2hlY2sgY29tbWFuZCBsb2cKICAgICAgICBzaG9ydGN1dF9yZXN1bHQgPSBzZWxmLkNvbW1hbmRMb2cuc2VhcmNoKAogICAgICAgICAgICBbKCJjb21tYW5kX2lkIiwgIj0iLCBzZWxmLnNob3J0Y3V0X2Zvcl9jb21tYW5kLmNvbW1hbmRfaWQuaWQpXQogICAgICAgICkKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihzaG9ydGN1dF9yZXN1bHQpLCAxLCAiTXVzdCBiZSBzaW5nbGUgbG9nIHJlY29yZCIpCiAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKICAgICAgICAgICAgc2hvcnRjdXRfcmVzdWx0LnNlcnZlcl9pZCwKICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdGVzdF8xX3BybywKICAgICAgICAgICAgIlNlcnZlciBzaG91bGQgbWF0Y2giLAogICAgICAgICkKCiAgICBkZWYgdGVzdF9zaG9ydGN1dF9ydW5fdHlwZV9wbGFuKHNlbGYpOgogICAgICAgICIiIlRlc3QgcnVuIHNob3J0Y3V0IG9mIHR5cGUgJ3BsYW4nIiIiCiAgICAgICAgc2VsZi5zaG9ydGN1dF9mb3JfZmxpZ2h0X3BsYW4ucnVuKHNlbGYuc2VydmVyX3Rlc3RfMV9wcm8pCgogICAgICAgICMgQ2hlY2sgc2hvcnRjdXQgbG9nCiAgICAgICAgc2hvcnRjdXRfcmVzdWx0ID0gc2VsZi5QbGFuTG9nLnNlYXJjaCgKICAgICAgICAgICAgWygicGxhbl9pZCIsICI9Iiwgc2VsZi5zaG9ydGN1dF9mb3JfZmxpZ2h0X3BsYW4ucGxhbl9pZC5pZCldCiAgICAgICAgKQogICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNob3J0Y3V0X3Jlc3VsdCksIDEsICJNdXN0IGJlIHNpbmdsZSBsb2cgcmVjb3JkIikKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICBzaG9ydGN1dF9yZXN1bHQuc2VydmVyX2lkLAogICAgICAgICAgICBzZWxmLnNlcnZlcl90ZXN0XzFfcHJvLAogICAgICAgICAgICAiU2VydmVyIHNob3VsZCBtYXRjaCIsCiAgICAgICAgKQoKICAgIGRlZiB0ZXN0X3Nob3J0Y3V0X3J1bl9mcm9tX2NvbnRleHQoc2VsZik6CiAgICAgICAgIiIiVGVzdCBydW5uaW5nIHNob3J0Y3V0IHdpdGggc2VydmVyIGZyb20gY29udGV4dCIiIgogICAgICAgICMgQ3JlYXRlIGEgdGVzdCBzaG9ydGN1dAogICAgICAgIHNob3J0Y3V0ID0gc2VsZi5TaG9ydGN1dC5jcmVhdGUoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJuYW1lIjogIkNvbnRleHQgVGVzdCBTaG9ydGN1dCIsCiAgICAgICAgICAgICAgICAiYWN0aW9uIjogImNvbW1hbmQiLAogICAgICAgICAgICAgICAgImNvbW1hbmRfaWQiOiBzZWxmLmNvbW1hbmRfbGlzdF9kaXJfcHJvLmlkLAogICAgICAgICAgICAgICAgInNlcnZlcl9pZHMiOiBbKDQsIHNlbGYuc2VydmVyX3Rlc3RfMV9wcm8uaWQpXSwKICAgICAgICAgICAgfQogICAgICAgICkKCiAgICAgICAgIyBSdW4gd2l0aCBzZXJ2ZXJfaWQgaW4gY29udGV4dAogICAgICAgIHNob3J0Y3V0LndpdGhfY29udGV4dChzZXJ2ZXJfaWQ9c2VsZi5zZXJ2ZXJfdGVzdF8xX3Byby5pZCkucnVuKCkKCiAgICAgICAgIyBDaGVjayBjb21tYW5kIGxvZyB3YXMgY3JlYXRlZAogICAgICAgIGxvZ19lbnRyaWVzID0gc2VsZi5Db21tYW5kTG9nLnNlYXJjaCgKICAgICAgICAgICAgWwogICAgICAgICAgICAgICAgKCJjb21tYW5kX2lkIiwgIj0iLCBzaG9ydGN1dC5jb21tYW5kX2lkLmlkKSwKICAgICAgICAgICAgICAgICgic2VydmVyX2lkIiwgIj0iLCBzZWxmLnNlcnZlcl90ZXN0XzFfcHJvLmlkKSwKICAgICAgICAgICAgXQogICAgICAgICkKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihsb2dfZW50cmllcyksIDEsICJTaG91bGQgY3JlYXRlIGEgbG9nIGVudHJ5IikKICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAogICAgICAgICAgICBsb2dfZW50cmllcy5zZXJ2ZXJfaWQsCiAgICAgICAgICAgIHNlbGYuc2VydmVyX3Rlc3RfMV9wcm8sCiAgICAgICAgICAgICJTZXJ2ZXIgc2hvdWxkIG1hdGNoIiwKICAgICAgICApCg== \ No newline at end of file