{ "name": "ForLoopsAlgo", "structs": {}, "methods": [ { "name": "test_for_loop", "args": [ { "type": "uint64", "name": "start" }, { "type": "uint64", "name": "stop" }, { "type": "uint64", "name": "step" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_for_loop_break", "args": [ { "type": "uint64", "name": "start" }, { "type": "uint64", "name": "stop" }, { "type": "uint64", "name": "step" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_for_loop_continue", "args": [ { "type": "uint64", "name": "start" }, { "type": "uint64", "name": "stop" }, { "type": "uint64", "name": "step" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "test_for_loop_labelled", "args": [ { "type": "uint64", "name": "start" }, { "type": "uint64", "name": "stop" }, { "type": "uint64", "name": "step" } ], "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": [ 145, 154, 163, 192, 201, 210, 239, 248, 257, 286, 295, 304 ], "errorMessage": "invalid number of bytes for arc4.uint64" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgOCAwIDEKICAgIGJ5dGVjYmxvY2sgMHgxNTFmN2M3NQogICAgYiBtYWluX2Jsb2NrQDAKCm1haW5fYmxvY2tAMDoKICAgIGIgbWFpbl9ibG9ja0AxCgptYWluX2Jsb2NrQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAwCiAgICAhPQogICAgYnogbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTEKICAgIGIgbWFpbl9hYmlfcm91dGluZ0AyCgptYWluX2FiaV9yb3V0aW5nQDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBpbnRjXzEgLy8gMAogICAgIT0KICAgIGJ6IG1haW5fY3JlYXRlX05vT3BAOQogICAgYiBtYWluX2NhbGxfTm9PcEAzCgptYWluX2NhbGxfTm9PcEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIHB1c2hieXRlcyAweGY4NjU0ZjczIC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcCh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICBwdXNoYnl0ZXMgMHgyODdmNGMwMiAvLyBtZXRob2QgInRlc3RfZm9yX2xvb3BfYnJlYWsodWludDY0LHVpbnQ2NCx1aW50NjQpdWludDY0IgogICAgcHVzaGJ5dGVzIDB4NGJkNzc3OGMgLy8gbWV0aG9kICJ0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHVpbnQ2NCx1aW50NjQsdWludDY0KXVpbnQ2NCIKICAgIHB1c2hieXRlcyAweDMzNjc1ZTA2IC8vIG1ldGhvZCAidGVzdF9mb3JfbG9vcF9sYWJlbGxlZCh1aW50NjQsdWludDY0LHVpbnQ2NCl1aW50NjQiCiAgICB1bmNvdmVyIDQKICAgIG1hdGNoIG1haW5fdGVzdF9mb3JfbG9vcF9yb3V0ZUA0IG1haW5fdGVzdF9mb3JfbG9vcF9icmVha19yb3V0ZUA1IG1haW5fdGVzdF9mb3JfbG9vcF9jb250aW51ZV9yb3V0ZUA2IG1haW5fdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9yb3V0ZUA3CiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4CgptYWluX3N3aXRjaF9jYXNlX25leHRAODoKICAgIGIgbWFpbl9hZnRlcl9pZl9lbHNlQDEwCgptYWluX2FmdGVyX2lmX2Vsc2VAMTA6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMgoKbWFpbl9hZnRlcl9pZl9lbHNlQDEyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjQKICAgIC8vIGNsYXNzIEZvckxvb3BzQWxnbyBleHRlbmRzIENvbnRyYWN0IHsKICAgIGVycgoKbWFpbl90ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzIKICAgIC8vIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWQoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9sYWJlbGxlZAogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAOAoKbWFpbl90ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3JvdXRlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MjQKICAgIC8vIHRlc3RfZm9yX2xvb3BfY29udGludWUoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9jb250aW51ZQogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAOAoKbWFpbl90ZXN0X2Zvcl9sb29wX2JyZWFrX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTMKICAgIC8vIHRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIGNhbGxzdWIgdGVzdF9mb3JfbG9vcF9icmVhawogICAgYiBtYWluX3N3aXRjaF9jYXNlX25leHRAOAoKbWFpbl90ZXN0X2Zvcl9sb29wX3JvdXRlQDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NQogICAgLy8gdGVzdF9mb3JfbG9vcChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgY2FsbHN1YiB0ZXN0X2Zvcl9sb29wCiAgICBiIG1haW5fc3dpdGNoX2Nhc2VfbmV4dEA4CgptYWluX2NyZWF0ZV9Ob09wQDk6CiAgICBiIG1haW5fYWZ0ZXJfaWZfZWxzZUAxMAoKbWFpbl9fX2FsZ290c19fLmRlZmF1bHRDcmVhdGVAMTE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NAogICAgLy8gY2xhc3MgRm9yTG9vcHNBbGdvIGV4dGVuZHMgQ29udHJhY3QgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgaW50Y18xIC8vIE5vT3AKICAgID09CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgaW50Y18xIC8vIDAKICAgID09CiAgICAmJgogICAgYXNzZXJ0CiAgICBjYWxsc3ViIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZQogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Bbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2Zvcl9sb29wOgogICAgYiB0ZXN0X2Zvcl9sb29wX2Jsb2NrQDAKCnRlc3RfZm9yX2xvb3BfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3AKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWtbcm91dGluZ10oKSAtPiB2b2lkOgp0ZXN0X2Zvcl9sb29wX2JyZWFrOgogICAgYiB0ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDAKCnRlc3RfZm9yX2xvb3BfYnJlYWtfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMwogICAgLy8gdGVzdF9mb3JfbG9vcF9icmVhayhzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMCAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgY2FsbHN1YiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrCiAgICBpdG9iCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUKICAgIHVuY292ZXIgMQogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlW3JvdXRpbmddKCkgLT4gdm9pZDoKdGVzdF9mb3JfbG9vcF9jb250aW51ZToKICAgIGIgdGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0AwCgp0ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MjQKICAgIC8vIHRlc3RfZm9yX2xvb3BfY29udGludWUoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzAgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICB1bmNvdmVyIDIKICAgIGNhbGxzdWIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZQogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1CiAgICB1bmNvdmVyIDEKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnRlc3RfZm9yX2xvb3BfbGFiZWxsZWQ6CiAgICBiIHRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfYmxvY2tAMAoKdGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9ibG9ja0AwOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18wIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB1bmNvdmVyIDIKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAyCiAgICBjYWxsc3ViIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWQKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gMHgxNTFmN2M3NQogICAgdW5jb3ZlciAxCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Aoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIC0+IHVpbnQ2NDoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo1CiAgICAvLyB0ZXN0X2Zvcl9sb29wKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9ibG9ja0AwCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2Jsb2NrQDA6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NgogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzEgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjcKICAgIC8vIGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIC0zCiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Bfd2hpbGVfdG9wQDEKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Bfd2hpbGVfdG9wQDE6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NwogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0yCiAgICA8CiAgICBieiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2FmdGVyX3doaWxlQDMKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF93aGlsZV9ib2R5QDIKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Bfd2hpbGVfYm9keUAyOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjgKICAgIC8vIHRvdGFsICs9IGkKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgMQogICAgZHVwCiAgICBjb3ZlciAyCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo3CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3Bfd2hpbGVfdG9wQDEKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYWZ0ZXJfd2hpbGVAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxMAogICAgLy8gcmV0dXJuIHRvdGFsCiAgICByZXRzdWIKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWs6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTMKICAgIC8vIHRlc3RfZm9yX2xvb3BfYnJlYWsoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWtfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNAogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzEgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE1CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX3RvcEAxCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjE1CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfd2hpbGVANQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX3doaWxlX2JvZHlAMgoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9icmVha193aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MTYKICAgIC8vIHRvdGFsICs9IGkKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgMQogICAgKwogICAgZHVwCiAgICBmcmFtZV9idXJ5IDAKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNwogICAgLy8gaWYgKHRvdGFsID4gMTApIHsKICAgIHB1c2hpbnQgMTAKICAgID4KICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWtfYWZ0ZXJfaWZfZWxzZUA0CiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfYnJlYWtfaWZfYm9keUAzCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX2lmX2JvZHlAMzoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxOAogICAgLy8gYnJlYWsKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9icmVha19ibG9ja0A2Cgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MjEKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoxNQogICAgLy8gZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMQogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDEKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9icmVha193aGlsZV90b3BAMQoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9icmVha19hZnRlcl93aGlsZUA1OgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2JyZWFrX2Jsb2NrQDYKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSAtPiB1aW50NjQ6CnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfY29udGludWU6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MjQKICAgIC8vIHRlc3RfZm9yX2xvb3BfY29udGludWUoc3RhcnQ6IHVpbnQ2NCwgc3RvcDogdWludDY0LCBzdGVwOiB1aW50NjQpIHsKICAgIHByb3RvIDMgMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfY29udGludWVfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyNQogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzEgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAtMwogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfY29udGludWVfYWZ0ZXJfd2hpbGVANgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX2JvZHlAMgoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZV93aGlsZV9ib2R5QDI6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MjcKICAgIC8vIGlmIChpICUgNSA9PT0gMCkgY29udGludWUKICAgIGZyYW1lX2RpZyAxCiAgICBwdXNoaW50IDUKICAgICUKICAgIGludGNfMSAvLyAwCiAgICA9PQogICAgYnogdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZV9hZnRlcl9pZl9lbHNlQDQKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZV9pZl9ib2R5QDMKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfY29udGludWVfaWZfYm9keUAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI3CiAgICAvLyBpZiAoaSAlIDUgPT09IDApIGNvbnRpbnVlCiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfY29udGludWVfYmxvY2tANQoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjI2CiAgICAvLyBmb3IgKGxldCBpID0gc3RhcnQ7IGkgPCBzdG9wOyBpICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgLTEKICAgICsKICAgIGZyYW1lX2J1cnkgMQogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX3doaWxlX3RvcEAxCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czoyOAogICAgLy8gdG90YWwgKz0gaQogICAgZnJhbWVfZGlnIDAKICAgIGZyYW1lX2RpZyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9jb250aW51ZV9ibG9ja0A1Cgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2NvbnRpbnVlX2FmdGVyX3doaWxlQDY6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzAKICAgIC8vIHJldHVybiB0b3RhbAogICAgcmV0c3ViCgoKLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZChzdGFydDogdWludDY0LCBzdG9wOiB1aW50NjQsIHN0ZXA6IHVpbnQ2NCkgLT4gdWludDY0Ogp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjMyCiAgICAvLyB0ZXN0X2Zvcl9sb29wX2xhYmVsbGVkKHN0YXJ0OiB1aW50NjQsIHN0b3A6IHVpbnQ2NCwgc3RlcDogdWludDY0KSB7CiAgICBwcm90byAzIDEKICAgIHB1c2hieXRlcyAiIgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDAKCnRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfYmxvY2tAMDoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozMwogICAgLy8gbGV0IHRvdGFsID0gVWludDY0KDApCiAgICBpbnRjXzEgLy8gMAogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNAogICAgLy8gb3V0ZXI6IGZvciAobGV0IGkgPSBzdGFydDsgaSA8IHN0b3A7IGkgKz0gc3RlcCkgewogICAgZnJhbWVfZGlnIDIKICAgIGZyYW1lX2RpZyAtMgogICAgPAogICAgYnogdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4CiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfd2hpbGVfYm9keUAyCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlAMjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2J1cnkgMAogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX3RvcEAzCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX3RvcEAzOgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM1CiAgICAvLyBmb3IgKGxldCBqID0gc3RhcnQ7IGogPCBzdG9wOyBqICs9IHN0ZXApIHsKICAgIGZyYW1lX2RpZyAwCiAgICBmcmFtZV9kaWcgLTIKICAgIDwKICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfYWZ0ZXJfd2hpbGVANwogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX3doaWxlX2JvZHlANAoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV9ib2R5QDQ6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzYKICAgIC8vIHRvdGFsICs9IGkgKyBqCiAgICBmcmFtZV9kaWcgMgogICAgZHVwCiAgICBmcmFtZV9kaWcgMAogICAgZHVwCiAgICBjb3ZlciAzCiAgICArCiAgICBmcmFtZV9kaWcgMQogICAgKwogICAgZnJhbWVfYnVyeSAxCiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6MzgKICAgIC8vIGlmIChpICogaiA+IHN0b3ApIGJyZWFrIG91dGVyCiAgICAqCiAgICBmcmFtZV9kaWcgLTIKICAgID4KICAgIGJ6IHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfYWZ0ZXJfaWZfZWxzZUA2CiAgICBiIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czo6Rm9yTG9vcHNBbGdvLnRlc3RfZm9yX2xvb3BfbGFiZWxsZWRfaWZfYm9keUA1Cgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2lmX2JvZHlANToKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozOAogICAgLy8gaWYgKGkgKiBqID4gc3RvcCkgYnJlYWsgb3V0ZXIKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9ibG9ja0A5Cgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDk6CiAgICAvLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6NDEKICAgIC8vIHJldHVybiB0b3RhbAogICAgZnJhbWVfZGlnIDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgp0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHRlc3RzL2FwcHJvdmFscy9mb3ItbG9vcHMuYWxnby50czozNQogICAgLy8gZm9yIChsZXQgaiA9IHN0YXJ0OyBqIDwgc3RvcDsgaiArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDAKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMwoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA3OgogICAgLy8gdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjM0CiAgICAvLyBvdXRlcjogZm9yIChsZXQgaSA9IHN0YXJ0OyBpIDwgc3RvcDsgaSArPSBzdGVwKSB7CiAgICBmcmFtZV9kaWcgMgogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF93aGlsZV90b3BAMQoKdGVzdHMvYXBwcm92YWxzL2Zvci1sb29wcy5hbGdvLnRzOjpGb3JMb29wc0FsZ28udGVzdF9mb3JfbG9vcF9sYWJlbGxlZF9hZnRlcl93aGlsZUA4OgogICAgYiB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby50ZXN0X2Zvcl9sb29wX2xhYmVsbGVkX2Jsb2NrQDkKCgovLyB0ZXN0cy9hcHByb3ZhbHMvZm9yLWxvb3BzLmFsZ28udHM6OkZvckxvb3BzQWxnby5fX2FsZ290c19fLmRlZmF1bHRDcmVhdGUoKSAtPiB2b2lkOgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGU6CiAgICBiIF9fYWxnb3RzX18uZGVmYXVsdENyZWF0ZV9ibG9ja0AwCgpfX2FsZ290c19fLmRlZmF1bHRDcmVhdGVfYmxvY2tAMDoKICAgIHJldHN1Ygo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBiIG1haW5fYmxvY2tAMAoKbWFpbl9ibG9ja0AwOgogICAgcHVzaGludCAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CyADCAABJgEEFR98dUIAAEIAADEbIxNBAF5CAAAxGSMSRDEYIxNBAExCAAA2GgCABPhlT3OABCh/TAKABEvXd4yABDNnXgZPBI4EABwAFgAQAApCAABCAABCAAAAiAC0Qv/ziAB/Qv/tiABKQv/niAAVQv/hQv/hMRkjEjEYIxIQRIgBvyRDQgAANhoBSRUiEkQXNhoCSRUiEkQXNhoDSRUiEkQXTwJPAk8CiACVFihPAVCwJENCAAA2GgFJFSISRBc2GgJJFSISRBc2GgNJFSISRBdPAk8CTwKIAJAWKE8BULAkQ0IAADYaAUkVIhJEFzYaAkkVIhJEFzYaA0kVIhJEF08CTwJPAogAmhYoTwFQsCRDQgAANhoBSRUiEkQXNhoCSRUiEkQXNhoDSRUiEkQXTwJPAk8CiACnFihPAVCwJEOKAwFCAAAji/1CAACLAYv+DEEAFUIAAIsAiwFJTgIIjACL/wiMAUL/44mKAwFCAAAji/1CAACLAYv+DEEAIkIAAIsAiwEISYwAgQoNQQAHQgAAQgAAiYsBi/8IjAFC/9ZC//KKAwFCAAAji/1CAACLAYv+DEEAJ0IAAIsBgQUYIxJBABBCAABCAACLAYv/CIwBQv/biwCLAQiMAEL/7ImKAwGAAEIAACOL/UIAAIsCi/4MQQBJQgAAi/2MAEIAAIsAi/4MQQAtQgAAiwJJiwBJTgMIiwEIjAELi/4NQQALQgAAQgAAiwGMAImLAIv/CIwAQv/LiwKL/wiMAkL/r0L/5EIAAIk=", "clear": "C0IAAIEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 10, "patch": 0 } }, "events": [], "templateVariables": {} }