{ "name": "StructMultipleArrayUInt64", "structs": { "StructWithMultipleArrays": [ { "name": "a", "type": "uint64" }, { "name": "arr1", "type": "uint64[]" }, { "name": "arr2", "type": "uint64[]" }, { "name": "arr3", "type": "uint64[]" }, { "name": "b", "type": "uint64" }, { "name": "padding", "type": "byte[4096][]" } ] }, "methods": [ { "name": "bootstrap", "args": [], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "append", "args": [ { "type": "uint64", "name": "value" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "concat", "args": [ { "type": "uint64[]", "name": "array" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "pop", "args": [], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "get", "args": [ { "type": "uint64", "name": "idx" } ], "returns": { "type": "uint64" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "set", "args": [ { "type": "uint64", "name": "idx" }, { "type": "uint64", "name": "value" } ], "returns": { "type": "void" }, "actions": { "create": [], "call": [ "NoOp" ] }, "readonly": false, "events": [], "recommendations": {} }, { "name": "verify", "args": [ { "type": "uint64[]", "name": "expected" } ], "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": { "box": { "keyType": "AVMString", "valueType": "StructWithMultipleArrays", "key": "Ym94" } } }, "maps": { "global": {}, "local": {}, "box": {} } }, "bareActions": { "create": [ "NoOp" ], "call": [] }, "sourceInfo": { "approval": { "sourceInfo": [ { "pc": [ 635, 693, 751 ], "errorMessage": "cannot pop from empty array" }, { "pc": [ 1175 ], "errorMessage": "expected box length >4096" }, { "pc": [ 301 ], "errorMessage": "index access is out of bounds" }, { "pc": [ 640, 649, 698, 710, 756, 768, 813, 825, 843, 852, 874, 883, 924, 938, 959, 969, 988, 998, 1141, 1150 ], "errorMessage": "index out of bounds" }, { "pc": [ 268, 487, 551, 598, 1007 ], "errorMessage": "invalid array length header" }, { "pc": [ 498, 1016 ], "errorMessage": "invalid number of bytes for arc4.dynamic_array" }, { "pc": [ 389, 802, 903, 912 ], "errorMessage": "invalid number of bytes for arc4.uint64" } ], "pcOffsetMethod": "none" }, "clear": { "sourceInfo": [], "pcOffsetMethod": "none" } }, "source": { "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuYXBwcm92YWxfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIGludGNibG9jayAyIDggMSAxMiA0MDk2CiAgICBieXRlY2Jsb2NrICJib3giIDB4MTUxZjdjNzUgMHgwNjgxMDEKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6MzIKICAgIC8vIGNsYXNzIFN0cnVjdE11bHRpcGxlQXJyYXlVSW50NjQoQVJDNENvbnRyYWN0KToKICAgIHR4biBOdW1BcHBBcmdzCiAgICBieiBtYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE2CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQKICAgIHB1c2hieXRlc3MgMHhiZWM3NmQ4NyAweDM0MjhmZmVhIDB4NTk0OWNlNWQgMHhiODI1YTE0MiAweGI0MzY5YzM2IDB4Y2VkMWJkYzYgMHgzMTdhM2UwMyAvLyBtZXRob2QgImJvb3RzdHJhcCgpdm9pZCIsIG1ldGhvZCAiYXBwZW5kKHVpbnQ2NCl2b2lkIiwgbWV0aG9kICJjb25jYXQodWludDY0W10pdm9pZCIsIG1ldGhvZCAicG9wKCl1aW50NjQiLCBtZXRob2QgImdldCh1aW50NjQpdWludDY0IiwgbWV0aG9kICJzZXQodWludDY0LHVpbnQ2NCl2b2lkIiwgbWV0aG9kICJ2ZXJpZnkodWludDY0W10pdm9pZCIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDAKICAgIG1hdGNoIGJvb3RzdHJhcCBhcHBlbmQgY29uY2F0IHBvcCBnZXQgc2V0IHZlcmlmeQogICAgZXJyCgptYWluX19fYWxnb3B5X2RlZmF1bHRfY3JlYXRlQDE2OgogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgICEKICAgICYmCiAgICByZXR1cm4KCgovLyBfcHV5YV9saWIuYm94X2FyYzQuYm94X2R5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemUoYm94X2tleTogYnl0ZXMsIGFycmF5X29mZnNldDogdWludDY0LCBmaXhlZF9ieXRlX3NpemU6IHVpbnQ2NCkgLT4gdm9pZDoKYm94X2R5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemU6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICAtCiAgICBkdXAKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAtMgogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgc3dhcAogICAgZnJhbWVfZGlnIC0xCiAgICAqCiAgICArCiAgICBmcmFtZV9kaWcgLTMKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgcHVzaGJ5dGVzIDB4CiAgICBib3hfc3BsaWNlCiAgICBmcmFtZV9kaWcgLTMKICAgIGJveF9sZW4KICAgIHBvcAogICAgZnJhbWVfZGlnIC0xCiAgICAtCiAgICBmcmFtZV9kaWcgLTMKICAgIHN3YXAKICAgIGJveF9yZXNpemUKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5ib3hfYXJjNC5ib3hfZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWQoYm94X2tleTogYnl0ZXMsIGFycmF5X29mZnNldDogdWludDY0LCBuZXdfaXRlbXNfYnl0ZXM6IGJ5dGVzLCBuZXdfaXRlbXNfY291bnQ6IHVpbnQ2NCwgZml4ZWRfZWxlbWVudF9zaXplOiB1aW50NjQpIC0+IHZvaWQ6CmJveF9keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZDoKICAgIHByb3RvIDUgMAogICAgZnJhbWVfZGlnIC01CiAgICBmcmFtZV9kaWcgLTQKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfZGlnIC01CiAgICBib3hfbGVuCiAgICBwb3AKICAgIGZyYW1lX2RpZyAtMgogICAgZnJhbWVfZGlnIC0xCiAgICAqCiAgICArCiAgICBmcmFtZV9kaWcgLTUKICAgIHN3YXAKICAgIGJveF9yZXNpemUKICAgIGR1cAogICAgZnJhbWVfZGlnIC0yCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC01CiAgICBmcmFtZV9kaWcgLTQKICAgIHVuY292ZXIgMgogICAgYm94X3JlcGxhY2UKICAgIGZyYW1lX2RpZyAtNAogICAgaW50Y18wIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAtMQogICAgKgogICAgKwogICAgZnJhbWVfZGlnIC01CiAgICBzd2FwCiAgICBwdXNoaW50IDAKICAgIGZyYW1lX2RpZyAtMwogICAgYm94X3NwbGljZQogICAgcmV0c3ViCgoKLy8gX3B1eWFfbGliLmJveF9hcmM0LmJveF91cGRhdGVfb2Zmc2V0X2RlYyhib3hfa2V5OiBieXRlcywgb2Zmc2V0OiB1aW50NjQsIHZhbHVlOiB1aW50NjQpIC0+IHZvaWQ6CmJveF91cGRhdGVfb2Zmc2V0X2RlYzoKICAgIHByb3RvIDMgMAogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfZGlnIC0xCiAgICAtCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIC0zCiAgICBmcmFtZV9kaWcgLTIKICAgIHVuY292ZXIgMgogICAgYm94X3JlcGxhY2UKICAgIHJldHN1YgoKCi8vIF9wdXlhX2xpYi5ib3hfYXJjNC5ib3hfdXBkYXRlX29mZnNldF9pbmMoYm94X2tleTogYnl0ZXMsIG9mZnNldDogdWludDY0LCB2YWx1ZTogdWludDY0KSAtPiB2b2lkOgpib3hfdXBkYXRlX29mZnNldF9pbmM6CiAgICBwcm90byAzIDAKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAtMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICByZXRzdWIKCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuaW5jX2FycmF5KGFycjogYnl0ZXMsIGluYzogdWludDY0KSAtPiBieXRlcywgYnl0ZXM6CmluY19hcnJheToKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6OTMtOTQKICAgIC8vIEBzdWJyb3V0aW5lCiAgICAvLyBkZWYgaW5jX2FycmF5KGFycjogQXJyYXlVNjQsIGluYzogVUludDY0KSAtPiBBcnJheVU2NDoKICAgIHByb3RvIDIgMgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo5NgogICAgLy8gZm9yIGlkeCBpbiB1cmFuZ2UobmV3Lmxlbmd0aCk6CiAgICBmcmFtZV9kaWcgLTIKICAgIHB1c2hpbnQgMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZnJhbWVfZGlnIC0yCiAgICBwdXNoaW50IDAKCmluY19hcnJheV9mb3JfaGVhZGVyQDE6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojk2CiAgICAvLyBmb3IgaWR4IGluIHVyYW5nZShuZXcubGVuZ3RoKToKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGluY19hcnJheV9hZnRlcl9mb3JANAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo5NwogICAgLy8gbmV3W2lkeF0gKz0gaW5jCiAgICBzd2FwCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIHN3YXAKICAgIGRpZyAxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfZGlnIC0xCiAgICArCiAgICBpdG9iCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgc3dhcAogICAgcmVwbGFjZTMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBzd2FwCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojk2CiAgICAvLyBmb3IgaWR4IGluIHVyYW5nZShuZXcubGVuZ3RoKToKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBiIGluY19hcnJheV9mb3JfaGVhZGVyQDEKCmluY19hcnJheV9hZnRlcl9mb3JANDoKICAgIHBvcAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo5OAogICAgLy8gcmV0dXJuIG5ldwogICAgZnJhbWVfZGlnIC0yCiAgICB1bmNvdmVyIDIKICAgIHJldHN1YgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LmJvb3RzdHJhcFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmJvb3RzdHJhcDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6MzgKICAgIC8vIHNlbGYuYm94LnZhbHVlID0gU3RydWN0V2l0aE11bHRpcGxlQXJyYXlzKAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTozOC00NQogICAgLy8gc2VsZi5ib3gudmFsdWUgPSBTdHJ1Y3RXaXRoTXVsdGlwbGVBcnJheXMoCiAgICAvLyAgICAgYT1VSW50NjQoMSksCiAgICAvLyAgICAgYXJyMT1BcnJheVU2NCgpLAogICAgLy8gICAgIGFycjI9QXJyYXlVNjQoKSwKICAgIC8vICAgICBhcnIzPUFycmF5VTY0KCksCiAgICAvLyAgICAgYj1VSW50NjQoMiksCiAgICAvLyAgICAgcGFkZGluZz1MYXJnZUJ5dGVzKCksCiAgICAvLyApCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6MzgKICAgIC8vIHNlbGYuYm94LnZhbHVlID0gU3RydWN0V2l0aE11bHRpcGxlQXJyYXlzKAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTozOC00NQogICAgLy8gc2VsZi5ib3gudmFsdWUgPSBTdHJ1Y3RXaXRoTXVsdGlwbGVBcnJheXMoCiAgICAvLyAgICAgYT1VSW50NjQoMSksCiAgICAvLyAgICAgYXJyMT1BcnJheVU2NCgpLAogICAgLy8gICAgIGFycjI9QXJyYXlVNjQoKSwKICAgIC8vICAgICBhcnIzPUFycmF5VTY0KCksCiAgICAvLyAgICAgYj1VSW50NjQoMiksCiAgICAvLyAgICAgcGFkZGluZz1MYXJnZUJ5dGVzKCksCiAgICAvLyApCiAgICBwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAxMDAxODAwMWEwMDFjMDAwMDAwMDAwMDAwMDAwMjAwMWUwMDAwMDAwMDAwMDAwMDAwCiAgICBib3hfcHV0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjQ2CiAgICAvLyBzZWxmLmJveC52YWx1ZS5wYWRkaW5nLmFwcGVuZChCeXRlczQwOTYoKSkKICAgIGludGMgNCAvLyA0MDk2CiAgICBiemVybwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyMgogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBzd2FwCiAgICB1bmNvdmVyIDIKICAgIGludGNfMiAvLyAxCiAgICBpbnRjIDQgLy8gNDA5NgogICAgY2FsbHN1YiBib3hfZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NDAKICAgIC8vIGFycjE9QXJyYXlVNjQoKSwKICAgIHB1c2hieXRlcyAweDAwMDAKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NDcKICAgIC8vIHNlbGYudmVyaWZ5KEFycmF5VTY0KCkpCiAgICBjYWxsc3ViIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LnZlcmlmeQogICAgcG9wCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjM2CiAgICAvLyBAcHVibGljCiAgICBpbnRjXzIgLy8gMQogICAgcmV0dXJuCgoKLy8gdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LlN0cnVjdE11bHRpcGxlQXJyYXlVSW50NjQuYXBwZW5kW3JvdXRpbmddKCkgLT4gdm9pZDoKYXBwZW5kOgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo0OQogICAgLy8gQHB1YmxpYwogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LnVpbnQ2NAogICAgYnRvaQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo1MQogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyMS5hcHBlbmQodmFsdWUpCiAgICBkdXAKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMTAKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjIKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyNAogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMQogICAgaW50Y18xIC8vIDgKICAgIGNhbGxzdWIgYm94X2R5bmFtaWNfYXJyYXlfY29uY2F0X2ZpeGVkCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjUyCiAgICAvLyBzZWxmLmJveC52YWx1ZS5hcnIyLmFwcGVuZCh2YWx1ZSArIDEpCiAgICBkdXAKICAgIGludGNfMiAvLyAxCiAgICArCiAgICBpdG9iCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDEwCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyAxMgogICAgaW50Y18xIC8vIDgKICAgIGNhbGxzdWIgYm94X3VwZGF0ZV9vZmZzZXRfaW5jCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDIyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgaW50Y18yIC8vIDEKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF9keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo1MwogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyMy5hcHBlbmQodmFsdWUgKyAyKQogICAgaW50Y18wIC8vIDIKICAgICsKICAgIGl0b2IKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyAxMgogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDIyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgaW50Y18yIC8vIDEKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF9keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo0OQogICAgLy8gQHB1YmxpYwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LmNvbmNhdFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmNvbmNhdDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NTUKICAgIC8vIEBwdWJsaWMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgcHVzaGludCAwCiAgICBleHRyYWN0X3VpbnQxNiAvLyBvbiBlcnJvcjogaW52YWxpZCBhcnJheSBsZW5ndGggaGVhZGVyCiAgICBkdXAKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBkdXAKICAgIGludGNfMCAvLyAyCiAgICArCiAgICBkaWcgMwogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8dWludDY0PgogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo1NwogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyMS5leHRlbmQoYXJyYXkpCiAgICBkaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMTAKICAgIGRpZyAzCiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBkaWcgMwogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjIKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjQKICAgIHVuY292ZXIgMgogICAgdW5jb3ZlciAzCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NTgKICAgIC8vIHNlbGYuYm94LnZhbHVlLmFycjIuZXh0ZW5kKGluY19hcnJheShhcnJheSwgVUludDY0KDEpKSkKICAgIGludGNfMiAvLyAxCiAgICBjYWxsc3ViIGluY19hcnJheQogICAgZGlnIDEKICAgIGV4dHJhY3QgMiAwCiAgICB1bmNvdmVyIDIKICAgIHB1c2hpbnQgMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAxMAogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBpbnRjXzMgLy8gMTIKICAgIGRpZyAzCiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyMgogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2luYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgdW5jb3ZlciAzCiAgICB1bmNvdmVyIDMKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF9keW5hbWljX2FycmF5X2NvbmNhdF9maXhlZAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo1OQogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyMy5leHRlbmQoaW5jX2FycmF5KGFycmF5LCBVSW50NjQoMikpKQogICAgaW50Y18wIC8vIDIKICAgIGNhbGxzdWIgaW5jX2FycmF5CiAgICBwb3AKICAgIGR1cAogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIHB1c2hpbnQgMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgZHVwCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjIKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9pbmMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIHVuY292ZXIgMwogICAgdW5jb3ZlciAzCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfZHluYW1pY19hcnJheV9jb25jYXRfZml4ZWQKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NTUKICAgIC8vIEBwdWJsaWMKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC5wb3Bbcm91dGluZ10oKSAtPiB2b2lkOgpwb3A6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjYzCiAgICAvLyByZXN1bHQgPSBzZWxmLmJveC52YWx1ZS5hcnIxLnBvcCgpCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDI0CiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGR1cAogICAgaW50Y18yIC8vIDEKICAgIC0gLy8gb24gZXJyb3I6IGNhbm5vdCBwb3AgZnJvbSBlbXB0eSBhcnJheQogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIDwKICAgIGFzc2VydCAvLyBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgcHVzaGludCAyNgogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgIGJveF9leHRyYWN0IC8vIG9uIGVycm9yOiBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMTAKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2RlYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9kZWMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjIKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2RlYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyNAogICAgaW50Y18xIC8vIDgKICAgIGNhbGxzdWIgYm94X2R5bmFtaWNfYXJyYXlfcG9wX2ZpeGVkX3NpemUKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NjQKICAgIC8vIGFzc2VydCBzZWxmLmJveC52YWx1ZS5hcnIyLnBvcCgpID09IHJlc3VsdCArIDEKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMTAKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgZGlnIDEKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZHVwCiAgICBpbnRjXzIgLy8gMQogICAgLSAvLyBvbiBlcnJvcjogY2Fubm90IHBvcCBmcm9tIGVtcHR5IGFycmF5CiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgPAogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgICoKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICBib3hfZXh0cmFjdCAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfdXBkYXRlX29mZnNldF9kZWMKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjIKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF91cGRhdGVfb2Zmc2V0X2RlYwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzEgLy8gOAogICAgY2FsbHN1YiBib3hfZHluYW1pY19hcnJheV9wb3BfZml4ZWRfc2l6ZQogICAgZGlnIDEKICAgIGludGNfMiAvLyAxCiAgICArCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjY1CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUuYXJyMy5wb3AoKSA9PSByZXN1bHQgKyAyCiAgICBieXRlY18wIC8vICJib3giCiAgICBpbnRjXzMgLy8gMTIKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgZGlnIDEKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZHVwCiAgICBpbnRjXzIgLy8gMQogICAgLSAvLyBvbiBlcnJvcjogY2Fubm90IHBvcCBmcm9tIGVtcHR5IGFycmF5CiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgPAogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgICoKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIGludGNfMSAvLyA4CiAgICBib3hfZXh0cmFjdCAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgYnRvaQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyMgogICAgaW50Y18xIC8vIDgKICAgIGNhbGxzdWIgYm94X3VwZGF0ZV9vZmZzZXRfZGVjCiAgICBieXRlY18wIC8vICJib3giCiAgICB1bmNvdmVyIDIKICAgIGludGNfMSAvLyA4CiAgICBjYWxsc3ViIGJveF9keW5hbWljX2FycmF5X3BvcF9maXhlZF9zaXplCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo2MQogICAgLy8gQHB1YmxpYwogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LmdldFtyb3V0aW5nXSgpIC0+IHZvaWQ6CmdldDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NjgKICAgIC8vIEBwdWJsaWMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NzAKICAgIC8vIHJlc3VsdCA9IHNlbGYuYm94LnZhbHVlLmFycjFbaWR4XQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyNAogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBkaWcgMQogICAgPgogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgaW50Y18xIC8vIDgKICAgICoKICAgIHB1c2hpbnQgMjYKICAgIGRpZyAxCiAgICArCiAgICBieXRlY18wIC8vICJib3giCiAgICBzd2FwCiAgICBpbnRjXzEgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgYnRvaQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo3MQogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLmFycjJbaWR4XSA9PSByZXN1bHQgKyAxCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDEwCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGRpZyAxCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGRpZyA1CiAgICA+CiAgICBhc3NlcnQgLy8gaW5kZXggb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDIKICAgICsKICAgIGRpZyAzCiAgICArCiAgICBieXRlY18wIC8vICJib3giCiAgICBzd2FwCiAgICBpbnRjXzEgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo3MgogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLmFycjNbaWR4XSA9PSByZXN1bHQgKyAyCiAgICBieXRlY18wIC8vICJib3giCiAgICBpbnRjXzMgLy8gMTIKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgZGlnIDEKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgdW5jb3ZlciA1CiAgICA+CiAgICBhc3NlcnQgLy8gaW5kZXggb3V0IG9mIGJvdW5kcwogICAgaW50Y18wIC8vIDIKICAgICsKICAgIHVuY292ZXIgMwogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgaW50Y18xIC8vIDgKICAgIGJveF9leHRyYWN0IC8vIG9uIGVycm9yOiBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBidG9pCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo2OAogICAgLy8gQHB1YmxpYwogICAgYnl0ZWNfMSAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LnNldFtyb3V0aW5nXSgpIC0+IHZvaWQ6CnNldDoKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NzUKICAgIC8vIEBwdWJsaWMKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYXJjNC51aW50NjQKICAgIGR1cAogICAgYnRvaQogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo3NwogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyMVtpZHhdID0gdmFsdWUKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjQKICAgIGludGNfMCAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZGlnIDMKICAgID4KICAgIGFzc2VydCAvLyBpbmRleCBvdXQgb2YgYm91bmRzCiAgICBkaWcgMgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIHB1c2hpbnQgMjYKICAgIGRpZyAxCiAgICArCiAgICBieXRlY18wIC8vICJib3giCiAgICBzd2FwCiAgICB1bmNvdmVyIDQKICAgIGJveF9yZXBsYWNlIC8vIG9uIGVycm9yOiBpbmRleCBvdXQgb2YgYm91bmRzCiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojc4CiAgICAvLyBzZWxmLmJveC52YWx1ZS5hcnIyW2lkeF0gPSB2YWx1ZSArIDEKICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMQogICAgKwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAxMAogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBkaWcgMQogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBkaWcgNQogICAgPgogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyAyCiAgICArCiAgICBkaWcgMgogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZSAvLyBvbiBlcnJvcjogaW5kZXggb3V0IG9mIGJvdW5kcwogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo3OQogICAgLy8gc2VsZi5ib3gudmFsdWUuYXJyM1tpZHhdID0gdmFsdWUgKyAyCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgaXRvYgogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgaW50Y18zIC8vIDEyCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGRpZyAxCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIHVuY292ZXIgNAogICAgPgogICAgYXNzZXJ0IC8vIGluZGV4IG91dCBvZiBib3VuZHMKICAgIGludGNfMCAvLyAyCiAgICArCiAgICB1bmNvdmVyIDIKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHN3YXAKICAgIHVuY292ZXIgMgogICAgYm94X3JlcGxhY2UgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIC8vIGxhcmdlX2JveF9vcGVyYXRpb25zL3N0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQucHk6NzUKICAgIC8vIEBwdWJsaWMKICAgIGludGNfMiAvLyAxCiAgICByZXR1cm4KCgovLyB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC52ZXJpZnlbcm91dGluZ10oKSAtPiB2b2lkOgp2ZXJpZnk6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjgxCiAgICAvLyBAcHVibGljCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIHB1c2hpbnQgMAogICAgZXh0cmFjdF91aW50MTYgLy8gb24gZXJyb3I6IGludmFsaWQgYXJyYXkgbGVuZ3RoIGhlYWRlcgogICAgaW50Y18xIC8vIDgKICAgICoKICAgIGludGNfMCAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBhcmM0LmR5bmFtaWNfYXJyYXk8dWludDY0PgogICAgY2FsbHN1YiB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC52ZXJpZnkKICAgIHBvcAogICAgaW50Y18yIC8vIDEKICAgIHJldHVybgoKCi8vIHRlc3RfY2FzZXMubGFyZ2VfYm94X29wZXJhdGlvbnMuc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5TdHJ1Y3RNdWx0aXBsZUFycmF5VUludDY0LnZlcmlmeShleHBlY3RlZDogYnl0ZXMpIC0+IGJ5dGVzOgp0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC52ZXJpZnk6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjgxLTgyCiAgICAvLyBAcHVibGljCiAgICAvLyBkZWYgdmVyaWZ5KHNlbGYsIGV4cGVjdGVkOiBBcnJheVU2NCkgLT4gTm9uZToKICAgIHByb3RvIDEgMQoKdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LlN0cnVjdE11bHRpcGxlQXJyYXlVSW50NjQudmVyaWZ5X3doaWxlX3RvcEA2OgogICAgcHVzaGludCAyMDEwCiAgICBnbG9iYWwgT3Bjb2RlQnVkZ2V0CiAgICA+CiAgICBieiB0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC52ZXJpZnlfYWZ0ZXJfd2hpbGVAMTEKICAgIGl0eG5fYmVnaW4KICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBwdXNoaW50IDUgLy8gRGVsZXRlQXBwbGljYXRpb24KICAgIGl0eG5fZmllbGQgT25Db21wbGV0aW9uCiAgICBieXRlY18yIC8vIDB4MDY4MTAxCiAgICBpdHhuX2ZpZWxkIEFwcHJvdmFsUHJvZ3JhbQogICAgYnl0ZWNfMiAvLyAweDA2ODEwMQogICAgaXR4bl9maWVsZCBDbGVhclN0YXRlUHJvZ3JhbQogICAgcHVzaGludCAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgaXR4bl9zdWJtaXQKICAgIGIgdGVzdF9jYXNlcy5sYXJnZV9ib3hfb3BlcmF0aW9ucy5zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LlN0cnVjdE11bHRpcGxlQXJyYXlVSW50NjQudmVyaWZ5X3doaWxlX3RvcEA2Cgp0ZXN0X2Nhc2VzLmxhcmdlX2JveF9vcGVyYXRpb25zLnN0cnVjdF9tdWx0aXBsZV9hcnJheV91aW50NjQuU3RydWN0TXVsdGlwbGVBcnJheVVJbnQ2NC52ZXJpZnlfYWZ0ZXJfd2hpbGVAMTE6CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojg0CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUuYXJyMSA9PSBleHBlY3RlZAogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyNAogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDIKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIHB1c2hpbnQgMjQKICAgIHVuY292ZXIgMgogICAgYm94X2V4dHJhY3QKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo4NQogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLmFycjIgPT0gaW5jX2FycmF5KGV4cGVjdGVkLCBVSW50NjQoMSkpCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDEwCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGRpZyAxCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGludGNfMSAvLyA4CiAgICAqCiAgICBpbnRjXzAgLy8gMgogICAgKwogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgY292ZXIgMgogICAgYm94X2V4dHJhY3QKICAgIGZyYW1lX2RpZyAtMQogICAgaW50Y18yIC8vIDEKICAgIGNhbGxzdWIgaW5jX2FycmF5CiAgICBmcmFtZV9idXJ5IC0xCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojg2CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUuYXJyMyA9PSBpbmNfYXJyYXkoZXhwZWN0ZWQsIFVJbnQ2NCgyKSkKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGludGNfMyAvLyAxMgogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBkaWcgMQogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzEgLy8gOAogICAgKgogICAgaW50Y18wIC8vIDIKICAgICsKICAgIGJ5dGVjXzAgLy8gImJveCIKICAgIGNvdmVyIDIKICAgIGJveF9leHRyYWN0CiAgICBmcmFtZV9kaWcgLTEKICAgIGludGNfMCAvLyAyCiAgICBjYWxsc3ViIGluY19hcnJheQogICAgZnJhbWVfYnVyeSAtMQogICAgPT0KICAgIGFzc2VydAogICAgLy8gbGFyZ2VfYm94X29wZXJhdGlvbnMvc3RydWN0X211bHRpcGxlX2FycmF5X3VpbnQ2NC5weTo4NwogICAgLy8gYXNzZXJ0IHNlbGYuYm94LnZhbHVlLmEgPT0gMQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAwCiAgICBpbnRjXzEgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojg4CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUuYiA9PSAyCiAgICBieXRlY18wIC8vICJib3giCiAgICBwdXNoaW50IDE0CiAgICBpbnRjXzEgLy8gOAogICAgYm94X2V4dHJhY3QgLy8gb24gZXJyb3I6IGluZGV4IG91dCBvZiBib3VuZHMKICAgIGJ0b2kKICAgIGludGNfMCAvLyAyCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5Ojg5CiAgICAvLyBhc3NlcnQgc2VsZi5ib3gudmFsdWUucGFkZGluZy5sZW5ndGggPT0gMQogICAgYnl0ZWNfMCAvLyAiYm94IgogICAgcHVzaGludCAyMgogICAgaW50Y18wIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBieXRlY18wIC8vICJib3giCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGludGNfMiAvLyAxCiAgICA9PQogICAgYXNzZXJ0CiAgICAvLyBsYXJnZV9ib3hfb3BlcmF0aW9ucy9zdHJ1Y3RfbXVsdGlwbGVfYXJyYXlfdWludDY0LnB5OjkwCiAgICAvLyBhc3NlcnQgc2VsZi5ib3gubGVuZ3RoID4gNDA5NiwgImV4cGVjdGVkIGJveCBsZW5ndGggPjQwOTYiCiAgICBieXRlY18wIC8vICJib3giCiAgICBib3hfbGVuCiAgICBwb3AKICAgIGludGMgNCAvLyA0MDk2CiAgICA+CiAgICBhc3NlcnQgLy8gZXhwZWN0ZWQgYm94IGxlbmd0aCA+NDA5NgogICAgZnJhbWVfZGlnIC0xCiAgICByZXRzdWIK", "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBhbGdvcHkuYXJjNC5BUkM0Q29udHJhY3QuY2xlYXJfc3RhdGVfcHJvZ3JhbSgpIC0+IHVpbnQ2NDoKbWFpbjoKICAgIHB1c2hpbnQgMQogICAgcmV0dXJuCg==" }, "byteCode": { "approval": "CyAFAggBDIAgJgMDYm94BBUffHUDBoEBMRtBAEAxGRREMRhEggcEvsdthwQ0KP/qBFlJzl0EuCWhQgS0Npw2BM7RvcYEMXo+AzYaAI4HAN4BIgGFAhcCvwMkA40AMRkUMRgUEEOKAwCL/Yv+IroXJAlJFlcGAov9i/5PAruL/iIITIv/CwiL/UyL/4AA0ov9vUiL/wmL/UzTiYoFAIv7i/wiuheL+71Ii/6L/wsIi/tM00mL/ggWVwYCi/uL/E8Cu4v8IghMi/8LCIv7TIEAi/3SiYoDAIv9i/4iuheL/wkWVwYCi/2L/k8Cu4mKAwCL/Yv+IroXi/8IFlcGAov9i/5PAruJigICi/6BAFmL/oEASUsDDEEAHExJVwIASwIjC0xLAVuL/wgWTCIITF1MJAhC/91Ii/5PAokovEgogCAAAAAAAAAAAQAYABoAHAAAAAAAAAACAB4AAAAAAAAAAL8hBK8ogRYiuhcoTE8CJCEEiP8mgAIAAIgChEgkQzYaAUkVIxJEF0kWKIEKI4j/XCglI4j/ViiBFiOI/08ogRhPAiQjiP7zSSQIFiiBCiK6FyglI4j/NSiBFiOI/y4oTE8CJCOI/tMiCBYoJSK6FyiBFiOI/xYoTE8CJCOI/rskQzYaAUmBAFlJIwtJIghLAxUSREsCVwIAKIEKSwOI/uwoJUsDiP7lKIEWTwOI/t0ogRhPAk8DI4j+gCSI/udLAVcCAE8CgQBZSSMLKIEKIroXKCVLA4j+tCiBFk8DiP6sKExPA08DI4j+UCKI/rdISVcCAEyBAFlJIwsoJSK6FyiBFk8DiP6FKExPA08DI4j+KSRDKIEYIroXSSQJSU8CDEQjC4EaCChMI7pJFyiBCiOI/kAoJSOI/joogRYjiP4zKIEYI4j9viiBCiK6FyhLASK6F0kkCUlPAgxESwEiCEwjCwgoTCO6FyglI4j+BSiBFiOI/f4oTwIjiP2JSwEkCBJEKCUiuhcoSwEiuhdJJAlJTwIMREsBIghMIwsIKEwjuhcogRYjiP3KKE8CI4j9VUwiCBJEKUxQsCRDNhoBSRUjEkQXKIEYIroXSwENREkjC4EaSwEIKEwjukkXKIEKIroXKEsBIroXSwUNRCIISwMIKEwjuhdLASQIEkQoJSK6FyhLASK6F08FDUQiCE8DCChMI7oXTCIIEkQpTFCwJEM2GgFJFSMSRBc2GgJJFSMSREkXKIEYIroXSwMNREsCIwuBGksBCChMTwS7SwEkCBYogQoiuhcoSwEiuhdLBQ1EIghLAggoTE8Cu0wiCBYoJSK6FyhLASK6F08EDUQiCE8CCChMTwK7JEM2GgFJgQBZIwsiCEsBFRJEiAADSCRDigEBgdoPMgwNQQAXsYEGshCBBbIZKrIeKrIfgQCyAbNC/+AogRgiuhcjCyIIKIEYTwK6i/8SRCiBCiK6FyhLASK6FyMLIggoTgK6i/8kiPy1jP8SRCglIroXKEsBIroXIwsiCChOArqL/yKI/JiM/xJEKIEAI7oXJBJEKIEOI7oXIhJEKIEWIroXKEwiuhckEkQovUghBA1Ei/+J", "clear": "C4EBQw==" }, "compilerInfo": { "compiler": "puya", "compilerVersion": { "major": 99, "minor": 99, "patch": 99 } }, "events": [], "templateVariables": {} }