{
"id": "ssc-b8923f70-c1f7-497f-961j",
"json": {
"contractName": "contract",
"contractAction": "deploy",
"contractPayload": {
"name": "smmt",
"code": "Y29uc3QgVE9LRU5TWU1CT0wgPSAnU01NVCc7CmFjdGlvbnMuY3JlYXRlU1NDID0gZnVuY3Rpb24gKHBheWxvYWQpIHsKICBkYi5jcmVhdGVUYWJsZSgnYmFsYW5jZXMnKTsKICBsZXQgcmV3YXJkcyA9IGRiLmNyZWF0ZVRhYmxlKCdyZXdhcmRzJyk7CiAgcmV3YXJkcy5pbnNlcnQoewogICAgJ3BlbmRpbmdSZXdhcmRzJzogMCwKICAgICdyZXdhcmRzRGlzdHJpYnV0aW9uSW50ZXJ2YWwnOiAzMDAwMCwKICAgICdsYXN0QmxvY2tSZXdhcmQnOiAwLAogICAgJ3Rva2VuSXNzdWFuY2VSYXRlJzogMSwKICAgICduZXh0SGFsdmluZyc6IDUwMDAwMCwKICAgICdiZW5lZmljaWFyaWVzJzogWydzdGVlbW1vbnN0ZXJzJywgJ2hhcnBhZ29uJ10KICB9KQp9CgphY3Rpb25zLnVwZGF0ZVJld2FyZHNEaXN0cmlidXRpb25JbnRlcnZhbCA9IGZ1bmN0aW9uIChwYXlsb2FkKSB7CiAgaWYgKHNlbmRlciAhPT0gb3duZXIpIHJldHVybjsKCiAgY29uc3QgeyBuYkJsb2NrcyB9ID0gcGF5bG9hZDsKCiAgaWYgKE51bWJlci5pc0ludGVnZXIobmJCbG9ja3MpKSB7CiAgICBsZXQgcmV3YXJkcyA9IGRiLmdldFRhYmxlKCdyZXdhcmRzJyk7CiAgICBsZXQgcmVjID0gcmV3YXJkcy5maW5kT25lKHt9KTsKICAgIHJlYy5yZXdhcmRzRGlzdHJpYnV0aW9uSW50ZXJ2YWwgPSBuYkJsb2NrczsKICAgIHJld2FyZHMudXBkYXRlKHJlYyk7CiAgfQp9CgphY3Rpb25zLnVwZGF0ZUJlbmVmaWNpYXJpZXMgPSBmdW5jdGlvbiAocGF5bG9hZCkgewogIGlmIChzZW5kZXIgIT09IG93bmVyKSByZXR1cm47CgogIGNvbnN0IHsgYmVuZWZpY2lhcmllcywgaXNTaWduZWRXaXRoQWN0aXZlS2V5IH0gPSBwYXlsb2FkOwoKICBpZiAoaXNTaWduZWRXaXRoQWN0aXZlS2V5ID09PSB0cnVlCiAgICAmJiBBcnJheS5pc0FycmF5KGJlbmVmaWNpYXJpZXMpKSB7CiAgICBpZiAoYmVuZWZpY2lhcmllcy5pbmRleE9mKG93bmVyKSA9PT0gLTEpIHsKICAgICAgYmVuZWZpY2lhcmllcy5wdXNoKG93bmVyKTsKICAgIH0KCiAgICBsZXQgcmV3YXJkcyA9IGRiLmdldFRhYmxlKCdyZXdhcmRzJyk7CiAgICBsZXQgcmVjID0gcmV3YXJkcy5maW5kT25lKHt9KTsKICAgIHJlYy5iZW5lZmljaWFyaWVzID0gYmVuZWZpY2lhcmllczsKICAgIHJld2FyZHMudXBkYXRlKHJlYyk7CiAgfQp9CgphY3Rpb25zLmlzc3VlVG9rZW5zID0gZnVuY3Rpb24gKHBheWxvYWQpIHsKICBpZiAoc2VuZGVyICE9PSBvd25lcikgcmV0dXJuOwoKICBjb25zdCB7IGJlbmVmaWNpYXJpZXMsIGlzU2lnbmVkV2l0aEFjdGl2ZUtleSB9ID0gcGF5bG9hZDsKCiAgaWYgKGlzU2lnbmVkV2l0aEFjdGl2ZUtleSA9PT0gdHJ1ZQogICAgJiYgQXJyYXkuaXNBcnJheShiZW5lZmljaWFyaWVzKSkgewoKICAgIGxldCByZXdhcmRzID0gZGIuZ2V0VGFibGUoJ3Jld2FyZHMnKTsKICAgIGxldCByZWMgPSByZXdhcmRzLmZpbmRPbmUoe30pOwoKICAgIGJlbmVmaWNpYXJpZXMuZm9yRWFjaChiZW5lZiA9PiB7CiAgICAgIGV4ZWN1dGVTbWFydENvbnRyYWN0KCd0b2tlbicsICdpc3N1ZScsICd7ICJzeW1ib2wiOiAiJyArIFRPS0VOU1lNQk9MICsgJyIsICJ0byI6ICInICsgYmVuZWYuYWNjdCArICciLCAicXVhbnRpdHkiOiAnICsgYmVuZWYucXR5ICsgJywgImlzU2lnbmVkV2l0aEFjdGl2ZUtleSI6IHRydWUgfScpOwoKICAgICAgcmVjLmJlbmVmaWNpYXJpZXMuZm9yRWFjaChhY2N0ID0+IHsKICAgICAgICBleGVjdXRlU21hcnRDb250cmFjdCgndG9rZW4nLCAnaXNzdWUnLCAneyAic3ltYm9sIjogIicgKyBUT0tFTlNZTUJPTCArICciLCAidG8iOiAiJyArIGFjY3QgKyAnIiwgInF1YW50aXR5IjogJyArIGJlbmVmLnF0eSArICcsICJpc1NpZ25lZFdpdGhBY3RpdmVLZXkiOiB0cnVlIH0nKTsKICAgICAgfSkKICAgIH0pCiAgfQp9CgphY3Rpb25zLnByb2Nlc3NQdXJjaGFzZSA9IGZ1bmN0aW9uIChwYXlsb2FkKSB7CiAgaWYgKHNlbmRlciAhPT0gb3duZXIpIHJldHVybjsKCiAgY29uc3QgeyBhY2NvdW50LCBxdWFudGl0eSwgaXNTaWduZWRXaXRoQWN0aXZlS2V5IH0gPSBwYXlsb2FkOwogIGlmIChpc1NpZ25lZFdpdGhBY3RpdmVLZXkgPT09IHRydWUpIHsKICAgIC8vIGdldCB0aGUgaXNzdWFuY2UgcmF0ZQogICAgY29uc3QgaXNzdWFuY2VSYXRlID0gZ2V0SXNzdWFuY2VSYXRlKCk7CgogICAgLy8gYWRkIHRoZSBxdWFudGl0eSB0byB0aGUgcGVuZGluZyByZXdhcmRzCiAgICBsZXQgcmV3YXJkcyA9IGRiLmdldFRhYmxlKCdyZXdhcmRzJyk7CiAgICBsZXQgcmVjID0gcmV3YXJkcy5maW5kT25lKHt9KTsKCiAgICAvLyBpc3N1ZSBTTU1UIHRvIHRoZSBhY2NvdW50CiAgICBjb25zdCB0b2tlbnNUb0lzc3VlID0gKHF1YW50aXR5ICogaXNzdWFuY2VSYXRlKS50b0ZpeGVkKDMpOwogICAgZXhlY3V0ZVNtYXJ0Q29udHJhY3QoJ3Rva2VuJywgJ2lzc3VlJywgJ3sgInN5bWJvbCI6ICInICsgVE9LRU5TWU1CT0wgKyAnIiwgInRvIjogIicgKyBhY2NvdW50ICsgJyIsICJxdWFudGl0eSI6ICcgKyB0b2tlbnNUb0lzc3VlICsgJywgImlzU2lnbmVkV2l0aEFjdGl2ZUtleSI6IHRydWUgfScpOwoKICAgIHJlYy5iZW5lZmljaWFyaWVzLmZvckVhY2goYWNjdCA9PiB7CiAgICAgIGV4ZWN1dGVTbWFydENvbnRyYWN0KCd0b2tlbicsICdpc3N1ZScsICd7ICJzeW1ib2wiOiAiJyArIFRPS0VOU1lNQk9MICsgJyIsICJ0byI6ICInICsgYWNjdCArICciLCAicXVhbnRpdHkiOiAnICsgdG9rZW5zVG9Jc3N1ZSArICcsICJpc1NpZ25lZFdpdGhBY3RpdmVLZXkiOiB0cnVlIH0nKTsKICAgIH0pCgogICAgbGV0IHBlbmRpbmdSZXdhcmRzID0gcmVjLnBlbmRpbmdSZXdhcmRzCiAgICBwZW5kaW5nUmV3YXJkcyA9IGFkZChwZW5kaW5nUmV3YXJkcywgcXVhbnRpdHkpOwogICAgcmVjLnBlbmRpbmdSZXdhcmRzID0gcGVuZGluZ1Jld2FyZHM7CiAgICByZXdhcmRzLnVwZGF0ZShyZWMpOwoKICAgIC8vIGRpc3RyaWJ1dGUgdGhlIHJld2FyZHMgKGlmIGl0J3MgdGltZSB0byBkbyBzbykKICAgIGlmIChyZWMucGVuZGluZ1Jld2FyZHMgPiAwCiAgICAgICYmIChyZWZTdGVlbUJsb2NrTnVtYmVyIC0gcmVjLmxhc3RCbG9ja1Jld2FyZCkgPj0gcmVjLnJld2FyZHNEaXN0cmlidXRpb25JbnRlcnZhbCkgewogICAgICBkaXN0cmlidXRlUmV3YXJkcygpOwogICAgfQogIH0KfQoKYWN0aW9ucy53aXRoZHJhd1Jld2FyZHMgPSBmdW5jdGlvbiAocGF5bG9hZCkgewogIGNvbnN0IHsgcXVhbnRpdHksIGlzU2lnbmVkV2l0aEFjdGl2ZUtleSB9ID0gcGF5bG9hZDsKCiAgaWYgKGFzc2VydChpc1NpZ25lZFdpdGhBY3RpdmVLZXkgPT09IHRydWUsICd5b3UgbXVzdCB1c2UgYSBjdXN0b21fanNvbiBzaWduZWQgd2l0aCB5b3VyIGFjdGl2ZSBrZXknKQogICAgJiYgcXVhbnRpdHkgJiYgdHlwZW9mIHF1YW50aXR5ID09PSAnbnVtYmVyJykgewoKICAgIGxldCBiYWxhbmNlcyA9IGRiLmdldFRhYmxlKCdiYWxhbmNlcycpOwogICAgbGV0IGJhbGFuY2UgPSBiYWxhbmNlcy5maW5kT25lKHsgJ2FjY291bnQnOiBzZW5kZXIgfSk7CgogICAgLy8gY2hlY2sgaWYgdGhlIGJhbGFuY2UgZXhpc3RzCiAgICBpZiAoYXNzZXJ0KGJhbGFuY2UgIT09IG51bGwsICdiYWxhbmNlIGRvZXMgbm90IGV4aXN0JykKICAgICAgJiYgYXNzZXJ0KGNvdW50RGVjaW1hbHMocXVhbnRpdHkpIDw9IDMsICdzeW1ib2wgcHJlY2lzaW9uIG1pc21hdGNoJykKICAgICAgJiYgYXNzZXJ0KHF1YW50aXR5ID4gMCwgJ211c3Qgd2l0aGRyYXcgcG9zaXRpdmUgcXVhbnRpdHknKQogICAgICAmJiBhc3NlcnQoYmFsYW5jZS5iYWxhbmNlID49IHF1YW50aXR5LCAnb3ZlcmRyYXduIGJhbGFuY2UnKSkgewoKICAgICAgLy9iYWxhbmNlLmJhbGFuY2UgPSAoKChiYWxhbmNlLmJhbGFuY2UgKiAxMDAwKSAtIChxdWFudGl0eSAqIDEwMDApKSAvIDEwMDApLnRvRml4ZWQoMyk7CiAgICAgIGJhbGFuY2UuYmFsYW5jZSA9IHN1YihiYWxhbmNlLmJhbGFuY2UsIHF1YW50aXR5KQogICAgICBpZiAoYmFsYW5jZS5iYWxhbmNlIDw9IDApIHsKICAgICAgICBiYWxhbmNlcy5yZW1vdmUoYmFsYW5jZSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgYmFsYW5jZXMudXBkYXRlKGJhbGFuY2UpOwogICAgICB9CiAgICB9CiAgfQp9CgpsZXQgZ2V0SXNzdWFuY2VSYXRlID0gZnVuY3Rpb24gKCkgewogIC8vIGdldCByZXdhcmRzIHBhcmFtcwogIGxldCByZXdhcmRzID0gZGIuZ2V0VGFibGUoJ3Jld2FyZHMnKTsKICBsZXQgcGFyYW1zID0gcmV3YXJkcy5maW5kT25lKHt9KTsKICBjb25zdCBuZXh0SGFsdmluZyA9IHBhcmFtcy5uZXh0SGFsdmluZzsKCiAgLy8gZ2V0IHRoZSB0b2tlbiBzdXBwbHkKICBsZXQgdG9rZW5QYXJhbXMgPSBkYi5maW5kT25lSW5UYWJsZSgndG9rZW4nLCAndG9rZW5zJywgeyAnc3ltYm9sJzogVE9LRU5TWU1CT0wgfSk7CiAgY29uc3QgdG90YWxTdXBwbHkgPSB0b2tlblBhcmFtcy5zdXBwbHk7CiAgY29uc3QgbWF4U3VwcGx5ID0gdG9rZW5QYXJhbXMubWF4U3VwcGx5OwoKICAvLyBjaGVjayBpZiB3ZSBuZWVkIHRvIGhhbHZlIHRoZSBpc3N1YW5jZSByYXRlCiAgaWYgKChtYXhTdXBwbHkgLSB0b3RhbFN1cHBseSkgPD0gbmV4dEhhbHZpbmcpIHsKICAgIHBhcmFtcy50b2tlbklzc3VhbmNlUmF0ZSA9IHBhcmFtcy50b2tlbklzc3VhbmNlUmF0ZSAvIDI7CiAgICBwYXJhbXMubmV4dEhhbHZpbmcgPSBuZXh0SGFsdmluZyAvIDI7CiAgICByZXdhcmRzLnVwZGF0ZShwYXJhbXMpOwogIH0KCiAgcmV0dXJuIHBhcmFtcy50b2tlbklzc3VhbmNlUmF0ZTsKfQoKbGV0IGRpc3RyaWJ1dGVSZXdhcmRzID0gZnVuY3Rpb24gKCkgewogIC8vIGdldCB0aGUgcGVuZGluZyByZXdhcmRzCiAgbGV0IHJld2FyZHMgPSBkYi5nZXRUYWJsZSgncmV3YXJkcycpOwogIGxldCByZWMgPSByZXdhcmRzLmZpbmRPbmUoe30pOwogIGNvbnN0IHBlbmRpbmdSZXdhcmRzID0gcmVjLnBlbmRpbmdSZXdhcmRzOwoKICAvLyBnZXQgdGhlIHRva2VuIHN1cHBseQogIGxldCB0b2tlblBhcmFtcyA9IGRiLmZpbmRPbmVJblRhYmxlKCd0b2tlbicsICd0b2tlbnMnLCB7ICdzeW1ib2wnOiBUT0tFTlNZTUJPTCB9KTsKICBjb25zdCB0b3RhbFN1cHBseSA9IHRva2VuUGFyYW1zLnN1cHBseTsKCiAgY29uc3QgcmV3YXJkUGVyVG9rZW4gPSBkaXYocGVuZGluZ1Jld2FyZHMsIHRvdGFsU3VwcGx5KTsKCiAgbGV0IHRva2VuSG9sZGVycyA9IGRiLmZpbmRJblRhYmxlKCd0b2tlbicsICdiYWxhbmNlcycsIHsgJ3N5bWJvbCc6IFRPS0VOU1lNQk9MIH0pCiAgICAuc29ydCgoYSwgYikgPT4gYi5iYWxhbmNlIC0gYS5iYWxhbmNlKTsKICBsZXQgYmFsYW5jZXMgPSBkYi5nZXRUYWJsZSgnYmFsYW5jZXMnKTsKICBsZXQgdG90YWxSZXdhcmRzRGlzdHJpYnV0ZWQgPSAwOwogIGNvbnN0IGJhbGFuY2VzVG9VcGRhdGUgPSBbXTsKICBjb25zdCBiYWxhbmNlc1RvQ3JlYXRlID0gW107CgogIGxldCBsZW4gPSB0b2tlbkhvbGRlcnMubGVuZ3RoOwogIGZvciAobGV0IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgIGNvbnN0IHRva2VuSG9sZGVyID0gdG9rZW5Ib2xkZXJzW2ldOwoKICAgIC8vIGNhbGN1bGF0ZSB0aGUgcmV3YXJkIGJhc2VkIG9uIHRoZSBzdGFrZQogICAgY29uc3QgcmV3YXJkcyA9IChtdWxSZXdhcmRzKHRva2VuSG9sZGVyLmJhbGFuY2UsIHJld2FyZFBlclRva2VuKSk7CgogICAgdG90YWxSZXdhcmRzRGlzdHJpYnV0ZWQgPSBhZGRSZXdhcmRzKHRvdGFsUmV3YXJkc0Rpc3RyaWJ1dGVkLCByZXdhcmRzKTsKICAgIC8vIHVwZGF0ZSB0aGUgYmFsYW5jZSBpZiA+IDAKICAgIGlmIChyZXdhcmRzID4gMCkgewogICAgICBsZXQgYWNjID0gYmFsYW5jZXMuZmluZE9uZSh7ICdhY2NvdW50JzogdG9rZW5Ib2xkZXIuYWNjb3VudCB9KTsKICAgICAgaWYgKGFjYykgewogICAgICAgIGFjYy5iYWxhbmNlID0gYWRkKGFjYy5iYWxhbmNlLCByZXdhcmRzKTsKICAgICAgICBiYWxhbmNlc1RvVXBkYXRlLnB1c2goYWNjKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBhY2MgPSB7CiAgICAgICAgICAnYWNjb3VudCc6IHRva2VuSG9sZGVyLmFjY291bnQsCiAgICAgICAgICAnYmFsYW5jZSc6IHJld2FyZHMsCiAgICAgICAgfQogICAgICAgIGJhbGFuY2VzVG9DcmVhdGUucHVzaChhY2MpOwogICAgICB9CiAgICB9CiAgfTsKCiAgaWYgKGJhbGFuY2VzVG9DcmVhdGUubGVuZ3RoID4gMCkgewogICAgYmFsYW5jZXMuaW5zZXJ0KGJhbGFuY2VzVG9DcmVhdGUpOwogIH0KCiAgaWYgKGJhbGFuY2VzVG9VcGRhdGUubGVuZ3RoID4gMCkgewogICAgYmFsYW5jZXMudXBkYXRlKGJhbGFuY2VzVG9VcGRhdGUpOwogIH0KCiAgLy8gdXBkYXRlIHRoZSBwZW5kaW5nIHJld2FyZHMKICByZWMucGVuZGluZ1Jld2FyZHMgPSBzdWIocGVuZGluZ1Jld2FyZHMsIHRvdGFsUmV3YXJkc0Rpc3RyaWJ1dGVkKTsKICByZWMubGFzdEJsb2NrUmV3YXJkID0gcmVmU3RlZW1CbG9ja051bWJlcjsKICByZXdhcmRzLnVwZGF0ZShyZWMpOwp9CgpsZXQgZGl2ID0gZnVuY3Rpb24gKGEsIGIpIHsKICByZXR1cm4gKChhICogMTAwMCkgLyAoYiAqIDEwMDApKSAvIDEwMDA7Cn0KCmxldCBtdWxSZXdhcmRzID0gZnVuY3Rpb24gKGEsIGIpIHsKICBsZXQgcmVzID0gKChhICogMTAwMCkgKiAoYiAqIDEwMDApKSAvIDEwMDA7CiAgcmV0dXJuIHJlcyA+PSAwLjAwMSA/IChyZXMgLSAwLjAwMSkudG9GaXhlZCgzKSA6IDA7Cn0KCmxldCBhZGRSZXdhcmRzID0gZnVuY3Rpb24gKGEsIGIpIHsKICByZXR1cm4gKChhICogMTAwMCkgKyAoYiAqIDEwMDApKSAvIDEwMDA7Cn0KCmxldCBtdWwgPSBmdW5jdGlvbiAoYSwgYikgewogIC8vcmV0dXJuICgoYSAqIDEwMDApICogKGIgKiAxMDAwKSkgLyAxMDAwOwogIHJldHVybiBjdXJyZW5jeShhLCB7IHByZWNpc2lvbjogMyB9KS5tdWx0aXBseShiKTsKfQoKbGV0IGFkZCA9IGZ1bmN0aW9uIChhLCBiKSB7CiAgLy9sZXQgcmVzID0gKChhICogMTAwMCkgKyAoYiAqIDEwMDApKSAvIDEwMDA7CiAgLy9yZXR1cm4gcmVzID4gMCA/IHJlcy50b0ZpeGVkKDMpIDogMDsKICByZXR1cm4gY3VycmVuY3koYSwgeyBwcmVjaXNpb246IDMgfSkuYWRkKGIpOwp9CgpsZXQgc3ViID0gZnVuY3Rpb24gKGEsIGIpIHsKICAvL2xldCByZXMgPSAoKGEgKiAxMDAwKSAtIChiICogMTAwMCkpIC8gMTAwMDsKICAvL3JldHVybiByZXMgPiAwID8gcmVzLnRvRml4ZWQoMykgOiAwOwogIHJldHVybiBjdXJyZW5jeShhLCB7IHByZWNpc2lvbjogMyB9KS5zdWJ0cmFjdChiKTsKfQoKbGV0IGNvdW50RGVjaW1hbHMgPSBmdW5jdGlvbiAodmFsdWUpIHsKICBpZiAoTWF0aC5mbG9vcih2YWx1ZSkgPT09IHZhbHVlKSByZXR1cm4gMDsKICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLicpWzFdLmxlbmd0aCB8fCAwOwp9"
}
}
}
RE: Test title