{ "name": "AuctionX", "structs": {}, "methods": [ { "name": "create_application", "args": [ { "type": "asset", "name": "asset_id" }, { "type": "uint64", "name": "floor_price" } ], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "set_floor_price", "args": [ { "type": "uint64", "name": "floor_price" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "opt_in_to_asset", "args": [ { "type": "pay", "name": "mbrpay" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "place_bid", "args": [ { "type": "pay", "name": "bid_payment" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "accept_bid", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "reject_bid", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "delete_application", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "DeleteApplication" ] }, "readonly": false, "events": [], "recommendations": {} } ], "arcs": [ 22, 28 ], "networks": {}, "state": { "schema": { "global": { "ints": 3, "bytes": 1 }, "local": { "ints": 0, "bytes": 0 } }, "keys": { "global": { "assetid": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "YXNzZXRpZA==" }, "floorprice": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "Zmxvb3JwcmljZQ==" }, "highest_bid": { "keyType": "AVMString", "valueType": "AVMUint64", "key": "aGlnaGVzdF9iaWQ=" }, "highest_bidder": { "keyType": "AVMString", "valueType": "AVMBytes", "key": "aGlnaGVzdF9iaWRkZXI=" } }, "local": {}, "box": {} }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 157 ], "errorMessage": "OnCompletion is not DeleteApplication" }, { "pc": [ 169, 181, 193, 215, 237, 253 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 257 ], "errorMessage": "can only call when creating" }, { "pc": [ 160, 172, 184, 196, 218, 240 ], "errorMessage": "can only call when not creating" }, { "pc": [ 321, 351, 463, 557 ], "errorMessage": "check self.assetid exists" }, { "pc": [ 405 ], "errorMessage": "check self.floorprice exists" }, { "pc": [ 396, 425, 488, 528 ], "errorMessage": "check self.highest_bid exists" }, { "pc": [ 411, 421, 455, 467, 516, 524 ], "errorMessage": "check self.highest_bidder exists" }, { "pc": [ 206, 228 ], "errorMessage": "transaction type is pay" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAwIDEgMTAwMCA0CiAgICBieXRlY2Jsb2NrICJoaWdoZXN0X2JpZGRlciIgImhpZ2hlc3RfYmlkIiBiYXNlMzIoQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQSkgImFzc2V0aWQiICJmbG9vcnByaWNlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo1CiAgICAvLyBjbGFzcyBBdWN0aW9uWChBUkM0Q29udHJhY3QpOgogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYWZ0ZXJfaWZfZWxzZUAxMwogICAgcHVzaGJ5dGVzcyAweDg3OGNiYjNkIDB4NThiNDBjOGMgMHgxNTc0NTM1YSAweGQ2NWM1YzZmIDB4YWE0MDliNDEgMHg2ZDhkNThhZSAweDMzYjM0OTllIC8vIG1ldGhvZCAiY3JlYXRlX2FwcGxpY2F0aW9uKGFzc2V0LHVpbnQ2NCl2b2lkIiwgbWV0aG9kICJzZXRfZmxvb3JfcHJpY2UodWludDY0KXZvaWQiLCBtZXRob2QgIm9wdF9pbl90b19hc3NldChwYXkpdm9pZCIsIG1ldGhvZCAicGxhY2VfYmlkKHBheSl2b2lkIiwgbWV0aG9kICJhY2NlcHRfYmlkKCl2b2lkIiwgbWV0aG9kICJyZWplY3RfYmlkKCl2b2lkIiwgbWV0aG9kICJkZWxldGVfYXBwbGljYXRpb24oKXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBtYWluX2NyZWF0ZV9hcHBsaWNhdGlvbl9yb3V0ZUAzIG1haW5fc2V0X2Zsb29yX3ByaWNlX3JvdXRlQDQgbWFpbl9vcHRfaW5fdG9fYXNzZXRfcm91dGVANSBtYWluX3BsYWNlX2JpZF9yb3V0ZUA2IG1haW5fYWNjZXB0X2JpZF9yb3V0ZUA3IG1haW5fcmVqZWN0X2JpZF9yb3V0ZUA4IG1haW5fZGVsZXRlX2FwcGxpY2F0aW9uX3JvdXRlQDkKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NQogICAgLy8gY2xhc3MgQXVjdGlvblgoQVJDNENvbnRyYWN0KToKICAgIGludGNfMCAvLyAwCiAgICByZXR1cm4KCm1haW5fZGVsZXRlX2FwcGxpY2F0aW9uX3JvdXRlQDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjEwMi0xMDMKICAgIC8vICMgRGVsZXRlIHRoZSBhcHAgJiB0YWtlIHlvdXIgYXNzZXRzIGFuZCBwcm9maXQgYmFjawogICAgLy8gQGFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiRGVsZXRlQXBwbGljYXRpb24iXSkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgIHB1c2hpbnQgNSAvLyBEZWxldGVBcHBsaWNhdGlvbgogICAgPT0KICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IERlbGV0ZUFwcGxpY2F0aW9uCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIGNhbGxzdWIgZGVsZXRlX2FwcGxpY2F0aW9uCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3JlamVjdF9iaWRfcm91dGVAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6ODUtODYKICAgIC8vICMgUmVqZWN0IHRoZSBoaWdoZXN0IGJpZCBhbmQgcmVmdW5kIHRoZSBiaWRkZXIKICAgIC8vIEBhYmltZXRob2QoKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBjYWxsc3ViIHJlamVjdF9iaWQKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCm1haW5fYWNjZXB0X2JpZF9yb3V0ZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo2MC02MQogICAgLy8gIyBBY2NlcHQgdGhlIGhpZ2hlc3QgYmlkCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgY2FsbHN1YiBhY2NlcHRfYmlkCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3BsYWNlX2JpZF9yb3V0ZUA2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo0MC00MQogICAgLy8gIyBQbGFjZSBhIGJpZAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NQogICAgLy8gY2xhc3MgQXVjdGlvblgoQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo0MC00MQogICAgLy8gIyBQbGFjZSBhIGJpZAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICBjYWxsc3ViIHBsYWNlX2JpZAogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKbWFpbl9vcHRfaW5fdG9fYXNzZXRfcm91dGVANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MjUtMjYKICAgIC8vICMgT3B0IGluIHRvIHRoZSBhc3NldCB0aGF0IHdpbGwgYmUgc29sZAogICAgLy8gQGFiaW1ldGhvZCgpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NQogICAgLy8gY2xhc3MgQXVjdGlvblgoQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToyNS0yNgogICAgLy8gIyBPcHQgaW4gdG8gdGhlIGFzc2V0IHRoYXQgd2lsbCBiZSBzb2xkCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgb3B0X2luX3RvX2Fzc2V0CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX3NldF9mbG9vcl9wcmljZV9yb3V0ZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxOS0yMAogICAgLy8gIyBVcGRhdGUgdGhlIGZsb29yIHByaWNlCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo1CiAgICAvLyBjbGFzcyBBdWN0aW9uWChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxOS0yMAogICAgLy8gIyBVcGRhdGUgdGhlIGZsb29yIHByaWNlCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIGNhbGxzdWIgc2V0X2Zsb29yX3ByaWNlCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9hcHBsaWNhdGlvbl9yb3V0ZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMS0xMgogICAgLy8gIyBDcmVhdGUgdGhlIGFwcAogICAgLy8gQGFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiTm9PcCJdLCBjcmVhdGUgPSAicmVxdWlyZSIpCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo1CiAgICAvLyBjbGFzcyBBdWN0aW9uWChBUkM0Q29udHJhY3QpOgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgYnRvaQogICAgdHhuYXMgQXNzZXRzCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBidG9pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjExLTEyCiAgICAvLyAjIENyZWF0ZSB0aGUgYXBwCiAgICAvLyBAYWJpbWV0aG9kKGFsbG93X2FjdGlvbnM9WyJOb09wIl0sIGNyZWF0ZSA9ICJyZXF1aXJlIikKICAgIGNhbGxzdWIgY3JlYXRlX2FwcGxpY2F0aW9uCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzLmF1Y3Rpb25feC5jb250cmFjdC5BdWN0aW9uWC5jcmVhdGVfYXBwbGljYXRpb24oYXNzZXRfaWQ6IHVpbnQ2NCwgZmxvb3JfcHJpY2U6IHVpbnQ2NCkgLT4gdm9pZDoKY3JlYXRlX2FwcGxpY2F0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMS0xMwogICAgLy8gIyBDcmVhdGUgdGhlIGFwcAogICAgLy8gQGFiaW1ldGhvZChhbGxvd19hY3Rpb25zPVsiTm9PcCJdLCBjcmVhdGUgPSAicmVxdWlyZSIpCiAgICAvLyBkZWYgY3JlYXRlX2FwcGxpY2F0aW9uKHNlbGYsIGFzc2V0X2lkOiBBc3NldCwgZmxvb3JfcHJpY2U6IFVJbnQ2NCkgLT4gTm9uZToKICAgIHByb3RvIDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxNAogICAgLy8gc2VsZi5hc3NldGlkID0gYXNzZXRfaWQuaWQKICAgIGJ5dGVjXzMgLy8gImFzc2V0aWQiCiAgICBmcmFtZV9kaWcgLTIKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjE1CiAgICAvLyBzZWxmLmZsb29ycHJpY2UgPSBmbG9vcl9wcmljZQogICAgYnl0ZWMgNCAvLyAiZmxvb3JwcmljZSIKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTYKICAgIC8vIHNlbGYuaGlnaGVzdF9iaWQgPSBVSW50NjQoMCkKICAgIGJ5dGVjXzEgLy8gImhpZ2hlc3RfYmlkIgogICAgaW50Y18wIC8vIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjE3CiAgICAvLyBzZWxmLmhpZ2hlc3RfYmlkZGVyID0gQWNjb3VudCgiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk1SEZLUSIpCiAgICBieXRlY18wIC8vICJoaWdoZXN0X2JpZGRlciIKICAgIGJ5dGVjXzIgLy8gYWRkciBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmF1Y3Rpb25feC5jb250cmFjdC5BdWN0aW9uWC5zZXRfZmxvb3JfcHJpY2UoZmxvb3JfcHJpY2U6IHVpbnQ2NCkgLT4gdm9pZDoKc2V0X2Zsb29yX3ByaWNlOgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxOS0yMQogICAgLy8gIyBVcGRhdGUgdGhlIGZsb29yIHByaWNlCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIC8vIGRlZiBzZXRfZmxvb3JfcHJpY2Uoc2VsZiwgZmxvb3JfcHJpY2U6IFVJbnQ2NCkgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToyMgogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gR2xvYmFsLmNyZWF0b3JfYWRkcmVzcwogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjIzCiAgICAvLyBzZWxmLmZsb29ycHJpY2UgPSBmbG9vcl9wcmljZQogICAgYnl0ZWMgNCAvLyAiZmxvb3JwcmljZSIKICAgIGZyYW1lX2RpZyAtMQogICAgYXBwX2dsb2JhbF9wdXQKICAgIHJldHN1YgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy5hdWN0aW9uX3guY29udHJhY3QuQXVjdGlvblgub3B0X2luX3RvX2Fzc2V0KG1icnBheTogdWludDY0KSAtPiB2b2lkOgpvcHRfaW5fdG9fYXNzZXQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjI1LTI3CiAgICAvLyAjIE9wdCBpbiB0byB0aGUgYXNzZXQgdGhhdCB3aWxsIGJlIHNvbGQKICAgIC8vIEBhYmltZXRob2QoKQogICAgLy8gZGVmIG9wdF9pbl90b19hc3NldChzZWxmLCBtYnJwYXk6IGd0eG4uUGF5bWVudFRyYW5zYWN0aW9uKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjI4CiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzCiAgICB0eG4gU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MjkKICAgIC8vIGFzc2VydCBub3QgR2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcy5pc19vcHRlZF9pbihBc3NldChzZWxmLmFzc2V0aWQpKQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18zIC8vICJhc3NldGlkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzc2V0aWQgZXhpc3RzCiAgICBhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjMxCiAgICAvLyBhc3NlcnQgbWJycGF5LnJlY2VpdmVyID09IEdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgUmVjZWl2ZXIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjMyCiAgICAvLyBhc3NlcnQgbWJycGF5LmFtb3VudCA9PSBHbG9iYWwubWluX2JhbGFuY2UgKyBHbG9iYWwuYXNzZXRfb3B0X2luX21pbl9iYWxhbmNlCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgZ2xvYmFsIE1pbkJhbGFuY2UKICAgIGdsb2JhbCBBc3NldE9wdEluTWluQmFsYW5jZQogICAgKwogICAgPT0KICAgIGFzc2VydAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTozNC0zOAogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIHhmZXJfYXNzZXQ9c2VsZi5hc3NldGlkLAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPUdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PTAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjM1CiAgICAvLyB4ZmVyX2Fzc2V0PXNlbGYuYXNzZXRpZCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18zIC8vICJhc3NldGlkIgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBzZWxmLmFzc2V0aWQgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjM2CiAgICAvLyBhc3NldF9yZWNlaXZlcj1HbG9iYWwuY3VycmVudF9hcHBsaWNhdGlvbl9hZGRyZXNzLAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MzcKICAgIC8vIGFzc2V0X2Ftb3VudD0wLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MzQKICAgIC8vIGl0eG4uQXNzZXRUcmFuc2ZlcigKICAgIGludGNfMyAvLyBheGZlcgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjM0LTM4CiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgeGZlcl9hc3NldD1zZWxmLmFzc2V0aWQsCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9R2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcywKICAgIC8vICAgICBhc3NldF9hbW91bnQ9MCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMuYXVjdGlvbl94LmNvbnRyYWN0LkF1Y3Rpb25YLnBsYWNlX2JpZChiaWRfcGF5bWVudDogdWludDY0KSAtPiB2b2lkOgpwbGFjZV9iaWQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjQwLTQyCiAgICAvLyAjIFBsYWNlIGEgYmlkCiAgICAvLyBAYWJpbWV0aG9kKCkKICAgIC8vIGRlZiBwbGFjZV9iaWQoc2VsZiwgYmlkX3BheW1lbnQ6IGd0eG4uUGF5bWVudFRyYW5zYWN0aW9uKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjQzCiAgICAvLyBhc3NlcnQgYmlkX3BheW1lbnQuc2VuZGVyID09IFR4bi5zZW5kZXIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgU2VuZGVyCiAgICB0eG4gU2VuZGVyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjQ0CiAgICAvLyBhc3NlcnQgYmlkX3BheW1lbnQucmVjZWl2ZXIgPT0gR2xvYmFsLmN1cnJlbnRfYXBwbGljYXRpb25fYWRkcmVzcwogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBSZWNlaXZlcgogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NDUKICAgIC8vIGFzc2VydCBiaWRfcGF5bWVudC5hbW91bnQgPiBzZWxmLmhpZ2hlc3RfYmlkCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEFtb3VudAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMSAvLyAiaGlnaGVzdF9iaWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWQgZXhpc3RzCiAgICBkaWcgMQogICAgPAogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjQ2CiAgICAvLyBhc3NlcnQgYmlkX3BheW1lbnQuYW1vdW50ID49IHNlbGYuZmxvb3JwcmljZQogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjIDQgLy8gImZsb29ycHJpY2UiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuZmxvb3JwcmljZSBleGlzdHMKICAgID49CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NDgtNDkKICAgIC8vICMgUmVmdW5kIHRoZSBwcmV2aW91cyBoaWdoZXN0IGJpZGRlcgogICAgLy8gaWYgc2VsZi5oaWdoZXN0X2JpZGRlciAhPSBBY2NvdW50KCJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRIik6CiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWRkZXIgZXhpc3RzCiAgICBieXRlY18yIC8vIGFkZHIgQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk1SEZLUQogICAgIT0KICAgIGJ6IHBsYWNlX2JpZF9hZnRlcl9pZl9lbHNlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NTAtNTQKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIC8vICAgICByZWNlaXZlcj1zZWxmLmhpZ2hlc3RfYmlkZGVyLAogICAgLy8gICAgIGFtb3VudD1zZWxmLmhpZ2hlc3RfYmlkLAogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NTEKICAgIC8vIHJlY2VpdmVyPXNlbGYuaGlnaGVzdF9iaWRkZXIsCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWRkZXIgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjUyCiAgICAvLyBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJoaWdoZXN0X2JpZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5oaWdoZXN0X2JpZCBleGlzdHMKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjUwCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICBpbnRjXzEgLy8gcGF5CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjUzCiAgICAvLyBmZWU9MV8wMDAsCiAgICBpbnRjXzIgLy8gMTAwMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NTAtNTQKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIC8vICAgICByZWNlaXZlcj1zZWxmLmhpZ2hlc3RfYmlkZGVyLAogICAgLy8gICAgIGFtb3VudD1zZWxmLmhpZ2hlc3RfYmlkLAogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgpwbGFjZV9iaWRfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo1Ni01NwogICAgLy8gIyBVcGRhdGUgdGhlIGhpZ2hlc3QgYmlkIGFuZCBiaWRkZXIKICAgIC8vIHNlbGYuaGlnaGVzdF9iaWQgPSBiaWRfcGF5bWVudC5hbW91bnQKICAgIGJ5dGVjXzEgLy8gImhpZ2hlc3RfYmlkIgogICAgZnJhbWVfZGlnIDAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjU4CiAgICAvLyBzZWxmLmhpZ2hlc3RfYmlkZGVyID0gVHhuLnNlbmRlcgogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICB0eG4gU2VuZGVyCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmF1Y3Rpb25feC5jb250cmFjdC5BdWN0aW9uWC5hY2NlcHRfYmlkKCkgLT4gdm9pZDoKYWNjZXB0X2JpZDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NjMKICAgIC8vIGFzc2VydCBUeG4uc2VuZGVyID09IEdsb2JhbC5jcmVhdG9yX2FkZHJlc3MKICAgIHR4biBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIGFzc2VydAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo2NAogICAgLy8gYXNzZXJ0IHNlbGYuaGlnaGVzdF9iaWRkZXIgIT0gQWNjb3VudCgiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk1SEZLUSIpCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWRkZXIgZXhpc3RzCiAgICBieXRlY18yIC8vIGFkZHIgQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk1SEZLUQogICAgIT0KICAgIGFzc2VydAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo2Ni03MgogICAgLy8gIyBUcmFuc2ZlciB0aGUgYXNzZXQgdG8gdGhlIGhpZ2hlc3QgYmlkZGVyCiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgeGZlcl9hc3NldD1zZWxmLmFzc2V0aWQsCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9c2VsZi5oaWdoZXN0X2JpZGRlciwKICAgIC8vICAgICBhc3NldF9hbW91bnQ9MSwgICMgQXNzdW1pbmcgdGhlIGFzc2V0IGlzIG5vbi1mdW5naWJsZSAoMSB1bml0KQogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NjgKICAgIC8vIHhmZXJfYXNzZXQ9c2VsZi5hc3NldGlkLAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzMgLy8gImFzc2V0aWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXNzZXRpZCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NjkKICAgIC8vIGFzc2V0X3JlY2VpdmVyPXNlbGYuaGlnaGVzdF9iaWRkZXIsCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWRkZXIgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjcwCiAgICAvLyBhc3NldF9hbW91bnQ9MSwgICMgQXNzdW1pbmcgdGhlIGFzc2V0IGlzIG5vbi1mdW5naWJsZSAoMSB1bml0KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBYZmVyQXNzZXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NjYtNjcKICAgIC8vICMgVHJhbnNmZXIgdGhlIGFzc2V0IHRvIHRoZSBoaWdoZXN0IGJpZGRlcgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgaW50Y18zIC8vIGF4ZmVyCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjcxCiAgICAvLyBmZWU9MV8wMDAsCiAgICBpbnRjXzIgLy8gMTAwMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NjYtNzIKICAgIC8vICMgVHJhbnNmZXIgdGhlIGFzc2V0IHRvIHRoZSBoaWdoZXN0IGJpZGRlcgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIHhmZXJfYXNzZXQ9c2VsZi5hc3NldGlkLAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPXNlbGYuaGlnaGVzdF9iaWRkZXIsCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PTEsICAjIEFzc3VtaW5nIHRoZSBhc3NldCBpcyBub24tZnVuZ2libGUgKDEgdW5pdCkKICAgIC8vICAgICBmZWU9MV8wMDAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo3NC03OQogICAgLy8gIyBUcmFuc2ZlciB0aGUgZnVuZHMgdG8gdGhlIG1hcmtldCBjcmVhdG9yCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIC8vICAgICBmZWU9MV8wMDAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5Ojc2CiAgICAvLyByZWNlaXZlcj1HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLAogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5Ojc3CiAgICAvLyBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJoaWdoZXN0X2JpZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5oaWdoZXN0X2JpZCBleGlzdHMKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5Ojc0LTc1CiAgICAvLyAjIFRyYW5zZmVyIHRoZSBmdW5kcyB0byB0aGUgbWFya2V0IGNyZWF0b3IKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIGludGNfMSAvLyBwYXkKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6NzgKICAgIC8vIGZlZT0xXzAwMCwKICAgIGludGNfMiAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo3NC03OQogICAgLy8gIyBUcmFuc2ZlciB0aGUgZnVuZHMgdG8gdGhlIG1hcmtldCBjcmVhdG9yCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIC8vICAgICBmZWU9MV8wMDAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo4MS04MgogICAgLy8gIyBSZXNldCB0aGUgaGlnaGVzdCBiaWQgYW5kIGJpZGRlcgogICAgLy8gc2VsZi5oaWdoZXN0X2JpZCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMSAvLyAiaGlnaGVzdF9iaWQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6ODMKICAgIC8vIHNlbGYuaGlnaGVzdF9iaWRkZXIgPSBBY2NvdW50KCJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRIikKICAgIGJ5dGVjXzAgLy8gImhpZ2hlc3RfYmlkZGVyIgogICAgYnl0ZWNfMiAvLyBhZGRyIEFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFZNUhGS1EKICAgIGFwcF9nbG9iYWxfcHV0CiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMuYXVjdGlvbl94LmNvbnRyYWN0LkF1Y3Rpb25YLnJlamVjdF9iaWQoKSAtPiB2b2lkOgpyZWplY3RfYmlkOgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo4OAogICAgLy8gYXNzZXJ0IFR4bi5zZW5kZXIgPT0gR2xvYmFsLmNyZWF0b3JfYWRkcmVzcwogICAgdHhuIFNlbmRlcgogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5Ojg5CiAgICAvLyBhc3NlcnQgc2VsZi5oaWdoZXN0X2JpZGRlciAhPSBBY2NvdW50KCJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRIikKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18wIC8vICJoaWdoZXN0X2JpZGRlciIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5oaWdoZXN0X2JpZGRlciBleGlzdHMKICAgIGJ5dGVjXzIgLy8gYWRkciBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRCiAgICAhPQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjkxLTk2CiAgICAvLyAjIFJlZnVuZCB0aGUgaGlnaGVzdCBiaWRkZXIKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIC8vICAgICByZWNlaXZlcj1zZWxmLmhpZ2hlc3RfYmlkZGVyLAogICAgLy8gICAgIGFtb3VudD1zZWxmLmhpZ2hlc3RfYmlkLAogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6OTMKICAgIC8vIHJlY2VpdmVyPXNlbGYuaGlnaGVzdF9iaWRkZXIsCiAgICBpbnRjXzAgLy8gMAogICAgYnl0ZWNfMCAvLyAiaGlnaGVzdF9iaWRkZXIiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuaGlnaGVzdF9iaWRkZXIgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5Ojk0CiAgICAvLyBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICJoaWdoZXN0X2JpZCIKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgc2VsZi5oaWdoZXN0X2JpZCBleGlzdHMKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjkxLTkyCiAgICAvLyAjIFJlZnVuZCB0aGUgaGlnaGVzdCBiaWRkZXIKICAgIC8vIGl0eG4uUGF5bWVudCgKICAgIGludGNfMSAvLyBwYXkKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6OTUKICAgIC8vIGZlZT0xXzAwMCwKICAgIGludGNfMiAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo5MS05NgogICAgLy8gIyBSZWZ1bmQgdGhlIGhpZ2hlc3QgYmlkZGVyCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9c2VsZi5oaWdoZXN0X2JpZGRlciwKICAgIC8vICAgICBhbW91bnQ9c2VsZi5oaWdoZXN0X2JpZCwKICAgIC8vICAgICBmZWU9MV8wMDAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weTo5OC05OQogICAgLy8gIyBSZXNldCB0aGUgaGlnaGVzdCBiaWQgYW5kIGJpZGRlcgogICAgLy8gc2VsZi5oaWdoZXN0X2JpZCA9IFVJbnQ2NCgwKQogICAgYnl0ZWNfMSAvLyAiaGlnaGVzdF9iaWQiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTAwCiAgICAvLyBzZWxmLmhpZ2hlc3RfYmlkZGVyID0gQWNjb3VudCgiQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQVk1SEZLUSIpCiAgICBieXRlY18wIC8vICJoaWdoZXN0X2JpZGRlciIKICAgIGJ5dGVjXzIgLy8gYWRkciBBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBWTVIRktRCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzLmF1Y3Rpb25feC5jb250cmFjdC5BdWN0aW9uWC5kZWxldGVfYXBwbGljYXRpb24oKSAtPiB2b2lkOgpkZWxldGVfYXBwbGljYXRpb246CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjEwNS0xMDYKICAgIC8vICMgT25seSBhbGxvdyB0aGUgY3JlYXRvciB0byBkZWxldGUgdGhlIGFwcGxpY2F0aW9uCiAgICAvLyBhc3NlcnQgVHhuLnNlbmRlciA9PSBHbG9iYWwuY3JlYXRvcl9hZGRyZXNzCiAgICB0eG4gU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTA4LTExOAogICAgLy8gIyBTZW5kIGFsbCB0aGUgdW5zb2xkIGFzc2V0cyB0byB0aGUgY3JlYXRvcgogICAgLy8gaXR4bi5Bc3NldFRyYW5zZmVyKAogICAgLy8gICAgIHhmZXJfYXNzZXQ9c2VsZi5hc3NldGlkLAogICAgLy8gICAgIGFzc2V0X3JlY2VpdmVyPUdsb2JhbC5jcmVhdG9yX2FkZHJlc3MsCiAgICAvLyAgICAgIyBUaGUgYW1vdW50IGlzIDAsIGJ1dCB0aGUgYXNzZXRfY2xvc2VfdG8gZmllbGQgaXMgc2V0CiAgICAvLyAgICAgIyBUaGlzIG1lYW5zIHRoYXQgQUxMIGFzc2V0cyBhcmUgYmVpbmcgc2VudCB0byB0aGUgYXNzZXRfY2xvc2VfdG8gYWRkcmVzcwogICAgLy8gICAgIGFzc2V0X2Ftb3VudD0wLAogICAgLy8gICAgICMgQ2xvc2UgdGhlIGFzc2V0IHRvIHVubG9jayB0aGUgMC4xIEFMR08gdGhhdCB3YXMgbG9ja2VkIGluIG9wdF9pbl90b19hc3NldAogICAgLy8gICAgIGFzc2V0X2Nsb3NlX3RvPUdsb2JhbC5jcmVhdG9yX2FkZHJlc3MsCiAgICAvLyAgICAgZmVlPTFfMDAwLAogICAgLy8gKS5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMTAKICAgIC8vIHhmZXJfYXNzZXQ9c2VsZi5hc3NldGlkLAogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzMgLy8gImFzc2V0aWQiCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIHNlbGYuYXNzZXRpZCBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTExCiAgICAvLyBhc3NldF9yZWNlaXZlcj1HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLAogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjExNS0xMTYKICAgIC8vICMgQ2xvc2UgdGhlIGFzc2V0IHRvIHVubG9jayB0aGUgMC4xIEFMR08gdGhhdCB3YXMgbG9ja2VkIGluIG9wdF9pbl90b19hc3NldAogICAgLy8gYXNzZXRfY2xvc2VfdG89R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIGR1cAogICAgaXR4bl9maWVsZCBBc3NldENsb3NlVG8KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTEyLTExNAogICAgLy8gIyBUaGUgYW1vdW50IGlzIDAsIGJ1dCB0aGUgYXNzZXRfY2xvc2VfdG8gZmllbGQgaXMgc2V0CiAgICAvLyAjIFRoaXMgbWVhbnMgdGhhdCBBTEwgYXNzZXRzIGFyZSBiZWluZyBzZW50IHRvIHRoZSBhc3NldF9jbG9zZV90byBhZGRyZXNzCiAgICAvLyBhc3NldF9hbW91bnQ9MCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjEwOC0xMDkKICAgIC8vICMgU2VuZCBhbGwgdGhlIHVuc29sZCBhc3NldHMgdG8gdGhlIGNyZWF0b3IKICAgIC8vIGl0eG4uQXNzZXRUcmFuc2ZlcigKICAgIGludGNfMyAvLyBheGZlcgogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMTcKICAgIC8vIGZlZT0xXzAwMCwKICAgIGludGNfMiAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMDgtMTE4CiAgICAvLyAjIFNlbmQgYWxsIHRoZSB1bnNvbGQgYXNzZXRzIHRvIHRoZSBjcmVhdG9yCiAgICAvLyBpdHhuLkFzc2V0VHJhbnNmZXIoCiAgICAvLyAgICAgeGZlcl9hc3NldD1zZWxmLmFzc2V0aWQsCiAgICAvLyAgICAgYXNzZXRfcmVjZWl2ZXI9R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICAjIFRoZSBhbW91bnQgaXMgMCwgYnV0IHRoZSBhc3NldF9jbG9zZV90byBmaWVsZCBpcyBzZXQKICAgIC8vICAgICAjIFRoaXMgbWVhbnMgdGhhdCBBTEwgYXNzZXRzIGFyZSBiZWluZyBzZW50IHRvIHRoZSBhc3NldF9jbG9zZV90byBhZGRyZXNzCiAgICAvLyAgICAgYXNzZXRfYW1vdW50PTAsCiAgICAvLyAgICAgIyBDbG9zZSB0aGUgYXNzZXQgdG8gdW5sb2NrIHRoZSAwLjEgQUxHTyB0aGF0IHdhcyBsb2NrZWQgaW4gb3B0X2luX3RvX2Fzc2V0CiAgICAvLyAgICAgYXNzZXRfY2xvc2VfdG89R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICBmZWU9MV8wMDAsCiAgICAvLyApLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMjAtMTI3CiAgICAvLyAjIFNlbmQgdGhlIHJlbWFpbmluZyBiYWxhbmNlIHRvIHRoZSBjcmVhdG9yCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ9MCwKICAgIC8vICAgICAjIENsb3NlIHRoZSBhY2NvdW50IHRvIGdldCBiYWNrIEFMTCB0aGUgQUxHTyBpbiB0aGUgYWNjb3VudAogICAgLy8gICAgIGNsb3NlX3JlbWFpbmRlcl90bz1HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLAogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTIyCiAgICAvLyByZWNlaXZlcj1HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLAogICAgZ2xvYmFsIENyZWF0b3JBZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjEyNC0xMjUKICAgIC8vICMgQ2xvc2UgdGhlIGFjY291bnQgdG8gZ2V0IGJhY2sgQUxMIHRoZSBBTEdPIGluIHRoZSBhY2NvdW50CiAgICAvLyBjbG9zZV9yZW1haW5kZXJfdG89R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIGR1cAogICAgaXR4bl9maWVsZCBDbG9zZVJlbWFpbmRlclRvCiAgICAvLyBzbWFydF9jb250cmFjdHMvYXVjdGlvbl94L2NvbnRyYWN0LnB5OjEyMwogICAgLy8gYW1vdW50PTAsCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hdWN0aW9uX3gvY29udHJhY3QucHk6MTIwLTEyMQogICAgLy8gIyBTZW5kIHRoZSByZW1haW5pbmcgYmFsYW5jZSB0byB0aGUgY3JlYXRvcgogICAgLy8gaXR4bi5QYXltZW50KAogICAgaW50Y18xIC8vIHBheQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMjYKICAgIC8vIGZlZT0xXzAwMCwKICAgIGludGNfMiAvLyAxMDAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2F1Y3Rpb25feC9jb250cmFjdC5weToxMjAtMTI3CiAgICAvLyAjIFNlbmQgdGhlIHJlbWFpbmluZyBiYWxhbmNlIHRvIHRoZSBjcmVhdG9yCiAgICAvLyBpdHhuLlBheW1lbnQoCiAgICAvLyAgICAgcmVjZWl2ZXI9R2xvYmFsLmNyZWF0b3JfYWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ9MCwKICAgIC8vICAgICAjIENsb3NlIHRoZSBhY2NvdW50IHRvIGdldCBiYWNrIEFMTCB0aGUgQUxHTyBpbiB0aGUgYWNjb3VudAogICAgLy8gICAgIGNsb3NlX3JlbWFpbmRlcl90bz1HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLAogICAgLy8gICAgIGZlZT0xXzAwMCwKICAgIC8vICkuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAEAAHoBwQmBQ5oaWdoZXN0X2JpZGRlcgtoaWdoZXN0X2JpZCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdhc3NldGlkCmZsb29ycHJpY2UxG0EAOIIHBIeMuz0EWLQMjAQVdFNaBNZcXG8EqkCbQQRtjViuBDOzSZ42GgCOBwBkAFQAPgAoABwAEAACIkMxGYEFEkQxGESIAX8jQzEZFEQxGESIAUsjQzEZFEQxGESIAQIjQzEZFEQxGEQxFiMJSTgQIxJEiACfI0MxGRREMRhEMRYjCUk4ECMSRIgASyNDMRkURDEYRDYaAReIACwjQzEZFEQxGBRENhoBF8AwNhoCF4gAAiNDigIAK4v+ZycEi/9nKSJnKCpniYoBADEAMgkSRCcEi/9niYoBADEAMgkSRDIKIitlRHAARQEURIv/OAcyChJEi/84CDIBMhAIEkSxIitlRDIKIrISshSyESWyECKyAbOJigEAi/84ADEAEkSL/zgHMgoSRIv/OAhJIillREsBDEQiJwRlRA9EIihlRCoTQQAUsSIoZUQiKWVEsgiyByOyECSyAbMpiwBnKDEAZ4kxADIJEkQiKGVEKhNEsSIrZUQiKGVEI7ISshSyESWyECSyAbOxMgkiKWVEsgiyByOyECSyAbMpImcoKmeJMQAyCRJEIihlRCoTRLEiKGVEIillRLIIsgcjshAksgGzKSJnKCpniTEAMgkSRLEiK2VEMglJshUishKyFLIRJbIQJLIBs7EyCUmyCSKyCLIHI7IQJLIBs4k=", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 4, "minor": 6, "patch": 1 } }, "events": [], "templateVariables": {} }