{ "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": [ 94, 118, 142, 187, 210, 233, 256, 278, 300, 322 ], "errorMessage": "OnCompletion is not NoOp" }, { "pc": [ 425 ], "errorMessage": "Payment should be for >1000 micro algos" }, { "pc": [ 416 ], "errorMessage": "Payment should be for this app" }, { "pc": [ 743 ], "errorMessage": "accounts(0)" }, { "pc": [ 734 ], "errorMessage": "app_args(0)" }, { "pc": [ 649 ], "errorMessage": "app_id" }, { "pc": [ 670 ], "errorMessage": "approval_program" }, { "pc": [ 762 ], "errorMessage": "approval_program_pages(0)" }, { "pc": [ 755 ], "errorMessage": "apps(0)" }, { "pc": [ 584 ], "errorMessage": "asset_amount" }, { "pc": [ 608 ], "errorMessage": "asset_close_to" }, { "pc": [ 521 ], "errorMessage": "asset_name" }, { "pc": [ 600 ], "errorMessage": "asset_receiver" }, { "pc": [ 592 ], "errorMessage": "asset_sender" }, { "pc": [ 749 ], "errorMessage": "assets(0)" }, { "pc": [ 326 ], "errorMessage": "can only call when creating" }, { "pc": [ 97, 121, 145, 190, 213, 236, 259, 281, 303 ], "errorMessage": "can only call when not creating" }, { "pc": [ 565 ], "errorMessage": "clawback" }, { "pc": [ 676 ], "errorMessage": "clear_state_program" }, { "pc": [ 769 ], "errorMessage": "clear_state_program_pages(0)" }, { "pc": [ 433 ], "errorMessage": "close_remainder_to" }, { "pc": [ 494 ], "errorMessage": "config_asset" }, { "pc": [ 504 ], "errorMessage": "decimals" }, { "pc": [ 509 ], "errorMessage": "default_frozen" }, { "pc": [ 711 ], "errorMessage": "extra_program_pages" }, { "pc": [ 350 ], "errorMessage": "fee" }, { "pc": [ 380 ], "errorMessage": "first_valid" }, { "pc": [ 557 ], "errorMessage": "freeze" }, { "pc": [ 630 ], "errorMessage": "freeze_account" }, { "pc": [ 622 ], "errorMessage": "freeze_asset" }, { "pc": [ 635 ], "errorMessage": "frozen" }, { "pc": [ 696 ], "errorMessage": "global_num_bytes" }, { "pc": [ 691 ], "errorMessage": "global_num_uint" }, { "pc": [ 375 ], "errorMessage": "group_index" }, { "pc": [ 717 ], "errorMessage": "last_log" }, { "pc": [ 385 ], "errorMessage": "last_valid" }, { "pc": [ 391 ], "errorMessage": "lease" }, { "pc": [ 706 ], "errorMessage": "local_num_bytes" }, { "pc": [ 701 ], "errorMessage": "local_num_uint" }, { "pc": [ 541 ], "errorMessage": "manager" }, { "pc": [ 533 ], "errorMessage": "metadata_hash" }, { "pc": [ 474 ], "errorMessage": "non_participation" }, { "pc": [ 369 ], "errorMessage": "note" }, { "pc": [ 664 ], "errorMessage": "num_accounts" }, { "pc": [ 659 ], "errorMessage": "num_app_args" }, { "pc": [ 722 ], "errorMessage": "num_approval_program_pages" }, { "pc": [ 686 ], "errorMessage": "num_apps" }, { "pc": [ 681 ], "errorMessage": "num_assets" }, { "pc": [ 727 ], "errorMessage": "num_clear_state_program_pages" }, { "pc": [ 654 ], "errorMessage": "on_completion" }, { "pc": [ 399 ], "errorMessage": "rekey_to" }, { "pc": [ 549 ], "errorMessage": "reserve" }, { "pc": [ 454 ], "errorMessage": "selection_key" }, { "pc": [ 345 ], "errorMessage": "sender" }, { "pc": [ 480 ], "errorMessage": "state_proof_key" }, { "pc": [ 499 ], "errorMessage": "total" }, { "pc": [ 269 ], "errorMessage": "transaction type is acfg" }, { "pc": [ 224 ], "errorMessage": "transaction type is afrz" }, { "pc": [ 156, 167, 178, 201 ], "errorMessage": "transaction type is appl" }, { "pc": [ 247 ], "errorMessage": "transaction type is axfer" }, { "pc": [ 291 ], "errorMessage": "transaction type is keyreg" }, { "pc": [ 313 ], "errorMessage": "transaction type is pay" }, { "pc": [ 337 ], "errorMessage": "txn_id" }, { "pc": [ 355 ], "errorMessage": "type" }, { "pc": [ 361 ], "errorMessage": "type_bytes" }, { "pc": [ 515 ], "errorMessage": "unit_name" }, { "pc": [ 527 ], "errorMessage": "url" }, { "pc": [ 464 ], "errorMessage": "vote_first" }, { "pc": [ 448 ], "errorMessage": "vote_key" }, { "pc": [ 459 ], "errorMessage": "vote_key_dilution" }, { "pc": [ 469 ], "errorMessage": "vote_last" }, { "pc": [ 579 ], "errorMessage": "xfer_asset" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAxIDAgMiAzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gTnVtQXBwQXJncwogICAgYnogbWFpbl9hZnRlcl9pZl9lbHNlQDE2CiAgICBwdXNoYnl0ZXNzIDB4NGM1YzYxYmEgMHg2YjY4MDMxOCAweDE2YzRhMzJkIDB4NjM5ODcyZDYgMHg1MGY4ZjFjMyAweDViM2EwMGNmIDB4Y2Q2MjI5M2QgMHgwMmVhNzJlNSAweDMwNTY4NDBiIDB4OTZlZjlhOTUgLy8gbWV0aG9kICJjcmVhdGUoKXZvaWQiLCBtZXRob2QgInBheShwYXkpdm9pZCIsIG1ldGhvZCAia2V5KGtleXJlZyl2b2lkIiwgbWV0aG9kICJhc3NldF9jb25maWcoYWNmZyl2b2lkIiwgbWV0aG9kICJhc3NldF90cmFuc2ZlcihheGZlcil2b2lkIiwgbWV0aG9kICJhc3NldF9mcmVlemUoYWZyeil2b2lkIiwgbWV0aG9kICJhcHBsaWNhdGlvbl9jYWxsKGFwcGwpdm9pZCIsIG1ldGhvZCAibXVsdGlwbGVfdHhucyhhcHBsLGFwcGwsYXBwbCl2b2lkIiwgbWV0aG9kICJhbnlfdHhuKHR4bix0eG4sdHhuKXZvaWQiLCBtZXRob2QgImdyb3VwX2luaXQodHhuLHR4bix0eG4pdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIG1haW5fY3JlYXRlX3JvdXRlQDMgbWFpbl9wYXlfcm91dGVANCBtYWluX2tleV9yb3V0ZUA1IG1haW5fYXNzZXRfY29uZmlnX3JvdXRlQDYgbWFpbl9hc3NldF90cmFuc2Zlcl9yb3V0ZUA3IG1haW5fYXNzZXRfZnJlZXplX3JvdXRlQDggbWFpbl9hcHBsaWNhdGlvbl9jYWxsX3JvdXRlQDkgbWFpbl9tdWx0aXBsZV90eG5zX3JvdXRlQDEwIG1haW5fYW55X3R4bl9yb3V0ZUAxMSBtYWluX2dyb3VwX2luaXRfcm91dGVAMTIKCm1haW5fYWZ0ZXJfaWZfZWxzZUAxNjoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExCiAgICAvLyBjbGFzcyBUcmFuc2FjdGlvbkNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIGludGNfMSAvLyAwCiAgICByZXR1cm4KCm1haW5fZ3JvdXBfaW5pdF9yb3V0ZUAxMjoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExCiAgICAvLyBjbGFzcyBUcmFuc2FjdGlvbkNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzMgLy8gMwogICAgLQogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMiAvLyAyCiAgICAtCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIGdyb3VwX2luaXQKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYW55X3R4bl9yb3V0ZUAxMToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEyMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExCiAgICAvLyBjbGFzcyBUcmFuc2FjdGlvbkNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzMgLy8gMwogICAgLQogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMiAvLyAyCiAgICAtCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEyMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIGFueV90eG4KICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fbXVsdGlwbGVfdHhuc19yb3V0ZUAxMDoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIGlzIG5vdCBOb09wCiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBub3QgY3JlYXRpbmcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExCiAgICAvLyBjbGFzcyBUcmFuc2FjdGlvbkNvbnRyYWN0KGFyYzQuQVJDNENvbnRyYWN0KToKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzMgLy8gMwogICAgLQogICAgZHVwCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA2IC8vIGFwcGwKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBhcHBsCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18yIC8vIDIKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYXBwbAogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGFwcGwKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExMQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICBjYWxsc3ViIG11bHRpcGxlX3R4bnMKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYXBwbGljYXRpb25fY2FsbF9yb3V0ZUA5OgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYXBwbAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODUKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBhcHBsaWNhdGlvbl9jYWxsCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2Fzc2V0X2ZyZWV6ZV9yb3V0ZUA4OgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIHB1c2hpbnQgNSAvLyBhZnJ6CiAgICA9PQogICAgYXNzZXJ0IC8vIHRyYW5zYWN0aW9uIHR5cGUgaXMgYWZyegogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzcKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBhc3NldF9mcmVlemUKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYXNzZXRfdHJhbnNmZXJfcm91dGVANzoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjY4CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTEKICAgIC8vIGNsYXNzIFRyYW5zYWN0aW9uQ29udHJhY3QoYXJjNC5BUkM0Q29udHJhY3QpOgogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBwdXNoaW50IDQgLy8gYXhmZXIKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBheGZlcgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NjgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgY2FsbHN1YiBhc3NldF90cmFuc2ZlcgogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgoKbWFpbl9hc3NldF9jb25maWdfcm91dGVANjoKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjUxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTEKICAgIC8vIGNsYXNzIFRyYW5zYWN0aW9uQ29udHJhY3QoYXJjNC5BUkM0Q29udHJhY3QpOgogICAgdHhuIEdyb3VwSW5kZXgKICAgIGludGNfMCAvLyAxCiAgICAtCiAgICBkdXAKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBpbnRjXzMgLy8gYWNmZwogICAgPT0KICAgIGFzc2VydCAvLyB0cmFuc2FjdGlvbiB0eXBlIGlzIGFjZmcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjUxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgYXNzZXRfY29uZmlnCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2tleV9yb3V0ZUA1OgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDAKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMiAvLyBrZXlyZWcKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBrZXlyZWcKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQwCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIga2V5CiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX3BheV9yb3V0ZUA0OgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMQogICAgLy8gY2xhc3MgVHJhbnNhY3Rpb25Db250cmFjdChhcmM0LkFSQzRDb250cmFjdCk6CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18wIC8vIDEKICAgIC0KICAgIGR1cAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMCAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjMxCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIGNhbGxzdWIgcGF5CiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX2NyZWF0ZV9yb3V0ZUAzOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZChjcmVhdGU9InJlcXVpcmUiKQogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gY3JlYXRpbmcKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLnRyYW5zYWN0aW9uLmNvbnRyYWN0LlRyYW5zYWN0aW9uQ29udHJhY3QuX2NvbW1vbl9jaGVja3ModHhuOiB1aW50NjQpIC0+IHZvaWQ6Cl9jb21tb25fY2hlY2tzOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTYtMTcKICAgIC8vIEBzdWJyb3V0aW5lCiAgICAvLyBkZWYgX2NvbW1vbl9jaGVja3Moc2VsZiwgdHhuOiBndHhuLlRyYW5zYWN0aW9uQmFzZSkgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTgKICAgIC8vIGFzc2VydCB0eG4udHhuX2lkLCAidHhuX2lkIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBUeElECiAgICBsZW4KICAgIGFzc2VydCAvLyB0eG5faWQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjE5CiAgICAvLyBhc3NlcnQgdHhuLnNlbmRlciA9PSBvcC5HbG9iYWwuY3JlYXRvcl9hZGRyZXNzLCAic2VuZGVyIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIGdsb2JhbCBDcmVhdG9yQWRkcmVzcwogICAgPT0KICAgIGFzc2VydCAvLyBzZW5kZXIKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjIwCiAgICAvLyBhc3NlcnQgdHhuLmZlZSwgImZlZSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgRmVlCiAgICBhc3NlcnQgLy8gZmVlCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyMQogICAgLy8gYXNzZXJ0IHR4bi50eXBlLCAidHlwZSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgVHlwZUVudW0KICAgIGFzc2VydCAvLyB0eXBlCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyMgogICAgLy8gYXNzZXJ0IHR4bi50eXBlX2J5dGVzLCAidHlwZV9ieXRlcyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgVHlwZQogICAgbGVuCiAgICBhc3NlcnQgLy8gdHlwZV9ieXRlcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MjMKICAgIC8vIGFzc2VydCB0eG4ubm90ZSA9PSBCeXRlcyhiIiIpLCAibm90ZSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgTm90ZQogICAgcHVzaGJ5dGVzIDB4CiAgICA9PQogICAgYXNzZXJ0IC8vIG5vdGUKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjI0CiAgICAvLyBhc3NlcnQgdHhuLmdyb3VwX2luZGV4ID09IDAsICJncm91cF9pbmRleCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgR3JvdXBJbmRleAogICAgIQogICAgYXNzZXJ0IC8vIGdyb3VwX2luZGV4CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToyNQogICAgLy8gYXNzZXJ0IHR4bi5maXJzdF92YWxpZCwgImZpcnN0X3ZhbGlkIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGaXJzdFZhbGlkCiAgICBhc3NlcnQgLy8gZmlyc3RfdmFsaWQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjI2LTI3CiAgICAvLyAjIGFzc2VydCB0eG4uZmlyc3RfdmFsaWRfdGltZSwgImZpcnN0X3ZhbGlkX3RpbWUiICMgdGhpcyB2YWx1ZSBjYW4gYmUgZmxha3kgaW4gdGVzdHMKICAgIC8vIGFzc2VydCB0eG4ubGFzdF92YWxpZCwgImxhc3RfdmFsaWQiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIExhc3RWYWxpZAogICAgYXNzZXJ0IC8vIGxhc3RfdmFsaWQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjI4CiAgICAvLyBhc3NlcnQgdHhuLmxlYXNlLCAibGVhc2UiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIExlYXNlCiAgICBsZW4KICAgIGFzc2VydCAvLyBsZWFzZQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MjkKICAgIC8vIGFzc2VydCB0eG4ucmVrZXlfdG8gPT0gb3AuR2xvYmFsLnplcm9fYWRkcmVzcywgInJla2V5X3RvIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBSZWtleVRvCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBhc3NlcnQgLy8gcmVrZXlfdG8KICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5wYXkodHhuOiB1aW50NjQpIC0+IHZvaWQ6CnBheToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjMxLTMyCiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBwYXkoc2VsZiwgdHhuOiBndHhuLlBheW1lbnRUcmFuc2FjdGlvbikgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzMKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozNQogICAgLy8gdHhuLnJlY2VpdmVyID09IG9wLkdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgUmVjZWl2ZXIKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MzQtMzYKICAgIC8vIGFzc2VydCAoCiAgICAvLyAgICAgdHhuLnJlY2VpdmVyID09IG9wLkdsb2JhbC5jdXJyZW50X2FwcGxpY2F0aW9uX2FkZHJlc3MKICAgIC8vICksICJQYXltZW50IHNob3VsZCBiZSBmb3IgdGhpcyBhcHAiCiAgICBhc3NlcnQgLy8gUGF5bWVudCBzaG91bGQgYmUgZm9yIHRoaXMgYXBwCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozNwogICAgLy8gYXNzZXJ0IHR4bi5hbW91bnQgPiAxMDAwLCAiUGF5bWVudCBzaG91bGQgYmUgZm9yID4xMDAwIG1pY3JvIGFsZ29zIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBbW91bnQKICAgIHB1c2hpbnQgMTAwMCAvLyAxMDAwCiAgICA+CiAgICBhc3NlcnQgLy8gUGF5bWVudCBzaG91bGQgYmUgZm9yID4xMDAwIG1pY3JvIGFsZ29zCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTozOAogICAgLy8gYXNzZXJ0IHR4bi5jbG9zZV9yZW1haW5kZXJfdG8gPT0gb3AuR2xvYmFsLnplcm9fYWRkcmVzcywgImNsb3NlX3JlbWFpbmRlcl90byIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xvc2VSZW1haW5kZXJUbwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgYXNzZXJ0IC8vIGNsb3NlX3JlbWFpbmRlcl90bwogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmtleSh0eG46IHVpbnQ2NCkgLT4gdm9pZDoKa2V5OgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDAtNDEKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGtleShzZWxmLCB0eG46IGd0eG4uS2V5UmVnaXN0cmF0aW9uVHJhbnNhY3Rpb24pIC0+IE5vbmU6CiAgICBwcm90byAxIDAKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQyCiAgICAvLyBzZWxmLl9jb21tb25fY2hlY2tzKHR4bikKICAgIGZyYW1lX2RpZyAtMQogICAgY2FsbHN1YiBfY29tbW9uX2NoZWNrcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDMKICAgIC8vIGFzc2VydCB0eG4udm90ZV9rZXksICJ2b3RlX2tleSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgVm90ZVBLCiAgICBsZW4KICAgIGFzc2VydCAvLyB2b3RlX2tleQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDQKICAgIC8vIGFzc2VydCB0eG4uc2VsZWN0aW9uX2tleSwgInNlbGVjdGlvbl9rZXkiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFNlbGVjdGlvblBLCiAgICBsZW4KICAgIGFzc2VydCAvLyBzZWxlY3Rpb25fa2V5CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo0NQogICAgLy8gYXNzZXJ0IHR4bi52b3RlX2tleV9kaWx1dGlvbiwgInZvdGVfa2V5X2RpbHV0aW9uIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBWb3RlS2V5RGlsdXRpb24KICAgIGFzc2VydCAvLyB2b3RlX2tleV9kaWx1dGlvbgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDYKICAgIC8vIGFzc2VydCB0eG4udm90ZV9maXJzdCwgInZvdGVfZmlyc3QiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFZvdGVGaXJzdAogICAgYXNzZXJ0IC8vIHZvdGVfZmlyc3QKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQ3CiAgICAvLyBhc3NlcnQgdHhuLnZvdGVfbGFzdCwgInZvdGVfbGFzdCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgVm90ZUxhc3QKICAgIGFzc2VydCAvLyB2b3RlX2xhc3QKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjQ4CiAgICAvLyBhc3NlcnQgdHhuLm5vbl9wYXJ0aWNpcGF0aW9uLCAibm9uX3BhcnRpY2lwYXRpb24iCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE5vbnBhcnRpY2lwYXRpb24KICAgIGFzc2VydCAvLyBub25fcGFydGljaXBhdGlvbgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NDkKICAgIC8vIGFzc2VydCB0eG4uc3RhdGVfcHJvb2Zfa2V5LCAic3RhdGVfcHJvb2Zfa2V5IgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTdGF0ZVByb29mUEsKICAgIGxlbgogICAgYXNzZXJ0IC8vIHN0YXRlX3Byb29mX2tleQogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmFzc2V0X2NvbmZpZyh0eG46IHVpbnQ2NCkgLT4gdm9pZDoKYXNzZXRfY29uZmlnOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTEtNTIKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGFzc2V0X2NvbmZpZyhzZWxmLCB0eG46IGd0eG4uQXNzZXRDb25maWdUcmFuc2FjdGlvbikgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTMKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo1NQogICAgLy8gYXNzZXJ0IHR4bi5jb25maWdfYXNzZXQsICJjb25maWdfYXNzZXQiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIENvbmZpZ0Fzc2V0CiAgICBhc3NlcnQgLy8gY29uZmlnX2Fzc2V0CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo1NgogICAgLy8gYXNzZXJ0IHR4bi50b3RhbCwgInRvdGFsIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBDb25maWdBc3NldFRvdGFsCiAgICBhc3NlcnQgLy8gdG90YWwKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjU3CiAgICAvLyBhc3NlcnQgdHhuLmRlY2ltYWxzLCAiZGVjaW1hbHMiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIENvbmZpZ0Fzc2V0RGVjaW1hbHMKICAgIGFzc2VydCAvLyBkZWNpbWFscwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NTgKICAgIC8vIGFzc2VydCB0eG4uZGVmYXVsdF9mcm96ZW4sICJkZWZhdWx0X2Zyb3plbiIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ29uZmlnQXNzZXREZWZhdWx0RnJvemVuCiAgICBhc3NlcnQgLy8gZGVmYXVsdF9mcm96ZW4KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjU5CiAgICAvLyBhc3NlcnQgdHhuLnVuaXRfbmFtZSwgInVuaXRfbmFtZSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ29uZmlnQXNzZXRVbml0TmFtZQogICAgbGVuCiAgICBhc3NlcnQgLy8gdW5pdF9uYW1lCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2MAogICAgLy8gYXNzZXJ0IHR4bi5hc3NldF9uYW1lLCAiYXNzZXRfbmFtZSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ29uZmlnQXNzZXROYW1lCiAgICBsZW4KICAgIGFzc2VydCAvLyBhc3NldF9uYW1lCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2MQogICAgLy8gYXNzZXJ0IHR4bi51cmwsICJ1cmwiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIENvbmZpZ0Fzc2V0VVJMCiAgICBsZW4KICAgIGFzc2VydCAvLyB1cmwKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjYyCiAgICAvLyBhc3NlcnQgdHhuLm1ldGFkYXRhX2hhc2gsICJtZXRhZGF0YV9oYXNoIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBDb25maWdBc3NldE1ldGFkYXRhSGFzaAogICAgbGVuCiAgICBhc3NlcnQgLy8gbWV0YWRhdGFfaGFzaAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NjMKICAgIC8vIGFzc2VydCB0eG4ubWFuYWdlciwgIm1hbmFnZXIiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIENvbmZpZ0Fzc2V0TWFuYWdlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIG1hbmFnZXIKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjY0CiAgICAvLyBhc3NlcnQgdHhuLnJlc2VydmUsICJyZXNlcnZlIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBDb25maWdBc3NldFJlc2VydmUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyByZXNlcnZlCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2NQogICAgLy8gYXNzZXJ0IHR4bi5mcmVlemUsICJmcmVlemUiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIENvbmZpZ0Fzc2V0RnJlZXplCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gZnJlZXplCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2NgogICAgLy8gYXNzZXJ0IHR4bi5jbGF3YmFjaywgImNsYXdiYWNrIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBDb25maWdBc3NldENsYXdiYWNrCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gY2xhd2JhY2sKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5hc3NldF90cmFuc2Zlcih0eG46IHVpbnQ2NCkgLT4gdm9pZDoKYXNzZXRfdHJhbnNmZXI6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo2OC02OQogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgYXNzZXRfdHJhbnNmZXIoc2VsZiwgdHhuOiBndHhuLkFzc2V0VHJhbnNmZXJUcmFuc2FjdGlvbikgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzAKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo3MQogICAgLy8gYXNzZXJ0IHR4bi54ZmVyX2Fzc2V0LCAieGZlcl9hc3NldCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgWGZlckFzc2V0CiAgICBhc3NlcnQgLy8geGZlcl9hc3NldAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzIKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRfYW1vdW50LCAiYXNzZXRfYW1vdW50IgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBc3NldEFtb3VudAogICAgYXNzZXJ0IC8vIGFzc2V0X2Ftb3VudAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzMKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRfc2VuZGVyLCAiYXNzZXRfc2VuZGVyIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBc3NldFNlbmRlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGFzc2V0X3NlbmRlcgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzQKICAgIC8vIGFzc2VydCB0eG4uYXNzZXRfcmVjZWl2ZXIsICJhc3NldF9yZWNlaXZlciIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQXNzZXRSZWNlaXZlcgogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICAhPQogICAgYXNzZXJ0IC8vIGFzc2V0X3JlY2VpdmVyCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo3NQogICAgLy8gYXNzZXJ0IHR4bi5hc3NldF9jbG9zZV90bywgImFzc2V0X2Nsb3NlX3RvIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBc3NldENsb3NlVG8KICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBhc3NldF9jbG9zZV90bwogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmFzc2V0X2ZyZWV6ZSh0eG46IHVpbnQ2NCkgLT4gdm9pZDoKYXNzZXRfZnJlZXplOgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzctNzgKICAgIC8vIEBhcmM0LmFiaW1ldGhvZAogICAgLy8gZGVmIGFzc2V0X2ZyZWV6ZShzZWxmLCB0eG46IGd0eG4uQXNzZXRGcmVlemVUcmFuc2FjdGlvbikgLT4gTm9uZToKICAgIHByb3RvIDEgMAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6NzkKICAgIC8vIHNlbGYuX2NvbW1vbl9jaGVja3ModHhuKQogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIF9jb21tb25fY2hlY2tzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4MQogICAgLy8gYXNzZXJ0IHR4bi5mcmVlemVfYXNzZXQsICJmcmVlemVfYXNzZXQiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIEZyZWV6ZUFzc2V0CiAgICBhc3NlcnQgLy8gZnJlZXplX2Fzc2V0CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4MgogICAgLy8gYXNzZXJ0IHR4bi5mcmVlemVfYWNjb3VudCwgImZyZWV6ZV9hY2NvdW50IgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGcmVlemVBc3NldEFjY291bnQKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIGFzc2VydCAvLyBmcmVlemVfYWNjb3VudAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODMKICAgIC8vIGFzc2VydCB0eG4uZnJvemVuLCAiZnJvemVuIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBGcmVlemVBc3NldEZyb3plbgogICAgYXNzZXJ0IC8vIGZyb3plbgogICAgcmV0c3ViCgoKLy8gdGVzdF9jYXNlcy50cmFuc2FjdGlvbi5jb250cmFjdC5UcmFuc2FjdGlvbkNvbnRyYWN0LmFwcGxpY2F0aW9uX2NhbGwodHhuOiB1aW50NjQpIC0+IHZvaWQ6CmFwcGxpY2F0aW9uX2NhbGw6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4NS04NgogICAgLy8gQGFyYzQuYWJpbWV0aG9kCiAgICAvLyBkZWYgYXBwbGljYXRpb25fY2FsbChzZWxmLCB0eG46IGd0eG4uQXBwbGljYXRpb25DYWxsVHJhbnNhY3Rpb24pIC0+IE5vbmU6CiAgICBwcm90byAxIDAKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojg3CiAgICAvLyBzZWxmLl9jb21tb25fY2hlY2tzKHR4bikKICAgIGZyYW1lX2RpZyAtMQogICAgY2FsbHN1YiBfY29tbW9uX2NoZWNrcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6ODgKICAgIC8vIGFzc2VydCB0eG4uYXBwX2lkLCAiYXBwX2lkIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gYXBwX2lkCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo4OQogICAgLy8gYXNzZXJ0IHR4bi5vbl9jb21wbGV0aW9uLCAib25fY29tcGxldGlvbiIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICBhc3NlcnQgLy8gb25fY29tcGxldGlvbgogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTAKICAgIC8vIGFzc2VydCB0eG4ubnVtX2FwcF9hcmdzLCAibnVtX2FwcF9hcmdzIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBOdW1BcHBBcmdzCiAgICBhc3NlcnQgLy8gbnVtX2FwcF9hcmdzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5MQogICAgLy8gYXNzZXJ0IHR4bi5udW1fYWNjb3VudHMsICJudW1fYWNjb3VudHMiCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE51bUFjY291bnRzCiAgICBhc3NlcnQgLy8gbnVtX2FjY291bnRzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5MgogICAgLy8gYXNzZXJ0IHR4bi5hcHByb3ZhbF9wcm9ncmFtLCAiYXBwcm92YWxfcHJvZ3JhbSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQXBwcm92YWxQcm9ncmFtCiAgICBsZW4KICAgIGFzc2VydCAvLyBhcHByb3ZhbF9wcm9ncmFtCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5MwogICAgLy8gYXNzZXJ0IHR4bi5jbGVhcl9zdGF0ZV9wcm9ncmFtLCAiY2xlYXJfc3RhdGVfcHJvZ3JhbSIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQ2xlYXJTdGF0ZVByb2dyYW0KICAgIGxlbgogICAgYXNzZXJ0IC8vIGNsZWFyX3N0YXRlX3Byb2dyYW0KICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojk0CiAgICAvLyBhc3NlcnQgdHhuLm51bV9hc3NldHMsICJudW1fYXNzZXRzIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBOdW1Bc3NldHMKICAgIGFzc2VydCAvLyBudW1fYXNzZXRzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5NQogICAgLy8gYXNzZXJ0IHR4bi5udW1fYXBwcywgIm51bV9hcHBzIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBOdW1BcHBsaWNhdGlvbnMKICAgIGFzc2VydCAvLyBudW1fYXBwcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTYKICAgIC8vIGFzc2VydCB0eG4uZ2xvYmFsX251bV91aW50LCAiZ2xvYmFsX251bV91aW50IgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBHbG9iYWxOdW1VaW50CiAgICBhc3NlcnQgLy8gZ2xvYmFsX251bV91aW50CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weTo5NwogICAgLy8gYXNzZXJ0IHR4bi5nbG9iYWxfbnVtX2J5dGVzLCAiZ2xvYmFsX251bV9ieXRlcyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgR2xvYmFsTnVtQnl0ZVNsaWNlCiAgICBhc3NlcnQgLy8gZ2xvYmFsX251bV9ieXRlcwogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6OTgKICAgIC8vIGFzc2VydCB0eG4ubG9jYWxfbnVtX3VpbnQsICJsb2NhbF9udW1fdWludCIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgTG9jYWxOdW1VaW50CiAgICBhc3NlcnQgLy8gbG9jYWxfbnVtX3VpbnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5Ojk5CiAgICAvLyBhc3NlcnQgdHhuLmxvY2FsX251bV9ieXRlcywgImxvY2FsX251bV9ieXRlcyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgTG9jYWxOdW1CeXRlU2xpY2UKICAgIGFzc2VydCAvLyBsb2NhbF9udW1fYnl0ZXMKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEwMAogICAgLy8gYXNzZXJ0IHR4bi5leHRyYV9wcm9ncmFtX3BhZ2VzLCAiZXh0cmFfcHJvZ3JhbV9wYWdlcyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgRXh0cmFQcm9ncmFtUGFnZXMKICAgIGFzc2VydCAvLyBleHRyYV9wcm9ncmFtX3BhZ2VzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDEKICAgIC8vIGFzc2VydCB0eG4ubGFzdF9sb2csICJsYXN0X2xvZyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgTGFzdExvZwogICAgbGVuCiAgICBhc3NlcnQgLy8gbGFzdF9sb2cKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEwMgogICAgLy8gYXNzZXJ0IHR4bi5udW1fYXBwcm92YWxfcHJvZ3JhbV9wYWdlcywgIm51bV9hcHByb3ZhbF9wcm9ncmFtX3BhZ2VzIgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBOdW1BcHByb3ZhbFByb2dyYW1QYWdlcwogICAgYXNzZXJ0IC8vIG51bV9hcHByb3ZhbF9wcm9ncmFtX3BhZ2VzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDMKICAgIC8vIGFzc2VydCB0eG4ubnVtX2NsZWFyX3N0YXRlX3Byb2dyYW1fcGFnZXMsICJudW1fY2xlYXJfc3RhdGVfcHJvZ3JhbV9wYWdlcyIKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgTnVtQ2xlYXJTdGF0ZVByb2dyYW1QYWdlcwogICAgYXNzZXJ0IC8vIG51bV9jbGVhcl9zdGF0ZV9wcm9ncmFtX3BhZ2VzCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDQKICAgIC8vIGFzc2VydCB0eG4uYXBwX2FyZ3MoMCksICJhcHBfYXJncygwKSIKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18xIC8vIDAKICAgIGd0eG5zYXMgQXBwbGljYXRpb25BcmdzCiAgICBsZW4KICAgIGFzc2VydCAvLyBhcHBfYXJncygwKQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTA1CiAgICAvLyBhc3NlcnQgdHhuLmFjY291bnRzKDApLCAiYWNjb3VudHMoMCkiCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAwCiAgICBndHhuc2FzIEFjY291bnRzCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICBhc3NlcnQgLy8gYWNjb3VudHMoMCkKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEwNgogICAgLy8gYXNzZXJ0IHR4bi5hc3NldHMoMCksICJhc3NldHMoMCkiCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAwCiAgICBndHhuc2FzIEFzc2V0cwogICAgYXNzZXJ0IC8vIGFzc2V0cygwKQogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTA3CiAgICAvLyBhc3NlcnQgdHhuLmFwcHMoMCksICJhcHBzKDApIgogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzEgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbnMKICAgIGFzc2VydCAvLyBhcHBzKDApCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDgKICAgIC8vIGFzc2VydCB0eG4uYXBwcm92YWxfcHJvZ3JhbV9wYWdlcygwKSwgImFwcHJvdmFsX3Byb2dyYW1fcGFnZXMoMCkiCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAwCiAgICBndHhuc2FzIEFwcHJvdmFsUHJvZ3JhbVBhZ2VzCiAgICBsZW4KICAgIGFzc2VydCAvLyBhcHByb3ZhbF9wcm9ncmFtX3BhZ2VzKDApCiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMDkKICAgIC8vIGFzc2VydCB0eG4uY2xlYXJfc3RhdGVfcHJvZ3JhbV9wYWdlcygwKSwgImNsZWFyX3N0YXRlX3Byb2dyYW1fcGFnZXMoMCkiCiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMSAvLyAwCiAgICBndHhuc2FzIENsZWFyU3RhdGVQcm9ncmFtUGFnZXMKICAgIGxlbgogICAgYXNzZXJ0IC8vIGNsZWFyX3N0YXRlX3Byb2dyYW1fcGFnZXMoMCkKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5tdWx0aXBsZV90eG5zKHR4bjE6IHVpbnQ2NCwgdHhuMjogdWludDY0LCB0eG4zOiB1aW50NjQpIC0+IHZvaWQ6Cm11bHRpcGxlX3R4bnM6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMTEtMTE3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBtdWx0aXBsZV90eG5zKAogICAgLy8gICAgIHNlbGYsCiAgICAvLyAgICAgdHhuMTogZ3R4bi5BcHBsaWNhdGlvbkNhbGxUcmFuc2FjdGlvbiwKICAgIC8vICAgICB0eG4yOiBndHhuLkFwcGxpY2F0aW9uQ2FsbFRyYW5zYWN0aW9uLAogICAgLy8gICAgIHR4bjM6IGd0eG4uQXBwbGljYXRpb25DYWxsVHJhbnNhY3Rpb24sCiAgICAvLyApIC0+IE5vbmU6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgaW50Y18xIC8vIDAKCm11bHRpcGxlX3R4bnNfZm9yX2JvZHlAMToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExOQogICAgLy8gYXNzZXJ0IGFwcC5ncm91cF9pbmRleCA9PSBpbmRleAogICAgc3dhcAogICAgZ3R4bnMgR3JvdXBJbmRleAogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjExOAogICAgLy8gZm9yIGluZGV4LCBhcHAgaW4gdWVudW1lcmF0ZSgodHhuMSwgdHhuMiwgdHhuMykpOgogICAgc3dpdGNoIG11bHRpcGxlX3R4bnNfZm9yX2hlYWRlcl8xQDMgbXVsdGlwbGVfdHhuc19mb3JfaGVhZGVyXzJANAogICAgcmV0c3ViCgptdWx0aXBsZV90eG5zX2Zvcl9oZWFkZXJfMkA0OgogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMgogICAgYiBtdWx0aXBsZV90eG5zX2Zvcl9ib2R5QDEKCm11bHRpcGxlX3R4bnNfZm9yX2hlYWRlcl8xQDM6CiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAxCiAgICBiIG11bHRpcGxlX3R4bnNfZm9yX2JvZHlAMQoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5hbnlfdHhuKHR4bjE6IHVpbnQ2NCwgdHhuMjogdWludDY0LCB0eG4zOiB1aW50NjQpIC0+IHZvaWQ6CmFueV90eG46CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMjEtMTI3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBhbnlfdHhuKAogICAgLy8gICAgIHNlbGYsCiAgICAvLyAgICAgdHhuMTogZ3R4bi5UcmFuc2FjdGlvbiwKICAgIC8vICAgICB0eG4yOiBndHhuLlRyYW5zYWN0aW9uLAogICAgLy8gICAgIHR4bjM6IGd0eG4uVHJhbnNhY3Rpb24sCiAgICAvLyApIC0+IE5vbmU6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgaW50Y18xIC8vIDAKCmFueV90eG5fZm9yX2JvZHlAMToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEyOQogICAgLy8gYXNzZXJ0IHR4bi5ncm91cF9pbmRleCA9PSBpbmRleAogICAgc3dhcAogICAgZ3R4bnMgR3JvdXBJbmRleAogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEyOAogICAgLy8gZm9yIGluZGV4LCB0eG4gaW4gdWVudW1lcmF0ZSgodHhuMSwgdHhuMiwgdHhuMykpOgogICAgc3dpdGNoIGFueV90eG5fZm9yX2hlYWRlcl8xQDMgYW55X3R4bl9mb3JfaGVhZGVyXzJANAogICAgcmV0c3ViCgphbnlfdHhuX2Zvcl9oZWFkZXJfMkA0OgogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMgogICAgYiBhbnlfdHhuX2Zvcl9ib2R5QDEKCmFueV90eG5fZm9yX2hlYWRlcl8xQDM6CiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAxCiAgICBiIGFueV90eG5fZm9yX2JvZHlAMQoKCi8vIHRlc3RfY2FzZXMudHJhbnNhY3Rpb24uY29udHJhY3QuVHJhbnNhY3Rpb25Db250cmFjdC5ncm91cF9pbml0KHR4bjE6IHVpbnQ2NCwgdHhuMjogdWludDY0LCB0eG4zOiB1aW50NjQpIC0+IHZvaWQ6Cmdyb3VwX2luaXQ6CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxMzEtMTM3CiAgICAvLyBAYXJjNC5hYmltZXRob2QKICAgIC8vIGRlZiBncm91cF9pbml0KAogICAgLy8gICAgIHNlbGYsCiAgICAvLyAgICAgdHhuMTogZ3R4bi5UcmFuc2FjdGlvbiwKICAgIC8vICAgICB0eG4yOiBndHhuLlRyYW5zYWN0aW9uLAogICAgLy8gICAgIHR4bjM6IGd0eG4uVHJhbnNhY3Rpb24sCiAgICAvLyApIC0+IE5vbmU6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgaW50Y18xIC8vIDAKCmdyb3VwX2luaXRfZm9yX2JvZHlAMToKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzOQogICAgLy8gdHhuX2Zyb21faW5kZXggPSBndHhuLlRyYW5zYWN0aW9uKHR4bi5ncm91cF9pbmRleCkKICAgIHN3YXAKICAgIGR1cAogICAgZ3R4bnMgR3JvdXBJbmRleAogICAgLy8gdHJhbnNhY3Rpb24vY29udHJhY3QucHk6MTQwCiAgICAvLyBhc3NlcnQgdHhuLnR4bl9pZCA9PSB0eG5fZnJvbV9pbmRleC50eG5faWQKICAgIHN3YXAKICAgIGd0eG5zIFR4SUQKICAgIHN3YXAKICAgIGd0eG5zIFR4SUQKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHRyYW5zYWN0aW9uL2NvbnRyYWN0LnB5OjEzOAogICAgLy8gZm9yIHR4biBpbiAodHhuMSwgdHhuMiwgdHhuMyk6CiAgICBzd2l0Y2ggZ3JvdXBfaW5pdF9mb3JfaGVhZGVyXzFAMyBncm91cF9pbml0X2Zvcl9oZWFkZXJfMkA0CiAgICAvLyB0cmFuc2FjdGlvbi9jb250cmFjdC5weToxNDEKICAgIC8vIGFzc2VydCB0eG4xLnR4bl9pZCA9PSBndHhuLlRyYW5zYWN0aW9uKDApLnR4bl9pZAogICAgZnJhbWVfZGlnIC0zCiAgICBndHhucyBUeElECiAgICBpbnRjXzEgLy8gMAogICAgZ3R4bnMgVHhJRAogICAgPT0KICAgIGFzc2VydAogICAgcmV0c3ViCgpncm91cF9pbml0X2Zvcl9oZWFkZXJfMkA0OgogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzIgLy8gMgogICAgYiBncm91cF9pbml0X2Zvcl9ib2R5QDEKCmdyb3VwX2luaXRfZm9yX2hlYWRlcl8xQDM6CiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAxCiAgICBiIGdyb3VwX2luaXRfZm9yX2JvZHlAMQo=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMSAvLyAxCiAgICByZXR1cm4K" }, "byteCode": { "approval": "CiAEAQACAzEbQQBNggoETFxhugRraAMYBBbEoy0EY5hy1gRQ+PHDBFs6AM8EzWIpPQQC6nLlBDBWhAsElu+alTYaAI4KAOYA0AC6AKQAjQB2AF8AMgAaAAIjQzEZFEQxGEQxFiUJMRYkCTEWIgmIAtIiQzEZFEQxGEQxFiUJMRYkCTEWIgmIApoiQzEZFEQxGEQxFiUJSTgQgQYSRDEWJAlJOBCBBhJEMRYiCUk4EIEGEkSIAk0iQzEZFEQxGEQxFiIJSTgQgQYSRIgBsCJDMRkURDEYRDEWIglJOBCBBRJEiAF+IkMxGRREMRhEMRYiCUk4EIEEEkSIATwiQzEZFEQxGEQxFiIJSTgQJRJEiADRIkMxGRREMRhEMRYiCUk4ECQSRIgAjCJDMRkURDEYRDEWIglJOBAiEkSIAFQiQzEZFEQxGBREIkOKAQCL/zgXFUSL/zgAMgkSRIv/OAFEi/84EESL/zgPFUSL/zgFgAASRIv/OBYURIv/OAJEi/84BESL/zgGFUSL/zggMgMSRImKAQCL/4j/sIv/OAcyChJEi/84CIHoBw1Ei/84CTIDEkSJigEAi/+I/46L/zgKFUSL/zgLFUSL/zgORIv/OAxEi/84DUSL/zg5RIv/OD8VRImKAQCL/4j/X4v/OCFEi/84IkSL/zgjRIv/OCREi/84JRVEi/84JhVEi/84JxVEi/84KBVEi/84KTIDE0SL/zgqMgMTRIv/OCsyAxNEi/84LDIDE0SJigEAi/+I/wqL/zgRRIv/OBJEi/84EzIDE0SL/zgUMgMTRIv/OBUyAxNEiYoBAIv/iP7fi/84LUSL/zguMgMTRIv/OC9EiYoBAIv/iP7Ei/84GESL/zgZRIv/OBtEi/84HUSL/zgeFUSL/zgfFUSL/zgxRIv/ODNEi/84NESL/zg1RIv/ODZEi/84N0SL/zg4RIv/OD4VRIv/OEFEi/84Q0SL/yPCGhVEi/8jwhwyAxNEi/8jwjBEi/8jwjJEi/8jwkAVRIv/I8JCFUSJigMAi/0jTDgWSwESRI0CAAcAAYmL/yRC/+yL/iJC/+aKAwCL/SNMOBZLARJEjQIABwABiYv/JEL/7Iv+IkL/5ooDAIv9I0xJOBZMOBdMOBcSRI0CABAACov9OBcjOBcSRImL/yRC/96L/iJC/9g=", "clear": "CoEBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }