{ "name": "Sandbox", "structs": {}, "methods": [ { "name": "hello_world", "args": [ { "type": "string", "name": "name" } ], "returns": { "type": "string" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "add", "args": [ { "type": "uint64", "name": "a" }, { "type": "uint64", "name": "b" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_pay_txn_amount", "args": [ { "type": "pay", "name": "pay_txn" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_pay_txns_amount_sum", "args": [ { "type": "pay", "name": "pay_txn_1" }, { "type": "pay", "name": "pay_txn_2" }, { "type": "appl", "name": "app_call_txn" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "echo_bytes", "args": [ { "type": "byte[]", "name": "a" } ], "returns": { "type": "byte[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "echo_static_array", "args": [ { "type": "uint64[4]", "name": "arr" } ], "returns": { "type": "uint64[4]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "echo_dynamic_array", "args": [ { "type": "uint64[]", "name": "arr" } ], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "nest_array_and_tuple", "args": [ { "type": "uint64[][]", "name": "arr" }, { "type": "(uint64[],string)", "name": "tuple" } ], "returns": { "type": "(uint64[][],(uint64[],string))" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "echo_boolean", "args": [ { "type": "bool", "name": "bool" } ], "returns": { "type": "bool" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "inner_pay_appl", "args": [ { "type": "uint64", "name": "appId" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_returned_value_of_app_call_txn", "args": [ { "type": "appl", "name": "app_call_txn" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "more_than_15_args_with_ref_types", "args": [ { "type": "uint64", "name": "a1" }, { "type": "uint64", "name": "a2" }, { "type": "uint64", "name": "a3" }, { "type": "uint64", "name": "a4" }, { "type": "uint64", "name": "a5" }, { "type": "uint64", "name": "a6" }, { "type": "uint64", "name": "a7" }, { "type": "uint64", "name": "a8" }, { "type": "uint64", "name": "a9" }, { "type": "uint64", "name": "a10" }, { "type": "uint64", "name": "a11" }, { "type": "uint64", "name": "a12" }, { "type": "uint64", "name": "a13" }, { "type": "uint64", "name": "a14" }, { "type": "uint64", "name": "a15" }, { "type": "uint64", "name": "a16" }, { "type": "uint64", "name": "a17" }, { "type": "asset", "name": "asset" }, { "type": "uint64", "name": "a18" }, { "type": "application", "name": "application" }, { "type": "pay", "name": "pay" }, { "type": "account", "name": "account" } ], "returns": { "type": "(uint64,uint64,uint64,byte[])" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "more_than_15_args", "args": [ { "type": "uint64", "name": "a1" }, { "type": "uint64", "name": "a2" }, { "type": "uint64", "name": "a3" }, { "type": "uint64", "name": "a4" }, { "type": "uint64", "name": "a5" }, { "type": "uint64", "name": "a6" }, { "type": "uint64", "name": "a7" }, { "type": "uint64", "name": "a8" }, { "type": "uint64", "name": "a9" }, { "type": "uint64", "name": "a10" }, { "type": "uint64", "name": "a11" }, { "type": "uint64", "name": "a12" }, { "type": "uint64", "name": "a13" }, { "type": "uint64", "name": "a14" }, { "type": "uint64", "name": "a15" }, { "type": "uint64", "name": "a16" }, { "type": "uint64", "name": "a17" }, { "type": "uint64", "name": "a18" } ], "returns": { "type": "uint64[]" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 0, "bytes": 0 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": {}, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 177, 183, 189, 195, 259, 265, 271, 285 ], "errorMessage": "Index access is out of bounds" }, { "pc": [ 128, 210, 326, 352, 371, 386, 408, 423, 438, 465, 512, 538, 560 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 815 ], "errorMessage": "account funded" }, { "pc": [ 662, 781, 800 ], "errorMessage": "application log value is not the result of an ABI return" }, { "pc": [ 584 ], "errorMessage": "can only call when creating" }, { "pc": [ 131, 213, 329, 355, 374, 389, 411, 426, 441, 468, 515, 541, 563 ], "errorMessage": "can only call when not creating" }, { "pc": [ 339, 499 ], "errorMessage": "transaction type is appl" }, { "pc": [ 305, 479, 489, 525 ], "errorMessage": "transaction type is pay" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDAgNiAyCiAgICBieXRlY2Jsb2NrIDB4MTUxZjdjNzUgMHg5ZmQ4MzVmOCAweDAwMDQKICAgIC8vIGNvbnRyYWN0LnB5OjIzCiAgICAvLyBjbGFzcyBTYW5kYm94KEFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9iYXJlX3JvdXRpbmdAMTgKICAgIHB1c2hieXRlc3MgMHgwZjBjN2EzZCAweGZlNmJkZjY5IC8vIG1ldGhvZCAiaGVsbG9fd29ybGQoc3RyaW5nKXN0cmluZyIsIG1ldGhvZCAiYWRkKHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgYnl0ZWNfMSAvLyBtZXRob2QgImdldF9wYXlfdHhuX2Ftb3VudChwYXkpdWludDY0IgogICAgcHVzaGJ5dGVzcyAweDc4NmEwOGE3IDB4ZWE0NTEzZDMgMHhlZjM0NjNiYyAweDE2OGFmZGJhIDB4OGVhNzUwZDIgMHg3MTNkNzJlNCAweDBiOTE5ODRlIDB4MGJiNmM2NzUgMHg5YmY4OTgxMSAweGE1YTk5NmU4IC8vIG1ldGhvZCAiZ2V0X3BheV90eG5zX2Ftb3VudF9zdW0ocGF5LHBheSxhcHBsKXVpbnQ2NCIsIG1ldGhvZCAiZWNob19ieXRlcyhieXRlW10pYnl0ZVtdIiwgbWV0aG9kICJlY2hvX3N0YXRpY19hcnJheSh1aW50NjRbNF0pdWludDY0WzRdIiwgbWV0aG9kICJlY2hvX2R5bmFtaWNfYXJyYXkodWludDY0W10pdWludDY0W10iLCBtZXRob2QgIm5lc3RfYXJyYXlfYW5kX3R1cGxlKHVpbnQ2NFtdW10sKHVpbnQ2NFtdLHN0cmluZykpKHVpbnQ2NFtdW10sKHVpbnQ2NFtdLHN0cmluZykpIiwgbWV0aG9kICJlY2hvX2Jvb2xlYW4oYm9vbClib29sIiwgbWV0aG9kICJpbm5lcl9wYXlfYXBwbCh1aW50NjQpdWludDY0IiwgbWV0aG9kICJnZXRfcmV0dXJuZWRfdmFsdWVfb2ZfYXBwX2NhbGxfdHhuKGFwcGwpdWludDY0IiwgbWV0aG9kICJtb3JlX3RoYW5fMTVfYXJnc193aXRoX3JlZl90eXBlcyh1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LGFzc2V0LHVpbnQ2NCxhcHBsaWNhdGlvbixwYXksYWNjb3VudCkodWludDY0LHVpbnQ2NCx1aW50NjQsYnl0ZVtdKSIsIG1ldGhvZCAibW9yZV90aGFuXzE1X2FyZ3ModWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0W10iCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2hlbGxvX3dvcmxkX3JvdXRlQDMgbWFpbl9hZGRfcm91dGVANCBtYWluX2dldF9wYXlfdHhuX2Ftb3VudF9yb3V0ZUA1IG1haW5fZ2V0X3BheV90eG5zX2Ftb3VudF9zdW1fcm91dGVANiBtYWluX2VjaG9fYnl0ZXNfcm91dGVANyBtYWluX2VjaG9fc3RhdGljX2FycmF5X3JvdXRlQDggbWFpbl9lY2hvX2R5bmFtaWNfYXJyYXlfcm91dGVAOSBtYWluX25lc3RfYXJyYXlfYW5kX3R1cGxlX3JvdXRlQDEwIG1haW5fZWNob19ib29sZWFuX3JvdXRlQDExIG1haW5faW5uZXJfcGF5X2FwcGxfcm91dGVAMTIgbWFpbl9nZXRfcmV0dXJuZWRfdmFsdWVfb2ZfYXBwX2NhbGxfdHhuX3JvdXRlQDEzIG1haW5fbW9yZV90aGFuXzE1X2FyZ3Nfd2l0aF9yZWZfdHlwZXNfcm91dGVAMTQgbWFpbl9tb3JlX3RoYW5fMTVfYXJnc19yb3V0ZUAxNQoKbWFpbl9hZnRlcl9pZl9lbHNlQDIyOgogICAgLy8gY29udHJhY3QucHk6MjMKICAgIC8vIGNsYXNzIFNhbmRib3goQVJDNENvbnRyYWN0KToKICAgIGludGNfMSAvLyAwCiAgICByZXR1cm4KCm1haW5fbW9yZV90aGFuXzE1X2FyZ3Nfcm91dGVAMTU6CiAgICAvLyBjb250cmFjdC5weToxMzMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDExCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDE0CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCAwIDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCA4IDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCAxNiA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTUKICAgIGV4dHJhY3QgMjQgOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIC8vIGNvbnRyYWN0LnB5OjEzMwogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIG1vcmVfdGhhbl8xNV9hcmdzCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX21vcmVfdGhhbl8xNV9hcmdzX3dpdGhfcmVmX3R5cGVzX3JvdXRlQDE0OgogICAgLy8gY29udHJhY3QucHk6OTcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDExCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDE0CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCAwIDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCA4IDggLy8gb24gZXJyb3I6IEluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxNQogICAgZXh0cmFjdCAxNiA4IC8vIG9uIGVycm9yOiBJbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTUKICAgIHB1c2hpbnQgMjQgLy8gMjQKICAgIGdldGJ5dGUKICAgIHR4bmFzIEFzc2V0cwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTUKICAgIGV4dHJhY3QgMjUgOCAvLyBvbiBlcnJvcjogSW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDE1CiAgICBwdXNoaW50IDMzIC8vIDMzCiAgICBnZXRieXRlCiAgICB0eG5hcyBBcHBsaWNhdGlvbnMKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18wIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTUKICAgIHB1c2hpbnQgMzQgLy8gMzQKICAgIGdldGJ5dGUKICAgIHR4bmFzIEFjY291bnRzCiAgICAvLyBjb250cmFjdC5weTo5NwogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIG1vcmVfdGhhbl8xNV9hcmdzX3dpdGhfcmVmX3R5cGVzCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2dldF9yZXR1cm5lZF92YWx1ZV9vZl9hcHBfY2FsbF90eG5fcm91dGVAMTM6CiAgICAvLyBjb250cmFjdC5weTo5MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGNvbnRyYWN0LnB5OjIzCiAgICAvLyBjbGFzcyBTYW5kYm94KEFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMiAvLyBhcHBsCiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYXBwbAogICAgLy8gY29udHJhY3QucHk6OTEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBnZXRfcmV0dXJuZWRfdmFsdWVfb2ZfYXBwX2NhbGxfdHhuCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2lubmVyX3BheV9hcHBsX3JvdXRlQDEyOgogICAgLy8gY29udHJhY3QucHk6NzgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gY29udHJhY3QucHk6NzgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBpbm5lcl9wYXlfYXBwbAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9lY2hvX2Jvb2xlYW5fcm91dGVAMTE6CiAgICAvLyBjb250cmFjdC5weTo3NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgLy8gY29udHJhY3QucHk6MjMKICAgIC8vIGNsYXNzIFNhbmRib3goQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIGNvbnRyYWN0LnB5Ojc0CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX25lc3RfYXJyYXlfYW5kX3R1cGxlX3JvdXRlQDEwOgogICAgLy8gY29udHJhY3QucHk6NjEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gY29udHJhY3QucHk6NjEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBuZXN0X2FycmF5X2FuZF90dXBsZQogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9lY2hvX2R5bmFtaWNfYXJyYXlfcm91dGVAOToKICAgIC8vIGNvbnRyYWN0LnB5OjU3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gY29udHJhY3QucHk6NTcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fZWNob19zdGF0aWNfYXJyYXlfcm91dGVAODoKICAgIC8vIGNvbnRyYWN0LnB5OjUzCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gY29udHJhY3QucHk6NTMKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fZWNob19ieXRlc19yb3V0ZUA3OgogICAgLy8gY29udHJhY3QucHk6NDkKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZXh0cmFjdCAyIDAKICAgIC8vIGNvbnRyYWN0LnB5OjQ5CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGR1cAogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgc3dhcAogICAgY29uY2F0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2dldF9wYXlfdHhuc19hbW91bnRfc3VtX3JvdXRlQDY6CiAgICAvLyBjb250cmFjdC5weTozNgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGNvbnRyYWN0LnB5OjIzCiAgICAvLyBjbGFzcyBTYW5kYm94KEFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgcHVzaGludCAzIC8vIDMKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMCAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzMgLy8gMgogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18wIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzIgLy8gYXBwbAogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGFwcGwKICAgIC8vIGNvbnRyYWN0LnB5OjM2CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgZ2V0X3BheV90eG5zX2Ftb3VudF9zdW0KICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fZ2V0X3BheV90eG5fYW1vdW50X3JvdXRlQDU6CiAgICAvLyBjb250cmFjdC5weTozMgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIGNvbnRyYWN0LnB5OjIzCiAgICAvLyBjbGFzcyBTYW5kYm94KEFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMCAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIC8vIGNvbnRyYWN0LnB5OjMyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgZ2V0X3BheV90eG5fYW1vdW50CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2FkZF9yb3V0ZUA0OgogICAgLy8gY29udHJhY3QucHk6MjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyBjb250cmFjdC5weToyMwogICAgLy8gY2xhc3MgU2FuZGJveChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgLy8gY29udHJhY3QucHk6MjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBhZGQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5faGVsbG9fd29ybGRfcm91dGVAMzoKICAgIC8vIGNvbnRyYWN0LnB5OjI0CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gY29udHJhY3QucHk6MjMKICAgIC8vIGNsYXNzIFNhbmRib3goQVJDNENvbnRyYWN0KToKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIGNvbnRyYWN0LnB5OjI0CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgaGVsbG9fd29ybGQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDE4OgogICAgLy8gY29udHJhY3QucHk6MjMKICAgIC8vIGNsYXNzIFNhbmRib3goQVJDNENvbnRyYWN0KToKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMjIKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAhCiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIGNyZWF0aW5nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gY29udHJhY3QuU2FuZGJveC5oZWxsb193b3JsZChuYW1lOiBieXRlcykgLT4gYnl0ZXM6CmhlbGxvX3dvcmxkOgogICAgLy8gY29udHJhY3QucHk6MjQtMjUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGhlbGxvX3dvcmxkKHNlbGYsIG5hbWU6IGFyYzQuU3RyaW5nKSAtPiBhcmM0LlN0cmluZzoKICAgIHByb3RvIDEgMQogICAgLy8gY29udHJhY3QucHk6MjYKICAgIC8vIHJldHVybiBhcmM0LlN0cmluZygiSGVsbG8sICIpICsgbmFtZQogICAgZnJhbWVfZGlnIC0xCiAgICBleHRyYWN0IDIgMAogICAgcHVzaGJ5dGVzIDB4NDg2NTZjNmM2ZjJjMjAKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHJldHN1YgoKCi8vIGNvbnRyYWN0LlNhbmRib3guYWRkKGE6IGJ5dGVzLCBiOiBieXRlcykgLT4gYnl0ZXM6CmFkZDoKICAgIC8vIGNvbnRyYWN0LnB5OjI4LTI5CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBhZGQoc2VsZiwgYTogYXJjNC5VSW50NjQsIGI6IGFyYzQuVUludDY0KSAtPiBhcmM0LlVJbnQ2NDoKICAgIHByb3RvIDIgMQogICAgLy8gY29udHJhY3QucHk6MzAKICAgIC8vIHJldHVybiBhcmM0LlVJbnQ2NChhLm5hdGl2ZSArIGIubmF0aXZlKQogICAgZnJhbWVfZGlnIC0yCiAgICBidG9pCiAgICBmcmFtZV9kaWcgLTEKICAgIGJ0b2kKICAgICsKICAgIGl0b2IKICAgIHJldHN1YgoKCi8vIGNvbnRyYWN0LlNhbmRib3guZ2V0X3BheV90eG5fYW1vdW50KHBheV90eG46IHVpbnQ2NCkgLT4gYnl0ZXM6CmdldF9wYXlfdHhuX2Ftb3VudDoKICAgIC8vIGNvbnRyYWN0LnB5OjMyLTMzCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBnZXRfcGF5X3R4bl9hbW91bnQoc2VsZiwgcGF5X3R4bjogZ3R4bi5QYXltZW50VHJhbnNhY3Rpb24pIC0+IGFyYzQuVUludDY0OgogICAgcHJvdG8gMSAxCiAgICAvLyBjb250cmFjdC5weTozNAogICAgLy8gcmV0dXJuIGFyYzQuVUludDY0KHBheV90eG4uYW1vdW50KQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBbW91bnQKICAgIGl0b2IKICAgIHJldHN1YgoKCi8vIGNvbnRyYWN0LlNhbmRib3guZ2V0X3BheV90eG5zX2Ftb3VudF9zdW0ocGF5X3R4bl8xOiB1aW50NjQsIHBheV90eG5fMjogdWludDY0LCBhcHBfY2FsbF90eG46IHVpbnQ2NCkgLT4gYnl0ZXM6CmdldF9wYXlfdHhuc19hbW91bnRfc3VtOgogICAgLy8gY29udHJhY3QucHk6MzYtNDIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGdldF9wYXlfdHhuc19hbW91bnRfc3VtKAogICAgLy8gICAgIHNlbGYsCiAgICAvLyAgICAgcGF5X3R4bl8xOiBndHhuLlBheW1lbnRUcmFuc2FjdGlvbiwKICAgIC8vICAgICBwYXlfdHhuXzI6IGd0eG4uUGF5bWVudFRyYW5zYWN0aW9uLAogICAgLy8gICAgIGFwcF9jYWxsX3R4bjogZ3R4bi5BcHBsaWNhdGlvbkNhbGxUcmFuc2FjdGlvbiwKICAgIC8vICkgLT4gYXJjNC5VSW50NjQ6CiAgICBwcm90byAzIDEKICAgIC8vIGNvbnRyYWN0LnB5OjQ0CiAgICAvLyBwYXlfdHhuXzEuYW1vdW50CiAgICBmcmFtZV9kaWcgLTMKICAgIGd0eG5zIEFtb3VudAogICAgLy8gY29udHJhY3QucHk6NDUKICAgIC8vICsgcGF5X3R4bl8yLmFtb3VudAogICAgZnJhbWVfZGlnIC0yCiAgICBndHhucyBBbW91bnQKICAgIC8vIGNvbnRyYWN0LnB5OjQ0LTQ1CiAgICAvLyBwYXlfdHhuXzEuYW1vdW50CiAgICAvLyArIHBheV90eG5fMi5hbW91bnQKICAgICsKICAgIC8vIGNvbnRyYWN0LnB5OjQ2CiAgICAvLyArIGFyYzQuVUludDY0LmZyb21fbG9nKGFwcF9jYWxsX3R4bi5sYXN0X2xvZykubmF0aXZlCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIExhc3RMb2cKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gbG9nIHZhbHVlIGlzIG5vdCB0aGUgcmVzdWx0IG9mIGFuIEFCSSByZXR1cm4KICAgIGJ0b2kKICAgIC8vIGNvbnRyYWN0LnB5OjQ0LTQ2CiAgICAvLyBwYXlfdHhuXzEuYW1vdW50CiAgICAvLyArIHBheV90eG5fMi5hbW91bnQKICAgIC8vICsgYXJjNC5VSW50NjQuZnJvbV9sb2coYXBwX2NhbGxfdHhuLmxhc3RfbG9nKS5uYXRpdmUKICAgICsKICAgIC8vIGNvbnRyYWN0LnB5OjQzLTQ3CiAgICAvLyByZXR1cm4gYXJjNC5VSW50NjQoCiAgICAvLyAgICAgcGF5X3R4bl8xLmFtb3VudAogICAgLy8gICAgICsgcGF5X3R4bl8yLmFtb3VudAogICAgLy8gICAgICsgYXJjNC5VSW50NjQuZnJvbV9sb2coYXBwX2NhbGxfdHhuLmxhc3RfbG9nKS5uYXRpdmUKICAgIC8vICkKICAgIGl0b2IKICAgIHJldHN1YgoKCi8vIGNvbnRyYWN0LlNhbmRib3gubmVzdF9hcnJheV9hbmRfdHVwbGUoYXJyOiBieXRlcywgdHVwbGU6IGJ5dGVzKSAtPiBieXRlczoKbmVzdF9hcnJheV9hbmRfdHVwbGU6CiAgICAvLyBjb250cmFjdC5weTo2MS02NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgbmVzdF9hcnJheV9hbmRfdHVwbGUoCiAgICAvLyAgICAgc2VsZiwgYXJyOiBEeW5hbWljTmVzdGVkSW50cywgdHVwbGU6IGFyYzQuVHVwbGVbRHluYW1pY0ludHMsIGFyYzQuU3RyaW5nXQogICAgLy8gKSAtPiBSZXR1cm5UeXBlOgogICAgcHJvdG8gMiAxCiAgICAvLyBjb250cmFjdC5weTo2NQogICAgLy8gKGNoaWxkX2FycmF5LCBzdHIpID0gdHVwbGUubmF0aXZlCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzMgLy8gMgogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAyCiAgICBkaWcgMgogICAgc3Vic3RyaW5nMwogICAgZnJhbWVfZGlnIC0xCiAgICBsZW4KICAgIGZyYW1lX2RpZyAtMQogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIC8vIGNvbnRyYWN0LnB5OjcwCiAgICAvLyBhcmM0LlR1cGxlW0R5bmFtaWNJbnRzLCBhcmM0LlN0cmluZ10oKGNoaWxkX2FycmF5LmNvcHkoKSwgc3RyKSksCiAgICBkaWcgMQogICAgbGVuCiAgICBwdXNoaW50IDQgLy8gNAogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGJ5dGVjXzIgLy8gMHgwMDA0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIGNvbnRyYWN0LnB5OjY3LTcyCiAgICAvLyByZXR1cm4gUmV0dXJuVHlwZSgKICAgIC8vICAgICAoCiAgICAvLyAgICAgICAgIGFyci5jb3B5KCksCiAgICAvLyAgICAgICAgIGFyYzQuVHVwbGVbRHluYW1pY0ludHMsIGFyYzQuU3RyaW5nXSgoY2hpbGRfYXJyYXkuY29weSgpLCBzdHIpKSwKICAgIC8vICAgICApCiAgICAvLyApCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgcHVzaGludCA0IC8vIDQKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBieXRlY18yIC8vIDB4MDAwNAogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICByZXRzdWIKCgovLyBjb250cmFjdC5TYW5kYm94LmlubmVyX3BheV9hcHBsKGFwcElkOiBieXRlcykgLT4gYnl0ZXM6CmlubmVyX3BheV9hcHBsOgogICAgLy8gY29udHJhY3QucHk6NzgtNzkKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGlubmVyX3BheV9hcHBsKHNlbGYsIGFwcElkOiBhcmM0LlVJbnQ2NCkgLT4gYXJjNC5VSW50NjQ6CiAgICBwcm90byAxIDEKICAgIC8vIGNvbnRyYWN0LnB5OjgxCiAgICAvLyByZWNlaXZlcj1UeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgLy8gY29udHJhY3QucHk6ODUtODcKICAgIC8vIHJlc3VsdCwgX3R4biA9IGFyYzQuYWJpX2NhbGxbYXJjNC5VSW50NjRdKAogICAgLy8gICAgICJnZXRfcGF5X3R4bl9hbW91bnQocGF5KXVpbnQ2NCIsIHBheVR4biwgYXBwX2lkPWFwcElkLm5hdGl2ZQogICAgLy8gKQogICAgaXR4bl9iZWdpbgogICAgLy8gY29udHJhY3QucHk6ODIKICAgIC8vIGFtb3VudD0xMDAwMDAsCiAgICBwdXNoaW50IDEwMDAwMCAvLyAxMDAwMDAKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBjb250cmFjdC5weTo4MAogICAgLy8gcGF5VHhuID0gaXR4bi5QYXltZW50KAogICAgaW50Y18wIC8vIHBheQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18xIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBjb250cmFjdC5weTo4NS04NwogICAgLy8gcmVzdWx0LCBfdHhuID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9wYXlfdHhuX2Ftb3VudChwYXkpdWludDY0IiwgcGF5VHhuLCBhcHBfaWQ9YXBwSWQubmF0aXZlCiAgICAvLyApCiAgICBpdHhuX25leHQKICAgIC8vIGNvbnRyYWN0LnB5Ojg2CiAgICAvLyAiZ2V0X3BheV90eG5fYW1vdW50KHBheSl1aW50NjQiLCBwYXlUeG4sIGFwcF9pZD1hcHBJZC5uYXRpdmUKICAgIGZyYW1lX2RpZyAtMQogICAgYnRvaQogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICAvLyBjb250cmFjdC5weTo4NS04NwogICAgLy8gcmVzdWx0LCBfdHhuID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9wYXlfdHhuX2Ftb3VudChwYXkpdWludDY0IiwgcGF5VHhuLCBhcHBfaWQ9YXBwSWQubmF0aXZlCiAgICAvLyApCiAgICBieXRlY18xIC8vIG1ldGhvZCAiZ2V0X3BheV90eG5fYW1vdW50KHBheSl1aW50NjQiCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaW50Y18yIC8vIGFwcGwKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMSAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGdpdHhuIDEgTGFzdExvZwogICAgZHVwCiAgICBleHRyYWN0IDQgMAogICAgc3dhcAogICAgZXh0cmFjdCAwIDQKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgPT0KICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBsb2cgdmFsdWUgaXMgbm90IHRoZSByZXN1bHQgb2YgYW4gQUJJIHJldHVybgogICAgLy8gY29udHJhY3QucHk6ODkKICAgIC8vIHJldHVybiByZXN1bHQKICAgIHJldHN1YgoKCi8vIGNvbnRyYWN0LlNhbmRib3guZ2V0X3JldHVybmVkX3ZhbHVlX29mX2FwcF9jYWxsX3R4bihhcHBfY2FsbF90eG46IHVpbnQ2NCkgLT4gYnl0ZXM6CmdldF9yZXR1cm5lZF92YWx1ZV9vZl9hcHBfY2FsbF90eG46CiAgICAvLyBjb250cmFjdC5weTo5MS05NAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgZ2V0X3JldHVybmVkX3ZhbHVlX29mX2FwcF9jYWxsX3R4bigKICAgIC8vICAgICBzZWxmLCBhcHBfY2FsbF90eG46IGd0eG4uQXBwbGljYXRpb25DYWxsVHJhbnNhY3Rpb24KICAgIC8vICkgLT4gYXJjNC5VSW50NjQ6CiAgICBwcm90byAxIDEKICAgIC8vIGNvbnRyYWN0LnB5Ojk1CiAgICAvLyByZXR1cm4gYXJjNC5VSW50NjQuZnJvbV9sb2coYXBwX2NhbGxfdHhuLmxhc3RfbG9nKQogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0TG9nCiAgICBkdXAKICAgIGV4dHJhY3QgNCAwCiAgICBzd2FwCiAgICBleHRyYWN0IDAgNAogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICA9PQogICAgYXNzZXJ0IC8vIGFwcGxpY2F0aW9uIGxvZyB2YWx1ZSBpcyBub3QgdGhlIHJlc3VsdCBvZiBhbiBBQkkgcmV0dXJuCiAgICByZXRzdWIKCgovLyBjb250cmFjdC5TYW5kYm94Lm1vcmVfdGhhbl8xNV9hcmdzX3dpdGhfcmVmX3R5cGVzKGExOiBieXRlcywgYTI6IGJ5dGVzLCBhMzogYnl0ZXMsIGE0OiBieXRlcywgYTU6IGJ5dGVzLCBhNjogYnl0ZXMsIGE3OiBieXRlcywgYTg6IGJ5dGVzLCBhOTogYnl0ZXMsIGExMDogYnl0ZXMsIGExMTogYnl0ZXMsIGExMjogYnl0ZXMsIGExMzogYnl0ZXMsIGExNDogYnl0ZXMsIGExNTogYnl0ZXMsIGExNjogYnl0ZXMsIGExNzogYnl0ZXMsIGFzc2V0OiB1aW50NjQsIGExODogYnl0ZXMsIGFwcGxpY2F0aW9uOiB1aW50NjQsIHBheTogdWludDY0LCBhY2NvdW50OiBieXRlcykgLT4gYnl0ZXM6Cm1vcmVfdGhhbl8xNV9hcmdzX3dpdGhfcmVmX3R5cGVzOgogICAgLy8gY29udHJhY3QucHk6OTctMTIyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBtb3JlX3RoYW5fMTVfYXJnc193aXRoX3JlZl90eXBlcygKICAgIC8vICAgICBzZWxmLAogICAgLy8gICAgIGExOiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMjogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTM6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGE0OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhNTogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTY6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGE3OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhODogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTk6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExMDogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTExOiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMTI6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExMzogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTE0OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMTU6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExNjogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTE3OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhc3NldDogQXNzZXQsCiAgICAvLyAgICAgYTE4OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhcHBsaWNhdGlvbjogQXBwbGljYXRpb24sCiAgICAvLyAgICAgcGF5OiBndHhuLlBheW1lbnRUcmFuc2FjdGlvbiwKICAgIC8vICAgICBhY2NvdW50OiBBY2NvdW50LAogICAgLy8gKSAtPiBhcmM0LlR1cGxlW2FyYzQuVUludDY0LCBhcmM0LlVJbnQ2NCwgYXJjNC5VSW50NjQsIGFyYzQuRHluYW1pY0J5dGVzXToKICAgIHByb3RvIDIyIDEKICAgIC8vIGNvbnRyYWN0LnB5OjEyNQogICAgLy8gYXJjNC5VSW50NjQoYXNzZXQuaWQpLAogICAgZnJhbWVfZGlnIC01CiAgICBpdG9iCiAgICAvLyBjb250cmFjdC5weToxMjYKICAgIC8vIGFyYzQuVUludDY0KGFwcGxpY2F0aW9uLmlkKSwKICAgIGZyYW1lX2RpZyAtMwogICAgaXRvYgogICAgLy8gY29udHJhY3QucHk6MTI3CiAgICAvLyBhcmM0LlVJbnQ2NChhY2NvdW50LmJhbGFuY2UpLAogICAgZnJhbWVfZGlnIC0xCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEJhbGFuY2UKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgaXRvYgogICAgLy8gY29udHJhY3QucHk6MTI4CiAgICAvLyBhcmM0LkR5bmFtaWNCeXRlcyhwYXkudHhuX2lkKSwKICAgIGZyYW1lX2RpZyAtMgogICAgZ3R4bnMgVHhJRAogICAgcHVzaGJ5dGVzIDB4MDAyMAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBjb250cmFjdC5weToxMjMtMTMwCiAgICAvLyByZXN1bHQgPSBhcmM0LlR1cGxlW2FyYzQuVUludDY0LCBhcmM0LlVJbnQ2NCwgYXJjNC5VSW50NjQsIGFyYzQuRHluYW1pY0J5dGVzXSgKICAgIC8vICAgICAoCiAgICAvLyAgICAgICAgIGFyYzQuVUludDY0KGFzc2V0LmlkKSwKICAgIC8vICAgICAgICAgYXJjNC5VSW50NjQoYXBwbGljYXRpb24uaWQpLAogICAgLy8gICAgICAgICBhcmM0LlVJbnQ2NChhY2NvdW50LmJhbGFuY2UpLAogICAgLy8gICAgICAgICBhcmM0LkR5bmFtaWNCeXRlcyhwYXkudHhuX2lkKSwKICAgIC8vICAgICApCiAgICAvLyApCiAgICB1bmNvdmVyIDMKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MDAxYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIGNvbnRyYWN0LnB5OjEzMQogICAgLy8gcmV0dXJuIHJlc3VsdAogICAgcmV0c3ViCgoKLy8gY29udHJhY3QuU2FuZGJveC5tb3JlX3RoYW5fMTVfYXJncyhhMTogYnl0ZXMsIGEyOiBieXRlcywgYTM6IGJ5dGVzLCBhNDogYnl0ZXMsIGE1OiBieXRlcywgYTY6IGJ5dGVzLCBhNzogYnl0ZXMsIGE4OiBieXRlcywgYTk6IGJ5dGVzLCBhMTA6IGJ5dGVzLCBhMTE6IGJ5dGVzLCBhMTI6IGJ5dGVzLCBhMTM6IGJ5dGVzLCBhMTQ6IGJ5dGVzLCBhMTU6IGJ5dGVzLCBhMTY6IGJ5dGVzLCBhMTc6IGJ5dGVzLCBhMTg6IGJ5dGVzKSAtPiBieXRlczoKbW9yZV90aGFuXzE1X2FyZ3M6CiAgICAvLyBjb250cmFjdC5weToxMzMtMTU0CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBtb3JlX3RoYW5fMTVfYXJncygKICAgIC8vICAgICBzZWxmLAogICAgLy8gICAgIGExOiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMjogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTM6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGE0OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhNTogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTY6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGE3OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhODogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTk6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExMDogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTExOiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMTI6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExMzogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTE0OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMTU6IGFyYzQuVUludDY0LAogICAgLy8gICAgIGExNjogYXJjNC5VSW50NjQsCiAgICAvLyAgICAgYTE3OiBhcmM0LlVJbnQ2NCwKICAgIC8vICAgICBhMTg6IGFyYzQuVUludDY0LAogICAgLy8gKSAtPiBhcmM0LkR5bmFtaWNBcnJheVthcmM0LlVJbnQ2NF06CiAgICBwcm90byAxOCAxCiAgICAvLyBjb250cmFjdC5weToxNTUtMTc0CiAgICAvLyByZXN1bHQgPSBhcmM0LkR5bmFtaWNBcnJheVthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgYTEsCiAgICAvLyAgICAgYTIsCiAgICAvLyAgICAgYTMsCiAgICAvLyAgICAgYTQsCiAgICAvLyAgICAgYTUsCiAgICAvLyAgICAgYTYsCiAgICAvLyAgICAgYTcsCiAgICAvLyAgICAgYTgsCiAgICAvLyAgICAgYTksCiAgICAvLyAgICAgYTEwLAogICAgLy8gICAgIGExMSwKICAgIC8vICAgICBhMTIsCiAgICAvLyAgICAgYTEzLAogICAgLy8gICAgIGExNCwKICAgIC8vICAgICBhMTUsCiAgICAvLyAgICAgYTE2LAogICAgLy8gICAgIGExNywKICAgIC8vICAgICBhMTgsCiAgICAvLyApCiAgICBmcmFtZV9kaWcgLTE4CiAgICBmcmFtZV9kaWcgLTE3CiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMTYKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xNQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTE0CiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMTMKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0xMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTExCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMTAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC05CiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtOAogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTcKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC02CiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtNQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTQKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGNvbmNhdAogICAgcHVzaGJ5dGVzIDB4MDAxMgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBjb250cmFjdC5weToxNzUKICAgIC8vIHJldHVybiByZXN1bHQKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAEAQAGAiYDBBUffHUEn9g1+AIABDEbQQIlggIEDwx6PQT+a99pKYIKBHhqCKcE6kUT0wTvNGO8BBaK/boEjqdQ0gRxPXLkBAuRmE4EC7bGdQSb+JgRBKWplug2GgCODQGyAZwBggFTATgBKQEaAQQA9QDiAMgAVAACI0MxGRREMRhENhoBNhoCNhoDNhoENhoFNhoGNhoHNhoINhoJNhoKNhoLNhoMNhoNNhoONhoPVwAINhoPVwgINhoPVxAINhoPVxgIiAKCKExQsCJDMRkURDEYRDYaATYaAjYaAzYaBDYaBTYaBjYaBzYaCDYaCTYaCjYaCzYaDDYaDTYaDjYaD1cACDYaD1cICDYaD1cQCDYaD4EYVcAwNhoPVxkINhoPgSFVwDIxFiIJSTgQIhJENhoPgSJVwByIAeUoTFCwIkMxGRREMRhEMRYiCUk4ECQSRIgBuChMULAiQzEZFEQxGEQ2GgGIAXIoTFCwIkMxGRREMRhEKDYaAVCwIkMxGRREMRhENhoBNhoCiAEMKExQsCJDMRkURDEYRCg2GgFQsCJDMRkURDEYRCg2GgFQsCJDMRkURDEYRDYaAVcCAEkVFlcGAkxQKExQsCJDMRkURDEYRDEWgQMJSTgQIhJEMRYlCUk4ECISRDEWIglJOBAkEkSIAIUoTFCwIkMxGRREMRhEMRYiCUk4ECISRIgAYihMULAiQzEZFEQxGEQ2GgE2GgKIAEAoTFCwIkMxGRREMRhENhoBiAARKExQsCJDMRlA/jYxGBREIkOKAQGL/1cCAIAHSGVsbG8sIExQSRUWVwYCTFCJigIBi/4Xi/8XCBaJigEBi/84CBaJigMBi/04CIv+OAgIi/84PklXBABMVwAEKBJEFwgWiYoCAYv/I1mL/yVZi/9PAksCUov/FYv/TwNPAlJLARWBBAgWVwYCKkxQTwJQTFCL/hWBBAgWVwYCKkxQi/5QTFCJigEBMQCxgaCNBrIIsgcishAjsgG2i/8XshgpshokshAjsgGztwE+SVcEAExXAAQoEkSJigEBi/84PklXBABMVwAEKBJEiYoWAYv7Fov9Fov/cwBEFov+OBeAAgAgTFBPA08DUE8CUIACABpQTFCJihIBi+6L71CL8FCL8VCL8lCL81CL9FCL9VCL9lCL91CL+FCL+VCL+lCL+1CL/FCL/VCL/lCL/1CAAgASTFCJ", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 4, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }