Name: series-workflowddthl Phase: Succeeded StartedAt: 2026-07-11 12:58:00 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[0] Phase: Succeeded StartedAt: 2026-07-11 12:58:00 +0000 UTC FinishedAt: 2026-07-11 13:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[0].run-triage Phase: Succeeded StartedAt: 2026-07-11 12:58:00 +0000 UTC FinishedAt: 2026-07-11 13:09:53 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "059b281a-ca9a-4fa0-87cf-056da233d997" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_node_create", "tipc_node_delete_from_list" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgY2U4MjNmM2NlYTMzZmViZThiZGVjODIxZTZkYzFjN2JiZjRiN2Q4ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDEzOjA5OjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC00OSw2ICYjNDM7NDksMTYgQEBcbiAjZGVmaW5lIElOVkFMSURfTk9ERV9TSUdcdDB4MTAwMDBcbiAjZGVmaW5lIE5PREVfQ0xFQU5VUF9BRlRFUlx0MzAwMDAwXG4gXG4mIzQzOy8qIEhhcmQgY2FwIG9uIHRoZSBudW1iZXIgb2YgbGl2ZSBzdHJ1Y3QgdGlwY19ub2RlIGVudHJpZXMgYSBzaW5nbGUgbmV0XG4mIzQzOyAqIG5hbWVzcGFjZSB3aWxsIGhvbGQuIEV2ZXJ5IGVudHJ5IChwcmVsaW1pbmFyeSBvciBub3QpIGFsc28gcGlucyBhXG4mIzQzOyAqIGJyb2FkY2FzdC1yZWNlaXZlIGxpbmssIGEgdW5pY2FzdCBsaW5rIHNsb3QgYW5kIGEga2VlcGFsaXZlIHRpbWVyLCBzb1xuJiM0MzsgKiB0aGlzIGJvdW5kcyB3b3JzdC1jYXNlIG1lbW9yeSBmcm9tIHVuYXV0aGVudGljYXRlZCBMSU5LX0NPTkZJRyBkaXNjb3ZlcnlcbiYjNDM7ICogdHJhZmZpYyB0aGUgc2FtZSB3YXkgbmVpZ2hfYWxsb2MoKSYjMzk7cyBnY190aHJlc2gzIGJvdW5kcyB0aGUgQVJQL05EIHRhYmxlXG4mIzQzOyAqIChzZWUgbmV0L2NvcmUvbmVpZ2hib3VyLmMpLiA4MTkyIGlzIGZhciBhYm92ZSBhbnkgcmVhbGlzdGljIFRJUEMgY2x1c3RlclxuJiM0MzsgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxuJiM0MzsgKi9cbiYjNDM7I2RlZmluZSBUSVBDX01BWF9OT0RFU1x0XHQ4MTkyXG4mIzQzO1xuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXG4gICogVElQQ19OT1RJRllfTk9ERV9ET1dOOiBub3RpZnkgbm9kZSBpcyBkb3duXG4gICogVElQQ19OT1RJRllfTk9ERV9VUDogbm90aWZ5IG5vZGUgaXMgdXBcbkBAIC01MzUsNiAmIzQzOzU0NSwxMSBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxuIFxuIFx0XHRnb3RvIGV4aXQ7XG4gXHR9XG4mIzQzO1x0aWYgKHRuLVx1MDAzZW51bV9ub2RlcyBcdTAwM2U9IFRJUENfTUFYX05PREVTKSB7XG4mIzQzO1x0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwmIzM0O1RvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG4mIzQzO1x0XHRnb3RvIGV4aXQ7XG4mIzQzO1x0fVxuIFx0biA9IGt6YWxsb2Nfb2JqKCpuLCBHRlBfQVRPTUlDKTtcbiBcdGlmICghbikge1xuIFx0XHRwcl93YXJuKFwmIzM0O05vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXG5cJiMzNDspO1xuQEAgLTU5OCw2ICYjNDM7NjEzLDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdFx0XHRicmVhaztcbiBcdH1cbiBcdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xuJiM0MztcdHRuLVx1MDAzZW51bV9ub2RlcyYjNDM7JiM0Mzs7XG4gXHQvKiBDYWxjdWxhdGUgY2x1c3RlciBjYXBhYmlsaXRpZXMgKi9cbiBcdHRuLVx1MDAzZWNhcGFiaWxpdGllcyA9IFRJUENfTk9ERV9DQVBBQklMSVRJRVM7XG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSh0ZW1wX25vZGUsIFx1MDAyNnRuLVx1MDAzZW5vZGVfbGlzdCwgbGlzdCkge1xuQEAgLTYzMCw2ICYjNDM7NjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcbiAjZW5kaWZcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWxpc3QpO1xuIFx0aGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWhhc2gpO1xuJiM0MztcdHRpcGNfbmV0KG5vZGUtXHUwMDNlbmV0KS1cdTAwM2VudW1fbm9kZXMtLTtcbiBcdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjZTgyM2YzY2VhMzNmZWJlOGJkZWM4MjFlNmRjMWM3YmJmNGI3ZDhkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMTM6MDk6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9ub2RlLmMgYi9uZXQvdGlwYy9ub2RlLmMKaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9ub2RlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbm9kZS5jCkBAIC00OSw2ICYjNDM7NDksMTYgQEAKICNkZWZpbmUgSU5WQUxJRF9OT0RFX1NJRwkweDEwMDAwCiAjZGVmaW5lIE5PREVfQ0xFQU5VUF9BRlRFUgkzMDAwMDAKIAomIzQzOy8qIEhhcmQgY2FwIG9uIHRoZSBudW1iZXIgb2YgbGl2ZSBzdHJ1Y3QgdGlwY19ub2RlIGVudHJpZXMgYSBzaW5nbGUgbmV0CiYjNDM7ICogbmFtZXNwYWNlIHdpbGwgaG9sZC4gRXZlcnkgZW50cnkgKHByZWxpbWluYXJ5IG9yIG5vdCkgYWxzbyBwaW5zIGEKJiM0MzsgKiBicm9hZGNhc3QtcmVjZWl2ZSBsaW5rLCBhIHVuaWNhc3QgbGluayBzbG90IGFuZCBhIGtlZXBhbGl2ZSB0aW1lciwgc28KJiM0MzsgKiB0aGlzIGJvdW5kcyB3b3JzdC1jYXNlIG1lbW9yeSBmcm9tIHVuYXV0aGVudGljYXRlZCBMSU5LX0NPTkZJRyBkaXNjb3ZlcnkKJiM0MzsgKiB0cmFmZmljIHRoZSBzYW1lIHdheSBuZWlnaF9hbGxvYygpJiMzOTtzIGdjX3RocmVzaDMgYm91bmRzIHRoZSBBUlAvTkQgdGFibGUKJiM0MzsgKiAoc2VlIG5ldC9jb3JlL25laWdoYm91ci5jKS4gODE5MiBpcyBmYXIgYWJvdmUgYW55IHJlYWxpc3RpYyBUSVBDIGNsdXN0ZXIKJiM0MzsgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgVElQQ19NQVhfTk9ERVMJCTgxOTIKJiM0MzsKIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlCiAgKiBUSVBDX05PVElGWV9OT0RFX0RPV046IG5vdGlmeSBub2RlIGlzIGRvd24KICAqIFRJUENfTk9USUZZX05PREVfVVA6IG5vdGlmeSBub2RlIGlzIHVwCkBAIC01MzUsNiAmIzQzOzU0NSwxMSBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLAogCiAJCWdvdG8gZXhpdDsKIAl9CiYjNDM7CWlmICh0bi0mZ3Q7bnVtX25vZGVzICZndDs9IFRJUENfTUFYX05PREVTKSB7CiYjNDM7CQlwcl93YXJuX3JhdGVsaW1pdGVkKCYjMzQ7VG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxuJiMzNDssCiYjNDM7CQkJCSAgICB0bi0mZ3Q7bnVtX25vZGVzLCBhZGRyKTsKJiM0MzsJCWdvdG8gZXhpdDsKJiM0MzsJfQogCW4gPSBremFsbG9jX29iaigqbiwgR0ZQX0FUT01JQyk7CiAJaWYgKCFuKSB7CiAJCXByX3dhcm4oJiMzNDtOb2RlIGNyZWF0aW9uIGZhaWxlZCwgbm8gbWVtb3J5XG4mIzM0Oyk7CkBAIC01OTgsNiAmIzQzOzYxMyw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsCiAJCQlicmVhazsKIAl9CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmFtcDtuLSZndDtsaXN0LCAmYW1wO3RlbXBfbm9kZS0mZ3Q7bGlzdCk7CiYjNDM7CXRuLSZndDtudW1fbm9kZXMmIzQzOyYjNDM7OwogCS8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqLwogCXRuLSZndDtjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRlbXBfbm9kZSwgJmFtcDt0bi0mZ3Q7bm9kZV9saXN0LCBsaXN0KSB7CkBAIC02MzAsNiAmIzQzOzY0Niw3IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0KHN0cnVjdCB0aXBjX25vZGUgKm5vZGUpCiAjZW5kaWYKIAlsaXN0X2RlbF9yY3UoJmFtcDtub2RlLSZndDtsaXN0KTsKIAlobGlzdF9kZWxfcmN1KCZhbXA7bm9kZS0mZ3Q7aGFzaCk7CiYjNDM7CXRpcGNfbmV0KG5vZGUtJmd0O25ldCktJmd0O251bV9ub2Rlcy0tOwogCXRpcGNfbm9kZV9wdXQobm9kZSk7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM1OQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFRJUEMgTm9kZSBMaW1pdCBQYXRjaCoqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHB1dHRpbmcgYSBoYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMgd2l0aGluIGEgbmV0d29yayBuYW1lc3BhY2UuIEl0IGxvb2tzIGxpa2UgdGhlIGxpbWl0IGlzIGRlZmluZWQgYXMgYFRJUENfTUFYX05PREVTYCwgc2V0IHRvIDgxOTIsIHdoaWNoIHNlZW1zIHJlYXNvbmFibGUuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgaW4gYHRpcGNfbm9kZV9jcmVhdGVgIHdoZXJlIGl0IGNoZWNrcyBpZiB0aGUgY3VycmVudCBudW1iZXIgb2Ygbm9kZXMsIHJlcHJlc2VudGVkIGJ5IGB0bi0mZ3Q7bnVtX25vZGVzYCwgaGFzIGhpdCB0aGF0IGxpbWl0LiBJZiBzbywgdGhlIHBhdGNoJiMzOTtzIGxvZ2ljIGRyb3BzIHRoZSBuZXcgcGVlci4gTWFrZXMgc2Vuc2Ug4oCTIHByZXZlbnQgcmVzb3VyY2UgZXhoYXVzdGlvbi4gQW5kLCBvZiBjb3Vyc2UsIHRoZXnigJl2ZSBhZGRlZCBsb2dpYyB0byBpbmNyZW1lbnQgYHRuLSZndDtudW1fbm9kZXNgIHdoZW4gYSBub2RlIGpvaW5zIHRoZSBwYXJ0eSwgYW5kIGRlY3JlbWVudCBpdCB3aGVuIG9uZSBsZWF2ZXMuIFN0YW5kYXJkIGFjY291bnRpbmcuCgpOb3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGB0bi0mZ3Q7bnVtX25vZGVzYCBpcyBiZWluZyBtYW5hZ2VkLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbm9kZS5jYCBhbmQgbGlrZWx5IGBuZXQvdGlwYy9ub2RlLmhgIG9yIG1heWJlIGV2ZW4gYG5ldC90aXBjL2NvcmUuaGAgdG8gc2VlIGhvdyBpdCYjMzk7cyBkZWZpbmVkIGFuZCB3aGVyZSBpdCBsaXZlcy4gQWgsIHJpZ2h0LCBgdG5gIGlzIGEgYHN0cnVjdCB0aXBjX25ldCAqYCwgc28gaXQmIzM5O3MgYSBmaWVsZCB3aXRoaW4gdGhhdCBzdHJ1Y3R1cmUuIExldCYjMzk7cyBkbyBhIHF1aWNrIGBncmVwYCBmb3IgYG51bV9ub2Rlc2AgYW5kIHRyYWNlIGl0cyB1c2FnZSB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBnZXQgdGhlIHByZWNpc2UgcGljdHVyZS4gVGhhdCYjMzk7bGwgdGVsbCBtZSBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBlbHNlIGludGVyZXN0aW5nIGdvaW5nIG9uIHJlbGF0ZWQgdG8gdGhhdCBjb3VudGVyLiBHb29kLCB0aG9yb3VnaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtudW1fbm9kZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvY29yZS5oPTk0PXN0cnVjdCB0aXBjX25ldCB7XG4tLVxubmV0L3RpcGMvY29yZS5oLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbm9kZV9saXN0O1xubmV0L3RpcGMvY29yZS5oOjEwODpcdHUzMiBudW1fbm9kZXM7XG5uZXQvdGlwYy9jb3JlLmgtMTA5LVx0dTMyIG51bV9saW5rcztcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTU1LSAqIEBkb21haW46IG5ldHdvcmsgZG9tYWluIHRvIHdoaWNoIGxpbmtzIGNhbiBiZSBlc3RhYmxpc2hlZFxubmV0L3RpcGMvZGlzY292ZXIuYzo1NjogKiBAbnVtX25vZGVzOiBudW1iZXIgb2Ygbm9kZXMgY3VycmVudGx5IGRpc2NvdmVyZWQgKGkuZS4gd2l0aCBhbiBhY3RpdmUgbGluaylcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNTctICogQGxvY2s6IHNwaW5sb2NrIGZvciBjb250cm9sbGluZyBhY2Nlc3MgdG8gcmVxdWVzdHNcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTYzPXN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIge1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmMtNjctXHR1MzIgZG9tYWluO1xubmV0L3RpcGMvZGlzY292ZXIuYzo2ODpcdGludCBudW1fbm9kZXM7XG5uZXQvdGlwYy9kaXNjb3Zlci5jLTY5LVx0c3BpbmxvY2tfdCBsb2NrO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9MjY1PXZvaWQgdGlwY19kaXNjX2FkZF9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0yNjctXHRzcGluX2xvY2tfYmgoXHUwMDI2ZC1cdTAwM2Vsb2NrKTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjY4Olx0ZC1cdTAwM2VudW1fbm9kZXMmIzQzOyYjNDM7O1xubmV0L3RpcGMvZGlzY292ZXIuYy0yNjktXHRzcGluX3VubG9ja19iaChcdTAwMjZkLVx1MDAzZWxvY2spO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjc0PXZvaWQgdGlwY19kaXNjX3JlbW92ZV9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0yNzgtXHRzcGluX2xvY2tfYmgoXHUwMDI2ZC1cdTAwM2Vsb2NrKTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mjc5Olx0ZC1cdTAwM2VudW1fbm9kZXMtLTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjgwOlx0bnVtID0gZC1cdTAwM2VudW1fbm9kZXM7XG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI4MS1cdGludHYgPSBkLVx1MDAzZXRpbWVyX2ludHY7XG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYz0yOTU9c3RhdGljIHZvaWQgdGlwY19kaXNjX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDYtXHQvKiBTdG9wIHNlYXJjaGluZyBpZiBvbmx5IGRlc2lyZWQgbm9kZSBoYXMgYmVlbiBmb3VuZCAqL1xubmV0L3RpcGMvZGlzY292ZXIuYzozMDc6XHRpZiAodGlwY19ub2RlKGQtXHUwMDNlZG9tYWluKSBcdTAwMjZcdTAwMjYgZC1cdTAwM2VudW1fbm9kZXMpIHtcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzA4LVx0XHRkLVx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5BQ1RJVkU7XG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0zMjQtXHRcdGQtXHUwMDNldGltZXJfaW50diAqPSAyO1xubmV0L3RpcGMvZGlzY292ZXIuYzozMjU6XHRcdGlmIChkLVx1MDAzZW51bV9ub2RlcyBcdTAwMjZcdTAwMjYgZC1cdTAwM2V0aW1lcl9pbnR2IFx1MDAzZSBUSVBDX0RJU0NfU0xPVylcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI2LVx0XHRcdGQtXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19TTE9XO1xubmV0L3RpcGMvZGlzY292ZXIuYzozMjc6XHRcdGVsc2UgaWYgKCFkLVx1MDAzZW51bV9ub2RlcyBcdTAwMjZcdTAwMjYgZC1cdTAwM2V0aW1lcl9pbnR2IFx1MDAzZSBUSVBDX0RJU0NfRkFTVClcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI4LVx0XHRcdGQtXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19GQVNUO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9MzUyPWludCB0aXBjX2Rpc2NfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfYmVhcmVyICpiLFxuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzc2LVx0ZC1cdTAwM2Vkb21haW4gPSBiLVx1MDAzZWRvbWFpbjtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mzc3Olx0ZC1cdTAwM2VudW1fbm9kZXMgPSAwO1xubmV0L3RpcGMvZGlzY292ZXIuYy0zNzgtXHRkLVx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5JVDtcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTQxMT12b2lkIHRpcGNfZGlzY19yZXNldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTQyMS1cdGQtXHUwMDNlZG9tYWluID0gYi1cdTAwM2Vkb21haW47XG5uZXQvdGlwYy9kaXNjb3Zlci5jOjQyMjpcdGQtXHUwMDNlbnVtX25vZGVzID0gMDtcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIzLVx0ZC1cdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX0lOSVQ7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTQ3OD1zdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxuLS1cbm5ldC90aXBjL25vZGUuYy01NDctXHR9XG5uZXQvdGlwYy9ub2RlLmM6NTQ4Olx0aWYgKHRuLVx1MDAzZW51bV9ub2RlcyBcdTAwM2U9IFRJUENfTUFYX05PREVTKSB7XG5uZXQvdGlwYy9ub2RlLmMtNTQ5LVx0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwmIzM0O1RvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXG5cJiMzNDssXG5uZXQvdGlwYy9ub2RlLmM6NTUwOlx0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG5uZXQvdGlwYy9ub2RlLmMtNTUxLVx0XHRnb3RvIGV4aXQ7XG4tLVxubmV0L3RpcGMvbm9kZS5jLTYxNS1cdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xubmV0L3RpcGMvbm9kZS5jOjYxNjpcdHRuLVx1MDAzZW51bV9ub2RlcyYjNDM7JiM0Mzs7XG5uZXQvdGlwYy9ub2RlLmMtNjE3LVx0LyogQ2FsY3VsYXRlIGNsdXN0ZXIgY2FwYWJpbGl0aWVzICovXG4tLVxubmV0L3RpcGMvbm9kZS5jPTY0Mj1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdChzdHJ1Y3QgdGlwY19ub2RlICpub2RlKVxuLS1cbm5ldC90aXBjL25vZGUuYy02NDgtXHRobGlzdF9kZWxfcmN1KFx1MDAyNm5vZGUtXHUwMDNlaGFzaCk7XG5uZXQvdGlwYy9ub2RlLmM6NjQ5Olx0dGlwY19uZXQobm9kZS1cdTAwM2VuZXQpLVx1MDAzZW51bV9ub2Rlcy0tO1xubmV0L3RpcGMvbm9kZS5jLTY1MC1cdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI5OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDM2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRoaXMgVElQQyBOb2RlIExpbWl0PyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtJcyB0aGlzIGZ1enphYmxlPyYjMzQ7IEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCYjMzk7cyBmdW5kYW1lbnRhbGx5IGp1c3QgcHJldmVudGluZyB0aGUgY3JlYXRpb24gb2YgbW9yZSB0aGFuIDgxOTIgbm9kZXMuIENyZWF0aW5nIHRoYXQgbWFueSBub2RlcyB0byBmdXp6IHRoaXMuLi4gdGhhdCYjMzk7cyBhIGxvdCBvZiBvdmVyaGVhZC4KClRoZXJlJiMzOTtzIG5vIGNvbXBsZXggbG9naWMgaGVyZSwgaXQmIzM5O3MgYSBzaW1wbGUgY291bnRlciwgYW4gaW5jcmVtZW50LCBhIGRlY3JlbWVudCwgYW5kIGEgY2hlY2suIElmIGB0bi0mZ3Q7bnVtX25vZGVzYCBpcyBtYW5hZ2VkIHByb3Blcmx5LCBpdCYjMzk7cyAqanVzdCogYSBsaW1pdC4gQnV0LCB3YWl0Li4uIGl0ICpkb2VzKiBhbHRlciB0aGUgY29yZSBUSVBDIGxvZ2ljLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaXQgZm9yIGZ1enppbmcuCgpMZXQgbWUgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcy4gQWhhISBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgaXTigJlzIGp1c3QgZG9jdW1lbnRhdGlvbiwgZGVjb3JhdGlvbiwgb3IgY29uc3RhbnQvbWFjcm8gY2hhbmdlcyB0aGF0IGRvbiYjMzk7dCBhbHRlciBleGVjdXRpb24gZmxvdy4gVGhpcyAqZG9lcyogYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBhcyBpdCBkcm9wcyB0aGUgbm9kZSBjcmVhdGlvbiBpZiB0aGUgbGltaXQgaXMgcmVhY2hlZC4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpUaGVyZWZvcmUsIEkgdGhpbmsgdGhlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBiZSBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIHNpbmNlIHRob3NlIGFyZSB0aGUgY29kZSBwYXRocyB0aGF0IHRyaWdnZXIgdGhlIGNvdW50ZXIuIE5vdyBJIGhhdmUgdG8gbWFrZSBzdXJlIGBUSVBDYCBpcyB0aGUgY29ycmVjdCBlbmFibGUgY29uZmlnLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhhdCB0byBlbnN1cmUgaXQgZW5hYmxlcyB0aGUgY29yZSBUSVBDIGZ1bmN0aW9uYWxpdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRJUEMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvS2NvbmZpZy01LVxubmV0L3RpcGMvS2NvbmZpZzo2Om1lbnVjb25maWcgVElQQ1xubmV0L3RpcGMvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFRJUEMgUHJvdG9jb2xcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTIzLVxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxubmV0L3RpcGMvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7SW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTI5LVx0ICBJUC1vdmVyLUluZmluaUJhbmQgZGV2aWNlcy5cbm5ldC90aXBjL0tjb25maWc6MzA6Y29uZmlnIFRJUENfTUVESUFfVURQXG5uZXQvdGlwYy9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtJUC9VRFAgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0zNy1cbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXG5uZXQvdGlwYy9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctNTItXG5uZXQvdGlwYy9LY29uZmlnOjUzOmNvbmZpZyBUSVBDX0RJQUdcbm5ldC90aXBjL0tjb25maWctNTQtXHR0cmlzdGF0ZSBcJiMzNDtUSVBDOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjg1CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNDc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVElQQyBOb2RlIE1hbmFnZW1lbnQqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvbmZpZyBpbiBxdWVzdGlvbiBpcyBgVElQQ2AuIEkgbmVlZCB0byBpZGVudGlmeSBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nIGFuZCwgaWYgc28sIHdoYXQgdG8gZm9jdXMgb24uIAoKRmlyc3QsIEkgc2VlIHRoYXQgYHRpcGNfbm9kZV9jcmVhdGVgIGlzIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCYjMzk7cyBjYWxsZWQgZHVyaW5nIG5ldyBub2RlIGRpc2NvdmVyeSwgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZS4gSXQgbG9va3MgbGlrZSBgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3RgIGlzIHN0YXRpYywgYnV0IHdlIGNhbiBzdGlsbCBsaXN0IGl0LiBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgbWFrZXMgZnV6emluZyB3b3J0aHdoaWxlLgoKSSBzaG91bGQgZG91YmxlLWNoZWNrIGZvciBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGJ1dCBgVElQQ2Agc2VlbXMgdG8gYmUgdGhlIG1haW4gb25lLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gdmVyaWZ5IGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAgaXMgaW5kZWVkIHN0YXRpYywgYW5kIHRoYXQgaXQgaXMgb2theSB0byBsaXN0IGEgc3RhdGljIGZ1bmN0aW9uLgoKTm93LCBsZXQgbWUgcmVmcmVzaCB0aGUgcmVxdWlyZW1lbnRzLiBSaWdodCwgSSBuZWVkIHRvIGxpc3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBmb3IgaGVhdnkgZnV6emluZyBpbiBgRm9jdXNTeW1ib2xzYCwgYXZvaWRpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMuIEFsc28sIEkgbmVlZCB0byBpZGVudGlmeSBzcGVjaWZpYyBgQ09ORklHX2Agb3B0aW9ucywgY2hlY2tpbmcgS2NvbmZpZyBmaWxlcyBmb3IgaWZkZWZzIGFuZCBhdm9pZGluZyBvdmVybHkgZ2VuZXJpYyBvbmVzLgoKQWxyaWdodCwgc286CiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtUSVBDJiMzNDtdYCDigJMgVGhpcyBpcyB0aGUgY29uZmlnIGRpcmVjdGx5IHJlbGF0ZWQgdG8gdGhlIGNoYW5nZXMuCiogICBgRm9jdXNTeW1ib2xzYDogYFsmIzM0O3RpcGNfbm9kZV9jcmVhdGUmIzM0OywgJiMzNDt0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdCYjMzQ7XWAg4oCTIEkmIzM5O20gbGlzdGluZyBib3RoIGB0aXBjX25vZGVfY3JlYXRlYCBhbmQgYHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0YCwgYXMgdGhlIHBhdGNoIGltcGFjdHMgbm9kZSBjcmVhdGlvbiBhbmQgZGVsZXRpb24sIGFuZCB0aGVyZWZvcmUgbm9kZSBjb3VudCwgd2hpY2ggaXMgZnVuY3Rpb25hbCBpbiBuYXR1cmUuCgpJIG5lZWQgdG8gY29uZmlybSBgdGlwY19ub2RlX2NyZWF0ZWAgaXMgcmVhY2hhYmxlLiBZZXMsIHRocm91Z2ggVElQQyBkaXNjb3ZlcnkuIEkmIzM5O2xsIGFsc28gY2hlY2sgY2FsbGVycyBvZiBgdGlwY19ub2RlX2NyZWF0ZWAgdG8gZW5zdXJlIEkgaGF2ZSBpZGVudGlmaWVkIGFsbCByZWxhdGVkIGZ1bmN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL2NyeXB0by5jPTE4OTc9c3RhdGljIHZvaWQgdGlwY19jcnlwdG9fcmN2X2NvbXBsZXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfYWVhZCAqYWVhZCxcbi0tXG5uZXQvdGlwYy9jcnlwdG8uYy0xOTI5LVx0XHRcdFdBUk5fT04oZWhkci1cdTAwM2V1c2VyICE9IExJTktfQ09ORklHKTtcbm5ldC90aXBjL2NyeXB0by5jOjE5MzA6XHRcdFx0biA9IHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBlaGRyLVx1MDAzZWlkLCAweGZmZmZ1LCAwLFxubmV0L3RpcGMvY3J5cHRvLmMtMTkzMS1cdFx0XHRcdFx0ICAgICB0cnVlKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NDUwPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9hc3NpZ25fcGVlcl9uZXQoc3RydWN0IHRpcGNfbm9kZSAqbiwgdTMyIGhhc2hfbWl4ZXMpXG4tLVxubmV0L3RpcGMvbm9kZS5jLTQ3Ny1cbm5ldC90aXBjL25vZGUuYzo0Nzg6c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbm5ldC90aXBjL25vZGUuYy00NzktXHRcdFx0XHQgICB1MTYgY2FwYWJpbGl0aWVzLCB1MzIgaGFzaF9taXhlcyxcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNjIyLVx0dGlwY19iY2FzdF90b2dnbGVfcmNhc3QobmV0LCAodG4tXHUwMDNlY2FwYWJpbGl0aWVzIFx1MDAyNiBUSVBDX0JDQVNUX1JDQVNUKSk7XG5uZXQvdGlwYy9ub2RlLmM6NjIzOlx0dHJhY2VfdGlwY19ub2RlX2NyZWF0ZShuLCB0cnVlLCBcJiMzNDsgXCYjMzQ7KTtcbm5ldC90aXBjL25vZGUuYy02MjQtZXhpdDpcbi0tXG5uZXQvdGlwYy9ub2RlLmM9MTE4NT12b2lkIHRpcGNfbm9kZV9jaGVja19kZXN0KHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsXG4tLVxubmV0L3RpcGMvbm9kZS5jLTEyMDYtXG5uZXQvdGlwYy9ub2RlLmM6MTIwNzpcdG4gPSB0aXBjX25vZGVfY3JlYXRlKG5ldCwgYWRkciwgcGVlcl9pZCwgY2FwYWJpbGl0aWVzLCBoYXNoX21peGVzLFxubmV0L3RpcGMvbm9kZS5jLTEyMDgtXHRcdFx0ICAgICBmYWxzZSk7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTI5ODY9c3RhdGljIGludCBfX3RpcGNfbmxfbm9kZV9zZXRfa2V5KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3RpcGMvbm9kZS5jLTMwMzYtXHRcdFx0biA9IHRpcGNfbm9kZV9maW5kX2J5X2lkKG5ldCwgaWQpID86XG5uZXQvdGlwYy9ub2RlLmM6MzAzNzpcdFx0XHRcdHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBpZCwgMHhmZmZmdSwgMCwgdHJ1ZSk7XG5uZXQvdGlwYy9ub2RlLmMtMzAzOC1cdFx0XHRpZiAodW5saWtlbHkoIW4pKVxuLS1cbm5ldC90aXBjL25vZGUuaD04Mj12b2lkIHRpcGNfbm9kZV9nZXQoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSk7XG5uZXQvdGlwYy9ub2RlLmg6ODM6c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbm5ldC90aXBjL25vZGUuaC04NC1cdFx0XHRcdCAgIHUxNiBjYXBhYmlsaXRpZXMsIHUzMiBoYXNoX21peGVzLFxuLS1cbm5ldC90aXBjL3RyYWNlLmg9MzUzPURFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9kdW1wKTtcbm5ldC90aXBjL3RyYWNlLmg6MzU0OkRFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9jcmVhdGUpO1xubmV0L3RpcGMvdHJhY2UuaC0zNTUtREVGSU5FX05PREVfRVZFTlQodGlwY19ub2RlX2RlbGV0ZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzAwMwoJCQkJCQkJb3V0cHV0OiAxMTEKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBzaXR1YXRpb246CgoqKkZ1enppbmcgdGhlIFBhdGNoOiBBIEdvL05vLUdvIERlY2lzaW9uKioKCkFscmlnaHQsIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgZnVuY3Rpb25hbC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCYjMzk7cyAqZnV6ei13b3J0aHkqLiBBbmQgYWZ0ZXIgYSBxdWljayByZXZpZXcsIEkmIzM5O20gbGVhbmluZyB0b3dhcmRzIHllcy4gSSB0aGluayB0aGVyZSBhcmUgcG90ZW50aWFsIGFyZWFzIHdoZXJlIHdlIGNvdWxkIHVuY292ZXIgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzIG9yIHZ1bG5lcmFiaWxpdGllcy4gSXQgaGFzIHRoZSByaWdodCBjaGFyYWN0ZXJpc3RpY3MgZm9yIGZ1enppbmcgdG8gYmUgd29ydGh3aGlsZS4gU28sIEkmIzM5O20gZ29pbmcgdG8gZ3JlZW4tbGlnaHQgdGhlIGZ1enppbmcgcHJvY2Vzcy4gVGltZSB0byBpbml0aWF0ZSBgc2V0LXJlc3VsdHNgLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGRpZyB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19ub2RlX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDt0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgaGFyZCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMgcGVyIG5ldCBuYW1lc3BhY2UgdG8gcHJldmVudCB1bmJvdW5kZWQgbWVtb3J5IGdyb3d0aC4gSXQgbW9kaWZpZXMgdGlwY19ub2RlX2NyZWF0ZSB0byBlbmZvcmNlIHRoaXMgbGltaXQgYW5kIHVwZGF0ZXMgdGhlIG5vZGUgY291bnQgZHVyaW5nIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVElQQyBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjE5LjM3MzYxMjM1NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNTk5MDk1NjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOToxOS4zNzM2MjI0NzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMjg2MTMwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGNlODIzZjNjZWEzM2ZlYmU4YmRlYzgyMWU2ZGMxYzdiYmY0YjdkOGRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMTEgMTM6MDk6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC00OSw2ICs0OSwxNiBAQFxcbiAjZGVmaW5lIElOVkFMSURfTk9ERV9TSUdcXHQweDEwMDAwXFxuICNkZWZpbmUgTk9ERV9DTEVBTlVQX0FGVEVSXFx0MzAwMDAwXFxuIFxcbisvKiBIYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIGxpdmUgc3RydWN0IHRpcGNfbm9kZSBlbnRyaWVzIGEgc2luZ2xlIG5ldFxcbisgKiBuYW1lc3BhY2Ugd2lsbCBob2xkLiBFdmVyeSBlbnRyeSAocHJlbGltaW5hcnkgb3Igbm90KSBhbHNvIHBpbnMgYVxcbisgKiBicm9hZGNhc3QtcmVjZWl2ZSBsaW5rLCBhIHVuaWNhc3QgbGluayBzbG90IGFuZCBhIGtlZXBhbGl2ZSB0aW1lciwgc29cXG4rICogdGhpcyBib3VuZHMgd29yc3QtY2FzZSBtZW1vcnkgZnJvbSB1bmF1dGhlbnRpY2F0ZWQgTElOS19DT05GSUcgZGlzY292ZXJ5XFxuKyAqIHRyYWZmaWMgdGhlIHNhbWUgd2F5IG5laWdoX2FsbG9jKCkncyBnY190aHJlc2gzIGJvdW5kcyB0aGUgQVJQL05EIHRhYmxlXFxuKyAqIChzZWUgbmV0L2NvcmUvbmVpZ2hib3VyLmMpLiA4MTkyIGlzIGZhciBhYm92ZSBhbnkgcmVhbGlzdGljIFRJUEMgY2x1c3RlclxcbisgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxcbisgKi9cXG4rI2RlZmluZSBUSVBDX01BWF9OT0RFU1xcdFxcdDgxOTJcXG4rXFxuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXFxuICAqIFRJUENfTk9USUZZX05PREVfRE9XTjogbm90aWZ5IG5vZGUgaXMgZG93blxcbiAgKiBUSVBDX05PVElGWV9OT0RFX1VQOiBub3RpZnkgbm9kZSBpcyB1cFxcbkBAIC01MzUsNiArNTQ1LDExIEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuIFxcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuIFxcdH1cXG4rXFx0aWYgKHRuLVxcdTAwM2VudW1fbm9kZXMgXFx1MDAzZT0gVElQQ19NQVhfTk9ERVMpIHtcXG4rXFx0XFx0cHJfd2Fybl9yYXRlbGltaXRlZChcXFwiVG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0ICAgIHRuLVxcdTAwM2VudW1fbm9kZXMsIGFkZHIpO1xcbitcXHRcXHRnb3RvIGV4aXQ7XFxuK1xcdH1cXG4gXFx0biA9IGt6YWxsb2Nfb2JqKCpuLCBHRlBfQVRPTUlDKTtcXG4gXFx0aWYgKCFuKSB7XFxuIFxcdFxcdHByX3dhcm4oXFxcIk5vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXFxcblxcXCIpO1xcbkBAIC01OTgsNiArNjEzLDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gXFx0bGlzdF9hZGRfdGFpbF9yY3UoXFx1MDAyNm4tXFx1MDAzZWxpc3QsIFxcdTAwMjZ0ZW1wX25vZGUtXFx1MDAzZWxpc3QpO1xcbitcXHR0bi1cXHUwMDNlbnVtX25vZGVzKys7XFxuIFxcdC8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqL1xcbiBcXHR0bi1cXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGVtcF9ub2RlLCBcXHUwMDI2dG4tXFx1MDAzZW5vZGVfbGlzdCwgbGlzdCkge1xcbkBAIC02MzAsNiArNjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcXG4gI2VuZGlmXFxuIFxcdGxpc3RfZGVsX3JjdShcXHUwMDI2bm9kZS1cXHUwMDNlbGlzdCk7XFxuIFxcdGhsaXN0X2RlbF9yY3UoXFx1MDAyNm5vZGUtXFx1MDAzZWhhc2gpO1xcbitcXHR0aXBjX25ldChub2RlLVxcdTAwM2VuZXQpLVxcdTAwM2VudW1fbm9kZXMtLTtcXG4gXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMTM6MDk6MTkuNjk3MzcwMTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMjc1MzIzNDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNlODIzZjNjZWEzM2ZlYmU4YmRlYzgyMWU2ZGMxYzdiYmY0YjdkOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxMSAxMzowOToxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC00OSw2ICs0OSwxNiBAQFxuICNkZWZpbmUgSU5WQUxJRF9OT0RFX1NJR1x0MHgxMDAwMFxuICNkZWZpbmUgTk9ERV9DTEVBTlVQX0FGVEVSXHQzMDAwMDBcbiBcbisvKiBIYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIGxpdmUgc3RydWN0IHRpcGNfbm9kZSBlbnRyaWVzIGEgc2luZ2xlIG5ldFxuKyAqIG5hbWVzcGFjZSB3aWxsIGhvbGQuIEV2ZXJ5IGVudHJ5IChwcmVsaW1pbmFyeSBvciBub3QpIGFsc28gcGlucyBhXG4rICogYnJvYWRjYXN0LXJlY2VpdmUgbGluaywgYSB1bmljYXN0IGxpbmsgc2xvdCBhbmQgYSBrZWVwYWxpdmUgdGltZXIsIHNvXG4rICogdGhpcyBib3VuZHMgd29yc3QtY2FzZSBtZW1vcnkgZnJvbSB1bmF1dGhlbnRpY2F0ZWQgTElOS19DT05GSUcgZGlzY292ZXJ5XG4rICogdHJhZmZpYyB0aGUgc2FtZSB3YXkgbmVpZ2hfYWxsb2MoKSdzIGdjX3RocmVzaDMgYm91bmRzIHRoZSBBUlAvTkQgdGFibGVcbisgKiAoc2VlIG5ldC9jb3JlL25laWdoYm91ci5jKS4gODE5MiBpcyBmYXIgYWJvdmUgYW55IHJlYWxpc3RpYyBUSVBDIGNsdXN0ZXJcbisgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxuKyAqL1xuKyNkZWZpbmUgVElQQ19NQVhfTk9ERVNcdFx0ODE5MlxuK1xuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXG4gICogVElQQ19OT1RJRllfTk9ERV9ET1dOOiBub3RpZnkgbm9kZSBpcyBkb3duXG4gICogVElQQ19OT1RJRllfTk9ERV9VUDogbm90aWZ5IG5vZGUgaXMgdXBcbkBAIC01MzUsNiArNTQ1LDExIEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXG4gXHRcdGdvdG8gZXhpdDtcbiBcdH1cbitcdGlmICh0bi1cdTAwM2VudW1fbm9kZXMgXHUwMDNlPSBUSVBDX01BWF9OT0RFUykge1xuK1x0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwiVG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxcblwiLFxuK1x0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG4rXHRcdGdvdG8gZXhpdDtcbitcdH1cbiBcdG4gPSBremFsbG9jX29iaigqbiwgR0ZQX0FUT01JQyk7XG4gXHRpZiAoIW4pIHtcbiBcdFx0cHJfd2FybihcIk5vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXG5cIik7XG5AQCAtNTk4LDYgKzYxMyw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gXHRsaXN0X2FkZF90YWlsX3JjdShcdTAwMjZuLVx1MDAzZWxpc3QsIFx1MDAyNnRlbXBfbm9kZS1cdTAwM2VsaXN0KTtcbitcdHRuLVx1MDAzZW51bV9ub2RlcysrO1xuIFx0LyogQ2FsY3VsYXRlIGNsdXN0ZXIgY2FwYWJpbGl0aWVzICovXG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGVtcF9ub2RlLCBcdTAwMjZ0bi1cdTAwM2Vub2RlX2xpc3QsIGxpc3QpIHtcbkBAIC02MzAsNiArNjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcbiAjZW5kaWZcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWxpc3QpO1xuIFx0aGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWhhc2gpO1xuK1x0dGlwY19uZXQobm9kZS1cdTAwM2VuZXQpLVx1MDAzZW51bV9ub2Rlcy0tO1xuIFx0dGlwY19ub2RlX3B1dChub2RlKTtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOToxOS42OTczNzE4MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MjEwNDM1NTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBUSVBDIE5vZGUgTGltaXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQncyBwdXR0aW5nIGEgaGFyZCBjYXAgb24gdGhlIG51bWJlciBvZiBUSVBDIG5vZGVzIHdpdGhpbiBhIG5ldHdvcmsgbmFtZXNwYWNlLiBJdCBsb29rcyBsaWtlIHRoZSBsaW1pdCBpcyBkZWZpbmVkIGFzIGBUSVBDX01BWF9OT0RFU2AsIHNldCB0byA4MTkyLCB3aGljaCBzZWVtcyByZWFzb25hYmxlLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIGluIGB0aXBjX25vZGVfY3JlYXRlYCB3aGVyZSBpdCBjaGVja3MgaWYgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIG5vZGVzLCByZXByZXNlbnRlZCBieSBgdG4tXHUwMDNlbnVtX25vZGVzYCwgaGFzIGhpdCB0aGF0IGxpbWl0LiBJZiBzbywgdGhlIHBhdGNoJ3MgbG9naWMgZHJvcHMgdGhlIG5ldyBwZWVyLiBNYWtlcyBzZW5zZSDigJMgcHJldmVudCByZXNvdXJjZSBleGhhdXN0aW9uLiBBbmQsIG9mIGNvdXJzZSwgdGhleeKAmXZlIGFkZGVkIGxvZ2ljIHRvIGluY3JlbWVudCBgdG4tXHUwMDNlbnVtX25vZGVzYCB3aGVuIGEgbm9kZSBqb2lucyB0aGUgcGFydHksIGFuZCBkZWNyZW1lbnQgaXQgd2hlbiBvbmUgbGVhdmVzLiBTdGFuZGFyZCBhY2NvdW50aW5nLlxuXG5Ob3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGB0bi1cdTAwM2VudW1fbm9kZXNgIGlzIGJlaW5nIG1hbmFnZWQuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGl2ZSBpbnRvIGBuZXQvdGlwYy9ub2RlLmNgIGFuZCBsaWtlbHkgYG5ldC90aXBjL25vZGUuaGAgb3IgbWF5YmUgZXZlbiBgbmV0L3RpcGMvY29yZS5oYCB0byBzZWUgaG93IGl0J3MgZGVmaW5lZCBhbmQgd2hlcmUgaXQgbGl2ZXMuIEFoLCByaWdodCwgYHRuYCBpcyBhIGBzdHJ1Y3QgdGlwY19uZXQgKmAsIHNvIGl0J3MgYSBmaWVsZCB3aXRoaW4gdGhhdCBzdHJ1Y3R1cmUuIExldCdzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbnVtX25vZGVzYCBhbmQgdHJhY2UgaXRzIHVzYWdlIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIGdldCB0aGUgcHJlY2lzZSBwaWN0dXJlLiBUaGF0J2xsIHRlbGwgbWUgaWYgdGhlcmUncyBhbnl0aGluZyBlbHNlIGludGVyZXN0aW5nIGdvaW5nIG9uIHJlbGF0ZWQgdG8gdGhhdCBjb3VudGVyLiBHb29kLCB0aG9yb3VnaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM1OSwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjI0LjUxODQxODg4N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzkyNDcxNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibnVtX25vZGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9jb3JlLmg9OTQ9c3RydWN0IHRpcGNfbmV0IHtcXG4tLVxcbm5ldC90aXBjL2NvcmUuaC0xMDctXFx0c3RydWN0IGxpc3RfaGVhZCBub2RlX2xpc3Q7XFxubmV0L3RpcGMvY29yZS5oOjEwODpcXHR1MzIgbnVtX25vZGVzO1xcbm5ldC90aXBjL2NvcmUuaC0xMDktXFx0dTMyIG51bV9saW5rcztcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNTUtICogQGRvbWFpbjogbmV0d29yayBkb21haW4gdG8gd2hpY2ggbGlua3MgY2FuIGJlIGVzdGFibGlzaGVkXFxubmV0L3RpcGMvZGlzY292ZXIuYzo1NjogKiBAbnVtX25vZGVzOiBudW1iZXIgb2Ygbm9kZXMgY3VycmVudGx5IGRpc2NvdmVyZWQgKGkuZS4gd2l0aCBhbiBhY3RpdmUgbGluaylcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTU3LSAqIEBsb2NrOiBzcGlubG9jayBmb3IgY29udHJvbGxpbmcgYWNjZXNzIHRvIHJlcXVlc3RzXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTYzPXN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIge1xcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYy02Ny1cXHR1MzIgZG9tYWluO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Njg6XFx0aW50IG51bV9ub2RlcztcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTY5LVxcdHNwaW5sb2NrX3QgbG9jaztcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9MjY1PXZvaWQgdGlwY19kaXNjX2FkZF9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI2Ny1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmQtXFx1MDAzZWxvY2spO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjY4OlxcdGQtXFx1MDAzZW51bV9ub2RlcysrO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMjY5LVxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZkLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjc0PXZvaWQgdGlwY19kaXNjX3JlbW92ZV9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI3OC1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmQtXFx1MDAzZWxvY2spO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mjc5OlxcdGQtXFx1MDAzZW51bV9ub2Rlcy0tO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjgwOlxcdG51bSA9IGQtXFx1MDAzZW51bV9ub2RlcztcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI4MS1cXHRpbnR2ID0gZC1cXHUwMDNldGltZXJfaW50djtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjk1PXN0YXRpYyB2b2lkIHRpcGNfZGlzY190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDYtXFx0LyogU3RvcCBzZWFyY2hpbmcgaWYgb25seSBkZXNpcmVkIG5vZGUgaGFzIGJlZW4gZm91bmQgKi9cXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjMwNzpcXHRpZiAodGlwY19ub2RlKGQtXFx1MDAzZWRvbWFpbikgXFx1MDAyNlxcdTAwMjYgZC1cXHUwMDNlbnVtX25vZGVzKSB7XFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDgtXFx0XFx0ZC1cXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19JTkFDVElWRTtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI0LVxcdFxcdGQtXFx1MDAzZXRpbWVyX2ludHYgKj0gMjtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjMyNTpcXHRcXHRpZiAoZC1cXHUwMDNlbnVtX25vZGVzIFxcdTAwMjZcXHUwMDI2IGQtXFx1MDAzZXRpbWVyX2ludHYgXFx1MDAzZSBUSVBDX0RJU0NfU0xPVylcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTMyNi1cXHRcXHRcXHRkLVxcdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX1NMT1c7XFxubmV0L3RpcGMvZGlzY292ZXIuYzozMjc6XFx0XFx0ZWxzZSBpZiAoIWQtXFx1MDAzZW51bV9ub2RlcyBcXHUwMDI2XFx1MDAyNiBkLVxcdTAwM2V0aW1lcl9pbnR2IFxcdTAwM2UgVElQQ19ESVNDX0ZBU1QpXFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMjgtXFx0XFx0XFx0ZC1cXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19GQVNUO1xcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYz0zNTI9aW50IHRpcGNfZGlzY19jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19iZWFyZXIgKmIsXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTM3Ni1cXHRkLVxcdTAwM2Vkb21haW4gPSBiLVxcdTAwM2Vkb21haW47XFxubmV0L3RpcGMvZGlzY292ZXIuYzozNzc6XFx0ZC1cXHUwMDNlbnVtX25vZGVzID0gMDtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTM3OC1cXHRkLVxcdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX0lOSVQ7XFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTQxMT12b2lkIHRpcGNfZGlzY19yZXNldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIxLVxcdGQtXFx1MDAzZWRvbWFpbiA9IGItXFx1MDAzZWRvbWFpbjtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjQyMjpcXHRkLVxcdTAwM2VudW1fbm9kZXMgPSAwO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIzLVxcdGQtXFx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5JVDtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz00Nzg9c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4tLVxcbm5ldC90aXBjL25vZGUuYy01NDctXFx0fVxcbm5ldC90aXBjL25vZGUuYzo1NDg6XFx0aWYgKHRuLVxcdTAwM2VudW1fbm9kZXMgXFx1MDAzZT0gVElQQ19NQVhfTk9ERVMpIHtcXG5uZXQvdGlwYy9ub2RlLmMtNTQ5LVxcdFxcdHByX3dhcm5fcmF0ZWxpbWl0ZWQoXFxcIlRvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXFxcblxcXCIsXFxubmV0L3RpcGMvbm9kZS5jOjU1MDpcXHRcXHRcXHRcXHQgICAgdG4tXFx1MDAzZW51bV9ub2RlcywgYWRkcik7XFxubmV0L3RpcGMvbm9kZS5jLTU1MS1cXHRcXHRnb3RvIGV4aXQ7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNjE1LVxcdGxpc3RfYWRkX3RhaWxfcmN1KFxcdTAwMjZuLVxcdTAwM2VsaXN0LCBcXHUwMDI2dGVtcF9ub2RlLVxcdTAwM2VsaXN0KTtcXG5uZXQvdGlwYy9ub2RlLmM6NjE2OlxcdHRuLVxcdTAwM2VudW1fbm9kZXMrKztcXG5uZXQvdGlwYy9ub2RlLmMtNjE3LVxcdC8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqL1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTY0Mj1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdChzdHJ1Y3QgdGlwY19ub2RlICpub2RlKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTY0OC1cXHRobGlzdF9kZWxfcmN1KFxcdTAwMjZub2RlLVxcdTAwM2VoYXNoKTtcXG5uZXQvdGlwYy9ub2RlLmM6NjQ5OlxcdHRpcGNfbmV0KG5vZGUtXFx1MDAzZW5ldCktXFx1MDAzZW51bV9ub2Rlcy0tO1xcbm5ldC90aXBjL25vZGUuYy02NTAtXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMTM6MDk6MjQuNzk3NjcyODA5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYyNjM0Njc0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRoaXMgVElQQyBOb2RlIExpbWl0PyoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2Rlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZnV6emFibGU/XCIgSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgaXQncyBmdW5kYW1lbnRhbGx5IGp1c3QgcHJldmVudGluZyB0aGUgY3JlYXRpb24gb2YgbW9yZSB0aGFuIDgxOTIgbm9kZXMuIENyZWF0aW5nIHRoYXQgbWFueSBub2RlcyB0byBmdXp6IHRoaXMuLi4gdGhhdCdzIGEgbG90IG9mIG92ZXJoZWFkLlxuXG5UaGVyZSdzIG5vIGNvbXBsZXggbG9naWMgaGVyZSwgaXQncyBhIHNpbXBsZSBjb3VudGVyLCBhbiBpbmNyZW1lbnQsIGEgZGVjcmVtZW50LCBhbmQgYSBjaGVjay4gSWYgYHRuLVx1MDAzZW51bV9ub2Rlc2AgaXMgbWFuYWdlZCBwcm9wZXJseSwgaXQncyAqanVzdCogYSBsaW1pdC4gQnV0LCB3YWl0Li4uIGl0ICpkb2VzKiBhbHRlciB0aGUgY29yZSBUSVBDIGxvZ2ljLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaXQgZm9yIGZ1enppbmcuXG5cbkxldCBtZSByZS1yZWFkIHRoZSBndWlkZWxpbmVzLiBBaGEhIFRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiBpdOKAmXMganVzdCBkb2N1bWVudGF0aW9uLCBkZWNvcmF0aW9uLCBvciBjb25zdGFudC9tYWNybyBjaGFuZ2VzIHRoYXQgZG9uJ3QgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIFRoaXMgKmRvZXMqIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgYXMgaXQgZHJvcHMgdGhlIG5vZGUgY3JlYXRpb24gaWYgdGhlIGxpbWl0IGlzIHJlYWNoZWQuIFNvLCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5UaGVyZWZvcmUsIEkgdGhpbmsgdGhlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBiZSBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIHNpbmNlIHRob3NlIGFyZSB0aGUgY29kZSBwYXRocyB0aGF0IHRyaWdnZXIgdGhlIGNvdW50ZXIuIE5vdyBJIGhhdmUgdG8gbWFrZSBzdXJlIGBUSVBDYCBpcyB0aGUgY29ycmVjdCBlbmFibGUgY29uZmlnLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGF0IHRvIGVuc3VyZSBpdCBlbmFibGVzIHRoZSBjb3JlIFRJUEMgZnVuY3Rpb25hbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5OCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozMC40MjQwMjE0MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcwNTEzNzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRJUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3RpcGMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozMC40ODEwNzYxNDlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzI2OTk0NjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVElQQyBOb2RlIE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb25maWcgaW4gcXVlc3Rpb24gaXMgYFRJUENgLiBJIG5lZWQgdG8gaWRlbnRpZnkgaWYgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnV6emluZyBhbmQsIGlmIHNvLCB3aGF0IHRvIGZvY3VzIG9uLiBcblxuRmlyc3QsIEkgc2VlIHRoYXQgYHRpcGNfbm9kZV9jcmVhdGVgIGlzIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCdzIGNhbGxlZCBkdXJpbmcgbmV3IG5vZGUgZGlzY292ZXJ5LCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLiBJdCBsb29rcyBsaWtlIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAgaXMgc3RhdGljLCBidXQgd2UgY2FuIHN0aWxsIGxpc3QgaXQuIFRoZSBmYWN0IHRoYXQgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIG1ha2VzIGZ1enppbmcgd29ydGh3aGlsZS5cblxuSSBzaG91bGQgZG91YmxlLWNoZWNrIGZvciBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGJ1dCBgVElQQ2Agc2VlbXMgdG8gYmUgdGhlIG1haW4gb25lLiBJJ2xsIG1ha2Ugc3VyZSB0byB2ZXJpZnkgYHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0YCBpcyBpbmRlZWQgc3RhdGljLCBhbmQgdGhhdCBpdCBpcyBva2F5IHRvIGxpc3QgYSBzdGF0aWMgZnVuY3Rpb24uXG5cbk5vdywgbGV0IG1lIHJlZnJlc2ggdGhlIHJlcXVpcmVtZW50cy4gUmlnaHQsIEkgbmVlZCB0byBsaXN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgZm9yIGhlYXZ5IGZ1enppbmcgaW4gYEZvY3VzU3ltYm9sc2AsIGF2b2lkaW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zLiBBbHNvLCBJIG5lZWQgdG8gaWRlbnRpZnkgc3BlY2lmaWMgYENPTkZJR19gIG9wdGlvbnMsIGNoZWNraW5nIEtjb25maWcgZmlsZXMgZm9yIGlmZGVmcyBhbmQgYXZvaWRpbmcgb3Zlcmx5IGdlbmVyaWMgb25lcy5cblxuQWxyaWdodCwgc286XG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiVElQQ1wiXWAg4oCTIFRoaXMgaXMgdGhlIGNvbmZpZyBkaXJlY3RseSByZWxhdGVkIHRvIHRoZSBjaGFuZ2VzLlxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW1widGlwY19ub2RlX2NyZWF0ZVwiLCBcInRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0XCJdYCDigJMgSSdtIGxpc3RpbmcgYm90aCBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIGFzIHRoZSBwYXRjaCBpbXBhY3RzIG5vZGUgY3JlYXRpb24gYW5kIGRlbGV0aW9uLCBhbmQgdGhlcmVmb3JlIG5vZGUgY291bnQsIHdoaWNoIGlzIGZ1bmN0aW9uYWwgaW4gbmF0dXJlLlxuXG5JIG5lZWQgdG8gY29uZmlybSBgdGlwY19ub2RlX2NyZWF0ZWAgaXMgcmVhY2hhYmxlLiBZZXMsIHRocm91Z2ggVElQQyBkaXNjb3ZlcnkuIEknbGwgYWxzbyBjaGVjayBjYWxsZXJzIG9mIGB0aXBjX25vZGVfY3JlYXRlYCB0byBlbnN1cmUgSSBoYXZlIGlkZW50aWZpZWQgYWxsIHJlbGF0ZWQgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mjg1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjM3LjgwODA3MjUzOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY0NjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9jcnlwdG8uYz0xODk3PXN0YXRpYyB2b2lkIHRpcGNfY3J5cHRvX3Jjdl9jb21wbGV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2FlYWQgKmFlYWQsXFxuLS1cXG5uZXQvdGlwYy9jcnlwdG8uYy0xOTI5LVxcdFxcdFxcdFdBUk5fT04oZWhkci1cXHUwMDNldXNlciAhPSBMSU5LX0NPTkZJRyk7XFxubmV0L3RpcGMvY3J5cHRvLmM6MTkzMDpcXHRcXHRcXHRuID0gdGlwY19ub2RlX2NyZWF0ZShuZXQsIDAsIGVoZHItXFx1MDAzZWlkLCAweGZmZmZ1LCAwLFxcbm5ldC90aXBjL2NyeXB0by5jLTE5MzEtXFx0XFx0XFx0XFx0XFx0ICAgICB0cnVlKTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz00NTA9c3RhdGljIHZvaWQgdGlwY19ub2RlX2Fzc2lnbl9wZWVyX25ldChzdHJ1Y3QgdGlwY19ub2RlICpuLCB1MzIgaGFzaF9taXhlcylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy00NzctXFxubmV0L3RpcGMvbm9kZS5jOjQ3ODpzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxcbm5ldC90aXBjL25vZGUuYy00NzktXFx0XFx0XFx0XFx0ICAgdTE2IGNhcGFiaWxpdGllcywgdTMyIGhhc2hfbWl4ZXMsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNjIyLVxcdHRpcGNfYmNhc3RfdG9nZ2xlX3JjYXN0KG5ldCwgKHRuLVxcdTAwM2VjYXBhYmlsaXRpZXMgXFx1MDAyNiBUSVBDX0JDQVNUX1JDQVNUKSk7XFxubmV0L3RpcGMvbm9kZS5jOjYyMzpcXHR0cmFjZV90aXBjX25vZGVfY3JlYXRlKG4sIHRydWUsIFxcXCIgXFxcIik7XFxubmV0L3RpcGMvbm9kZS5jLTYyNC1leGl0Olxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTExODU9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTEyMDYtXFxubmV0L3RpcGMvbm9kZS5jOjEyMDc6XFx0biA9IHRpcGNfbm9kZV9jcmVhdGUobmV0LCBhZGRyLCBwZWVyX2lkLCBjYXBhYmlsaXRpZXMsIGhhc2hfbWl4ZXMsXFxubmV0L3RpcGMvbm9kZS5jLTEyMDgtXFx0XFx0XFx0ICAgICBmYWxzZSk7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9Mjk4Nj1zdGF0aWMgaW50IF9fdGlwY19ubF9ub2RlX3NldF9rZXkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0zMDM2LVxcdFxcdFxcdG4gPSB0aXBjX25vZGVfZmluZF9ieV9pZChuZXQsIGlkKSA/Olxcbm5ldC90aXBjL25vZGUuYzozMDM3OlxcdFxcdFxcdFxcdHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBpZCwgMHhmZmZmdSwgMCwgdHJ1ZSk7XFxubmV0L3RpcGMvbm9kZS5jLTMwMzgtXFx0XFx0XFx0aWYgKHVubGlrZWx5KCFuKSlcXG4tLVxcbm5ldC90aXBjL25vZGUuaD04Mj12b2lkIHRpcGNfbm9kZV9nZXQoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSk7XFxubmV0L3RpcGMvbm9kZS5oOjgzOnN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxubmV0L3RpcGMvbm9kZS5oLTg0LVxcdFxcdFxcdFxcdCAgIHUxNiBjYXBhYmlsaXRpZXMsIHUzMiBoYXNoX21peGVzLFxcbi0tXFxubmV0L3RpcGMvdHJhY2UuaD0zNTM9REVGSU5FX05PREVfRVZFTlQodGlwY19ub2RlX2R1bXApO1xcbm5ldC90aXBjL3RyYWNlLmg6MzU0OkRFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9jcmVhdGUpO1xcbm5ldC90aXBjL3RyYWNlLmgtMzU1LURFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9kZWxldGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozNy44NjU3MjI3NThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2OTg5NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgc2l0dWF0aW9uOlxuXG4qKkZ1enppbmcgdGhlIFBhdGNoOiBBIEdvL05vLUdvIERlY2lzaW9uKipcblxuQWxyaWdodCwgbG9va2luZyBhdCB0aGlzIHBhdGNoLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBpdCdzIGZ1bmN0aW9uYWwuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCdzICpmdXp6LXdvcnRoeSouIEFuZCBhZnRlciBhIHF1aWNrIHJldmlldywgSSdtIGxlYW5pbmcgdG93YXJkcyB5ZXMuIEkgdGhpbmsgdGhlcmUgYXJlIHBvdGVudGlhbCBhcmVhcyB3aGVyZSB3ZSBjb3VsZCB1bmNvdmVyIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBvciB2dWxuZXJhYmlsaXRpZXMuIEl0IGhhcyB0aGUgcmlnaHQgY2hhcmFjdGVyaXN0aWNzIGZvciBmdXp6aW5nIHRvIGJlIHdvcnRod2hpbGUuIFNvLCBJJ20gZ29pbmcgdG8gZ3JlZW4tbGlnaHQgdGhlIGZ1enppbmcgcHJvY2Vzcy4gVGltZSB0byBpbml0aWF0ZSBgc2V0LXJlc3VsdHNgLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDAzLCJPdXRwdXRUb2tlbnMiOjExMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjQxLjg5MjcxNDkxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk5NzQ1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-11 12:58:01 +0000 UTC FinishedAt: 2026-07-11 13:09:44 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "1cd23ca80784223fa2204e16203f754da4e821f8", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "TIPC" ], "series_id": "059b281a-ca9a-4fa0-87cf-056da233d997" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "tipc_node_create", "tipc_node_delete_from_list" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgY2U4MjNmM2NlYTMzZmViZThiZGVjODIxZTZkYzFjN2JiZjRiN2Q4ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTYXQgSnVsIDExIDEzOjA5OjE4IDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC00OSw2ICYjNDM7NDksMTYgQEBcbiAjZGVmaW5lIElOVkFMSURfTk9ERV9TSUdcdDB4MTAwMDBcbiAjZGVmaW5lIE5PREVfQ0xFQU5VUF9BRlRFUlx0MzAwMDAwXG4gXG4mIzQzOy8qIEhhcmQgY2FwIG9uIHRoZSBudW1iZXIgb2YgbGl2ZSBzdHJ1Y3QgdGlwY19ub2RlIGVudHJpZXMgYSBzaW5nbGUgbmV0XG4mIzQzOyAqIG5hbWVzcGFjZSB3aWxsIGhvbGQuIEV2ZXJ5IGVudHJ5IChwcmVsaW1pbmFyeSBvciBub3QpIGFsc28gcGlucyBhXG4mIzQzOyAqIGJyb2FkY2FzdC1yZWNlaXZlIGxpbmssIGEgdW5pY2FzdCBsaW5rIHNsb3QgYW5kIGEga2VlcGFsaXZlIHRpbWVyLCBzb1xuJiM0MzsgKiB0aGlzIGJvdW5kcyB3b3JzdC1jYXNlIG1lbW9yeSBmcm9tIHVuYXV0aGVudGljYXRlZCBMSU5LX0NPTkZJRyBkaXNjb3ZlcnlcbiYjNDM7ICogdHJhZmZpYyB0aGUgc2FtZSB3YXkgbmVpZ2hfYWxsb2MoKSYjMzk7cyBnY190aHJlc2gzIGJvdW5kcyB0aGUgQVJQL05EIHRhYmxlXG4mIzQzOyAqIChzZWUgbmV0L2NvcmUvbmVpZ2hib3VyLmMpLiA4MTkyIGlzIGZhciBhYm92ZSBhbnkgcmVhbGlzdGljIFRJUEMgY2x1c3RlclxuJiM0MzsgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxuJiM0MzsgKi9cbiYjNDM7I2RlZmluZSBUSVBDX01BWF9OT0RFU1x0XHQ4MTkyXG4mIzQzO1xuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXG4gICogVElQQ19OT1RJRllfTk9ERV9ET1dOOiBub3RpZnkgbm9kZSBpcyBkb3duXG4gICogVElQQ19OT1RJRllfTk9ERV9VUDogbm90aWZ5IG5vZGUgaXMgdXBcbkBAIC01MzUsNiAmIzQzOzU0NSwxMSBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxuIFxuIFx0XHRnb3RvIGV4aXQ7XG4gXHR9XG4mIzQzO1x0aWYgKHRuLVx1MDAzZW51bV9ub2RlcyBcdTAwM2U9IFRJUENfTUFYX05PREVTKSB7XG4mIzQzO1x0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwmIzM0O1RvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXG5cJiMzNDssXG4mIzQzO1x0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG4mIzQzO1x0XHRnb3RvIGV4aXQ7XG4mIzQzO1x0fVxuIFx0biA9IGt6YWxsb2Nfb2JqKCpuLCBHRlBfQVRPTUlDKTtcbiBcdGlmICghbikge1xuIFx0XHRwcl93YXJuKFwmIzM0O05vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXG5cJiMzNDspO1xuQEAgLTU5OCw2ICYjNDM7NjEzLDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbiBcdFx0XHRicmVhaztcbiBcdH1cbiBcdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xuJiM0MztcdHRuLVx1MDAzZW51bV9ub2RlcyYjNDM7JiM0Mzs7XG4gXHQvKiBDYWxjdWxhdGUgY2x1c3RlciBjYXBhYmlsaXRpZXMgKi9cbiBcdHRuLVx1MDAzZWNhcGFiaWxpdGllcyA9IFRJUENfTk9ERV9DQVBBQklMSVRJRVM7XG4gXHRsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdSh0ZW1wX25vZGUsIFx1MDAyNnRuLVx1MDAzZW5vZGVfbGlzdCwgbGlzdCkge1xuQEAgLTYzMCw2ICYjNDM7NjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcbiAjZW5kaWZcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWxpc3QpO1xuIFx0aGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWhhc2gpO1xuJiM0MztcdHRpcGNfbmV0KG5vZGUtXHUwMDNlbmV0KS1cdTAwM2VudW1fbm9kZXMtLTtcbiBcdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4gfVxuIFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzExIDEzOjA5PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBjZTgyM2YzY2VhMzNmZWJlOGJkZWM4MjFlNmRjMWM3YmJmNGI3ZDhkCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFNhdCBKdWwgMTEgMTM6MDk6MTggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvdGlwYy9ub2RlLmMgYi9uZXQvdGlwYy9ub2RlLmMKaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NAotLS0gYS9uZXQvdGlwYy9ub2RlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3RpcGMvbm9kZS5jCkBAIC00OSw2ICYjNDM7NDksMTYgQEAKICNkZWZpbmUgSU5WQUxJRF9OT0RFX1NJRwkweDEwMDAwCiAjZGVmaW5lIE5PREVfQ0xFQU5VUF9BRlRFUgkzMDAwMDAKIAomIzQzOy8qIEhhcmQgY2FwIG9uIHRoZSBudW1iZXIgb2YgbGl2ZSBzdHJ1Y3QgdGlwY19ub2RlIGVudHJpZXMgYSBzaW5nbGUgbmV0CiYjNDM7ICogbmFtZXNwYWNlIHdpbGwgaG9sZC4gRXZlcnkgZW50cnkgKHByZWxpbWluYXJ5IG9yIG5vdCkgYWxzbyBwaW5zIGEKJiM0MzsgKiBicm9hZGNhc3QtcmVjZWl2ZSBsaW5rLCBhIHVuaWNhc3QgbGluayBzbG90IGFuZCBhIGtlZXBhbGl2ZSB0aW1lciwgc28KJiM0MzsgKiB0aGlzIGJvdW5kcyB3b3JzdC1jYXNlIG1lbW9yeSBmcm9tIHVuYXV0aGVudGljYXRlZCBMSU5LX0NPTkZJRyBkaXNjb3ZlcnkKJiM0MzsgKiB0cmFmZmljIHRoZSBzYW1lIHdheSBuZWlnaF9hbGxvYygpJiMzOTtzIGdjX3RocmVzaDMgYm91bmRzIHRoZSBBUlAvTkQgdGFibGUKJiM0MzsgKiAoc2VlIG5ldC9jb3JlL25laWdoYm91ci5jKS4gODE5MiBpcyBmYXIgYWJvdmUgYW55IHJlYWxpc3RpYyBUSVBDIGNsdXN0ZXIKJiM0MzsgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLgomIzQzOyAqLwomIzQzOyNkZWZpbmUgVElQQ19NQVhfTk9ERVMJCTgxOTIKJiM0MzsKIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlCiAgKiBUSVBDX05PVElGWV9OT0RFX0RPV046IG5vdGlmeSBub2RlIGlzIGRvd24KICAqIFRJUENfTk9USUZZX05PREVfVVA6IG5vdGlmeSBub2RlIGlzIHVwCkBAIC01MzUsNiAmIzQzOzU0NSwxMSBAQCBzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLAogCiAJCWdvdG8gZXhpdDsKIAl9CiYjNDM7CWlmICh0bi0mZ3Q7bnVtX25vZGVzICZndDs9IFRJUENfTUFYX05PREVTKSB7CiYjNDM7CQlwcl93YXJuX3JhdGVsaW1pdGVkKCYjMzQ7VG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxuJiMzNDssCiYjNDM7CQkJCSAgICB0bi0mZ3Q7bnVtX25vZGVzLCBhZGRyKTsKJiM0MzsJCWdvdG8gZXhpdDsKJiM0MzsJfQogCW4gPSBremFsbG9jX29iaigqbiwgR0ZQX0FUT01JQyk7CiAJaWYgKCFuKSB7CiAJCXByX3dhcm4oJiMzNDtOb2RlIGNyZWF0aW9uIGZhaWxlZCwgbm8gbWVtb3J5XG4mIzM0Oyk7CkBAIC01OTgsNiAmIzQzOzYxMyw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsCiAJCQlicmVhazsKIAl9CiAJbGlzdF9hZGRfdGFpbF9yY3UoJmFtcDtuLSZndDtsaXN0LCAmYW1wO3RlbXBfbm9kZS0mZ3Q7bGlzdCk7CiYjNDM7CXRuLSZndDtudW1fbm9kZXMmIzQzOyYjNDM7OwogCS8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqLwogCXRuLSZndDtjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTOwogCWxpc3RfZm9yX2VhY2hfZW50cnlfcmN1KHRlbXBfbm9kZSwgJmFtcDt0bi0mZ3Q7bm9kZV9saXN0LCBsaXN0KSB7CkBAIC02MzAsNiAmIzQzOzY0Niw3IEBAIHN0YXRpYyB2b2lkIHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0KHN0cnVjdCB0aXBjX25vZGUgKm5vZGUpCiAjZW5kaWYKIAlsaXN0X2RlbF9yY3UoJmFtcDtub2RlLSZndDtsaXN0KTsKIAlobGlzdF9kZWxfcmN1KCZhbXA7bm9kZS0mZ3Q7aGFzaCk7CiYjNDM7CXRpcGNfbmV0KG5vZGUtJmd0O25ldCktJmd0O251bV9ub2Rlcy0tOwogCXRpcGNfbm9kZV9wdXQobm9kZSk7CiB9CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjM1OQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDE5MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFRJUEMgTm9kZSBMaW1pdCBQYXRjaCoqCgpPa2F5LCBzbyB3ZSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSB0aGF0JiMzOTtzIHB1dHRpbmcgYSBoYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMgd2l0aGluIGEgbmV0d29yayBuYW1lc3BhY2UuIEl0IGxvb2tzIGxpa2UgdGhlIGxpbWl0IGlzIGRlZmluZWQgYXMgYFRJUENfTUFYX05PREVTYCwgc2V0IHRvIDgxOTIsIHdoaWNoIHNlZW1zIHJlYXNvbmFibGUuIFRoZSBjb3JlIG9mIHRoaXMgcGF0Y2ggc2VlbXMgdG8gYmUgaW4gYHRpcGNfbm9kZV9jcmVhdGVgIHdoZXJlIGl0IGNoZWNrcyBpZiB0aGUgY3VycmVudCBudW1iZXIgb2Ygbm9kZXMsIHJlcHJlc2VudGVkIGJ5IGB0bi0mZ3Q7bnVtX25vZGVzYCwgaGFzIGhpdCB0aGF0IGxpbWl0LiBJZiBzbywgdGhlIHBhdGNoJiMzOTtzIGxvZ2ljIGRyb3BzIHRoZSBuZXcgcGVlci4gTWFrZXMgc2Vuc2Ug4oCTIHByZXZlbnQgcmVzb3VyY2UgZXhoYXVzdGlvbi4gQW5kLCBvZiBjb3Vyc2UsIHRoZXnigJl2ZSBhZGRlZCBsb2dpYyB0byBpbmNyZW1lbnQgYHRuLSZndDtudW1fbm9kZXNgIHdoZW4gYSBub2RlIGpvaW5zIHRoZSBwYXJ0eSwgYW5kIGRlY3JlbWVudCBpdCB3aGVuIG9uZSBsZWF2ZXMuIFN0YW5kYXJkIGFjY291bnRpbmcuCgpOb3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGB0bi0mZ3Q7bnVtX25vZGVzYCBpcyBiZWluZyBtYW5hZ2VkLiBNeSBmaXJzdCB0aG91Z2h0IGlzIHRvIGRpdmUgaW50byBgbmV0L3RpcGMvbm9kZS5jYCBhbmQgbGlrZWx5IGBuZXQvdGlwYy9ub2RlLmhgIG9yIG1heWJlIGV2ZW4gYG5ldC90aXBjL2NvcmUuaGAgdG8gc2VlIGhvdyBpdCYjMzk7cyBkZWZpbmVkIGFuZCB3aGVyZSBpdCBsaXZlcy4gQWgsIHJpZ2h0LCBgdG5gIGlzIGEgYHN0cnVjdCB0aXBjX25ldCAqYCwgc28gaXQmIzM5O3MgYSBmaWVsZCB3aXRoaW4gdGhhdCBzdHJ1Y3R1cmUuIExldCYjMzk7cyBkbyBhIHF1aWNrIGBncmVwYCBmb3IgYG51bV9ub2Rlc2AgYW5kIHRyYWNlIGl0cyB1c2FnZSB0byBjb25maXJtIG15IGFzc3VtcHRpb25zIGFuZCBnZXQgdGhlIHByZWNpc2UgcGljdHVyZS4gVGhhdCYjMzk7bGwgdGVsbCBtZSBpZiB0aGVyZSYjMzk7cyBhbnl0aGluZyBlbHNlIGludGVyZXN0aW5nIGdvaW5nIG9uIHJlbGF0ZWQgdG8gdGhhdCBjb3VudGVyLiBHb29kLCB0aG9yb3VnaC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtudW1fbm9kZXMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvY29yZS5oPTk0PXN0cnVjdCB0aXBjX25ldCB7XG4tLVxubmV0L3RpcGMvY29yZS5oLTEwNy1cdHN0cnVjdCBsaXN0X2hlYWQgbm9kZV9saXN0O1xubmV0L3RpcGMvY29yZS5oOjEwODpcdHUzMiBudW1fbm9kZXM7XG5uZXQvdGlwYy9jb3JlLmgtMTA5LVx0dTMyIG51bV9saW5rcztcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTU1LSAqIEBkb21haW46IG5ldHdvcmsgZG9tYWluIHRvIHdoaWNoIGxpbmtzIGNhbiBiZSBlc3RhYmxpc2hlZFxubmV0L3RpcGMvZGlzY292ZXIuYzo1NjogKiBAbnVtX25vZGVzOiBudW1iZXIgb2Ygbm9kZXMgY3VycmVudGx5IGRpc2NvdmVyZWQgKGkuZS4gd2l0aCBhbiBhY3RpdmUgbGluaylcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNTctICogQGxvY2s6IHNwaW5sb2NrIGZvciBjb250cm9sbGluZyBhY2Nlc3MgdG8gcmVxdWVzdHNcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTYzPXN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIge1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmMtNjctXHR1MzIgZG9tYWluO1xubmV0L3RpcGMvZGlzY292ZXIuYzo2ODpcdGludCBudW1fbm9kZXM7XG5uZXQvdGlwYy9kaXNjb3Zlci5jLTY5LVx0c3BpbmxvY2tfdCBsb2NrO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9MjY1PXZvaWQgdGlwY19kaXNjX2FkZF9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0yNjctXHRzcGluX2xvY2tfYmgoXHUwMDI2ZC1cdTAwM2Vsb2NrKTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjY4Olx0ZC1cdTAwM2VudW1fbm9kZXMmIzQzOyYjNDM7O1xubmV0L3RpcGMvZGlzY292ZXIuYy0yNjktXHRzcGluX3VubG9ja19iaChcdTAwMjZkLVx1MDAzZWxvY2spO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjc0PXZvaWQgdGlwY19kaXNjX3JlbW92ZV9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0yNzgtXHRzcGluX2xvY2tfYmgoXHUwMDI2ZC1cdTAwM2Vsb2NrKTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mjc5Olx0ZC1cdTAwM2VudW1fbm9kZXMtLTtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjgwOlx0bnVtID0gZC1cdTAwM2VudW1fbm9kZXM7XG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI4MS1cdGludHYgPSBkLVx1MDAzZXRpbWVyX2ludHY7XG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYz0yOTU9c3RhdGljIHZvaWQgdGlwY19kaXNjX3RpbWVvdXQoc3RydWN0IHRpbWVyX2xpc3QgKnQpXG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDYtXHQvKiBTdG9wIHNlYXJjaGluZyBpZiBvbmx5IGRlc2lyZWQgbm9kZSBoYXMgYmVlbiBmb3VuZCAqL1xubmV0L3RpcGMvZGlzY292ZXIuYzozMDc6XHRpZiAodGlwY19ub2RlKGQtXHUwMDNlZG9tYWluKSBcdTAwMjZcdTAwMjYgZC1cdTAwM2VudW1fbm9kZXMpIHtcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzA4LVx0XHRkLVx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5BQ1RJVkU7XG4tLVxubmV0L3RpcGMvZGlzY292ZXIuYy0zMjQtXHRcdGQtXHUwMDNldGltZXJfaW50diAqPSAyO1xubmV0L3RpcGMvZGlzY292ZXIuYzozMjU6XHRcdGlmIChkLVx1MDAzZW51bV9ub2RlcyBcdTAwMjZcdTAwMjYgZC1cdTAwM2V0aW1lcl9pbnR2IFx1MDAzZSBUSVBDX0RJU0NfU0xPVylcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI2LVx0XHRcdGQtXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19TTE9XO1xubmV0L3RpcGMvZGlzY292ZXIuYzozMjc6XHRcdGVsc2UgaWYgKCFkLVx1MDAzZW51bV9ub2RlcyBcdTAwMjZcdTAwMjYgZC1cdTAwM2V0aW1lcl9pbnR2IFx1MDAzZSBUSVBDX0RJU0NfRkFTVClcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI4LVx0XHRcdGQtXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19GQVNUO1xuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmM9MzUyPWludCB0aXBjX2Rpc2NfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfYmVhcmVyICpiLFxuLS1cbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzc2LVx0ZC1cdTAwM2Vkb21haW4gPSBiLVx1MDAzZWRvbWFpbjtcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mzc3Olx0ZC1cdTAwM2VudW1fbm9kZXMgPSAwO1xubmV0L3RpcGMvZGlzY292ZXIuYy0zNzgtXHRkLVx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5JVDtcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTQxMT12b2lkIHRpcGNfZGlzY19yZXNldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcbi0tXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTQyMS1cdGQtXHUwMDNlZG9tYWluID0gYi1cdTAwM2Vkb21haW47XG5uZXQvdGlwYy9kaXNjb3Zlci5jOjQyMjpcdGQtXHUwMDNlbnVtX25vZGVzID0gMDtcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIzLVx0ZC1cdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX0lOSVQ7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTQ3OD1zdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxuLS1cbm5ldC90aXBjL25vZGUuYy01NDctXHR9XG5uZXQvdGlwYy9ub2RlLmM6NTQ4Olx0aWYgKHRuLVx1MDAzZW51bV9ub2RlcyBcdTAwM2U9IFRJUENfTUFYX05PREVTKSB7XG5uZXQvdGlwYy9ub2RlLmMtNTQ5LVx0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwmIzM0O1RvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXG5cJiMzNDssXG5uZXQvdGlwYy9ub2RlLmM6NTUwOlx0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG5uZXQvdGlwYy9ub2RlLmMtNTUxLVx0XHRnb3RvIGV4aXQ7XG4tLVxubmV0L3RpcGMvbm9kZS5jLTYxNS1cdGxpc3RfYWRkX3RhaWxfcmN1KFx1MDAyNm4tXHUwMDNlbGlzdCwgXHUwMDI2dGVtcF9ub2RlLVx1MDAzZWxpc3QpO1xubmV0L3RpcGMvbm9kZS5jOjYxNjpcdHRuLVx1MDAzZW51bV9ub2RlcyYjNDM7JiM0Mzs7XG5uZXQvdGlwYy9ub2RlLmMtNjE3LVx0LyogQ2FsY3VsYXRlIGNsdXN0ZXIgY2FwYWJpbGl0aWVzICovXG4tLVxubmV0L3RpcGMvbm9kZS5jPTY0Mj1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdChzdHJ1Y3QgdGlwY19ub2RlICpub2RlKVxuLS1cbm5ldC90aXBjL25vZGUuYy02NDgtXHRobGlzdF9kZWxfcmN1KFx1MDAyNm5vZGUtXHUwMDNlaGFzaCk7XG5uZXQvdGlwYy9ub2RlLmM6NjQ5Olx0dGlwY19uZXQobm9kZS1cdTAwM2VuZXQpLVx1MDAzZW51bV9ub2Rlcy0tO1xubmV0L3RpcGMvbm9kZS5jLTY1MC1cdHRpcGNfbm9kZV9wdXQobm9kZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI5OAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDM2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipGdXp6aW5nIFRoaXMgVElQQyBOb2RlIExpbWl0PyoqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMuIE15IGluaXRpYWwgdGhvdWdodCBpcywgJiMzNDtJcyB0aGlzIGZ1enphYmxlPyYjMzQ7IEl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGJ1dCBpdCYjMzk7cyBmdW5kYW1lbnRhbGx5IGp1c3QgcHJldmVudGluZyB0aGUgY3JlYXRpb24gb2YgbW9yZSB0aGFuIDgxOTIgbm9kZXMuIENyZWF0aW5nIHRoYXQgbWFueSBub2RlcyB0byBmdXp6IHRoaXMuLi4gdGhhdCYjMzk7cyBhIGxvdCBvZiBvdmVyaGVhZC4KClRoZXJlJiMzOTtzIG5vIGNvbXBsZXggbG9naWMgaGVyZSwgaXQmIzM5O3MgYSBzaW1wbGUgY291bnRlciwgYW4gaW5jcmVtZW50LCBhIGRlY3JlbWVudCwgYW5kIGEgY2hlY2suIElmIGB0bi0mZ3Q7bnVtX25vZGVzYCBpcyBtYW5hZ2VkIHByb3Blcmx5LCBpdCYjMzk7cyAqanVzdCogYSBsaW1pdC4gQnV0LCB3YWl0Li4uIGl0ICpkb2VzKiBhbHRlciB0aGUgY29yZSBUSVBDIGxvZ2ljLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaXQgZm9yIGZ1enppbmcuCgpMZXQgbWUgcmUtcmVhZCB0aGUgZ3VpZGVsaW5lcy4gQWhhISBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgaWYgaXTigJlzIGp1c3QgZG9jdW1lbnRhdGlvbiwgZGVjb3JhdGlvbiwgb3IgY29uc3RhbnQvbWFjcm8gY2hhbmdlcyB0aGF0IGRvbiYjMzk7dCBhbHRlciBleGVjdXRpb24gZmxvdy4gVGhpcyAqZG9lcyogYWx0ZXIgdGhlIGV4ZWN1dGlvbiBmbG93LCBhcyBpdCBkcm9wcyB0aGUgbm9kZSBjcmVhdGlvbiBpZiB0aGUgbGltaXQgaXMgcmVhY2hlZC4gU28sIGBXb3J0aEZ1enppbmc9dHJ1ZWAuCgpUaGVyZWZvcmUsIEkgdGhpbmsgdGhlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBiZSBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIHNpbmNlIHRob3NlIGFyZSB0aGUgY29kZSBwYXRocyB0aGF0IHRyaWdnZXIgdGhlIGNvdW50ZXIuIE5vdyBJIGhhdmUgdG8gbWFrZSBzdXJlIGBUSVBDYCBpcyB0aGUgY29ycmVjdCBlbmFibGUgY29uZmlnLiBJJiMzOTtsbCBkb3VibGUtY2hlY2sgdGhhdCB0byBlbnN1cmUgaXQgZW5hYmxlcyB0aGUgY29yZSBUSVBDIGZ1bmN0aW9uYWxpdHkuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFRJUEMmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvdGlwYy8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3RpcGMvS2NvbmZpZy01LVxubmV0L3RpcGMvS2NvbmZpZzo2Om1lbnVjb25maWcgVElQQ1xubmV0L3RpcGMvS2NvbmZpZy03LVx0dHJpc3RhdGUgXCYjMzQ7VGhlIFRJUEMgUHJvdG9jb2xcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTIzLVxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxubmV0L3RpcGMvS2NvbmZpZy0yNS1cdGJvb2wgXCYjMzQ7SW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvdGlwYy9LY29uZmlnLTI5LVx0ICBJUC1vdmVyLUluZmluaUJhbmQgZGV2aWNlcy5cbm5ldC90aXBjL0tjb25maWc6MzA6Y29uZmlnIFRJUENfTUVESUFfVURQXG5uZXQvdGlwYy9LY29uZmlnLTMxLVx0Ym9vbCBcJiMzNDtJUC9VRFAgbWVkaWEgdHlwZSBzdXBwb3J0XCYjMzQ7XG4tLVxubmV0L3RpcGMvS2NvbmZpZy0zNy1cbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXG5uZXQvdGlwYy9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC90aXBjL0tjb25maWctNTItXG5uZXQvdGlwYy9LY29uZmlnOjUzOmNvbmZpZyBUSVBDX0RJQUdcbm5ldC90aXBjL0tjb25maWctNTQtXHR0cmlzdGF0ZSBcJiMzNDtUSVBDOiBzb2NrZXQgbW9uaXRvcmluZyBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Mjg1CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogNDc3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVElQQyBOb2RlIE1hbmFnZW1lbnQqKgoKT2theSwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gVGhlIGNvbmZpZyBpbiBxdWVzdGlvbiBpcyBgVElQQ2AuIEkgbmVlZCB0byBpZGVudGlmeSBpZiB0aGlzIGNoYW5nZSB3YXJyYW50cyBmdXp6aW5nIGFuZCwgaWYgc28sIHdoYXQgdG8gZm9jdXMgb24uIAoKRmlyc3QsIEkgc2VlIHRoYXQgYHRpcGNfbm9kZV9jcmVhdGVgIGlzIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCYjMzk7cyBjYWxsZWQgZHVyaW5nIG5ldyBub2RlIGRpc2NvdmVyeSwgd2hpY2ggbWFrZXMgaXQgYSBnb29kIGNhbmRpZGF0ZS4gSXQgbG9va3MgbGlrZSBgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3RgIGlzIHN0YXRpYywgYnV0IHdlIGNhbiBzdGlsbCBsaXN0IGl0LiBUaGUgZmFjdCB0aGF0IGl0JiMzOTtzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgbWFrZXMgZnV6emluZyB3b3J0aHdoaWxlLgoKSSBzaG91bGQgZG91YmxlLWNoZWNrIGZvciBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGJ1dCBgVElQQ2Agc2VlbXMgdG8gYmUgdGhlIG1haW4gb25lLiBJJiMzOTtsbCBtYWtlIHN1cmUgdG8gdmVyaWZ5IGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAgaXMgaW5kZWVkIHN0YXRpYywgYW5kIHRoYXQgaXQgaXMgb2theSB0byBsaXN0IGEgc3RhdGljIGZ1bmN0aW9uLgoKTm93LCBsZXQgbWUgcmVmcmVzaCB0aGUgcmVxdWlyZW1lbnRzLiBSaWdodCwgSSBuZWVkIHRvIGxpc3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBmb3IgaGVhdnkgZnV6emluZyBpbiBgRm9jdXNTeW1ib2xzYCwgYXZvaWRpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMuIEFsc28sIEkgbmVlZCB0byBpZGVudGlmeSBzcGVjaWZpYyBgQ09ORklHX2Agb3B0aW9ucywgY2hlY2tpbmcgS2NvbmZpZyBmaWxlcyBmb3IgaWZkZWZzIGFuZCBhdm9pZGluZyBvdmVybHkgZ2VuZXJpYyBvbmVzLgoKQWxyaWdodCwgc286CiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtUSVBDJiMzNDtdYCDigJMgVGhpcyBpcyB0aGUgY29uZmlnIGRpcmVjdGx5IHJlbGF0ZWQgdG8gdGhlIGNoYW5nZXMuCiogICBgRm9jdXNTeW1ib2xzYDogYFsmIzM0O3RpcGNfbm9kZV9jcmVhdGUmIzM0OywgJiMzNDt0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdCYjMzQ7XWAg4oCTIEkmIzM5O20gbGlzdGluZyBib3RoIGB0aXBjX25vZGVfY3JlYXRlYCBhbmQgYHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0YCwgYXMgdGhlIHBhdGNoIGltcGFjdHMgbm9kZSBjcmVhdGlvbiBhbmQgZGVsZXRpb24sIGFuZCB0aGVyZWZvcmUgbm9kZSBjb3VudCwgd2hpY2ggaXMgZnVuY3Rpb25hbCBpbiBuYXR1cmUuCgpJIG5lZWQgdG8gY29uZmlybSBgdGlwY19ub2RlX2NyZWF0ZWAgaXMgcmVhY2hhYmxlLiBZZXMsIHRocm91Z2ggVElQQyBkaXNjb3ZlcnkuIEkmIzM5O2xsIGFsc28gY2hlY2sgY2FsbGVycyBvZiBgdGlwY19ub2RlX2NyZWF0ZWAgdG8gZW5zdXJlIEkgaGF2ZSBpZGVudGlmaWVkIGFsbCByZWxhdGVkIGZ1bmN0aW9ucy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMSAxMzowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L3RpcGMvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC90aXBjL2NyeXB0by5jPTE4OTc9c3RhdGljIHZvaWQgdGlwY19jcnlwdG9fcmN2X2NvbXBsZXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHRpcGNfYWVhZCAqYWVhZCxcbi0tXG5uZXQvdGlwYy9jcnlwdG8uYy0xOTI5LVx0XHRcdFdBUk5fT04oZWhkci1cdTAwM2V1c2VyICE9IExJTktfQ09ORklHKTtcbm5ldC90aXBjL2NyeXB0by5jOjE5MzA6XHRcdFx0biA9IHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBlaGRyLVx1MDAzZWlkLCAweGZmZmZ1LCAwLFxubmV0L3RpcGMvY3J5cHRvLmMtMTkzMS1cdFx0XHRcdFx0ICAgICB0cnVlKTtcbi0tXG5uZXQvdGlwYy9ub2RlLmM9NDUwPXN0YXRpYyB2b2lkIHRpcGNfbm9kZV9hc3NpZ25fcGVlcl9uZXQoc3RydWN0IHRpcGNfbm9kZSAqbiwgdTMyIGhhc2hfbWl4ZXMpXG4tLVxubmV0L3RpcGMvbm9kZS5jLTQ3Ny1cbm5ldC90aXBjL25vZGUuYzo0Nzg6c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbm5ldC90aXBjL25vZGUuYy00NzktXHRcdFx0XHQgICB1MTYgY2FwYWJpbGl0aWVzLCB1MzIgaGFzaF9taXhlcyxcbi0tXG5uZXQvdGlwYy9ub2RlLmMtNjIyLVx0dGlwY19iY2FzdF90b2dnbGVfcmNhc3QobmV0LCAodG4tXHUwMDNlY2FwYWJpbGl0aWVzIFx1MDAyNiBUSVBDX0JDQVNUX1JDQVNUKSk7XG5uZXQvdGlwYy9ub2RlLmM6NjIzOlx0dHJhY2VfdGlwY19ub2RlX2NyZWF0ZShuLCB0cnVlLCBcJiMzNDsgXCYjMzQ7KTtcbm5ldC90aXBjL25vZGUuYy02MjQtZXhpdDpcbi0tXG5uZXQvdGlwYy9ub2RlLmM9MTE4NT12b2lkIHRpcGNfbm9kZV9jaGVja19kZXN0KHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsXG4tLVxubmV0L3RpcGMvbm9kZS5jLTEyMDYtXG5uZXQvdGlwYy9ub2RlLmM6MTIwNzpcdG4gPSB0aXBjX25vZGVfY3JlYXRlKG5ldCwgYWRkciwgcGVlcl9pZCwgY2FwYWJpbGl0aWVzLCBoYXNoX21peGVzLFxubmV0L3RpcGMvbm9kZS5jLTEyMDgtXHRcdFx0ICAgICBmYWxzZSk7XG4tLVxubmV0L3RpcGMvbm9kZS5jPTI5ODY9c3RhdGljIGludCBfX3RpcGNfbmxfbm9kZV9zZXRfa2V5KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pXG4tLVxubmV0L3RpcGMvbm9kZS5jLTMwMzYtXHRcdFx0biA9IHRpcGNfbm9kZV9maW5kX2J5X2lkKG5ldCwgaWQpID86XG5uZXQvdGlwYy9ub2RlLmM6MzAzNzpcdFx0XHRcdHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBpZCwgMHhmZmZmdSwgMCwgdHJ1ZSk7XG5uZXQvdGlwYy9ub2RlLmMtMzAzOC1cdFx0XHRpZiAodW5saWtlbHkoIW4pKVxuLS1cbm5ldC90aXBjL25vZGUuaD04Mj12b2lkIHRpcGNfbm9kZV9nZXQoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSk7XG5uZXQvdGlwYy9ub2RlLmg6ODM6c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcbm5ldC90aXBjL25vZGUuaC04NC1cdFx0XHRcdCAgIHUxNiBjYXBhYmlsaXRpZXMsIHUzMiBoYXNoX21peGVzLFxuLS1cbm5ldC90aXBjL3RyYWNlLmg9MzUzPURFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9kdW1wKTtcbm5ldC90aXBjL3RyYWNlLmg6MzU0OkRFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9jcmVhdGUpO1xubmV0L3RpcGMvdHJhY2UuaC0zNTUtREVGSU5FX05PREVfRVZFTlQodGlwY19ub2RlX2RlbGV0ZSk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzAwMwoJCQkJCQkJb3V0cHV0OiAxMTEKCQkJCQkJCXRob3VnaHRzOiAxNwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSBzaXR1YXRpb246CgoqKkZ1enppbmcgdGhlIFBhdGNoOiBBIEdvL05vLUdvIERlY2lzaW9uKioKCkFscmlnaHQsIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCwgbXkgaW5pdGlhbCBhc3Nlc3NtZW50IGlzIHRoYXQgaXQmIzM5O3MgZnVuY3Rpb25hbC4gVGhhdCYjMzk7cyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCYjMzk7cyAqZnV6ei13b3J0aHkqLiBBbmQgYWZ0ZXIgYSBxdWljayByZXZpZXcsIEkmIzM5O20gbGVhbmluZyB0b3dhcmRzIHllcy4gSSB0aGluayB0aGVyZSBhcmUgcG90ZW50aWFsIGFyZWFzIHdoZXJlIHdlIGNvdWxkIHVuY292ZXIgc29tZSBpbnRlcmVzdGluZyBlZGdlIGNhc2VzIG9yIHZ1bG5lcmFiaWxpdGllcy4gSXQgaGFzIHRoZSByaWdodCBjaGFyYWN0ZXJpc3RpY3MgZm9yIGZ1enppbmcgdG8gYmUgd29ydGh3aGlsZS4gU28sIEkmIzM5O20gZ29pbmcgdG8gZ3JlZW4tbGlnaHQgdGhlIGZ1enppbmcgcHJvY2Vzcy4gVGltZSB0byBpbml0aWF0ZSBgc2V0LXJlc3VsdHNgLiBMZXQmIzM5O3Mgc2VlIHdoYXQgd2UgY2FuIGRpZyB1cC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTEgMTM6MDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1RJUEMmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt0aXBjX25vZGVfY3JlYXRlJiMzNDssCiAgICAmIzM0O3RpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtUSVBDJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7dGlwY19ub2RlX2NyZWF0ZSYjMzQ7LAogICAgJiMzNDt0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBpbnRyb2R1Y2VzIGEgaGFyZCBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIFRJUEMgbm9kZXMgcGVyIG5ldCBuYW1lc3BhY2UgdG8gcHJldmVudCB1bmJvdW5kZWQgbWVtb3J5IGdyb3d0aC4gSXQgbW9kaWZpZXMgdGlwY19ub2RlX2NyZWF0ZSB0byBlbmZvcmNlIHRoaXMgbGltaXQgYW5kIHVwZGF0ZXMgdGhlIG5vZGUgY291bnQgZHVyaW5nIGNyZWF0aW9uIGFuZCBkZWxldGlvbi4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUgVElQQyBsb2dpYy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjE5LjM3MzYxMjM1NVoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyNTk5MDk1NjIyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOToxOS4zNzM2MjI0NzVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMyMjg2MTMwNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGNlODIzZjNjZWEzM2ZlYmU4YmRlYzgyMWU2ZGMxYzdiYmY0YjdkOGRcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdWwgMTEgMTM6MDk6MTggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3RpcGMvbm9kZS5jIGIvbmV0L3RpcGMvbm9kZS5jXFxuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxcbi0tLSBhL25ldC90aXBjL25vZGUuY1xcbisrKyBiL25ldC90aXBjL25vZGUuY1xcbkBAIC00OSw2ICs0OSwxNiBAQFxcbiAjZGVmaW5lIElOVkFMSURfTk9ERV9TSUdcXHQweDEwMDAwXFxuICNkZWZpbmUgTk9ERV9DTEVBTlVQX0FGVEVSXFx0MzAwMDAwXFxuIFxcbisvKiBIYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIGxpdmUgc3RydWN0IHRpcGNfbm9kZSBlbnRyaWVzIGEgc2luZ2xlIG5ldFxcbisgKiBuYW1lc3BhY2Ugd2lsbCBob2xkLiBFdmVyeSBlbnRyeSAocHJlbGltaW5hcnkgb3Igbm90KSBhbHNvIHBpbnMgYVxcbisgKiBicm9hZGNhc3QtcmVjZWl2ZSBsaW5rLCBhIHVuaWNhc3QgbGluayBzbG90IGFuZCBhIGtlZXBhbGl2ZSB0aW1lciwgc29cXG4rICogdGhpcyBib3VuZHMgd29yc3QtY2FzZSBtZW1vcnkgZnJvbSB1bmF1dGhlbnRpY2F0ZWQgTElOS19DT05GSUcgZGlzY292ZXJ5XFxuKyAqIHRyYWZmaWMgdGhlIHNhbWUgd2F5IG5laWdoX2FsbG9jKCkncyBnY190aHJlc2gzIGJvdW5kcyB0aGUgQVJQL05EIHRhYmxlXFxuKyAqIChzZWUgbmV0L2NvcmUvbmVpZ2hib3VyLmMpLiA4MTkyIGlzIGZhciBhYm92ZSBhbnkgcmVhbGlzdGljIFRJUEMgY2x1c3RlclxcbisgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxcbisgKi9cXG4rI2RlZmluZSBUSVBDX01BWF9OT0RFU1xcdFxcdDgxOTJcXG4rXFxuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXFxuICAqIFRJUENfTk9USUZZX05PREVfRE9XTjogbm90aWZ5IG5vZGUgaXMgZG93blxcbiAgKiBUSVBDX05PVElGWV9OT0RFX1VQOiBub3RpZnkgbm9kZSBpcyB1cFxcbkBAIC01MzUsNiArNTQ1LDExIEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxuIFxcbiBcXHRcXHRnb3RvIGV4aXQ7XFxuIFxcdH1cXG4rXFx0aWYgKHRuLVxcdTAwM2VudW1fbm9kZXMgXFx1MDAzZT0gVElQQ19NQVhfTk9ERVMpIHtcXG4rXFx0XFx0cHJfd2Fybl9yYXRlbGltaXRlZChcXFwiVG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxcXFxuXFxcIixcXG4rXFx0XFx0XFx0XFx0ICAgIHRuLVxcdTAwM2VudW1fbm9kZXMsIGFkZHIpO1xcbitcXHRcXHRnb3RvIGV4aXQ7XFxuK1xcdH1cXG4gXFx0biA9IGt6YWxsb2Nfb2JqKCpuLCBHRlBfQVRPTUlDKTtcXG4gXFx0aWYgKCFuKSB7XFxuIFxcdFxcdHByX3dhcm4oXFxcIk5vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXFxcblxcXCIpO1xcbkBAIC01OTgsNiArNjEzLDcgQEAgc3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4gXFx0XFx0XFx0YnJlYWs7XFxuIFxcdH1cXG4gXFx0bGlzdF9hZGRfdGFpbF9yY3UoXFx1MDAyNm4tXFx1MDAzZWxpc3QsIFxcdTAwMjZ0ZW1wX25vZGUtXFx1MDAzZWxpc3QpO1xcbitcXHR0bi1cXHUwMDNlbnVtX25vZGVzKys7XFxuIFxcdC8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqL1xcbiBcXHR0bi1cXHUwMDNlY2FwYWJpbGl0aWVzID0gVElQQ19OT0RFX0NBUEFCSUxJVElFUztcXG4gXFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGVtcF9ub2RlLCBcXHUwMDI2dG4tXFx1MDAzZW5vZGVfbGlzdCwgbGlzdCkge1xcbkBAIC02MzAsNiArNjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcXG4gI2VuZGlmXFxuIFxcdGxpc3RfZGVsX3JjdShcXHUwMDI2bm9kZS1cXHUwMDNlbGlzdCk7XFxuIFxcdGhsaXN0X2RlbF9yY3UoXFx1MDAyNm5vZGUtXFx1MDAzZWhhc2gpO1xcbitcXHR0aXBjX25ldChub2RlLVxcdTAwM2VuZXQpLVxcdTAwM2VudW1fbm9kZXMtLTtcXG4gXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG4gfVxcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMTM6MDk6MTkuNjk3MzcwMTRaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIyMjc1MzIzNDU3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGNlODIzZjNjZWEzM2ZlYmU4YmRlYzgyMWU2ZGMxYzdiYmY0YjdkOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1bCAxMSAxMzowOToxOCAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC90aXBjL25vZGUuYyBiL25ldC90aXBjL25vZGUuY1xuaW5kZXggOGU0ZWYyNjMwYWU0ZmYuLmJiNDFmMzIzMWNlMWJiIDEwMDY0NFxuLS0tIGEvbmV0L3RpcGMvbm9kZS5jXG4rKysgYi9uZXQvdGlwYy9ub2RlLmNcbkBAIC00OSw2ICs0OSwxNiBAQFxuICNkZWZpbmUgSU5WQUxJRF9OT0RFX1NJR1x0MHgxMDAwMFxuICNkZWZpbmUgTk9ERV9DTEVBTlVQX0FGVEVSXHQzMDAwMDBcbiBcbisvKiBIYXJkIGNhcCBvbiB0aGUgbnVtYmVyIG9mIGxpdmUgc3RydWN0IHRpcGNfbm9kZSBlbnRyaWVzIGEgc2luZ2xlIG5ldFxuKyAqIG5hbWVzcGFjZSB3aWxsIGhvbGQuIEV2ZXJ5IGVudHJ5IChwcmVsaW1pbmFyeSBvciBub3QpIGFsc28gcGlucyBhXG4rICogYnJvYWRjYXN0LXJlY2VpdmUgbGluaywgYSB1bmljYXN0IGxpbmsgc2xvdCBhbmQgYSBrZWVwYWxpdmUgdGltZXIsIHNvXG4rICogdGhpcyBib3VuZHMgd29yc3QtY2FzZSBtZW1vcnkgZnJvbSB1bmF1dGhlbnRpY2F0ZWQgTElOS19DT05GSUcgZGlzY292ZXJ5XG4rICogdHJhZmZpYyB0aGUgc2FtZSB3YXkgbmVpZ2hfYWxsb2MoKSdzIGdjX3RocmVzaDMgYm91bmRzIHRoZSBBUlAvTkQgdGFibGVcbisgKiAoc2VlIG5ldC9jb3JlL25laWdoYm91ci5jKS4gODE5MiBpcyBmYXIgYWJvdmUgYW55IHJlYWxpc3RpYyBUSVBDIGNsdXN0ZXJcbisgKiBzaXplIGFuZCBpcyBub3QgbWVhbnQgdG8gYmUgdGlnaHQgLS0gaXQgb25seSBzdG9wcyB1bmJvdW5kZWQgZ3Jvd3RoLlxuKyAqL1xuKyNkZWZpbmUgVElQQ19NQVhfTk9ERVNcdFx0ODE5MlxuK1xuIC8qIEZsYWdzIHVzZWQgdG8gdGFrZSBkaWZmZXJlbnQgYWN0aW9ucyBhY2NvcmRpbmcgdG8gZmxhZyB0eXBlXG4gICogVElQQ19OT1RJRllfTk9ERV9ET1dOOiBub3RpZnkgbm9kZSBpcyBkb3duXG4gICogVElQQ19OT1RJRllfTk9ERV9VUDogbm90aWZ5IG5vZGUgaXMgdXBcbkBAIC01MzUsNiArNTQ1LDExIEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXG4gXHRcdGdvdG8gZXhpdDtcbiBcdH1cbitcdGlmICh0bi1cdTAwM2VudW1fbm9kZXMgXHUwMDNlPSBUSVBDX01BWF9OT0RFUykge1xuK1x0XHRwcl93YXJuX3JhdGVsaW1pdGVkKFwiVG9vIG1hbnkgVElQQyBub2RlcyAoJXUpLCBkcm9wcGluZyBuZXcgcGVlciAleFxcblwiLFxuK1x0XHRcdFx0ICAgIHRuLVx1MDAzZW51bV9ub2RlcywgYWRkcik7XG4rXHRcdGdvdG8gZXhpdDtcbitcdH1cbiBcdG4gPSBremFsbG9jX29iaigqbiwgR0ZQX0FUT01JQyk7XG4gXHRpZiAoIW4pIHtcbiBcdFx0cHJfd2FybihcIk5vZGUgY3JlYXRpb24gZmFpbGVkLCBubyBtZW1vcnlcXG5cIik7XG5AQCAtNTk4LDYgKzYxMyw3IEBAIHN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXG4gXHRcdFx0YnJlYWs7XG4gXHR9XG4gXHRsaXN0X2FkZF90YWlsX3JjdShcdTAwMjZuLVx1MDAzZWxpc3QsIFx1MDAyNnRlbXBfbm9kZS1cdTAwM2VsaXN0KTtcbitcdHRuLVx1MDAzZW51bV9ub2RlcysrO1xuIFx0LyogQ2FsY3VsYXRlIGNsdXN0ZXIgY2FwYWJpbGl0aWVzICovXG4gXHR0bi1cdTAwM2VjYXBhYmlsaXRpZXMgPSBUSVBDX05PREVfQ0FQQUJJTElUSUVTO1xuIFx0bGlzdF9mb3JfZWFjaF9lbnRyeV9yY3UodGVtcF9ub2RlLCBcdTAwMjZ0bi1cdTAwM2Vub2RlX2xpc3QsIGxpc3QpIHtcbkBAIC02MzAsNiArNjQ2LDcgQEAgc3RhdGljIHZvaWQgdGlwY19ub2RlX2RlbGV0ZV9mcm9tX2xpc3Qoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSlcbiAjZW5kaWZcbiBcdGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWxpc3QpO1xuIFx0aGxpc3RfZGVsX3JjdShcdTAwMjZub2RlLVx1MDAzZWhhc2gpO1xuK1x0dGlwY19uZXQobm9kZS1cdTAwM2VuZXQpLVx1MDAzZW51bV9ub2Rlcy0tO1xuIFx0dGlwY19ub2RlX3B1dChub2RlKTtcbiB9XG4gXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOToxOS42OTczNzE4MVoiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ4MjEwNDM1NTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBUSVBDIE5vZGUgTGltaXQgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB3ZSd2ZSBnb3QgYSBwYXRjaCBoZXJlIHRoYXQncyBwdXR0aW5nIGEgaGFyZCBjYXAgb24gdGhlIG51bWJlciBvZiBUSVBDIG5vZGVzIHdpdGhpbiBhIG5ldHdvcmsgbmFtZXNwYWNlLiBJdCBsb29rcyBsaWtlIHRoZSBsaW1pdCBpcyBkZWZpbmVkIGFzIGBUSVBDX01BWF9OT0RFU2AsIHNldCB0byA4MTkyLCB3aGljaCBzZWVtcyByZWFzb25hYmxlLiBUaGUgY29yZSBvZiB0aGlzIHBhdGNoIHNlZW1zIHRvIGJlIGluIGB0aXBjX25vZGVfY3JlYXRlYCB3aGVyZSBpdCBjaGVja3MgaWYgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIG5vZGVzLCByZXByZXNlbnRlZCBieSBgdG4tXHUwMDNlbnVtX25vZGVzYCwgaGFzIGhpdCB0aGF0IGxpbWl0LiBJZiBzbywgdGhlIHBhdGNoJ3MgbG9naWMgZHJvcHMgdGhlIG5ldyBwZWVyLiBNYWtlcyBzZW5zZSDigJMgcHJldmVudCByZXNvdXJjZSBleGhhdXN0aW9uLiBBbmQsIG9mIGNvdXJzZSwgdGhleeKAmXZlIGFkZGVkIGxvZ2ljIHRvIGluY3JlbWVudCBgdG4tXHUwMDNlbnVtX25vZGVzYCB3aGVuIGEgbm9kZSBqb2lucyB0aGUgcGFydHksIGFuZCBkZWNyZW1lbnQgaXQgd2hlbiBvbmUgbGVhdmVzLiBTdGFuZGFyZCBhY2NvdW50aW5nLlxuXG5Ob3csIEkgbmVlZCB0byBmaWd1cmUgb3V0IGV4YWN0bHkgaG93IGB0bi1cdTAwM2VudW1fbm9kZXNgIGlzIGJlaW5nIG1hbmFnZWQuIE15IGZpcnN0IHRob3VnaHQgaXMgdG8gZGl2ZSBpbnRvIGBuZXQvdGlwYy9ub2RlLmNgIGFuZCBsaWtlbHkgYG5ldC90aXBjL25vZGUuaGAgb3IgbWF5YmUgZXZlbiBgbmV0L3RpcGMvY29yZS5oYCB0byBzZWUgaG93IGl0J3MgZGVmaW5lZCBhbmQgd2hlcmUgaXQgbGl2ZXMuIEFoLCByaWdodCwgYHRuYCBpcyBhIGBzdHJ1Y3QgdGlwY19uZXQgKmAsIHNvIGl0J3MgYSBmaWVsZCB3aXRoaW4gdGhhdCBzdHJ1Y3R1cmUuIExldCdzIGRvIGEgcXVpY2sgYGdyZXBgIGZvciBgbnVtX25vZGVzYCBhbmQgdHJhY2UgaXRzIHVzYWdlIHRvIGNvbmZpcm0gbXkgYXNzdW1wdGlvbnMgYW5kIGdldCB0aGUgcHJlY2lzZSBwaWN0dXJlLiBUaGF0J2xsIHRlbGwgbWUgaWYgdGhlcmUncyBhbnl0aGluZyBlbHNlIGludGVyZXN0aW5nIGdvaW5nIG9uIHJlbGF0ZWQgdG8gdGhhdCBjb3VudGVyLiBHb29kLCB0aG9yb3VnaC5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM1OSwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE5MiwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjI0LjUxODQxODg4N1oiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyNzkyNDcxNTIsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibnVtX25vZGVzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9jb3JlLmg9OTQ9c3RydWN0IHRpcGNfbmV0IHtcXG4tLVxcbm5ldC90aXBjL2NvcmUuaC0xMDctXFx0c3RydWN0IGxpc3RfaGVhZCBub2RlX2xpc3Q7XFxubmV0L3RpcGMvY29yZS5oOjEwODpcXHR1MzIgbnVtX25vZGVzO1xcbm5ldC90aXBjL2NvcmUuaC0xMDktXFx0dTMyIG51bV9saW5rcztcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNTUtICogQGRvbWFpbjogbmV0d29yayBkb21haW4gdG8gd2hpY2ggbGlua3MgY2FuIGJlIGVzdGFibGlzaGVkXFxubmV0L3RpcGMvZGlzY292ZXIuYzo1NjogKiBAbnVtX25vZGVzOiBudW1iZXIgb2Ygbm9kZXMgY3VycmVudGx5IGRpc2NvdmVyZWQgKGkuZS4gd2l0aCBhbiBhY3RpdmUgbGluaylcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTU3LSAqIEBsb2NrOiBzcGlubG9jayBmb3IgY29udHJvbGxpbmcgYWNjZXNzIHRvIHJlcXVlc3RzXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTYzPXN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIge1xcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYy02Ny1cXHR1MzIgZG9tYWluO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Njg6XFx0aW50IG51bV9ub2RlcztcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTY5LVxcdHNwaW5sb2NrX3QgbG9jaztcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9MjY1PXZvaWQgdGlwY19kaXNjX2FkZF9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI2Ny1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmQtXFx1MDAzZWxvY2spO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjY4OlxcdGQtXFx1MDAzZW51bV9ub2RlcysrO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMjY5LVxcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZkLVxcdTAwM2Vsb2NrKTtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjc0PXZvaWQgdGlwY19kaXNjX3JlbW92ZV9kZXN0KHN0cnVjdCB0aXBjX2Rpc2NvdmVyZXIgKmQpXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI3OC1cXHRzcGluX2xvY2tfYmgoXFx1MDAyNmQtXFx1MDAzZWxvY2spO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6Mjc5OlxcdGQtXFx1MDAzZW51bV9ub2Rlcy0tO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmM6MjgwOlxcdG51bSA9IGQtXFx1MDAzZW51bV9ub2RlcztcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTI4MS1cXHRpbnR2ID0gZC1cXHUwMDNldGltZXJfaW50djtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmM9Mjk1PXN0YXRpYyB2b2lkIHRpcGNfZGlzY190aW1lb3V0KHN0cnVjdCB0aW1lcl9saXN0ICp0KVxcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDYtXFx0LyogU3RvcCBzZWFyY2hpbmcgaWYgb25seSBkZXNpcmVkIG5vZGUgaGFzIGJlZW4gZm91bmQgKi9cXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjMwNzpcXHRpZiAodGlwY19ub2RlKGQtXFx1MDAzZWRvbWFpbikgXFx1MDAyNlxcdTAwMjYgZC1cXHUwMDNlbnVtX25vZGVzKSB7XFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMDgtXFx0XFx0ZC1cXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19JTkFDVElWRTtcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtMzI0LVxcdFxcdGQtXFx1MDAzZXRpbWVyX2ludHYgKj0gMjtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjMyNTpcXHRcXHRpZiAoZC1cXHUwMDNlbnVtX25vZGVzIFxcdTAwMjZcXHUwMDI2IGQtXFx1MDAzZXRpbWVyX2ludHYgXFx1MDAzZSBUSVBDX0RJU0NfU0xPVylcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTMyNi1cXHRcXHRcXHRkLVxcdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX1NMT1c7XFxubmV0L3RpcGMvZGlzY292ZXIuYzozMjc6XFx0XFx0ZWxzZSBpZiAoIWQtXFx1MDAzZW51bV9ub2RlcyBcXHUwMDI2XFx1MDAyNiBkLVxcdTAwM2V0aW1lcl9pbnR2IFxcdTAwM2UgVElQQ19ESVNDX0ZBU1QpXFxubmV0L3RpcGMvZGlzY292ZXIuYy0zMjgtXFx0XFx0XFx0ZC1cXHUwMDNldGltZXJfaW50diA9IFRJUENfRElTQ19GQVNUO1xcbi0tXFxubmV0L3RpcGMvZGlzY292ZXIuYz0zNTI9aW50IHRpcGNfZGlzY19jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgdGlwY19iZWFyZXIgKmIsXFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTM3Ni1cXHRkLVxcdTAwM2Vkb21haW4gPSBiLVxcdTAwM2Vkb21haW47XFxubmV0L3RpcGMvZGlzY292ZXIuYzozNzc6XFx0ZC1cXHUwMDNlbnVtX25vZGVzID0gMDtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jLTM3OC1cXHRkLVxcdTAwM2V0aW1lcl9pbnR2ID0gVElQQ19ESVNDX0lOSVQ7XFxuLS1cXG5uZXQvdGlwYy9kaXNjb3Zlci5jPTQxMT12b2lkIHRpcGNfZGlzY19yZXNldChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2JlYXJlciAqYilcXG4tLVxcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIxLVxcdGQtXFx1MDAzZWRvbWFpbiA9IGItXFx1MDAzZWRvbWFpbjtcXG5uZXQvdGlwYy9kaXNjb3Zlci5jOjQyMjpcXHRkLVxcdTAwM2VudW1fbm9kZXMgPSAwO1xcbm5ldC90aXBjL2Rpc2NvdmVyLmMtNDIzLVxcdGQtXFx1MDAzZXRpbWVyX2ludHYgPSBUSVBDX0RJU0NfSU5JVDtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz00Nzg9c3RydWN0IHRpcGNfbm9kZSAqdGlwY19ub2RlX2NyZWF0ZShzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLCB1OCAqcGVlcl9pZCxcXG4tLVxcbm5ldC90aXBjL25vZGUuYy01NDctXFx0fVxcbm5ldC90aXBjL25vZGUuYzo1NDg6XFx0aWYgKHRuLVxcdTAwM2VudW1fbm9kZXMgXFx1MDAzZT0gVElQQ19NQVhfTk9ERVMpIHtcXG5uZXQvdGlwYy9ub2RlLmMtNTQ5LVxcdFxcdHByX3dhcm5fcmF0ZWxpbWl0ZWQoXFxcIlRvbyBtYW55IFRJUEMgbm9kZXMgKCV1KSwgZHJvcHBpbmcgbmV3IHBlZXIgJXhcXFxcblxcXCIsXFxubmV0L3RpcGMvbm9kZS5jOjU1MDpcXHRcXHRcXHRcXHQgICAgdG4tXFx1MDAzZW51bV9ub2RlcywgYWRkcik7XFxubmV0L3RpcGMvbm9kZS5jLTU1MS1cXHRcXHRnb3RvIGV4aXQ7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNjE1LVxcdGxpc3RfYWRkX3RhaWxfcmN1KFxcdTAwMjZuLVxcdTAwM2VsaXN0LCBcXHUwMDI2dGVtcF9ub2RlLVxcdTAwM2VsaXN0KTtcXG5uZXQvdGlwYy9ub2RlLmM6NjE2OlxcdHRuLVxcdTAwM2VudW1fbm9kZXMrKztcXG5uZXQvdGlwYy9ub2RlLmMtNjE3LVxcdC8qIENhbGN1bGF0ZSBjbHVzdGVyIGNhcGFiaWxpdGllcyAqL1xcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTY0Mj1zdGF0aWMgdm9pZCB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdChzdHJ1Y3QgdGlwY19ub2RlICpub2RlKVxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTY0OC1cXHRobGlzdF9kZWxfcmN1KFxcdTAwMjZub2RlLVxcdTAwM2VoYXNoKTtcXG5uZXQvdGlwYy9ub2RlLmM6NjQ5OlxcdHRpcGNfbmV0KG5vZGUtXFx1MDAzZW5ldCktXFx1MDAzZW51bV9ub2Rlcy0tO1xcbm5ldC90aXBjL25vZGUuYy02NTAtXFx0dGlwY19ub2RlX3B1dChub2RlKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTFUMTM6MDk6MjQuNzk3NjcyODA5WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYyNjM0Njc0OSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipGdXp6aW5nIFRoaXMgVElQQyBOb2RlIExpbWl0PyoqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2Rlcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBcIklzIHRoaXMgZnV6emFibGU/XCIgSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBidXQgaXQncyBmdW5kYW1lbnRhbGx5IGp1c3QgcHJldmVudGluZyB0aGUgY3JlYXRpb24gb2YgbW9yZSB0aGFuIDgxOTIgbm9kZXMuIENyZWF0aW5nIHRoYXQgbWFueSBub2RlcyB0byBmdXp6IHRoaXMuLi4gdGhhdCdzIGEgbG90IG9mIG92ZXJoZWFkLlxuXG5UaGVyZSdzIG5vIGNvbXBsZXggbG9naWMgaGVyZSwgaXQncyBhIHNpbXBsZSBjb3VudGVyLCBhbiBpbmNyZW1lbnQsIGEgZGVjcmVtZW50LCBhbmQgYSBjaGVjay4gSWYgYHRuLVx1MDAzZW51bV9ub2Rlc2AgaXMgbWFuYWdlZCBwcm9wZXJseSwgaXQncyAqanVzdCogYSBsaW1pdC4gQnV0LCB3YWl0Li4uIGl0ICpkb2VzKiBhbHRlciB0aGUgY29yZSBUSVBDIGxvZ2ljLCBzbyBJIGhhdmUgdG8gY29uc2lkZXIgaXQgZm9yIGZ1enppbmcuXG5cbkxldCBtZSByZS1yZWFkIHRoZSBndWlkZWxpbmVzLiBBaGEhIFRoZSBpbnN0cnVjdGlvbnMgc2F5IHRvIHJldHVybiBgV29ydGhGdXp6aW5nPWZhbHNlYCBpZiBpdOKAmXMganVzdCBkb2N1bWVudGF0aW9uLCBkZWNvcmF0aW9uLCBvciBjb25zdGFudC9tYWNybyBjaGFuZ2VzIHRoYXQgZG9uJ3QgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIFRoaXMgKmRvZXMqIGFsdGVyIHRoZSBleGVjdXRpb24gZmxvdywgYXMgaXQgZHJvcHMgdGhlIG5vZGUgY3JlYXRpb24gaWYgdGhlIGxpbWl0IGlzIHJlYWNoZWQuIFNvLCBgV29ydGhGdXp6aW5nPXRydWVgLlxuXG5UaGVyZWZvcmUsIEkgdGhpbmsgdGhlIGBGb2N1c1N5bWJvbHNgIHNob3VsZCBiZSBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIHNpbmNlIHRob3NlIGFyZSB0aGUgY29kZSBwYXRocyB0aGF0IHRyaWdnZXIgdGhlIGNvdW50ZXIuIE5vdyBJIGhhdmUgdG8gbWFrZSBzdXJlIGBUSVBDYCBpcyB0aGUgY29ycmVjdCBlbmFibGUgY29uZmlnLiBJJ2xsIGRvdWJsZS1jaGVjayB0aGF0IHRvIGVuc3VyZSBpdCBlbmFibGVzIHRoZSBjb3JlIFRJUEMgZnVuY3Rpb25hbGl0eS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDI5OCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjM2MywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozMC40MjQwMjE0MzhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTcwNTEzNzEsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIFRJUENcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L3RpcGMvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC90aXBjL0tjb25maWctNS1cXG5uZXQvdGlwYy9LY29uZmlnOjY6bWVudWNvbmZpZyBUSVBDXFxubmV0L3RpcGMvS2NvbmZpZy03LVxcdHRyaXN0YXRlIFxcXCJUaGUgVElQQyBQcm90b2NvbFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctMjMtXFxubmV0L3RpcGMvS2NvbmZpZzoyNDpjb25maWcgVElQQ19NRURJQV9JQlxcbm5ldC90aXBjL0tjb25maWctMjUtXFx0Ym9vbCBcXFwiSW5maW5pQmFuZCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTI5LVxcdCAgSVAtb3Zlci1JbmZpbmlCYW5kIGRldmljZXMuXFxubmV0L3RpcGMvS2NvbmZpZzozMDpjb25maWcgVElQQ19NRURJQV9VRFBcXG5uZXQvdGlwYy9LY29uZmlnLTMxLVxcdGJvb2wgXFxcIklQL1VEUCBtZWRpYSB0eXBlIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvdGlwYy9LY29uZmlnLTM3LVxcbm5ldC90aXBjL0tjb25maWc6Mzg6Y29uZmlnIFRJUENfQ1JZUFRPXFxubmV0L3RpcGMvS2NvbmZpZy0zOS1cXHRib29sIFxcXCJUSVBDIGVuY3J5cHRpb24gc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC90aXBjL0tjb25maWctNTItXFxubmV0L3RpcGMvS2NvbmZpZzo1Mzpjb25maWcgVElQQ19ESUFHXFxubmV0L3RpcGMvS2NvbmZpZy01NC1cXHR0cmlzdGF0ZSBcXFwiVElQQzogc29ja2V0IG1vbml0b3JpbmcgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozMC40ODEwNzYxNDlaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MzI2OTk0NjE5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVElQQyBOb2RlIE1hbmFnZW1lbnQqKlxuXG5Pa2F5LCBsZXQncyBicmVhayB0aGlzIGRvd24uIFRoZSBjb25maWcgaW4gcXVlc3Rpb24gaXMgYFRJUENgLiBJIG5lZWQgdG8gaWRlbnRpZnkgaWYgdGhpcyBjaGFuZ2Ugd2FycmFudHMgZnV6emluZyBhbmQsIGlmIHNvLCB3aGF0IHRvIGZvY3VzIG9uLiBcblxuRmlyc3QsIEkgc2VlIHRoYXQgYHRpcGNfbm9kZV9jcmVhdGVgIGlzIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIHRvIGNvbnNpZGVyLiBJdCdzIGNhbGxlZCBkdXJpbmcgbmV3IG5vZGUgZGlzY292ZXJ5LCB3aGljaCBtYWtlcyBpdCBhIGdvb2QgY2FuZGlkYXRlLiBJdCBsb29rcyBsaWtlIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAgaXMgc3RhdGljLCBidXQgd2UgY2FuIHN0aWxsIGxpc3QgaXQuIFRoZSBmYWN0IHRoYXQgaXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIG1ha2VzIGZ1enppbmcgd29ydGh3aGlsZS5cblxuSSBzaG91bGQgZG91YmxlLWNoZWNrIGZvciBvdGhlciByZWxhdGVkIGNvbmZpZ3MsIGJ1dCBgVElQQ2Agc2VlbXMgdG8gYmUgdGhlIG1haW4gb25lLiBJJ2xsIG1ha2Ugc3VyZSB0byB2ZXJpZnkgYHRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0YCBpcyBpbmRlZWQgc3RhdGljLCBhbmQgdGhhdCBpdCBpcyBva2F5IHRvIGxpc3QgYSBzdGF0aWMgZnVuY3Rpb24uXG5cbk5vdywgbGV0IG1lIHJlZnJlc2ggdGhlIHJlcXVpcmVtZW50cy4gUmlnaHQsIEkgbmVlZCB0byBsaXN0IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgZm9yIGhlYXZ5IGZ1enppbmcgaW4gYEZvY3VzU3ltYm9sc2AsIGF2b2lkaW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zLiBBbHNvLCBJIG5lZWQgdG8gaWRlbnRpZnkgc3BlY2lmaWMgYENPTkZJR19gIG9wdGlvbnMsIGNoZWNraW5nIEtjb25maWcgZmlsZXMgZm9yIGlmZGVmcyBhbmQgYXZvaWRpbmcgb3Zlcmx5IGdlbmVyaWMgb25lcy5cblxuQWxyaWdodCwgc286XG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiVElQQ1wiXWAg4oCTIFRoaXMgaXMgdGhlIGNvbmZpZyBkaXJlY3RseSByZWxhdGVkIHRvIHRoZSBjaGFuZ2VzLlxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW1widGlwY19ub2RlX2NyZWF0ZVwiLCBcInRpcGNfbm9kZV9kZWxldGVfZnJvbV9saXN0XCJdYCDigJMgSSdtIGxpc3RpbmcgYm90aCBgdGlwY19ub2RlX2NyZWF0ZWAgYW5kIGB0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdGAsIGFzIHRoZSBwYXRjaCBpbXBhY3RzIG5vZGUgY3JlYXRpb24gYW5kIGRlbGV0aW9uLCBhbmQgdGhlcmVmb3JlIG5vZGUgY291bnQsIHdoaWNoIGlzIGZ1bmN0aW9uYWwgaW4gbmF0dXJlLlxuXG5JIG5lZWQgdG8gY29uZmlybSBgdGlwY19ub2RlX2NyZWF0ZWAgaXMgcmVhY2hhYmxlLiBZZXMsIHRocm91Z2ggVElQQyBkaXNjb3ZlcnkuIEknbGwgYWxzbyBjaGVjayBjYWxsZXJzIG9mIGB0aXBjX25vZGVfY3JlYXRlYCB0byBlbnN1cmUgSSBoYXZlIGlkZW50aWZpZWQgYWxsIHJlbGF0ZWQgZnVuY3Rpb25zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1Mjg1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDc3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjM3LjgwODA3MjUzOFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NzY0NjIxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC90aXBjL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvdGlwYy9jcnlwdG8uYz0xODk3PXN0YXRpYyB2b2lkIHRpcGNfY3J5cHRvX3Jjdl9jb21wbGV0ZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCB0aXBjX2FlYWQgKmFlYWQsXFxuLS1cXG5uZXQvdGlwYy9jcnlwdG8uYy0xOTI5LVxcdFxcdFxcdFdBUk5fT04oZWhkci1cXHUwMDNldXNlciAhPSBMSU5LX0NPTkZJRyk7XFxubmV0L3RpcGMvY3J5cHRvLmM6MTkzMDpcXHRcXHRcXHRuID0gdGlwY19ub2RlX2NyZWF0ZShuZXQsIDAsIGVoZHItXFx1MDAzZWlkLCAweGZmZmZ1LCAwLFxcbm5ldC90aXBjL2NyeXB0by5jLTE5MzEtXFx0XFx0XFx0XFx0XFx0ICAgICB0cnVlKTtcXG4tLVxcbm5ldC90aXBjL25vZGUuYz00NTA9c3RhdGljIHZvaWQgdGlwY19ub2RlX2Fzc2lnbl9wZWVyX25ldChzdHJ1Y3QgdGlwY19ub2RlICpuLCB1MzIgaGFzaF9taXhlcylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy00NzctXFxubmV0L3RpcGMvbm9kZS5jOjQ3ODpzdHJ1Y3QgdGlwY19ub2RlICp0aXBjX25vZGVfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGFkZHIsIHU4ICpwZWVyX2lkLFxcbm5ldC90aXBjL25vZGUuYy00NzktXFx0XFx0XFx0XFx0ICAgdTE2IGNhcGFiaWxpdGllcywgdTMyIGhhc2hfbWl4ZXMsXFxuLS1cXG5uZXQvdGlwYy9ub2RlLmMtNjIyLVxcdHRpcGNfYmNhc3RfdG9nZ2xlX3JjYXN0KG5ldCwgKHRuLVxcdTAwM2VjYXBhYmlsaXRpZXMgXFx1MDAyNiBUSVBDX0JDQVNUX1JDQVNUKSk7XFxubmV0L3RpcGMvbm9kZS5jOjYyMzpcXHR0cmFjZV90aXBjX25vZGVfY3JlYXRlKG4sIHRydWUsIFxcXCIgXFxcIik7XFxubmV0L3RpcGMvbm9kZS5jLTYyNC1leGl0Olxcbi0tXFxubmV0L3RpcGMvbm9kZS5jPTExODU9dm9pZCB0aXBjX25vZGVfY2hlY2tfZGVzdChzdHJ1Y3QgbmV0ICpuZXQsIHUzMiBhZGRyLFxcbi0tXFxubmV0L3RpcGMvbm9kZS5jLTEyMDYtXFxubmV0L3RpcGMvbm9kZS5jOjEyMDc6XFx0biA9IHRpcGNfbm9kZV9jcmVhdGUobmV0LCBhZGRyLCBwZWVyX2lkLCBjYXBhYmlsaXRpZXMsIGhhc2hfbWl4ZXMsXFxubmV0L3RpcGMvbm9kZS5jLTEyMDgtXFx0XFx0XFx0ICAgICBmYWxzZSk7XFxuLS1cXG5uZXQvdGlwYy9ub2RlLmM9Mjk4Nj1zdGF0aWMgaW50IF9fdGlwY19ubF9ub2RlX3NldF9rZXkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbylcXG4tLVxcbm5ldC90aXBjL25vZGUuYy0zMDM2LVxcdFxcdFxcdG4gPSB0aXBjX25vZGVfZmluZF9ieV9pZChuZXQsIGlkKSA/Olxcbm5ldC90aXBjL25vZGUuYzozMDM3OlxcdFxcdFxcdFxcdHRpcGNfbm9kZV9jcmVhdGUobmV0LCAwLCBpZCwgMHhmZmZmdSwgMCwgdHJ1ZSk7XFxubmV0L3RpcGMvbm9kZS5jLTMwMzgtXFx0XFx0XFx0aWYgKHVubGlrZWx5KCFuKSlcXG4tLVxcbm5ldC90aXBjL25vZGUuaD04Mj12b2lkIHRpcGNfbm9kZV9nZXQoc3RydWN0IHRpcGNfbm9kZSAqbm9kZSk7XFxubmV0L3RpcGMvbm9kZS5oOjgzOnN0cnVjdCB0aXBjX25vZGUgKnRpcGNfbm9kZV9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1MzIgYWRkciwgdTggKnBlZXJfaWQsXFxubmV0L3RpcGMvbm9kZS5oLTg0LVxcdFxcdFxcdFxcdCAgIHUxNiBjYXBhYmlsaXRpZXMsIHUzMiBoYXNoX21peGVzLFxcbi0tXFxubmV0L3RpcGMvdHJhY2UuaD0zNTM9REVGSU5FX05PREVfRVZFTlQodGlwY19ub2RlX2R1bXApO1xcbm5ldC90aXBjL3RyYWNlLmg6MzU0OkRFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9jcmVhdGUpO1xcbm5ldC90aXBjL3RyYWNlLmgtMzU1LURFRklORV9OT0RFX0VWRU5UKHRpcGNfbm9kZV9kZWxldGUpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMVQxMzowOTozNy44NjU3MjI3NThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2OTg5NTkyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aGUgc2l0dWF0aW9uOlxuXG4qKkZ1enppbmcgdGhlIFBhdGNoOiBBIEdvL05vLUdvIERlY2lzaW9uKipcblxuQWxyaWdodCwgbG9va2luZyBhdCB0aGlzIHBhdGNoLCBteSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCBpdCdzIGZ1bmN0aW9uYWwuIFRoYXQncyBhIGdvb2Qgc3RhcnRpbmcgcG9pbnQuIE5vdywgdGhlIHJlYWwgcXVlc3Rpb24gaXMgd2hldGhlciBpdCdzICpmdXp6LXdvcnRoeSouIEFuZCBhZnRlciBhIHF1aWNrIHJldmlldywgSSdtIGxlYW5pbmcgdG93YXJkcyB5ZXMuIEkgdGhpbmsgdGhlcmUgYXJlIHBvdGVudGlhbCBhcmVhcyB3aGVyZSB3ZSBjb3VsZCB1bmNvdmVyIHNvbWUgaW50ZXJlc3RpbmcgZWRnZSBjYXNlcyBvciB2dWxuZXJhYmlsaXRpZXMuIEl0IGhhcyB0aGUgcmlnaHQgY2hhcmFjdGVyaXN0aWNzIGZvciBmdXp6aW5nIHRvIGJlIHdvcnRod2hpbGUuIFNvLCBJJ20gZ29pbmcgdG8gZ3JlZW4tbGlnaHQgdGhlIGZ1enppbmcgcHJvY2Vzcy4gVGltZSB0byBpbml0aWF0ZSBgc2V0LXJlc3VsdHNgLiBMZXQncyBzZWUgd2hhdCB3ZSBjYW4gZGlnIHVwLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDAzLCJPdXRwdXRUb2tlbnMiOjExMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTExVDEzOjA5OjQxLjg5MjcxNDkxWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk5NzQ1MTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlRJUENcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJ0aXBjX25vZGVfY3JlYXRlXCIsXG4gICAgXCJ0aXBjX25vZGVfZGVsZXRlX2Zyb21fbGlzdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGludHJvZHVjZXMgYSBoYXJkIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgVElQQyBub2RlcyBwZXIgbmV0IG5hbWVzcGFjZSB0byBwcmV2ZW50IHVuYm91bmRlZCBtZW1vcnkgZ3Jvd3RoLiBJdCBtb2RpZmllcyB0aXBjX25vZGVfY3JlYXRlIHRvIGVuZm9yY2UgdGhpcyBsaW1pdCBhbmQgdXBkYXRlcyB0aGUgbm9kZSBjb3VudCBkdXJpbmcgY3JlYXRpb24gYW5kIGRlbGV0aW9uLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBUSVBDIGxvZ2ljLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[1] Phase: Succeeded StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 13:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 13:09:53 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2] Phase: Succeeded StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 13:10:03 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-11 13:09:53 +0000 UTC FinishedAt: 2026-07-11 13:09:58 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-490062804/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-11 13:10:03 +0000 UTC FinishedAt: 2026-07-11 13:31:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-11 13:10:03 +0000 UTC FinishedAt: 2026-07-11 13:31:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e4908fb0-5aec-441d-b93f-424a19ad9907,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-490062804/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "62953235-d1d5-4d37-b47c-b7583ea1761f", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2642280274/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-11 13:10:03 +0000 UTC FinishedAt: 2026-07-11 13:31:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e4908fb0-5aec-441d-b93f-424a19ad9907,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-490062804/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "62953235-d1d5-4d37-b47c-b7583ea1761f", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2642280274/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-11 13:31:16 +0000 UTC FinishedAt: 2026-07-11 13:31:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-11 13:31:16 +0000 UTC FinishedAt: 2026-07-11 13:31:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-11 13:31:16 +0000 UTC FinishedAt: 2026-07-11 13:31:26 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-11 13:31:16 +0000 UTC FinishedAt: 2026-07-11 13:31:21 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-3609145747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-11 13:31:26 +0000 UTC FinishedAt: 2026-07-11 13:33:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-11 13:31:26 +0000 UTC FinishedAt: 2026-07-11 13:33:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*62953235-d1d5-4d37-b47c-b7583ea1761f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2642280274/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-11 13:33:38 +0000 UTC FinishedAt: 2026-07-11 13:33:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-11 13:33:38 +0000 UTC FinishedAt: 2026-07-11 13:33:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-11 13:33:38 +0000 UTC FinishedAt: 2026-07-11 14:08:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-11 13:33:38 +0000 UTC FinishedAt: 2026-07-11 14:08:06 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e4908fb0-5aec-441d-b93f-424a19ad9907,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-3609145747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "83e166f4-6c95-436c-86f5-bb7a1eeaab27", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2969438151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-11 13:33:38 +0000 UTC FinishedAt: 2026-07-11 14:07:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*e4908fb0-5aec-441d-b93f-424a19ad9907,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:request,Path:/tmp/request.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-3609145747/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "build_id": "83e166f4-6c95-436c-86f5-bb7a1eeaab27", "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:*,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/output,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2969438151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-11 14:08:06 +0000 UTC FinishedAt: 2026-07-11 14:08:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-11 14:08:06 +0000 UTC FinishedAt: 2026-07-11 14:08:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-11 14:08:06 +0000 UTC FinishedAt: 2026-07-11 14:09:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-11 14:08:06 +0000 UTC FinishedAt: 2026-07-11 14:09:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*83e166f4-6c95-436c-86f5-bb7a1eeaab27,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Boot test: Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:report-findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2969438151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "success": true },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:config,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*62953235-d1d5-4d37-b47c-b7583ea1761f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*83e166f4-6c95-436c-86f5-bb7a1eeaab27,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2642280274/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2969438151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 14:10:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 14:10:19 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-4066201612/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 14:09:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 14:09:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-11 14:09:58 +0000 UTC FinishedAt: 2026-07-11 14:09:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-11 14:10:25 +0000 UTC FinishedAt: 2026-07-11 17:13:13 +0000 UTC Input: nil Output: nil --------- Name: series-workflowddthl[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["tipc_node_create","tipc_node_delete_from_list"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"1cd23ca80784223fa2204e16203f754da4e821f8","config_name":"upstream-apparmor-kasan.config","enable_configs":["TIPC"],"series_id":"059b281a-ca9a-4fa0-87cf-056da233d997","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-11 14:10:25 +0000 UTC FinishedAt: 2026-07-11 17:13:03 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*62953235-d1d5-4d37-b47c-b7583ea1761f,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*83e166f4-6c95-436c-86f5-bb7a1eeaab27,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Fuzz,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{Artifact{Name:base-kernel,Path:/base,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2642280274/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:patched-kernel,Path:/patched,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-build-action-2969438151/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},Artifact{Name:config,Path:/tmp/config.json,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowddthl/series-workflowddthl-convert-artifact-4066201612/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}