{ "name": "TransactionContract", "structs": {}, "methods": [ { "name": "create", "args": [], "returns": { "type": "void" }, "actions": { "create": [ "NoOp" ], "call": [] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "pay", "args": [ { "type": "pay", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "key", "args": [ { "type": "keyreg", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_config", "args": [ { "type": "acfg", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_transfer", "args": [ { "type": "axfer", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "asset_freeze", "args": [ { "type": "afrz", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "application_call", "args": [ { "type": "appl", "name": "txn" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "multiple_txns", "args": [ { "type": "appl", "name": "txn1" }, { "type": "appl", "name": "txn2" }, { "type": "appl", "name": "txn3" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "any_txn", "args": [ { "type": "txn", "name": "txn1" }, { "type": "txn", "name": "txn2" }, { "type": "txn", "name": "txn3" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "group_init", "args": [ { "type": "txn", "name": "txn1" }, { "type": "txn", "name": "txn2" }, { "type": "txn", "name": "txn3" } ], "returns": { "type": "void" }, "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": [], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 131 ], "errorMessage": "Payment should be for >1000 micro algos" }, { "pc": [ 123 ], "errorMessage": "Payment should be for this app" }, { "pc": [ 415 ], "errorMessage": "accounts(0)" }, { "pc": [ 407 ], "errorMessage": "app_args(0)" }, { "pc": [ 338 ], "errorMessage": "app_id" }, { "pc": [ 355 ], "errorMessage": "approval_program" }, { "pc": [ 431 ], "errorMessage": "approval_program_pages(0)" }, { "pc": [ 425 ], "errorMessage": "apps(0)" }, { "pc": [ 267 ], "errorMessage": "asset_amount" }, { "pc": [ 287 ], "errorMessage": "asset_close_to" }, { "pc": [ 210 ], "errorMessage": "asset_name" }, { "pc": [ 281 ], "errorMessage": "asset_receiver" }, { "pc": [ 274 ], "errorMessage": "asset_sender" }, { "pc": [ 420 ], "errorMessage": "assets(0)" }, { "pc": [ 242 ], "errorMessage": "clawback" }, { "pc": [ 360 ], "errorMessage": "clear_state_program" }, { "pc": [ 436 ], "errorMessage": "clear_state_program_pages(0)" }, { "pc": [ 137 ], "errorMessage": "close_remainder_to" }, { "pc": [ 188 ], "errorMessage": "config_asset" }, { "pc": [ 196 ], "errorMessage": "decimals" }, { "pc": [ 200 ], "errorMessage": "default_frozen" }, { "pc": [ 388 ], "errorMessage": "extra_program_pages" }, { "pc": [ 618 ], "errorMessage": "fee" }, { "pc": [ 648 ], "errorMessage": "first_valid" }, { "pc": [ 236 ], "errorMessage": "freeze" }, { "pc": [ 315 ], "errorMessage": "freeze_account" }, { "pc": [ 308 ], "errorMessage": "freeze_asset" }, { "pc": [ 318 ], "errorMessage": "frozen" }, { "pc": [ 376 ], "errorMessage": "global_num_bytes" }, { "pc": [ 372 ], "errorMessage": "global_num_uint" }, { "pc": [ 643 ], "errorMessage": "group_index" }, { "pc": [ 393 ], "errorMessage": "last_log" }, { "pc": [ 653 ], "errorMessage": "last_valid" }, { "pc": [ 384 ], "errorMessage": "local_num_bytes" }, { "pc": [ 380 ], "errorMessage": "local_num_uint" }, { "pc": [ 222 ], "errorMessage": "manager" }, { "pc": [ 168 ], "errorMessage": "non_participation" }, { "pc": [ 637 ], "errorMessage": "note" }, { "pc": [ 350 ], "errorMessage": "num_accounts" }, { "pc": [ 346 ], "errorMessage": "num_app_args" }, { "pc": [ 397 ], "errorMessage": "num_approval_program_pages" }, { "pc": [ 368 ], "errorMessage": "num_apps" }, { "pc": [ 364 ], "errorMessage": "num_assets" }, { "pc": [ 401 ], "errorMessage": "num_clear_state_program_pages" }, { "pc": [ 342 ], "errorMessage": "on_completion" }, { "pc": [ 661 ], "errorMessage": "rekey_to" }, { "pc": [ 229 ], "errorMessage": "reserve" }, { "pc": [ 613 ], "errorMessage": "sender" }, { "pc": [ 192 ], "errorMessage": "total" }, { "pc": [ 180 ], "errorMessage": "transaction type is acfg" }, { "pc": [ 300 ], "errorMessage": "transaction type is afrz" }, { "pc": [ 330, 448, 460, 472 ], "errorMessage": "transaction type is appl" }, { "pc": [ 255 ], "errorMessage": "transaction type is axfer" }, { "pc": [ 149 ], "errorMessage": "transaction type is keyreg" }, { "pc": [ 112 ], "errorMessage": "transaction type is pay" }, { "pc": [ 623 ], "errorMessage": "type" }, { "pc": [ 629 ], "errorMessage": "type_bytes" }, { "pc": [ 205 ], "errorMessage": "unit_name" }, { "pc": [ 215 ], "errorMessage": "url" }, { "pc": [ 161 ], "errorMessage": "vote_first" }, { "pc": [ 157 ], "errorMessage": "vote_key_dilution" }, { "pc": [ 165 ], "errorMessage": "vote_last" }, { "pc": [ 263 ], "errorMessage": "xfer_asset" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDIgMyA2CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBieiBtYWluX2NyZWF0ZV9Ob09wQDEzCiAgICBwdXNoYnl0ZXNzIDB4NmI2ODAzMTggMHgxNmM0YTMyZCAweDYzOTg3MmQ2IDB4NTBmOGYxYzMgMHg1YjNhMDBjZiAweGNkNjIyOTNkIDB4MDJlYTcyZTUgMHgzMDU2ODQwYiAweDk2ZWY5YTk1IC8vIG1ldGhvZCAicGF5KHBheSl2b2lkIiwgbWV0aG9kICJrZXkoa2V5cmVnKXZvaWQiLCBtZXRob2QgImFzc2V0X2NvbmZpZyhhY2ZnKXZvaWQiLCBtZXRob2QgImFzc2V0X3RyYW5zZmVyKGF4ZmVyKXZvaWQiLCBtZXRob2QgImFzc2V0X2ZyZWV6ZShhZnJ6KXZvaWQiLCBtZXRob2QgImFwcGxpY2F0aW9uX2NhbGwoYXBwbCl2b2lkIiwgbWV0aG9kICJtdWx0aXBsZV90eG5zKGFwcGwsYXBwbCxhcHBsKXZvaWQiLCBtZXRob2QgImFueV90eG4odHhuLHR4bix0eG4pdm9pZCIsIG1ldGhvZCAiZ3JvdXBfaW5pdCh0eG4sdHhuLHR4bil2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcGF5IGtleSBhc3NldF9jb25maWcgYXNzZXRfdHJhbnNmZXIgYXNzZXRfZnJlZXplIGFwcGxpY2F0aW9uX2NhbGwgbXVsdGlwbGVfdHhucyBhbnlfdHhuIGdyb3VwX2luaXQKICAgIGVycgoKbWFpbl9jcmVhdGVfTm9PcEAxMzoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExCiAgICAvLyBjbGFzcyBUcmFuc2FjdGlvbkNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIHB1c2hieXRlcyAweDRjNWM2MWJhIC8vIG1ldGhvZCAiY3JlYXRlKCl2b2lkIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9jcmVhdGVfcm91dGVAMTQKICAgIGVycgoKbWFpbl9jcmVhdGVfcm91dGVAMTQ6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMgogICAgLy8gQGFyYzQuYWJpbWV0aG9kKGNyZWF0ZT0icmVxdWlyZSIpCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LnBheVtyb3V0aW5nXSgpIC0+IHZvaWQ6CnBheToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjMxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18wIC8vIHBheQogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIHBheQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzMKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZHVwCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozNQogICAgLy8gdHhuLnJlY2VpdmVyID09IG9wLkdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIGR1cAogICAgZ3R4bnMgUmVjZWl2ZXIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzQtMzYKICAgIC8vIGFzc2VydCAoCiAgICAvLyAgICAgdHhuLnJlY2VpdmVyID09IG9wLkdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIC8vICksICJQYXltZW50IHNob3VsZCBiZSBmb3IgdGhpcyBhcHAiCiAgICBhc3NlcnQgLy8gUGF5bWVudCBzaG91bGQgYmUgZm9yIHRoaXMgYXBwCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozNwogICAgLy8gYXNzZXJ0IHR4bi5hbW91bnQgPiAxMDAwLCAiUGF5bWVudCBzaG91bGQgYmUgZm9yID4xMDAwIG1pY3JvIGFsZ29zIgogICAgZHVwCiAgICBndHhucyBBbW91bnQKICAgIHB1c2hpbnQgMTAwMAogICAgPgogICAgYXNzZXJ0IC8vIFBheW1lbnQgc2hvdWxkIGJlIGZvciA+MTAwMCBtaWNybyBhbGdvcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzgKICAgIC8vIGFzc2VydCB0eG4uY2xvc2VfcmVtYWluZGVyX3RvID09IG9wLkdsb2JhbC56ZXJvX2FkZHJlc3MsICJjbG9zZV9yZW1haW5kZXJfdG8iCiAgICBndHhucyBDbG9zZVJlbWFpbmRlclRvCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBhc3NlcnQgLy8gY2xvc2VfcmVtYWluZGVyX3RvCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmtleVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmtleToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQwCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18xIC8vIGtleXJlZwogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGtleXJlZwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDIKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZHVwCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo0NQogICAgLy8gYXNzZXJ0IHR4bi52b3RlX2tleV9kaWx1dGlvbiwgInZvdGVfa2V5X2RpbHV0aW9uIgogICAgZHVwCiAgICBndHhucyBWb3RlS2V5RGlsdXRpb24KICAgIGFzc2VydCAvLyB2b3RlX2tleV9kaWx1dGlvbgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDYKICAgIC8vIGFzc2VydCB0eG4udm90ZV9maXJzdCwgInZvdGVfZmlyc3QiCiAgICBkdXAKICAgIGd0eG5zIFZvdGVGaXJzdAogICAgYXNzZXJ0IC8vIHZvdGVfZmlyc3QKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQ3CiAgICAvLyBhc3NlcnQgdHhuLnZvdGVfbGFzdCwgInZvdGVfbGFzdCIKICAgIGR1cAogICAgZ3R4bnMgVm90ZUxhc3QKICAgIGFzc2VydCAvLyB2b3RlX2xhc3QKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQ4CiAgICAvLyBhc3NlcnQgdHhuLm5vbl9wYXJ0aWNpcGF0aW9uLCAibm9uX3BhcnRpY2lwYXRpb24iCiAgICBndHhucyBOb25wYXJ0aWNpcGF0aW9uCiAgICBhc3NlcnQgLy8gbm9uX3BhcnRpY2lwYXRpb24KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQwCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLnRyYW5zYWN0aW9uLmNvbnRyYWN0LlRyYW5zYWN0aW9uQ29udHJhY3QuYXNzZXRfY29uZmlnW3JvdXRpbmddKCkgLT4gdm9pZDoKYXNzZXRfY29uZmlnOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzIgLy8gYWNmZwogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGFjZmcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjUzCiAgICAvLyBzZWxmLl9jb21tb25fY2hlY2tzKHR4bikKICAgIGR1cAogICAgY2FsbHN1YiBfY29tbW9uX2NoZWNrcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTUKICAgIC8vIGFzc2VydCB0eG4uY29uZmlnX2Fzc2V0LCAiY29uZmlnX2Fzc2V0IgogICAgZHVwCiAgICBndHhucyBDb25maWdBc3NldAogICAgYXNzZXJ0IC8vIGNvbmZpZ19hc3NldAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTYKICAgIC8vIGFzc2VydCB0eG4udG90YWwsICJ0b3RhbCIKICAgIGR1cAogICAgZ3R4bnMgQ29uZmlnQXNzZXRUb3RhbAogICAgYXNzZXJ0IC8vIHRvdGFsCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo1NwogICAgLy8gYXNzZXJ0IHR4bi5kZWNpbWFscywgImRlY2ltYWxzIgogICAgZHVwCiAgICBndHhucyBDb25maWdBc3NldERlY2ltYWxzCiAgICBhc3NlcnQgLy8gZGVjaW1hbHMKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjU4CiAgICAvLyBhc3NlcnQgdHhuLmRlZmF1bHRfZnJvemVuLCAiZGVmYXVsdF9mcm96ZW4iCiAgICBkdXAKICAgIGd0eG5zIENvbmZpZ0Fzc2V0RGVmYXVsdEZyb3plbgogICAgYXNzZXJ0IC8vIGRlZmF1bHRfZnJvemVuCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo1OQogICAgLy8gYXNzZXJ0IHR4bi51bml0X25hbWUsICJ1bml0X25hbWUiCiAgICBkdXAKICAgIGd0eG5zIENvbmZpZ0Fzc2V0VW5pdE5hbWUKICAgIGxlbgogICAgYXNzZXJ0IC8vIHVuaXRfbmFtZQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NjAKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRfbmFtZSwgImFzc2V0X25hbWUiCiAgICBkdXAKICAgIGd0eG5zIENvbmZpZ0Fzc2V0TmFtZQogICAgbGVuCiAgICBhc3NlcnQgLy8gYXNzZXRfbmFtZQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NjEKICAgIC8vIGFzc2VydCB0eG4udXJsLCAidXJsIgogICAgZHVwCiAgICBndHhucyBDb25maWdBc3NldFVSTAogICAgbGVuCiAgICBhc3NlcnQgLy8gdXJsCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2MwogICAgLy8gYXNzZXJ0IHR4bi5tYW5hZ2VyLCAibWFuYWdlciIKICAgIGR1cAogICAgZ3R4bnMgQ29uZmlnQXNzZXRNYW5hZ2VyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gbWFuYWdlcgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NjQKICAgIC8vIGFzc2VydCB0eG4ucmVzZXJ2ZSwgInJlc2VydmUiCiAgICBkdXAKICAgIGd0eG5zIENvbmZpZ0Fzc2V0UmVzZXJ2ZQogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIHJlc2VydmUKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjY1CiAgICAvLyBhc3NlcnQgdHhuLmZyZWV6ZSwgImZyZWV6ZSIKICAgIGR1cAogICAgZ3R4bnMgQ29uZmlnQXNzZXRGcmVlemUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBmcmVlemUKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjY2CiAgICAvLyBhc3NlcnQgdHhuLmNsYXdiYWNrLCAiY2xhd2JhY2siCiAgICBndHhucyBDb25maWdBc3NldENsYXdiYWNrCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gY2xhd2JhY2sKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjUxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLnRyYW5zYWN0aW9uLmNvbnRyYWN0LlRyYW5zYWN0aW9uQ29udHJhY3QuYXNzZXRfdHJhbnNmZXJbcm91dGluZ10oKSAtPiB2b2lkOgphc3NldF90cmFuc2ZlcjoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjY4CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA0IC8vIGF4ZmVyCiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYXhmZXIKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjcwCiAgICAvLyBzZWxmLl9jb21tb25fY2hlY2tzKHR4bikKICAgIGR1cAogICAgY2FsbHN1YiBfY29tbW9uX2NoZWNrcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzEKICAgIC8vIGFzc2VydCB0eG4ueGZlcl9hc3NldCwgInhmZXJfYXNzZXQiCiAgICBkdXAKICAgIGd0eG5zIFhmZXJBc3NldAogICAgYXNzZXJ0IC8vIHhmZXJfYXNzZXQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjcyCiAgICAvLyBhc3NlcnQgdHhuLmFzc2V0X2Ftb3VudCwgImFzc2V0X2Ftb3VudCIKICAgIGR1cAogICAgZ3R4bnMgQXNzZXRBbW91bnQKICAgIGFzc2VydCAvLyBhc3NldF9hbW91bnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjczCiAgICAvLyBhc3NlcnQgdHhuLmFzc2V0X3NlbmRlciwgImFzc2V0X3NlbmRlciIKICAgIGR1cAogICAgZ3R4bnMgQXNzZXRTZW5kZXIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBhc3NldF9zZW5kZXIKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojc0CiAgICAvLyBhc3NlcnQgdHhuLmFzc2V0X3JlY2VpdmVyLCAiYXNzZXRfcmVjZWl2ZXIiCiAgICBkdXAKICAgIGd0eG5zIEFzc2V0UmVjZWl2ZXIKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBhc3NldF9yZWNlaXZlcgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzUKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRfY2xvc2VfdG8sICJhc3NldF9jbG9zZV90byIKICAgIGd0eG5zIEFzc2V0Q2xvc2VUbwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGFzc2V0X2Nsb3NlX3RvCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2OAogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmFzc2V0X2ZyZWV6ZVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFzc2V0X2ZyZWV6ZToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojc3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA1IC8vIGFmcnoKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBhZnJ6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo3OQogICAgLy8gc2VsZi5fY29tbW9uX2NoZWNrcyh0eG4pCiAgICBkdXAKICAgIGNhbGxzdWIgX2NvbW1vbl9jaGVja3MKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjgxCiAgICAvLyBhc3NlcnQgdHhuLmZyZWV6ZV9hc3NldCwgImZyZWV6ZV9hc3NldCIKICAgIGR1cAogICAgZ3R4bnMgRnJlZXplQXNzZXQKICAgIGFzc2VydCAvLyBmcmVlemVfYXNzZXQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjgyCiAgICAvLyBhc3NlcnQgdHhuLmZyZWV6ZV9hY2NvdW50LCAiZnJlZXplX2FjY291bnQiCiAgICBkdXAKICAgIGd0eG5zIEZyZWV6ZUFzc2V0QWNjb3VudAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGZyZWV6ZV9hY2NvdW50CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4MwogICAgLy8gYXNzZXJ0IHR4bi5mcm96ZW4sICJmcm96ZW4iCiAgICBndHhucyBGcmVlemVBc3NldEZyb3plbgogICAgYXNzZXJ0IC8vIGZyb3plbgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5hcHBsaWNhdGlvbl9jYWxsW3JvdXRpbmddKCkgLT4gdm9pZDoKYXBwbGljYXRpb25fY2FsbDoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojg1CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18zIC8vIGFwcGwKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBhcHBsCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4NwogICAgLy8gc2VsZi5fY29tbW9uX2NoZWNrcyh0eG4pCiAgICBkdXAKICAgIGNhbGxzdWIgX2NvbW1vbl9jaGVja3MKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojg4CiAgICAvLyBhc3NlcnQgdHhuLmFwcF9pZCwgImFwcF9pZCIKICAgIGR1cAogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGFwcF9pZAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODkKICAgIC8vIGFzc2VydCB0eG4ub25fY29tcGxldGlvbiwgIm9uX2NvbXBsZXRpb24iCiAgICBkdXAKICAgIGd0eG5zIE9uQ29tcGxldGlvbgogICAgYXNzZXJ0IC8vIG9uX2NvbXBsZXRpb24KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjkwCiAgICAvLyBhc3NlcnQgdHhuLm51bV9hcHBfYXJncywgIm51bV9hcHBfYXJncyIKICAgIGR1cAogICAgZ3R4bnMgTnVtQXBwQXJncwogICAgYXNzZXJ0IC8vIG51bV9hcHBfYXJncwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTEKICAgIC8vIGFzc2VydCB0eG4ubnVtX2FjY291bnRzLCAibnVtX2FjY291bnRzIgogICAgZHVwCiAgICBndHhucyBOdW1BY2NvdW50cwogICAgYXNzZXJ0IC8vIG51bV9hY2NvdW50cwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTIKICAgIC8vIGFzc2VydCB0eG4uYXBwcm92YWxfcHJvZ3JhbSwgImFwcHJvdmFsX3Byb2dyYW0iCiAgICBkdXAKICAgIGd0eG5zIEFwcHJvdmFsUHJvZ3JhbQogICAgbGVuCiAgICBhc3NlcnQgLy8gYXBwcm92YWxfcHJvZ3JhbQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTMKICAgIC8vIGFzc2VydCB0eG4uY2xlYXJfc3RhdGVfcHJvZ3JhbSwgImNsZWFyX3N0YXRlX3Byb2dyYW0iCiAgICBkdXAKICAgIGd0eG5zIENsZWFyU3RhdGVQcm9ncmFtCiAgICBsZW4KICAgIGFzc2VydCAvLyBjbGVhcl9zdGF0ZV9wcm9ncmFtCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5NAogICAgLy8gYXNzZXJ0IHR4bi5udW1fYXNzZXRzLCAibnVtX2Fzc2V0cyIKICAgIGR1cAogICAgZ3R4bnMgTnVtQXNzZXRzCiAgICBhc3NlcnQgLy8gbnVtX2Fzc2V0cwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTUKICAgIC8vIGFzc2VydCB0eG4ubnVtX2FwcHMsICJudW1fYXBwcyIKICAgIGR1cAogICAgZ3R4bnMgTnVtQXBwbGljYXRpb25zCiAgICBhc3NlcnQgLy8gbnVtX2FwcHMKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojk2CiAgICAvLyBhc3NlcnQgdHhuLmdsb2JhbF9udW1fdWludCwgImdsb2JhbF9udW1fdWludCIKICAgIGR1cAogICAgZ3R4bnMgR2xvYmFsTnVtVWludAogICAgYXNzZXJ0IC8vIGdsb2JhbF9udW1fdWludAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTcKICAgIC8vIGFzc2VydCB0eG4uZ2xvYmFsX251bV9ieXRlcywgImdsb2JhbF9udW1fYnl0ZXMiCiAgICBkdXAKICAgIGd0eG5zIEdsb2JhbE51bUJ5dGVTbGljZQogICAgYXNzZXJ0IC8vIGdsb2JhbF9udW1fYnl0ZXMKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojk4CiAgICAvLyBhc3NlcnQgdHhuLmxvY2FsX251bV91aW50LCAibG9jYWxfbnVtX3VpbnQiCiAgICBkdXAKICAgIGd0eG5zIExvY2FsTnVtVWludAogICAgYXNzZXJ0IC8vIGxvY2FsX251bV91aW50CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5OQogICAgLy8gYXNzZXJ0IHR4bi5sb2NhbF9udW1fYnl0ZXMsICJsb2NhbF9udW1fYnl0ZXMiCiAgICBkdXAKICAgIGd0eG5zIExvY2FsTnVtQnl0ZVNsaWNlCiAgICBhc3NlcnQgLy8gbG9jYWxfbnVtX2J5dGVzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDAKICAgIC8vIGFzc2VydCB0eG4uZXh0cmFfcHJvZ3JhbV9wYWdlcywgImV4dHJhX3Byb2dyYW1fcGFnZXMiCiAgICBkdXAKICAgIGd0eG5zIEV4dHJhUHJvZ3JhbVBhZ2VzCiAgICBhc3NlcnQgLy8gZXh0cmFfcHJvZ3JhbV9wYWdlcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTAxCiAgICAvLyBhc3NlcnQgdHhuLmxhc3RfbG9nLCAibGFzdF9sb2ciCiAgICBkdXAKICAgIGd0eG5zIExhc3RMb2cKICAgIGxlbgogICAgYXNzZXJ0IC8vIGxhc3RfbG9nCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDIKICAgIC8vIGFzc2VydCB0eG4ubnVtX2FwcHJvdmFsX3Byb2dyYW1fcGFnZXMsICJudW1fYXBwcm92YWxfcHJvZ3JhbV9wYWdlcyIKICAgIGR1cAogICAgZ3R4bnMgTnVtQXBwcm92YWxQcm9ncmFtUGFnZXMKICAgIGFzc2VydCAvLyBudW1fYXBwcm92YWxfcHJvZ3JhbV9wYWdlcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTAzCiAgICAvLyBhc3NlcnQgdHhuLm51bV9jbGVhcl9zdGF0ZV9wcm9ncmFtX3BhZ2VzLCAibnVtX2NsZWFyX3N0YXRlX3Byb2dyYW1fcGFnZXMiCiAgICBkdXAKICAgIGd0eG5zIE51bUNsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGFzc2VydCAvLyBudW1fY2xlYXJfc3RhdGVfcHJvZ3JhbV9wYWdlcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTA0CiAgICAvLyBhc3NlcnQgdHhuLmFwcF9hcmdzKDApLCAiYXBwX2FyZ3MoMCkiCiAgICBkdXAKICAgIGd0eG5zYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbGVuCiAgICBhc3NlcnQgLy8gYXBwX2FyZ3MoMCkKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEwNQogICAgLy8gYXNzZXJ0IHR4bi5hY2NvdW50cygwKSwgImFjY291bnRzKDApIgogICAgZHVwCiAgICBndHhuc2EgQWNjb3VudHMgMAogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGFjY291bnRzKDApCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDYKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRzKDApLCAiYXNzZXRzKDApIgogICAgZHVwCiAgICBndHhuc2EgQXNzZXRzIDAKICAgIGFzc2VydCAvLyBhc3NldHMoMCkKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEwNwogICAgLy8gYXNzZXJ0IHR4bi5hcHBzKDApLCAiYXBwcygwKSIKICAgIGR1cAogICAgZ3R4bnNhIEFwcGxpY2F0aW9ucyAwCiAgICBhc3NlcnQgLy8gYXBwcygwKQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTA4CiAgICAvLyBhc3NlcnQgdHhuLmFwcHJvdmFsX3Byb2dyYW1fcGFnZXMoMCksICJhcHByb3ZhbF9wcm9ncmFtX3BhZ2VzKDApIgogICAgZHVwCiAgICBndHhuc2EgQXBwcm92YWxQcm9ncmFtUGFnZXMgMAogICAgbGVuCiAgICBhc3NlcnQgLy8gYXBwcm92YWxfcHJvZ3JhbV9wYWdlcygwKQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTA5CiAgICAvLyBhc3NlcnQgdHhuLmNsZWFyX3N0YXRlX3Byb2dyYW1fcGFnZXMoMCksICJjbGVhcl9zdGF0ZV9wcm9ncmFtX3BhZ2VzKDApIgogICAgZ3R4bnNhIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMgMAogICAgbGVuCiAgICBhc3NlcnQgLy8gY2xlYXJfc3RhdGVfcHJvZ3JhbV9wYWdlcygwKQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5tdWx0aXBsZV90eG5zW3JvdXRpbmddKCkgLT4gdm9pZDoKbXVsdGlwbGVfdHhuczoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18yIC8vIDMKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMyAvLyBhcHBsCiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYXBwbAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAyCiAgICAtCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzMgLy8gYXBwbAogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGFwcGwKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzAgLy8gMQogICAgLQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBndHhucyBUeXBlRW51bQogICAgaW50Y18zIC8vIGFwcGwKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBhcHBsCiAgICBwdXNoaW50IDAKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExOAogICAgLy8gZm9yIGluZGV4LCBhcHAgaW4gdWVudW1lcmF0ZSgodHhuMSwgdHhuMiwgdHhuMykpOgogICAgc3dhcAoKbXVsdGlwbGVfdHhuc19mb3JfYm9keUAyOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTE5CiAgICAvLyBhc3NlcnQgYXBwLmdyb3VwX2luZGV4ID09IGluZGV4CiAgICBndHhucyBHcm91cEluZGV4CiAgICBkaWcgMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTE4CiAgICAvLyBmb3IgaW5kZXgsIGFwcCBpbiB1ZW51bWVyYXRlKCh0eG4xLCB0eG4yLCB0eG4zKSk6CiAgICBzd2l0Y2ggbXVsdGlwbGVfdHhuc19mb3JfaGVhZGVyXzFANCBtdWx0aXBsZV90eG5zX2Zvcl9oZWFkZXJfMkA1CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMTEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbXVsdGlwbGVfdHhuc19mb3JfaGVhZGVyXzJANToKICAgIGludGNfMSAvLyAyCiAgICBkaWcgMQogICAgYiBtdWx0aXBsZV90eG5zX2Zvcl9ib2R5QDIKCm11bHRpcGxlX3R4bnNfZm9yX2hlYWRlcl8xQDQ6CiAgICBpbnRjXzAgLy8gMQogICAgZGlnIDIKICAgIGIgbXVsdGlwbGVfdHhuc19mb3JfYm9keUAyCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmFueV90eG5bcm91dGluZ10oKSAtPiB2b2lkOgphbnlfdHhuOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTIxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzIgLy8gMwogICAgLQogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMSAvLyAyCiAgICAtCiAgICBzd2FwCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIHN3YXAKICAgIHB1c2hpbnQgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTI4CiAgICAvLyBmb3IgaW5kZXgsIHR4biBpbiB1ZW51bWVyYXRlKCh0eG4xLCB0eG4yLCB0eG4zKSk6CiAgICBzd2FwCgphbnlfdHhuX2Zvcl9ib2R5QDI6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMjkKICAgIC8vIGFzc2VydCB0eG4uZ3JvdXBfaW5kZXggPT0gaW5kZXgKICAgIGd0eG5zIEdyb3VwSW5kZXgKICAgIGRpZyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMjgKICAgIC8vIGZvciBpbmRleCwgdHhuIGluIHVlbnVtZXJhdGUoKHR4bjEsIHR4bjIsIHR4bjMpKToKICAgIHN3aXRjaCBhbnlfdHhuX2Zvcl9oZWFkZXJfMUA0IGFueV90eG5fZm9yX2hlYWRlcl8yQDUKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEyMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgphbnlfdHhuX2Zvcl9oZWFkZXJfMkA1OgogICAgaW50Y18xIC8vIDIKICAgIGRpZyAxCiAgICBiIGFueV90eG5fZm9yX2JvZHlAMgoKYW55X3R4bl9mb3JfaGVhZGVyXzFANDoKICAgIGludGNfMCAvLyAxCiAgICBkaWcgMgogICAgYiBhbnlfdHhuX2Zvcl9ib2R5QDIKCgovLyB0ZXN0X2Nhc2VzLnRyYW5zYWN0aW9uLmNvbnRyYWN0LlRyYW5zYWN0aW9uQ29udHJhY3QuZ3JvdXBfaW5pdFtyb3V0aW5nXSgpIC0+IHZvaWQ6Cmdyb3VwX2luaXQ6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMzEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMiAvLyAzCiAgICAtCiAgICBkdXAKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMgogICAgLQogICAgc3dhcAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBzd2FwCiAgICBwdXNoaW50IDAKICAgIHN3YXAKCmdyb3VwX2luaXRfZm9yX2JvZHlAMjoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzOQogICAgLy8gdHhuX2Zyb21faW5kZXggPSBndHhuLlRyYW5zYWN0aW9uKHR4bi5ncm91cF9pbmRleCkKICAgIGR1cAogICAgZ3R4bnMgR3JvdXBJbmRleAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTQwCiAgICAvLyBhc3NlcnQgdHhuLnR4bl9pZCA9PSB0eG5fZnJvbV9pbmRleC50eG5faWQKICAgIHN3YXAKICAgIGd0eG5zIFR4SUQKICAgIHN3YXAKICAgIGd0eG5zIFR4SUQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzOAogICAgLy8gZm9yIHR4biBpbiAodHhuMSwgdHhuMiwgdHhuMyk6CiAgICBzd2l0Y2ggZ3JvdXBfaW5pdF9mb3JfaGVhZGVyXzFANCBncm91cF9pbml0X2Zvcl9oZWFkZXJfMkA1CiAgICBwb3BuIDIKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjE0MQogICAgLy8gYXNzZXJ0IHR4bjEudHhuX2lkID09IGd0eG4uVHJhbnNhY3Rpb24oMCkudHhuX2lkCiAgICBndHhucyBUeElECiAgICBndHhuIDAgVHhJRAogICAgPT0KICAgIGFzc2VydAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTMxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCmdyb3VwX2luaXRfZm9yX2hlYWRlcl8yQDU6CiAgICBpbnRjXzEgLy8gMgogICAgZGlnIDEKICAgIGIgZ3JvdXBfaW5pdF9mb3JfYm9keUAyCgpncm91cF9pbml0X2Zvcl9oZWFkZXJfMUA0OgogICAgaW50Y18wIC8vIDEKICAgIGRpZyAyCiAgICBiIGdyb3VwX2luaXRfZm9yX2JvZHlAMgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5fY29tbW9uX2NoZWNrcyh0eG46IHVpbnQ2NCkgLT4gdm9pZDoKX2NvbW1vbl9jaGVja3M6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxNi0xNwogICAgLy8gQHN1YnJvdXRpbmUKICAgIC8vIGRlZiBfY29tbW9uX2NoZWNrcyhzZWxmLCB0eG46IGd0eG4uVHJhbnNhY3Rpb25CYXNlKSAtPiBOb25lOgogICAgcHJvdG8gMSAwCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxOQogICAgLy8gYXNzZXJ0IHR4bi5zZW5kZXIgPT0gb3AuR2xvYmFsLmNyZWF0b3JfYWRkcmVzcywgInNlbmRlciIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgU2VuZGVyCiAgICBnbG9iYWwgQ3JlYXRvckFkZHJlc3MKICAgID09CiAgICBhc3NlcnQgLy8gc2VuZGVyCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyMAogICAgLy8gYXNzZXJ0IHR4bi5mZWUsICJmZWUiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEZlZQogICAgYXNzZXJ0IC8vIGZlZQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MjEKICAgIC8vIGFzc2VydCB0eG4udHlwZSwgInR5cGUiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBhc3NlcnQgLy8gdHlwZQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MjIKICAgIC8vIGFzc2VydCB0eG4udHlwZV9ieXRlcywgInR5cGVfYnl0ZXMiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFR5cGUKICAgIGxlbgogICAgYXNzZXJ0IC8vIHR5cGVfYnl0ZXMKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjIzCiAgICAvLyBhc3NlcnQgdHhuLm5vdGUgPT0gQnl0ZXMoYiIiKSwgIm5vdGUiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE5vdGUKICAgIHB1c2hieXRlcyAweAogICAgPT0KICAgIGFzc2VydCAvLyBub3RlCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyNAogICAgLy8gYXNzZXJ0IHR4bi5ncm91cF9pbmRleCA9PSAwLCAiZ3JvdXBfaW5kZXgiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEdyb3VwSW5kZXgKICAgICEKICAgIGFzc2VydCAvLyBncm91cF9pbmRleAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MjUKICAgIC8vIGFzc2VydCB0eG4uZmlyc3RfdmFsaWQsICJmaXJzdF92YWxpZCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgRmlyc3RWYWxpZAogICAgYXNzZXJ0IC8vIGZpcnN0X3ZhbGlkCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyNi0yNwogICAgLy8gIyBhc3NlcnQgdHhuLmZpcnN0X3ZhbGlkX3RpbWUsICJmaXJzdF92YWxpZF90aW1lIiAjIHRoaXMgdmFsdWUgY2FuIGJlIGZsYWt5IGluIHRlc3RzCiAgICAvLyBhc3NlcnQgdHhuLmxhc3RfdmFsaWQsICJsYXN0X3ZhbGlkIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBMYXN0VmFsaWQKICAgIGFzc2VydCAvLyBsYXN0X3ZhbGlkCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyOQogICAgLy8gYXNzZXJ0IHR4bi5yZWtleV90byA9PSBvcC5HbG9iYWwuemVyb19hZGRyZXNzLCAicmVrZXlfdG8iCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJla2V5VG8KICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIGFzc2VydCAvLyByZWtleV90bwogICAgcmV0c3ViCg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAEAQIDBjEZFEQxGEEAR4IJBGtoAxgEFsSjLQRjmHLWBFD48cMEWzoAzwTNYik9BALqcuUEMFaECwSW75qVNhoAjgkAEQA2AFUAnwDMAOsBYQGgAcsAgARMXGG6NhoAjgEAAQAiQzEWIglJOBAiEkRJiAHmSTgHMgoSREk4CIHoBw1EOAkyAxJEIkMxFiIJSTgQIxJESYgBwUk4DkRJOAxESTgNRDg5RCJDMRYiCUk4ECQSREmIAaJJOCFESTgiREk4I0RJOCRESTglFURJOCYVREk4JxVESTgpMgMTREk4KjIDE0RJOCsyAxNEOCwyAxNEIkMxFiIJSTgQgQQSREmIAVdJOBFESTgSREk4EzIDE0RJOBQyAxNEOBUyAxNEIkMxFiIJSTgQgQUSREmIASpJOC1ESTguMgMTRDgvRCJDMRYiCUk4ECUSREmIAQxJOBhESTgZREk4G0RJOB1ESTgeFURJOB8VREk4MURJODNESTg0REk4NURJODZESTg3REk4OERJOD4VREk4QURJOENESTkaABVESTkcADIDE0RJOTAAREk5MgBESTlAABVEOUIAFUQiQzEWJAlJOBAlEkQxFiMJSU4COBAlEkQxFiIJSU4COBAlEkSBAEw4FksBEkSNAgAIAAIiQyNLAUL/7CJLAkL/5jEWJAkxFiMJTDEWIglMgQBMOBZLARJEjQIACAACIkMjSwFC/+wiSwJC/+YxFiQJSTEWIwlMMRYiCUyBAExJOBZMOBdMOBcSRI0CABEAC0YCOBczABcSRCJDI0sBQv/eIksCQv/YigEAi/84ADIJEkSL/zgBRIv/OBBEi/84DxVEi/84BYAAEkSL/zgWFESL/zgCRIv/OAREi/84IDIDEkSJ", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }