{ "name": "MarketPool", "structs": {}, "methods": [ { "name": "create", "args": [ { "type": "string", "name": "asset_symbol" }, { "type": "uint64", "name": "resolution_price" }, { "type": "uint64", "name": "expiry_ts" }, { "type": "uint64", "name": "registry_app_id" } ], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "opt_in", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "OptIn" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "place_bet", "args": [ { "type": "string", "name": "direction" }, { "type": "pay", "name": "payment_txn" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get_probability", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": true, "events": [], "recommendations": {} }, { "name": "settle", "args": [ { "type": "uint64", "name": "final_price" }, { "type": "uint64", "name": "oracle_app_id" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "claim_winnings", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 6, "bytes": 3 }, "local": { "ints": 2, "bytes": 1 } }, "keys": { "global": { "asset_symbol": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "YXNzZXRfc3ltYm9s" }, "resolution_price": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "cmVzb2x1dGlvbl9wcmljZQ==" }, "expiry_ts": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "ZXhwaXJ5X3Rz" }, "registry_app_id": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "cmVnaXN0cnlfYXBwX2lk" }, "yes_pool": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "eWVzX3Bvb2w=" }, "no_pool": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "bm9fcG9vbA==" }, "total_bets": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "dG90YWxfYmV0cw==" }, "resolved": { "keyType": "AVMString", "valueType": "bool", "key": "cmVzb2x2ZWQ=" }, "outcome": { "keyType": "AVMString", "valueType": "bool", "key": "b3V0Y29tZQ==" } }, "local": { "yes_shares": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "eWVzX3NoYXJlcw==" }, "no_shares": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "bm9fc2hhcmVz" }, "claimed": { "keyType": "AVMString", "valueType": "bool", "key": "Y2xhaW1lZA==" } }, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 668 ], "errorMessage": "already claimed" }, { "pc": [ 622 ], "errorMessage": "already resolved" }, { "pc": [ 838 ], "errorMessage": "application exists" }, { "pc": [ 594, 816 ], "errorMessage": "application log value is not the result of an ABI return" }, { "pc": [ 664 ], "errorMessage": "check self.claimed exists for account" }, { "pc": [ 380, 612 ], "errorMessage": "check self.expiry_ts exists" }, { "pc": [ 414, 468, 486, 516, 730, 899 ], "errorMessage": "check self.no_pool exists" }, { "pc": [ 497, 698, 926 ], "errorMessage": "check self.no_shares exists for account" }, { "pc": [ 673 ], "errorMessage": "check self.outcome exists" }, { "pc": [ 558, 777 ], "errorMessage": "check self.registry_app_id exists" }, { "pc": [ 632 ], "errorMessage": "check self.resolution_price exists" }, { "pc": [ 369, 618, 654 ], "errorMessage": "check self.resolved exists" }, { "pc": [ 450 ], "errorMessage": "check self.total_bets exists" }, { "pc": [ 410, 428, 472, 512, 720, 892 ], "errorMessage": "check self.yes_pool exists" }, { "pc": [ 438, 685, 914 ], "errorMessage": "check self.yes_shares exists for account" }, { "pc": [ 231, 344 ], "errorMessage": "invalid array length header" }, { "pc": [ 239, 352 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 250, 259, 268, 542, 551, 602, 826 ], "errorMessage": "invalid number of bytes for arc4.uint64" }, { "pc": [ 382 ], "errorMessage": "market expired" }, { "pc": [ 373 ], "errorMessage": "market resolved" }, { "pc": [ 397 ], "errorMessage": "min 1 ALGO" }, { "pc": [ 712 ], "errorMessage": "no position" }, { "pc": [ 614 ], "errorMessage": "not expired" }, { "pc": [ 657 ], "errorMessage": "not resolved" }, { "pc": [ 365 ], "errorMessage": "transaction type is pay" }, { "pc": [ 605 ], "errorMessage": "wrong oracle" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgOCAxMDAwMDAwIDUwMDAwMAogICAgYnl0ZWNibG9jayAieWVzX3Bvb2wiICJub19wb29sIiAicmVzb2x2ZWQiICJ5ZXNfc2hhcmVzIiAibm9fc2hhcmVzIiAweDE1MWY3Yzc1ICJleHBpcnlfdHMiICJyZWdpc3RyeV9hcHBfaWQiICJ0b3RhbF9iZXRzIiAweDAwICJjbGFpbWVkIiAicmVzb2x1dGlvbl9wcmljZSIgMHhhNDI5N2QyYSAib3V0Y29tZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToyMQogICAgLy8gY2xhc3MgTWFya2V0UG9vbChBUkM0Q29udHJhY3QpOgogICAgcHVzaGJ5dGVzIDB4MzBjNmQ1OGEgLy8gbWV0aG9kICJvcHRfaW4oKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX29wdF9pbl9yb3V0ZUA0CgptYWluX3N3aXRjaF9jYXNlX25leHRANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToyMQogICAgLy8gY2xhc3MgTWFya2V0UG9vbChBUkM0Q29udHJhY3QpOgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYnogbWFpbl9jcmVhdGVfTm9PcEAxMgogICAgcHVzaGJ5dGVzcyAweDVhOTZiZTBjIDB4OGVhMWE3YzYgMHhmNDU0ZjFiOCAweGE1OTIzNDhjIC8vIG1ldGhvZCAicGxhY2VfYmV0KHN0cmluZyxwYXkpdWludDY0IiwgbWV0aG9kICJnZXRfcHJvYmFiaWxpdHkoKXVpbnQ2NCIsIG1ldGhvZCAic2V0dGxlKHVpbnQ2NCx1aW50NjQpdm9pZCIsIG1ldGhvZCAiY2xhaW1fd2lubmluZ3MoKXVpbnQ2NCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIHBsYWNlX2JldCBnZXRfcHJvYmFiaWxpdHkgc2V0dGxlIGNsYWltX3dpbm5pbmdzCiAgICBlcnIKCm1haW5fY3JlYXRlX05vT3BAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MjEKICAgIC8vIGNsYXNzIE1hcmtldFBvb2woQVJDNENvbnRyYWN0KToKICAgIHB1c2hieXRlcyAweDgxM2EwMGI5IC8vIG1ldGhvZCAiY3JlYXRlKHN0cmluZyx1aW50NjQsdWludDY0LHVpbnQ2NCl2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggY3JlYXRlCiAgICBlcnIKCm1haW5fb3B0X2luX3JvdXRlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NTUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiT3B0SW4iXSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIGludGNfMSAvLyBPcHRJbgogICAgPT0KICAgIHR4biBBcHBsaWNhdGlvbklECiAgICAmJgogICAgYXNzZXJ0CiAgICBiIG9wdF9pbgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5tYXJrZXRfcG9vbC5jb250cmFjdC5NYXJrZXRQb29sLmNyZWF0ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmNyZWF0ZToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTozOAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0icmVxdWlyZSIpCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo0NgogICAgLy8gc2VsZi5hc3NldF9zeW1ib2wudmFsdWUgPSBhc3NldF9zeW1ib2wuYnl0ZXMKICAgIHB1c2hieXRlcyAiYXNzZXRfc3ltYm9sIgogICAgdW5jb3ZlciA0CiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjQ3CiAgICAvLyBzZWxmLnJlc29sdXRpb25fcHJpY2UudmFsdWUgPSByZXNvbHV0aW9uX3ByaWNlCiAgICBieXRlYyAxMSAvLyAicmVzb2x1dGlvbl9wcmljZSIKICAgIHVuY292ZXIgMwogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo0OAogICAgLy8gc2VsZi5leHBpcnlfdHMudmFsdWUgPSBleHBpcnlfdHMKICAgIGJ5dGVjIDYgLy8gImV4cGlyeV90cyIKICAgIHVuY292ZXIgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo0OQogICAgLy8gc2VsZi5yZWdpc3RyeV9hcHBfaWQudmFsdWUgPSByZWdpc3RyeV9hcHBfaWQKICAgIGJ5dGVjIDcgLy8gInJlZ2lzdHJ5X2FwcF9pZCIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NTAKICAgIC8vIHNlbGYueWVzX3Bvb2wudmFsdWUgPSBVSW50NjQoNTAwXzAwMCkKICAgIGJ5dGVjXzAgLy8gInllc19wb29sIgogICAgaW50YyA0IC8vIDUwMDAwMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo1MQogICAgLy8gc2VsZi5ub19wb29sLnZhbHVlID0gVUludDY0KDUwMF8wMDApCiAgICBieXRlY18xIC8vICJub19wb29sIgogICAgaW50YyA0IC8vIDUwMDAwMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo1MgogICAgLy8gc2VsZi50b3RhbF9iZXRzLnZhbHVlID0gVUludDY0KDApCiAgICBieXRlYyA4IC8vICJ0b3RhbF9iZXRzIgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NTMKICAgIC8vIHNlbGYucmVzb2x2ZWQudmFsdWUgPSBhcmM0LkJvb2woRmFsc2UpCiAgICBieXRlY18yIC8vICJyZXNvbHZlZCIKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTozOAogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0icmVxdWlyZSIpCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLm1hcmtldF9wb29sLmNvbnRyYWN0Lk1hcmtldFBvb2wub3B0X2luW3JvdXRpbmddKCkgLT4gdm9pZDoKb3B0X2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjU3CiAgICAvLyBzZWxmLnllc19zaGFyZXNbVHhuLnNlbmRlcl0gPSBVSW50NjQoMCkKICAgIHR4biBTZW5kZXIKICAgIGJ5dGVjXzMgLy8gInllc19zaGFyZXMiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2xvY2FsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjU4CiAgICAvLyBzZWxmLm5vX3NoYXJlc1tUeG4uc2VuZGVyXSA9IFVJbnQ2NCgwKQogICAgdHhuIFNlbmRlcgogICAgYnl0ZWMgNCAvLyAibm9fc2hhcmVzIgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo1OQogICAgLy8gc2VsZi5jbGFpbWVkW1R4bi5zZW5kZXJdID0gYXJjNC5Cb29sKEZhbHNlKQogICAgdHhuIFNlbmRlcgogICAgYnl0ZWMgMTAgLy8gImNsYWltZWQiCiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGFwcF9sb2NhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo1NQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJPcHRJbiJdKQogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5tYXJrZXRfcG9vbC5jb250cmFjdC5NYXJrZXRQb29sLnBsYWNlX2JldFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnBsYWNlX2JldDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo2MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBwdXNoaW50IDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQuZHluYW1pY19hcnJheTxhcmM0LnVpbnQ4PgogICAgZXh0cmFjdCAyIDAKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjY3CiAgICAvLyBhc3NlcnQgbm90IHNlbGYucmVzb2x2ZWQudmFsdWUubmF0aXZlLCAibWFya2V0IHJlc29sdmVkIgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzIgLy8gInJlc29sdmVkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnJlc29sdmVkIGV4aXN0cwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIG1hcmtldCByZXNvbHZlZAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjY4CiAgICAvLyBhc3NlcnQgR2xvYmFsLmxhdGVzdF90aW1lc3RhbXAgPCBzZWxmLmV4cGlyeV90cy52YWx1ZSwgIm1hcmtldCBleHBpcmVkIgogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDYgLy8gImV4cGlyeV90cyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5leHBpcnlfdHMgZXhpc3RzCiAgICA8CiAgICBhc3NlcnQgLy8gbWFya2V0IGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo2OQogICAgLy8gYXNzZXJ0IHBheW1lbnRfdHhuLnJlY2VpdmVyID09IEdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIGR1cAogICAgZ3R4bnMgUmVjZWl2ZXIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NzEKICAgIC8vIGJldF9hbW91bnQgPSBwYXltZW50X3R4bi5hbW91bnQKICAgIGd0eG5zIEFtb3VudAogICAgZHVwCiAgICBjb3ZlciAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NzIKICAgIC8vIGFzc2VydCBiZXRfYW1vdW50ID49IFVJbnQ2NCgxXzAwMF8wMDApLCAibWluIDEgQUxHTyIKICAgIGludGNfMyAvLyAxMDAwMDAwCiAgICA+PQogICAgYXNzZXJ0IC8vIG1pbiAxIEFMR08KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo3NAogICAgLy8gaWYgZGlyZWN0aW9uLmJ5dGVzID09IEJ5dGVzKGIieWVzIik6CiAgICBwdXNoYnl0ZXMgMHg3OTY1NzMKICAgID09CiAgICBieiBwbGFjZV9iZXRfZWxzZV9ib2R5QDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo3NQogICAgLy8gc2hhcmVzID0gc2VsZi5fY2FsY19zaGFyZXMoYmV0X2Ftb3VudCwgc2VsZi55ZXNfcG9vbC52YWx1ZSwgc2VsZi5ub19wb29sLnZhbHVlKQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gInllc19wb29sIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnllc19wb29sIGV4aXN0cwogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIm5vX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYubm9fcG9vbCBleGlzdHMKICAgIGRpZyAyCiAgICBjb3ZlciAyCiAgICBjYWxsc3ViIF9jYWxjX3NoYXJlcwogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo3NgogICAgLy8gc2VsZi55ZXNfcG9vbC52YWx1ZSArPSBiZXRfYW1vdW50CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAieWVzX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYueWVzX3Bvb2wgZXhpc3RzCiAgICArCiAgICBieXRlY18wIC8vICJ5ZXNfcG9vbCIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NzcKICAgIC8vIHNlbGYueWVzX3NoYXJlc1tUeG4uc2VuZGVyXSA9IHNlbGYueWVzX3NoYXJlc1tUeG4uc2VuZGVyXSArIHNoYXJlcwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzMgLy8gInllc19zaGFyZXMiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi55ZXNfc2hhcmVzIGV4aXN0cyBmb3IgYWNjb3VudAogICAgKwogICAgdHhuIFNlbmRlcgogICAgYnl0ZWNfMyAvLyAieWVzX3NoYXJlcyIKICAgIHVuY292ZXIgMgogICAgYXBwX2xvY2FsX3B1dAoKcGxhY2VfYmV0X2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo4MgogICAgLy8gc2VsZi50b3RhbF9iZXRzLnZhbHVlICs9IFVJbnQ2NCgxKQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDggLy8gInRvdGFsX2JldHMiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYudG90YWxfYmV0cyBleGlzdHMKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBieXRlYyA4IC8vICJ0b3RhbF9iZXRzIgogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo2MQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpdG9iCiAgICBieXRlYyA1IC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgpwbGFjZV9iZXRfZWxzZV9ib2R5QDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6NzkKICAgIC8vIHNoYXJlcyA9IHNlbGYuX2NhbGNfc2hhcmVzKGJldF9hbW91bnQsIHNlbGYubm9fcG9vbC52YWx1ZSwgc2VsZi55ZXNfcG9vbC52YWx1ZSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJub19wb29sIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLm5vX3Bvb2wgZXhpc3RzCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAieWVzX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYueWVzX3Bvb2wgZXhpc3RzCiAgICBkaWcgMgogICAgY292ZXIgMgogICAgY2FsbHN1YiBfY2FsY19zaGFyZXMKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6ODAKICAgIC8vIHNlbGYubm9fcG9vbC52YWx1ZSArPSBiZXRfYW1vdW50CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAibm9fcG9vbCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub19wb29sIGV4aXN0cwogICAgKwogICAgYnl0ZWNfMSAvLyAibm9fcG9vbCIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6ODEKICAgIC8vIHNlbGYubm9fc2hhcmVzW1R4bi5zZW5kZXJdID0gc2VsZi5ub19zaGFyZXNbVHhuLnNlbmRlcl0gKyBzaGFyZXMKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyA0IC8vICJub19zaGFyZXMiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub19zaGFyZXMgZXhpc3RzIGZvciBhY2NvdW50CiAgICArCiAgICB0eG4gU2VuZGVyCiAgICBieXRlYyA0IC8vICJub19zaGFyZXMiCiAgICB1bmNvdmVyIDIKICAgIGFwcF9sb2NhbF9wdXQKICAgIGIgcGxhY2VfYmV0X2FmdGVyX2lmX2Vsc2VANAoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5tYXJrZXRfcG9vbC5jb250cmFjdC5NYXJrZXRQb29sLmdldF9wcm9iYWJpbGl0eVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldF9wcm9iYWJpbGl0eToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo5NwogICAgLy8geWVzID0gc2VsZi55ZXNfcG9vbC52YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzAgLy8gInllc19wb29sIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnllc19wb29sIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5Ojk4CiAgICAvLyBubyA9IHNlbGYubm9fcG9vbC52YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIm5vX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYubm9fcG9vbCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo5OQogICAgLy8gcmV0dXJuICh5ZXMgKiBVSW50NjQoMTBfMDAwKSkgLy8gKHllcyArIG5vKQogICAgZGlnIDEKICAgIHB1c2hpbnQgMTAwMDAKICAgICoKICAgIGNvdmVyIDIKICAgICsKICAgIC8KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo5NQogICAgLy8gQGFyYzQuYWJpbWV0aG9kKHJlYWRvbmx5PVRydWUpCiAgICBpdG9iCiAgICBieXRlYyA1IC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLm1hcmtldF9wb29sLmNvbnRyYWN0Lk1hcmtldFBvb2wuc2V0dGxlW3JvdXRpbmddKCkgLT4gdm9pZDoKc2V0dGxlOgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjEwMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTA3LTExMgogICAgLy8gIyBWZXJpZnkgb3JhY2xlIHZpYSByZWdpc3RyeQogICAgLy8gZXhwZWN0ZWRfb3JhY2xlLCBfdHhuID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9hcHBfaWQoc3RyaW5nKXVpbnQ2NCIsCiAgICAvLyAgICAgYXJjNC5TdHJpbmcoIm9yYWNsZSIpLAogICAgLy8gICAgIGFwcF9pZD1BcHBsaWNhdGlvbihzZWxmLnJlZ2lzdHJ5X2FwcF9pZC52YWx1ZSksCiAgICAvLyApCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTExCiAgICAvLyBhcHBfaWQ9QXBwbGljYXRpb24oc2VsZi5yZWdpc3RyeV9hcHBfaWQudmFsdWUpLAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDcgLy8gInJlZ2lzdHJ5X2FwcF9pZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5yZWdpc3RyeV9hcHBfaWQgZXhpc3RzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMDctMTEyCiAgICAvLyAjIFZlcmlmeSBvcmFjbGUgdmlhIHJlZ2lzdHJ5CiAgICAvLyBleHBlY3RlZF9vcmFjbGUsIF90eG4gPSBhcmM0LmFiaV9jYWxsW2FyYzQuVUludDY0XSgKICAgIC8vICAgICAiZ2V0X2FwcF9pZChzdHJpbmcpdWludDY0IiwKICAgIC8vICAgICBhcmM0LlN0cmluZygib3JhY2xlIiksCiAgICAvLyAgICAgYXBwX2lkPUFwcGxpY2F0aW9uKHNlbGYucmVnaXN0cnlfYXBwX2lkLnZhbHVlKSwKICAgIC8vICkKICAgIGJ5dGVjIDEyIC8vIG1ldGhvZCAiZ2V0X2FwcF9pZChzdHJpbmcpdWludDY0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMTAKICAgIC8vIGFyYzQuU3RyaW5nKCJvcmFjbGUiKSwKICAgIHB1c2hieXRlcyAweDAwMDY2ZjcyNjE2MzZjNjUKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTA3LTExMgogICAgLy8gIyBWZXJpZnkgb3JhY2xlIHZpYSByZWdpc3RyeQogICAgLy8gZXhwZWN0ZWRfb3JhY2xlLCBfdHhuID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9hcHBfaWQoc3RyaW5nKXVpbnQ2NCIsCiAgICAvLyAgICAgYXJjNC5TdHJpbmcoIm9yYWNsZSIpLAogICAgLy8gICAgIGFwcF9pZD1BcHBsaWNhdGlvbihzZWxmLnJlZ2lzdHJ5X2FwcF9pZC52YWx1ZSksCiAgICAvLyApCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICBkdXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlYyA1IC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gbG9nIHZhbHVlIGlzIG5vdCB0aGUgcmVzdWx0IG9mIGFuIEFCSSByZXR1cm4KICAgIGV4dHJhY3QgNCAwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18yIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGFyYzQudWludDY0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTEzCiAgICAvLyBhc3NlcnQgb3JhY2xlX2FwcF9pZCA9PSBleHBlY3RlZF9vcmFjbGUubmF0aXZlLCAid3Jvbmcgb3JhY2xlIgogICAgYnRvaQogICAgPT0KICAgIGFzc2VydCAvLyB3cm9uZyBvcmFjbGUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMTUKICAgIC8vIGFzc2VydCBHbG9iYWwubGF0ZXN0X3RpbWVzdGFtcCA+PSBzZWxmLmV4cGlyeV90cy52YWx1ZSwgIm5vdCBleHBpcmVkIgogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDYgLy8gImV4cGlyeV90cyIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5leHBpcnlfdHMgZXhpc3RzCiAgICA+PQogICAgYXNzZXJ0IC8vIG5vdCBleHBpcmVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTE2CiAgICAvLyBhc3NlcnQgbm90IHNlbGYucmVzb2x2ZWQudmFsdWUubmF0aXZlLCAiYWxyZWFkeSByZXNvbHZlZCIKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18yIC8vICJyZXNvbHZlZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5yZXNvbHZlZCBleGlzdHMKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBhbHJlYWR5IHJlc29sdmVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTE4CiAgICAvLyBzZWxmLnJlc29sdmVkLnZhbHVlID0gYXJjNC5Cb29sKFRydWUpCiAgICBieXRlY18yIC8vICJyZXNvbHZlZCIKICAgIHB1c2hieXRlcyAweDgwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjExOQogICAgLy8gc2VsZi5vdXRjb21lLnZhbHVlID0gYXJjNC5Cb29sKGZpbmFsX3ByaWNlID49IHNlbGYucmVzb2x1dGlvbl9wcmljZS52YWx1ZSkKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyAxMSAvLyAicmVzb2x1dGlvbl9wcmljZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5yZXNvbHV0aW9uX3ByaWNlIGV4aXN0cwogICAgPj0KICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgMgogICAgc2V0Yml0CiAgICBieXRlYyAxMyAvLyAib3V0Y29tZSIKICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTAxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMubWFya2V0X3Bvb2wuY29udHJhY3QuTWFya2V0UG9vbC5jbGFpbV93aW5uaW5nc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmNsYWltX3dpbm5pbmdzOgogICAgaW50Y18wIC8vIDAKICAgIHB1c2hieXRlcyAiIgogICAgZHVwbiA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTIzCiAgICAvLyBhc3NlcnQgc2VsZi5yZXNvbHZlZC52YWx1ZS5uYXRpdmUsICJub3QgcmVzb2x2ZWQiCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMiAvLyAicmVzb2x2ZWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYucmVzb2x2ZWQgZXhpc3RzCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBhc3NlcnQgLy8gbm90IHJlc29sdmVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTI0CiAgICAvLyBhc3NlcnQgbm90IHNlbGYuY2xhaW1lZFtUeG4uc2VuZGVyXS5uYXRpdmUsICJhbHJlYWR5IGNsYWltZWQiCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWMgMTAgLy8gImNsYWltZWQiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5jbGFpbWVkIGV4aXN0cyBmb3IgYWNjb3VudAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIGFscmVhZHkgY2xhaW1lZAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjEyNgogICAgLy8gb3V0Y29tZSA9IHNlbGYub3V0Y29tZS52YWx1ZS5uYXRpdmUKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyAxMyAvLyAib3V0Y29tZSIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5vdXRjb21lIGV4aXN0cwogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTI3CiAgICAvLyB3b25fc2hhcmVzID0gc2VsZi55ZXNfc2hhcmVzW1R4bi5zZW5kZXJdIGlmIG91dGNvbWUgZWxzZSBzZWxmLm5vX3NoYXJlc1tUeG4uc2VuZGVyXQogICAgYnogY2xhaW1fd2lubmluZ3NfdGVybmFyeV9mYWxzZUAzCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMyAvLyAieWVzX3NoYXJlcyIKICAgIGFwcF9sb2NhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnllc19zaGFyZXMgZXhpc3RzIGZvciBhY2NvdW50CiAgICBidXJ5IDIKCmNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfbWVyZ2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMjgKICAgIC8vIGxvc3Rfc2hhcmVzID0gc2VsZi5ub19zaGFyZXNbVHhuLnNlbmRlcl0gaWYgb3V0Y29tZSBlbHNlIHNlbGYueWVzX3NoYXJlc1tUeG4uc2VuZGVyXQogICAgZHVwCiAgICBieiBjbGFpbV93aW5uaW5nc190ZXJuYXJ5X2ZhbHNlQDYKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyA0IC8vICJub19zaGFyZXMiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub19zaGFyZXMgZXhpc3RzIGZvciBhY2NvdW50CiAgICBidXJ5IDUKCmNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfbWVyZ2VANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMjkKICAgIC8vIGFzc2VydCB3b25fc2hhcmVzID4gVUludDY0KDApIG9yIGxvc3Rfc2hhcmVzID4gVUludDY0KDApLCAibm8gcG9zaXRpb24iCiAgICBkaWcgMQogICAgYm56IGNsYWltX3dpbm5pbmdzX2Jvb2xfdHJ1ZUA5CiAgICBkaWcgNAogICAgYnogY2xhaW1fd2lubmluZ3NfYm9vbF9mYWxzZUAxMAoKY2xhaW1fd2lubmluZ3NfYm9vbF90cnVlQDk6CiAgICBpbnRjXzEgLy8gMQoKY2xhaW1fd2lubmluZ3NfYm9vbF9tZXJnZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMjkKICAgIC8vIGFzc2VydCB3b25fc2hhcmVzID4gVUludDY0KDApIG9yIGxvc3Rfc2hhcmVzID4gVUludDY0KDApLCAibm8gcG9zaXRpb24iCiAgICBhc3NlcnQgLy8gbm8gcG9zaXRpb24KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzEKICAgIC8vIHdpbm5pbmdfcG9vbCA9IHNlbGYueWVzX3Bvb2wudmFsdWUgaWYgb3V0Y29tZSBlbHNlIHNlbGYubm9fcG9vbC52YWx1ZQogICAgZHVwCiAgICBieiBjbGFpbV93aW5uaW5nc190ZXJuYXJ5X2ZhbHNlQDEzCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAieWVzX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYueWVzX3Bvb2wgZXhpc3RzCiAgICBidXJ5IDMKCmNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfbWVyZ2VAMTQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTMyCiAgICAvLyBsb3NpbmdfcG9vbCA9IHNlbGYubm9fcG9vbC52YWx1ZSBpZiBvdXRjb21lIGVsc2Ugc2VsZi55ZXNfcG9vbC52YWx1ZQogICAgZHVwCiAgICBieiBjbGFpbV93aW5uaW5nc190ZXJuYXJ5X2ZhbHNlQDE2CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAibm9fcG9vbCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub19wb29sIGV4aXN0cwoKY2xhaW1fd2lubmluZ3NfdGVybmFyeV9tZXJnZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzMKICAgIC8vIHRvdGFsX3Bvb2wgPSB3aW5uaW5nX3Bvb2wgKyBsb3NpbmdfcG9vbAogICAgZGlnIDMKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzQKICAgIC8vIGZlZSA9IHRvdGFsX3Bvb2wgKiBVSW50NjQoMjAwKSAvLyBVSW50NjQoMTBfMDAwKQogICAgZHVwCiAgICBwdXNoaW50IDIwMAogICAgKgogICAgcHVzaGludCAxMDAwMAogICAgLwogICAgZHVwCiAgICBidXJ5IDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzUKICAgIC8vIGRpc3RyaWJ1dGFibGUgPSB0b3RhbF9wb29sIC0gZmVlCiAgICAtCiAgICBidXJ5IDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzYKICAgIC8vIHBheW91dCA9IHdvbl9zaGFyZXMgKiBkaXN0cmlidXRhYmxlIC8vIHdpbm5pbmdfcG9vbCBpZiB3b25fc2hhcmVzID4gVUludDY0KDApIGVsc2UgVUludDY0KDApCiAgICBkaWcgMQogICAgYnogY2xhaW1fd2lubmluZ3NfdGVybmFyeV9mYWxzZUAxOQogICAgZGlnIDEKICAgIGRpZyA3CiAgICAqCiAgICBkaWcgMwogICAgLwogICAgYnVyeSA0CgpjbGFpbV93aW5uaW5nc190ZXJuYXJ5X21lcmdlQDIwOgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjEzOAogICAgLy8gc2VsZi5jbGFpbWVkW1R4bi5zZW5kZXJdID0gYXJjNC5Cb29sKFRydWUpCiAgICB0eG4gU2VuZGVyCiAgICBieXRlYyAxMCAvLyAiY2xhaW1lZCIKICAgIHB1c2hieXRlcyAweDgwCiAgICBhcHBfbG9jYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTQwLTE0NQogICAgLy8gIyBGZXRjaCBmZWUgdmF1bHQgYXBwIGlkIGZyb20gcmVnaXN0cnkKICAgIC8vIGZlZV92YXVsdF9pZCwgX3R4bjEgPSBhcmM0LmFiaV9jYWxsW2FyYzQuVUludDY0XSgKICAgIC8vICAgICAiZ2V0X2FwcF9pZChzdHJpbmcpdWludDY0IiwKICAgIC8vICAgICBhcmM0LlN0cmluZygiZmVlX3ZhdWx0IiksCiAgICAvLyAgICAgYXBwX2lkPUFwcGxpY2F0aW9uKHNlbGYucmVnaXN0cnlfYXBwX2lkLnZhbHVlKSwKICAgIC8vICkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxNDQKICAgIC8vIGFwcF9pZD1BcHBsaWNhdGlvbihzZWxmLnJlZ2lzdHJ5X2FwcF9pZC52YWx1ZSksCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWMgNyAvLyAicmVnaXN0cnlfYXBwX2lkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLnJlZ2lzdHJ5X2FwcF9pZCBleGlzdHMKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjE0MC0xNDUKICAgIC8vICMgRmV0Y2ggZmVlIHZhdWx0IGFwcCBpZCBmcm9tIHJlZ2lzdHJ5CiAgICAvLyBmZWVfdmF1bHRfaWQsIF90eG4xID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9hcHBfaWQoc3RyaW5nKXVpbnQ2NCIsCiAgICAvLyAgICAgYXJjNC5TdHJpbmcoImZlZV92YXVsdCIpLAogICAgLy8gICAgIGFwcF9pZD1BcHBsaWNhdGlvbihzZWxmLnJlZ2lzdHJ5X2FwcF9pZC52YWx1ZSksCiAgICAvLyApCiAgICBieXRlYyAxMiAvLyBtZXRob2QgImdldF9hcHBfaWQoc3RyaW5nKXVpbnQ2NCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTQzCiAgICAvLyBhcmM0LlN0cmluZygiZmVlX3ZhdWx0IiksCiAgICBwdXNoYnl0ZXMgMHgwMDA5NjY2NTY1NWY3NjYxNzU2Yzc0CiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjE0MC0xNDUKICAgIC8vICMgRmV0Y2ggZmVlIHZhdWx0IGFwcCBpZCBmcm9tIHJlZ2lzdHJ5CiAgICAvLyBmZWVfdmF1bHRfaWQsIF90eG4xID0gYXJjNC5hYmlfY2FsbFthcmM0LlVJbnQ2NF0oCiAgICAvLyAgICAgImdldF9hcHBfaWQoc3RyaW5nKXVpbnQ2NCIsCiAgICAvLyAgICAgYXJjNC5TdHJpbmcoImZlZV92YXVsdCIpLAogICAgLy8gICAgIGFwcF9pZD1BcHBsaWNhdGlvbihzZWxmLnJlZ2lzdHJ5X2FwcF9pZC52YWx1ZSksCiAgICAvLyApCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgaXR4biBMYXN0TG9nCiAgICBkdXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlYyA1IC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gbG9nIHZhbHVlIGlzIG5vdCB0aGUgcmVzdWx0IG9mIGFuIEFCSSByZXR1cm4KICAgIGV4dHJhY3QgNCAwCiAgICBkdXAKICAgIGJ1cnkgOQogICAgbGVuCiAgICBpbnRjXzIgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxNDcKICAgIC8vIGlmIGZlZSA+IFVJbnQ2NCgwKToKICAgIGRpZyA1CiAgICBieiBjbGFpbV93aW5uaW5nc19hZnRlcl9pZl9lbHNlQDI0CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTQ4LTE1MQogICAgLy8gaXR4bi5QYXltZW50KAogICAgLy8gICAgIHJlY2VpdmVyPUFwcGxpY2F0aW9uKGZlZV92YXVsdF9pZC5uYXRpdmUpLmFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50PWZlZSwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxNDkKICAgIC8vIHJlY2VpdmVyPUFwcGxpY2F0aW9uKGZlZV92YXVsdF9pZC5uYXRpdmUpLmFkZHJlc3MsCiAgICBkaWcgNwogICAgYnRvaQogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgYXNzZXJ0IC8vIGFwcGxpY2F0aW9uIGV4aXN0cwogICAgZGlnIDYKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTQ4CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICBpbnRjXzEgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxNDgtMTUxCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9QXBwbGljYXRpb24oZmVlX3ZhdWx0X2lkLm5hdGl2ZSkuYWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ9ZmVlLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmNsYWltX3dpbm5pbmdzX2FmdGVyX2lmX2Vsc2VAMjQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTUzCiAgICAvLyBpZiBwYXlvdXQgPiBVSW50NjQoMCk6CiAgICBkaWcgMwogICAgYnogY2xhaW1fd2lubmluZ3NfYWZ0ZXJfaWZfZWxzZUAyNwogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjE1NC0xNTcKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIC8vICAgICByZWNlaXZlcj1UeG4uc2VuZGVyLAogICAgLy8gICAgIGFtb3VudD1wYXlvdXQsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTU1CiAgICAvLyByZWNlaXZlcj1UeG4uc2VuZGVyLAogICAgdHhuIFNlbmRlcgogICAgZGlnIDQKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTU0CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICBpbnRjXzEgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxNTQtMTU3CiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9VHhuLnNlbmRlciwKICAgIC8vICAgICBhbW91bnQ9cGF5b3V0LAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmNsYWltX3dpbm5pbmdzX2FmdGVyX2lmX2Vsc2VAMjc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTIxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGRpZyAzCiAgICBpdG9iCiAgICBieXRlYyA1IC8vIDB4MTUxZjdjNzUKICAgIHN3YXAKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgpjbGFpbV93aW5uaW5nc190ZXJuYXJ5X2ZhbHNlQDE5OgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjEzNgogICAgLy8gcGF5b3V0ID0gd29uX3NoYXJlcyAqIGRpc3RyaWJ1dGFibGUgLy8gd2lubmluZ19wb29sIGlmIHdvbl9zaGFyZXMgPiBVSW50NjQoMCkgZWxzZSBVSW50NjQoMCkKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDQKICAgIGIgY2xhaW1fd2lubmluZ3NfdGVybmFyeV9tZXJnZUAyMAoKY2xhaW1fd2lubmluZ3NfdGVybmFyeV9mYWxzZUAxNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMzIKICAgIC8vIGxvc2luZ19wb29sID0gc2VsZi5ub19wb29sLnZhbHVlIGlmIG91dGNvbWUgZWxzZSBzZWxmLnllc19wb29sLnZhbHVlCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAieWVzX3Bvb2wiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYueWVzX3Bvb2wgZXhpc3RzCiAgICBiIGNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfbWVyZ2VAMTcKCmNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfZmFsc2VAMTM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvbWFya2V0X3Bvb2wvY29udHJhY3QucHk6MTMxCiAgICAvLyB3aW5uaW5nX3Bvb2wgPSBzZWxmLnllc19wb29sLnZhbHVlIGlmIG91dGNvbWUgZWxzZSBzZWxmLm5vX3Bvb2wudmFsdWUKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJub19wb29sIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLm5vX3Bvb2wgZXhpc3RzCiAgICBidXJ5IDMKICAgIGIgY2xhaW1fd2lubmluZ3NfdGVybmFyeV9tZXJnZUAxNAoKY2xhaW1fd2lubmluZ3NfYm9vbF9mYWxzZUAxMDoKICAgIGludGNfMCAvLyAwCiAgICBiIGNsYWltX3dpbm5pbmdzX2Jvb2xfbWVyZ2VAMTEKCmNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfZmFsc2VANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weToxMjgKICAgIC8vIGxvc3Rfc2hhcmVzID0gc2VsZi5ub19zaGFyZXNbVHhuLnNlbmRlcl0gaWYgb3V0Y29tZSBlbHNlIHNlbGYueWVzX3NoYXJlc1tUeG4uc2VuZGVyXQogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzMgLy8gInllc19zaGFyZXMiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi55ZXNfc2hhcmVzIGV4aXN0cyBmb3IgYWNjb3VudAogICAgYnVyeSA1CiAgICBiIGNsYWltX3dpbm5pbmdzX3Rlcm5hcnlfbWVyZ2VANwoKY2xhaW1fd2lubmluZ3NfdGVybmFyeV9mYWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5OjEyNwogICAgLy8gd29uX3NoYXJlcyA9IHNlbGYueWVzX3NoYXJlc1tUeG4uc2VuZGVyXSBpZiBvdXRjb21lIGVsc2Ugc2VsZi5ub19zaGFyZXNbVHhuLnNlbmRlcl0KICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICBieXRlYyA0IC8vICJub19zaGFyZXMiCiAgICBhcHBfbG9jYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5ub19zaGFyZXMgZXhpc3RzIGZvciBhY2NvdW50CiAgICBidXJ5IDIKICAgIGIgY2xhaW1fd2lubmluZ3NfdGVybmFyeV9tZXJnZUA0CgoKLy8gc21hcnRfY29udHJhY3RzLm1hcmtldF9wb29sLmNvbnRyYWN0Lk1hcmtldFBvb2wuX2NhbGNfc2hhcmVzKGFtb3VudDogdWludDY0LCBvd25fcG9vbDogdWludDY0LCBvdGhlcl9wb29sOiB1aW50NjQpIC0+IHVpbnQ2NDoKX2NhbGNfc2hhcmVzOgogICAgLy8gc21hcnRfY29udHJhY3RzL21hcmtldF9wb29sL2NvbnRyYWN0LnB5Ojg1LTkxCiAgICAvLyBAc3Vicm91dGluZQogICAgLy8gZGVmIF9jYWxjX3NoYXJlcygKICAgIC8vICAgICBzZWxmLAogICAgLy8gICAgIGFtb3VudDogVUludDY0LAogICAgLy8gICAgIG93bl9wb29sOiBVSW50NjQsCiAgICAvLyAgICAgb3RoZXJfcG9vbDogVUludDY0LAogICAgLy8gKSAtPiBVSW50NjQ6CiAgICBwcm90byAzIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo5MgogICAgLy8gdG90YWwgPSBvd25fcG9vbCArIGFtb3VudAogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTMKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9tYXJrZXRfcG9vbC9jb250cmFjdC5weTo5MwogICAgLy8gcmV0dXJuIGFtb3VudCAqIG9wLnNxcnQob3RoZXJfcG9vbCAqIFVJbnQ2NCgxXzAwMF8wMDApKSAvLyBvcC5zcXJ0KHRvdGFsICogVUludDY0KDFfMDAwXzAwMCkpCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMyAvLyAxMDAwMDAwCiAgICAqCiAgICBzcXJ0CiAgICBmcmFtZV9kaWcgLTMKICAgICoKICAgIHN3YXAKICAgIGludGNfMyAvLyAxMDAwMDAwCiAgICAqCiAgICBzcXJ0CiAgICAvCiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAFAAEIwIQ9oMIeJg4IeWVzX3Bvb2wHbm9fcG9vbAhyZXNvbHZlZAp5ZXNfc2hhcmVzCW5vX3NoYXJlcwQVH3x1CWV4cGlyeV90cw9yZWdpc3RyeV9hcHBfaWQKdG90YWxfYmV0cwEAB2NsYWltZWQQcmVzb2x1dGlvbl9wcmljZQSkKX0qB291dGNvbWWABDDG1Yo2GgCOAQA7MRkURDEYQQAkggQEWpa+DASOoafGBPRU8bgEpZI0jDYaAI4EAIsBNQFPAb4AgASBOgC5NhoAjgEADAAxGSMSMRgQREIAXTYaAUkiWYECCEsBFRJEVwIANhoCSRUkEkQXNhoDSRUkEkQXNhoESRUkEkQXgAxhc3NldF9zeW1ib2xPBGcnC08DZycGTwJnJwdMZyghBGcpIQRnJwgiZyonCWcjQzEAKyJmMQAnBCJmMQAnCicJZiNDNhoBSSJZgQIISwEVEkRXAgAxFiMJSTgQIxJEIiplRCJTFEQyByInBmVEDERJOAcyChJEOAhJTgIlD0SAA3llcxJBADoiKGVEIillREsCTgKIAf5JTwIiKGVECChMZzEAIitjRAgxACtPAmYiJwhlRCMIJwhMZxYnBUxQsCNDIillRCIoZURLAk4CiAHESU8CIillRAgpTGcxACInBGNECDEAJwRPAmZC/8EiKGVEIillREsBgZBOC04CCAoWJwVMULAjQzYaAUkVJBJEFzYaAkkVJBJEF7EiJwdlRLIYJwyyGoAIAAZvcmFjbGWyGoEGshAisgGztD5JVwAEJwUSRFcEAEkVJBJEFxJEMgciJwZlRA9EIiplRCJTFEQqgAGAZyInC2VEDycJIk8CVCcNTGcjQyKAAEcFIiplRCJTRDEAIicKY0QiUxREIicNZUQiU0lBAPAxACIrY0RFAklBANkxACInBGNERQVLAUAABUsEQQDCI0RJQQCzIihlREUDSUEAoiIpZURLAwhJgcgBC4GQTgpJRQgJRQdLAUEAgUsBSwcLSwMKRQQxACcKgAGAZrEiJwdlRLIYJwyyGoALAAlmZWVfdmF1bHSyGoEGshAisgGztD5JVwAEJwUSRFcEAElFCRUkEkRLBUEAFLFLBxdyCERLBrIIsgcjshAisgGzSwNBABCxMQBLBLIIsgcjshAisgGzSwMWJwVMULAjQyJFBEL/gyIoZURC/1siKWVERQNC/0oiQv87MQAiK2NERQVC/yUxACInBGNERQJC/wyKAwGL/ov9CIv/JQuSi/0LTCULkgqJ", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 5, "minor": 7, "patch": 1 } }, "events": [], "templateVariables": {} }