{ "name": "TicTacToeContract", "structs": {}, "methods": [ { "name": "new_game", "args": [ { "type": "(uint64,uint64)", "name": "move" } ], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "join_game", "args": [ { "type": "(uint64,uint64)", "name": "move" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "whose_turn", "args": [], "returns": { "type": "uint8" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "play", "args": [ { "type": "(uint64,uint64)", "name": "move" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 1, "bytes": 4 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "challenger": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "Y2hhbGxlbmdlcg==" }, "winner": { "keyType": "AVMString", "valueType": "uint8", "key": "d2lubmVy" }, "host": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "aG9zdA==" }, "game": { "keyType": "AVMString", "valueType": "uint8[3][3]", "key": "Z2FtZQ==" }, "turns": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "dHVybnM=" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 312 ], "errorMessage": "Game is already finished" }, { "pc": [ 193 ], "errorMessage": "Game isn't over" }, { "pc": [ 273 ], "errorMessage": "Host already has a challenger" }, { "pc": [ 238, 241, 251, 392, 396, 410, 413, 423, 452, 457, 461, 473, 510, 519, 521, 530, 540, 546, 559, 570, 581, 584, 599, 610, 613 ], "errorMessage": "Index access is out of bounds" }, { "pc": [ 351 ], "errorMessage": "It is the challenger's turn" }, { "pc": [ 331 ], "errorMessage": "It is the host's turn" }, { "pc": [ 227, 379 ], "errorMessage": "Move must be in range" }, { "pc": [ 92, 113, 134, 155 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 401 ], "errorMessage": "Square is already taken" }, { "pc": [ 95, 116, 137 ], "errorMessage": "can only call when not creating" }, { "pc": [ 231, 383, 405, 449 ], "errorMessage": "check self.game exists" }, { "pc": [ 329 ], "errorMessage": "check self.host exists" }, { "pc": [ 291, 316, 434, 494 ], "errorMessage": "check self.turns exists" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBleGFtcGxlcy50aWN0YWN0b2UudGljdGFjdG9lLlRpY1RhY1RvZUNvbnRyYWN0Ll9fYWxnb3B5X2VudHJ5cG9pbnRfd2l0aF9pbml0KCkgLT4gdWludDY0OgptYWluOgogICAgaW50Y2Jsb2NrIDAgMSAzIDgKICAgIGJ5dGVjYmxvY2sgImdhbWUiICJ0dXJucyIgImNoYWxsZW5nZXIiICJ3aW5uZXIiIDB4MDEgMHgwMiAiaG9zdCIKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MTUKICAgIC8vIGNsYXNzIFRpY1RhY1RvZUNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX2FmdGVyX2lmX2Vsc2VAOQogICAgcHVzaGJ5dGVzcyAweDk2YTk3MTgxIDB4MTdhMDc5YjMgMHhiYjlmMTE0NyAweDllZWJmNThlIC8vIG1ldGhvZCAibmV3X2dhbWUoKHVpbnQ2NCx1aW50NjQpKXZvaWQiLCBtZXRob2QgImpvaW5fZ2FtZSgodWludDY0LHVpbnQ2NCkpdm9pZCIsIG1ldGhvZCAid2hvc2VfdHVybigpdWludDgiLCBtZXRob2QgInBsYXkoKHVpbnQ2NCx1aW50NjQpKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX25ld19nYW1lX3JvdXRlQDUgbWFpbl9qb2luX2dhbWVfcm91dGVANiBtYWluX3dob3NlX3R1cm5fcm91dGVANyBtYWluX3BsYXlfcm91dGVAOAoKbWFpbl9hZnRlcl9pZl9lbHNlQDk6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjE1CiAgICAvLyBjbGFzcyBUaWNUYWNUb2VDb250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICBpbnRjXzAgLy8gMAogICAgcmV0dXJuCgptYWluX3BsYXlfcm91dGVAODoKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NDcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjE1CiAgICAvLyBjbGFzcyBUaWNUYWNUb2VDb250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgc3dhcAogICAgaW50Y18zIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjQ3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgcGxheQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl93aG9zZV90dXJuX3JvdXRlQDc6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjQzCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiB3aG9zZV90dXJuCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCm1haW5fam9pbl9nYW1lX3JvdXRlQDY6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjM3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToxNQogICAgLy8gY2xhc3MgVGljVGFjVG9lQ29udHJhY3QoYXJjNC5BUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTozNwogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIGpvaW5fZ2FtZQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9uZXdfZ2FtZV9yb3V0ZUA1OgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToyMAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0iYWxsb3ciKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToxNQogICAgLy8gY2xhc3MgVGljVGFjVG9lQ29udHJhY3QoYXJjNC5BUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToyMAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0iYWxsb3ciKQogICAgY2FsbHN1YiBuZXdfZ2FtZQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIGV4YW1wbGVzLnRpY3RhY3RvZS50aWN0YWN0b2UuVGljVGFjVG9lQ29udHJhY3QubmV3X2dhbWUobW92ZS4wOiB1aW50NjQsIG1vdmUuMTogdWludDY0KSAtPiB2b2lkOgpuZXdfZ2FtZToKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MjAtMjEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChjcmVhdGU9ImFsbG93IikKICAgIC8vIGRlZiBuZXdfZ2FtZShzZWxmLCBtb3ZlOiBNb3ZlKSAtPiBOb25lOgogICAgcHJvdG8gMiAwCiAgICBwdXNoYnl0ZXMgIiIKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MjIKICAgIC8vIGlmIFR4bi5hcHBsaWNhdGlvbl9pZDoKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBieiBuZXdfZ2FtZV9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MjMtMjUKICAgIC8vICMgaWYgYSBjaGFsbGVuZ2VyIGhhcyBqb2luZWQsIGRvbid0IGFsbG93IHN0YXJ0aW5nIGEgbmV3IGdhbWUKICAgIC8vICMgdW50aWwgdGhpcyBvbmUgaXMgY29tcGxldGUKICAgIC8vIGlmIHNlbGYuY2hhbGxlbmdlcjoKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJjaGFsbGVuZ2VyIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYnogbmV3X2dhbWVfYWZ0ZXJfaWZfZWxzZUAzCiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjI2CiAgICAvLyBhc3NlcnQgc2VsZi53aW5uZXIsICJHYW1lIGlzbid0IG92ZXIiCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMyAvLyAid2lubmVyIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIEdhbWUgaXNuJ3Qgb3ZlcgoKbmV3X2dhbWVfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToyNy0yOAogICAgLy8gIyByZXNldCBjaGFsbGVuZ2VyIGFuZCB3aW5uZXIKICAgIC8vIGRlbCBzZWxmLmNoYWxsZW5nZXIudmFsdWUKICAgIGJ5dGVjXzIgLy8gImNoYWxsZW5nZXIiCiAgICBhcHBfZ2xvYmFsX2RlbAogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weToyOQogICAgLy8gZGVsIHNlbGYud2lubmVyLnZhbHVlCiAgICBieXRlY18zIC8vICJ3aW5uZXIiCiAgICBhcHBfZ2xvYmFsX2RlbAoKbmV3X2dhbWVfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTozMAogICAgLy8gc2VsZi5ob3N0ID0gVHhuLnNlbmRlcgogICAgYnl0ZWMgNiAvLyAiaG9zdCIKICAgIHR4biBTZW5kZXIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjMxCiAgICAvLyBzZWxmLmdhbWUgPSBHYW1lLmZyb21fYnl0ZXMob3AuYnplcm8oOSkpCiAgICBwdXNoaW50IDkgLy8gOQogICAgYnplcm8KICAgIGJ5dGVjXzAgLy8gImdhbWUiCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTozMwogICAgLy8gYXNzZXJ0IGNvbHVtbiA8IDMgYW5kIHJvdyA8IDMsICJNb3ZlIG11c3QgYmUgaW4gcmFuZ2UiCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMiAvLyAzCiAgICA8CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgYnogbmV3X2dhbWVfYm9vbF9mYWxzZUA3CiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAzCiAgICA8CiAgICBieiBuZXdfZ2FtZV9ib29sX2ZhbHNlQDcKICAgIGludGNfMSAvLyAxCgpuZXdfZ2FtZV9ib29sX21lcmdlQDg6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjMzCiAgICAvLyBhc3NlcnQgY29sdW1uIDwgMyBhbmQgcm93IDwgMywgIk1vdmUgbXVzdCBiZSBpbiByYW5nZSIKICAgIGFzc2VydCAvLyBNb3ZlIG11c3QgYmUgaW4gcmFuZ2UKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MzQKICAgIC8vIHNlbGYuZ2FtZVtyb3ddW2NvbHVtbl0gPSBhcmM0LlVJbnQ4KEhPU1QpCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ2FtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5nYW1lIGV4aXN0cwogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMwogICAgKgogICAgZHVwMgogICAgaW50Y18yIC8vIDMKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIDAKICAgIGFzc2VydCAvLyBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIC0yCiAgICBieXRlYyA0IC8vIDB4MDEKICAgIHJlcGxhY2UzCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAzCiAgICA8CiAgICBhc3NlcnQgLy8gSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHJlcGxhY2UzCiAgICBieXRlY18wIC8vICJnYW1lIgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MzUKICAgIC8vIHNlbGYudHVybnMgPSBVSW50NjQoMCkKICAgIGJ5dGVjXzEgLy8gInR1cm5zIgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCm5ld19nYW1lX2Jvb2xfZmFsc2VANzoKICAgIGludGNfMCAvLyAwCiAgICBiIG5ld19nYW1lX2Jvb2xfbWVyZ2VAOAoKCi8vIGV4YW1wbGVzLnRpY3RhY3RvZS50aWN0YWN0b2UuVGljVGFjVG9lQ29udHJhY3Quam9pbl9nYW1lKG1vdmUuMDogdWludDY0LCBtb3ZlLjE6IHVpbnQ2NCkgLT4gdm9pZDoKam9pbl9nYW1lOgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTozNy0zOAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgam9pbl9nYW1lKHNlbGYsIG1vdmU6IE1vdmUpIC0+IE5vbmU6CiAgICBwcm90byAyIDAKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6MzkKICAgIC8vIGFzc2VydCBub3Qgc2VsZi5jaGFsbGVuZ2VyLCAiSG9zdCBhbHJlYWR5IGhhcyBhIGNoYWxsZW5nZXIiCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAiY2hhbGxlbmdlciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgICEKICAgIGFzc2VydCAvLyBIb3N0IGFscmVhZHkgaGFzIGEgY2hhbGxlbmdlcgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo0MAogICAgLy8gc2VsZi5jaGFsbGVuZ2VyLnZhbHVlID0gVHhuLnNlbmRlcgogICAgYnl0ZWNfMiAvLyAiY2hhbGxlbmdlciIKICAgIHR4biBTZW5kZXIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjQxCiAgICAvLyBzZWxmLm1ha2VfbW92ZShhcmM0LlVJbnQ4KENIQUxMRU5HRVIpLCBtb3ZlKQogICAgYnl0ZWMgNSAvLyAweDAyCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMQogICAgY2FsbHN1YiBtYWtlX21vdmUKICAgIHJldHN1YgoKCi8vIGV4YW1wbGVzLnRpY3RhY3RvZS50aWN0YWN0b2UuVGljVGFjVG9lQ29udHJhY3Qud2hvc2VfdHVybigpIC0+IGJ5dGVzOgp3aG9zZV90dXJuOgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo0NQogICAgLy8gcmV0dXJuIGFyYzQuVUludDgoSE9TVCkgaWYgc2VsZi50dXJucyAlIDIgZWxzZSBhcmM0LlVJbnQ4KENIQUxMRU5HRVIpCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAidHVybnMiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYudHVybnMgZXhpc3RzCiAgICBwdXNoaW50IDIgLy8gMgogICAgJQogICAgYnl0ZWMgNSAvLyAweDAyCiAgICBieXRlYyA0IC8vIDB4MDEKICAgIHVuY292ZXIgMgogICAgc2VsZWN0CiAgICByZXRzdWIKCgovLyBleGFtcGxlcy50aWN0YWN0b2UudGljdGFjdG9lLlRpY1RhY1RvZUNvbnRyYWN0LnBsYXkobW92ZS4wOiB1aW50NjQsIG1vdmUuMTogdWludDY0KSAtPiB2b2lkOgpwbGF5OgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo0Ny00OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgcGxheShzZWxmLCBtb3ZlOiBNb3ZlKSAtPiBOb25lOgogICAgcHJvdG8gMiAwCiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjQ5CiAgICAvLyBhc3NlcnQgbm90IHNlbGYud2lubmVyLCAiR2FtZSBpcyBhbHJlYWR5IGZpbmlzaGVkIgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzMgLy8gIndpbm5lciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBidXJ5IDEKICAgICEKICAgIGFzc2VydCAvLyBHYW1lIGlzIGFscmVhZHkgZmluaXNoZWQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTAKICAgIC8vIGlmIHNlbGYudHVybnMgJSAyOgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gInR1cm5zIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnR1cm5zIGV4aXN0cwogICAgcHVzaGludCAyIC8vIDIKICAgICUKICAgIGJ6IHBsYXlfZWxzZV9ib2R5QDIKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTEKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IHNlbGYuaG9zdCwgIkl0IGlzIHRoZSBob3N0J3MgdHVybiIKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyA2IC8vICJob3N0IgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmhvc3QgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIEl0IGlzIHRoZSBob3N0J3MgdHVybgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo1MgogICAgLy8gcGxheWVyID0gYXJjNC5VSW50OChIT1NUKQogICAgYnl0ZWMgNCAvLyAweDAxCgpwbGF5X2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTgKICAgIC8vIHNlbGYubWFrZV9tb3ZlKHBsYXllciwgbW92ZSkKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIG1ha2VfbW92ZQogICAgcmV0c3ViCgpwbGF5X2Vsc2VfYm9keUAyOgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo1NAogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gc2VsZi5jaGFsbGVuZ2VyLmdldCgKICAgIHR4biBTZW5kZXIKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTUKICAgIC8vIGRlZmF1bHQ9QWNjb3VudCgpCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTQKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IHNlbGYuY2hhbGxlbmdlci5nZXQoCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAiY2hhbGxlbmdlciIKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NTQtNTYKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IHNlbGYuY2hhbGxlbmdlci5nZXQoCiAgICAvLyAgICAgZGVmYXVsdD1BY2NvdW50KCkKICAgIC8vICksICJJdCBpcyB0aGUgY2hhbGxlbmdlcidzIHR1cm4iCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgc2VsZWN0CiAgICA9PQogICAgYXNzZXJ0IC8vIEl0IGlzIHRoZSBjaGFsbGVuZ2VyJ3MgdHVybgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo1NwogICAgLy8gcGxheWVyID0gYXJjNC5VSW50OChDSEFMTEVOR0VSKQogICAgYnl0ZWMgNSAvLyAweDAyCiAgICBiIHBsYXlfYWZ0ZXJfaWZfZWxzZUAzCgoKLy8gZXhhbXBsZXMudGljdGFjdG9lLnRpY3RhY3RvZS5UaWNUYWNUb2VDb250cmFjdC5tYWtlX21vdmUocGxheWVyOiBieXRlcywgbW92ZS4wOiB1aW50NjQsIG1vdmUuMTogdWludDY0KSAtPiB2b2lkOgptYWtlX21vdmU6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjYwLTYxCiAgICAvLyBAc3Vicm91dGluZQogICAgLy8gZGVmIG1ha2VfbW92ZShzZWxmLCBwbGF5ZXI6IGFyYzQuVUludDgsIG1vdmU6IE1vdmUpIC0+IE5vbmU6CiAgICBwcm90byAzIDAKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDUKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjMKICAgIC8vIGFzc2VydCBjb2x1bW4gPCAzIGFuZCByb3cgPCAzLCAiTW92ZSBtdXN0IGJlIGluIHJhbmdlIgogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzIgLy8gMwogICAgPAogICAgZHVwCiAgICBieiBtYWtlX21vdmVfYm9vbF9mYWxzZUAzCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAzCiAgICA8CiAgICBieiBtYWtlX21vdmVfYm9vbF9mYWxzZUAzCiAgICBpbnRjXzEgLy8gMQoKbWFrZV9tb3ZlX2Jvb2xfbWVyZ2VANDoKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjMKICAgIC8vIGFzc2VydCBjb2x1bW4gPCAzIGFuZCByb3cgPCAzLCAiTW92ZSBtdXN0IGJlIGluIHJhbmdlIgogICAgYXNzZXJ0IC8vIE1vdmUgbXVzdCBiZSBpbiByYW5nZQogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo2NAogICAgLy8gYXNzZXJ0IHNlbGYuZ2FtZVtyb3ddW2NvbHVtbl0gPT0gRU1QVFksICJTcXVhcmUgaXMgYWxyZWFkeSB0YWtlbiIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJnYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmdhbWUgZXhpc3RzCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMiAvLyAzCiAgICAqCiAgICBzd2FwCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDMKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBwdXNoYnl0ZXMgMHgwMAogICAgYj09CiAgICBhc3NlcnQgLy8gU3F1YXJlIGlzIGFscmVhZHkgdGFrZW4KICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjUKICAgIC8vIHNlbGYuZ2FtZVtyb3ddW2NvbHVtbl0gPSBwbGF5ZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJnYW1lIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmdhbWUgZXhpc3RzCiAgICBkdXAKICAgIGRpZyAyCiAgICBpbnRjXzIgLy8gMwogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgNgogICAgYXNzZXJ0IC8vIEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTIKICAgIGZyYW1lX2RpZyAtMwogICAgcmVwbGFjZTMKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDMKICAgIDwKICAgIGFzc2VydCAvLyBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDIKICAgIHN3YXAKICAgIHJlcGxhY2UzCiAgICBieXRlY18wIC8vICJnYW1lIgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjYKICAgIC8vIHNlbGYudHVybnMgKz0gMQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gInR1cm5zIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnR1cm5zIGV4aXN0cwogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ5dGVjXzEgLy8gInR1cm5zIgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NzQKICAgIC8vIGcgPSBzZWxmLmdhbWUuY29weSgpCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiZ2FtZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMgogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuZ2FtZSBleGlzdHMKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NzYKICAgIC8vIGlmIGdbcm93XVswXSA9PSBnW3Jvd11bMV0gPT0gZ1tyb3ddWzJdOgogICAgc3dhcAogICAgaW50Y18yIC8vIDMKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDMKICAgIGR1cAogICAgZXh0cmFjdCAwIDEgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBzd2FwCiAgICBleHRyYWN0IDEgMSAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICBiPT0KICAgIGJ6IG1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDEzCiAgICBmcmFtZV9kaWcgMwogICAgZXh0cmFjdCAyIDEgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgMAogICAgYj09CiAgICBieiBtYWtlX21vdmVfYWZ0ZXJfaWZfZWxzZUAxMwogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo3NwogICAgLy8gcmV0dXJuIFRydWUKICAgIGludGNfMSAvLyAxCgptYWtlX21vdmVfYWZ0ZXJfaW5saW5lZF9leGFtcGxlcy50aWN0YWN0b2UudGljdGFjdG9lLlRpY1RhY1RvZUNvbnRyYWN0LmRpZF93aW5AMjU6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjY3CiAgICAvLyBpZiBzZWxmLmRpZF93aW4ocGxheWVyLCBjb2x1bW49Y29sdW1uLCByb3c9cm93KToKICAgIGJ6IG1ha2VfbW92ZV9lbHNlX2JvZHlANgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo2OAogICAgLy8gc2VsZi53aW5uZXIudmFsdWUgPSBwbGF5ZXIKICAgIGJ5dGVjXzMgLy8gIndpbm5lciIKICAgIGZyYW1lX2RpZyAtMwogICAgYXBwX2dsb2JhbF9wdXQKCm1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDk6CiAgICByZXRzdWIKCm1ha2VfbW92ZV9lbHNlX2JvZHlANjoKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjkKICAgIC8vIGVsaWYgc2VsZi50dXJucyA9PSA5OgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gInR1cm5zIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnR1cm5zIGV4aXN0cwogICAgcHVzaGludCA5IC8vIDkKICAgID09CiAgICBieiBtYWtlX21vdmVfYWZ0ZXJfaWZfZWxzZUA5CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjcwCiAgICAvLyBzZWxmLndpbm5lci52YWx1ZSA9IGFyYzQuVUludDgoRFJBVykKICAgIGJ5dGVjXzMgLy8gIndpbm5lciIKICAgIHB1c2hieXRlcyAweDAzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgptYWtlX21vdmVfYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NzkKICAgIC8vIGlmIGdbMF1bY29sdW1uXSA9PSBnWzFdW2NvbHVtbl0gPT0gZ1syXVtjb2x1bW5dOgogICAgZnJhbWVfZGlnIDIKICAgIGR1cAogICAgZXh0cmFjdCAwIDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgNAogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzEgLy8gMQogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBzd2FwCiAgICBleHRyYWN0IDMgMyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZnJhbWVfYnVyeSA1CiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZnJhbWVfYnVyeSAxCiAgICBiPT0KICAgIGJ6IG1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDE2CiAgICBmcmFtZV9kaWcgMgogICAgZXh0cmFjdCA2IDMgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAxCiAgICBiPT0KICAgIGJ6IG1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDE2CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjgwCiAgICAvLyByZXR1cm4gVHJ1ZQogICAgaW50Y18xIC8vIDEKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjcKICAgIC8vIGlmIHNlbGYuZGlkX3dpbihwbGF5ZXIsIGNvbHVtbj1jb2x1bW4sIHJvdz1yb3cpOgogICAgYiBtYWtlX21vdmVfYWZ0ZXJfaW5saW5lZF9leGFtcGxlcy50aWN0YWN0b2UudGljdGFjdG9lLlRpY1RhY1RvZUNvbnRyYWN0LmRpZF93aW5AMjUKCm1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDE2OgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo4Mi04MwogICAgLy8gIyBpZiBwbGF5ZXIgb3ducyBjZW50ZXIsIGNoZWNrIGRpYWdvbmFscwogICAgLy8gaWYgcGxheWVyID09IGdbMV1bMV06CiAgICBmcmFtZV9kaWcgNQogICAgZXh0cmFjdCAxIDEgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgIGI9PQogICAgYnogbWFrZV9tb3ZlX2FmdGVyX2lmX2Vsc2VAMjQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6ODQKICAgIC8vIGlmIGdbMF1bMF0gPT0gcGxheWVyID09IGdbMl1bMl06CiAgICBmcmFtZV9kaWcgNAogICAgZXh0cmFjdCAwIDEgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgIGI9PQogICAgYnogbWFrZV9tb3ZlX2FmdGVyX2lmX2Vsc2VAMjAKICAgIGZyYW1lX2RpZyAyCiAgICBleHRyYWN0IDYgMyAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGV4dHJhY3QgMiAxIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZnJhbWVfZGlnIC0zCiAgICBiPT0KICAgIGJ6IG1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDIwCiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5Ojg1CiAgICAvLyByZXR1cm4gVHJ1ZQogICAgaW50Y18xIC8vIDEKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6NjcKICAgIC8vIGlmIHNlbGYuZGlkX3dpbihwbGF5ZXIsIGNvbHVtbj1jb2x1bW4sIHJvdz1yb3cpOgogICAgYiBtYWtlX21vdmVfYWZ0ZXJfaW5saW5lZF9leGFtcGxlcy50aWN0YWN0b2UudGljdGFjdG9lLlRpY1RhY1RvZUNvbnRyYWN0LmRpZF93aW5AMjUKCm1ha2VfbW92ZV9hZnRlcl9pZl9lbHNlQDIwOgogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo4NgogICAgLy8gaWYgZ1swXVsyXSA9PSBwbGF5ZXIgPT0gZ1syXVswXToKICAgIGZyYW1lX2RpZyA0CiAgICBleHRyYWN0IDIgMSAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGZyYW1lX2RpZyAtMwogICAgYj09CiAgICBieiBtYWtlX21vdmVfYWZ0ZXJfaWZfZWxzZUAyNAogICAgZnJhbWVfZGlnIDIKICAgIGV4dHJhY3QgNiAzIC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZXh0cmFjdCAwIDEgLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBmcmFtZV9kaWcgLTMKICAgIGI9PQogICAgYnogbWFrZV9tb3ZlX2FmdGVyX2lmX2Vsc2VAMjQKICAgIC8vIHRpY3RhY3RvZS90aWN0YWN0b2UucHk6ODcKICAgIC8vIHJldHVybiBUcnVlCiAgICBpbnRjXzEgLy8gMQogICAgLy8gdGljdGFjdG9lL3RpY3RhY3RvZS5weTo2NwogICAgLy8gaWYgc2VsZi5kaWRfd2luKHBsYXllciwgY29sdW1uPWNvbHVtbiwgcm93PXJvdyk6CiAgICBiIG1ha2VfbW92ZV9hZnRlcl9pbmxpbmVkX2V4YW1wbGVzLnRpY3RhY3RvZS50aWN0YWN0b2UuVGljVGFjVG9lQ29udHJhY3QuZGlkX3dpbkAyNQoKbWFrZV9tb3ZlX2FmdGVyX2lmX2Vsc2VAMjQ6CiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5Ojg4CiAgICAvLyByZXR1cm4gRmFsc2UKICAgIGludGNfMCAvLyAwCiAgICAvLyB0aWN0YWN0b2UvdGljdGFjdG9lLnB5OjY3CiAgICAvLyBpZiBzZWxmLmRpZF93aW4ocGxheWVyLCBjb2x1bW49Y29sdW1uLCByb3c9cm93KToKICAgIGIgbWFrZV9tb3ZlX2FmdGVyX2lubGluZWRfZXhhbXBsZXMudGljdGFjdG9lLnRpY3RhY3RvZS5UaWNUYWNUb2VDb250cmFjdC5kaWRfd2luQDI1CgptYWtlX21vdmVfYm9vbF9mYWxzZUAzOgogICAgaW50Y18wIC8vIDAKICAgIGIgbWFrZV9tb3ZlX2Jvb2xfbWVyZ2VANAo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAEAAEDCCYHBGdhbWUFdHVybnMKY2hhbGxlbmdlcgZ3aW5uZXIBAQECBGhvc3QxG0EAI4IEBJapcYEEF6B5swS7nxFHBJ7r9Y42GgCOBABBACwAFwACIkMxGRREMRhENhoBSSJbTCVbiADDI0MxGRREMRhEiACogAQVH3x1TFCwI0MxGRREMRhENhoBSSJbTCVbiAByI0MxGRRENhoBSSJbTCVbiAACI0OKAgCAADEYQQASIiplRQFBAAYiK2VFAUQqaStpJwYxAGeBCa8oTGeL/iQMSYwAQQApi/8kDEEAIiNEIihlRIv/JAtKJFiLAESL/icEXYv/JAxEXShMZykiZ4kiQv/bigIAIiplRQEURCoxAGcnBYv+i/+IAEaJIillRIECGCcFJwRPAk2JigIAIitlRQEURCIpZUSBAhhBABMxACInBmVEEkQnBIv+i/+IABCJMQAyAyIqZU0SRCcFQv/pigMAIkcFi/4kDElBAQOL/yQMQQD8I0QiKGVEi/8kC0xLASRYi/4jWIABAKhEIihlRElLAiRYiwZEi/6L/V2L/yQMREsCTF0oTGciKWVEIwgpTGciKGVMSU4CjAJETCRYSYwDSVcAAUxXAQFJjACoQQAkiwNXAgGLAKhBABkjQQAFK4v9Z4kiKWVEgQkSQf/1K4ABA2eJiwJJVwADSYwEi/4jWExXAwNJjAWL/iNYSYwBqEEAE4sCVwYDi/4jWIsBqEEABCNC/7aLBVcBAYv9qEEAOosEVwABi/2oQQASiwJXBgNXAgGL/ahBAAQjQv+OiwRXAgGL/ahBABKLAlcGA1cAAYv9qEEABCNC/3EiQv9tIkL/AQ==", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }