Name: series-workflowvvt98 Phase: Succeeded StartedAt: 2026-08-03 17:53:06 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[0] Phase: Succeeded StartedAt: 2026-08-03 17:53:06 +0000 UTC FinishedAt: 2026-08-03 19:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[0].run-triage Phase: Succeeded StartedAt: 2026-08-03 17:53:06 +0000 UTC FinishedAt: 2026-08-03 19:27:14 +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": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "XFRM_USER" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "XFRM_USER" ], "series_id": "462a3b9f-96a6-4df8-ad39-8948b6b2e4c3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "xfrm6_local_rxpmtu", "xfrm6_local_error" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eGZybTZfbG9jYWxfcnhwbXR1JiMzNDssCiAgICAmIzM0O3hmcm02X2xvY2FsX2Vycm9yJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXHUwMDNlc2tgIHdpdGggYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBhZGRpbmcgYSBOVUxMIGNoZWNrIGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBJUHY2IFhGUk0gb3V0cHV0IHBhdGggdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjBlZjg3ZGQ5NTkwY2Q0Mzk2YWY2NGI4ZGZmNDAxNmYzZTRjN2M4ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTk6MjY6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuaW5kZXggNTEyYmRhZjEzNjk5Ny4uNDRiMjIxYTA5YTBjOCAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuQEAgLTE5LDcgJiM0MzsxOSwxMCBAQFxuIHZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpXG4ge1xuIFx0c3RydWN0IGZsb3dpNiBmbDY7XG4tXHRzdHJ1Y3Qgc29jayAqc2sgPSBza2ItXHUwMDNlc2s7XG4mIzQzO1x0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFzaylcbiYjNDM7XHRcdHJldHVybjtcbiBcbiBcdGZsNi5mbG93aTZfb2lmID0gc2stXHUwMDNlc2tfYm91bmRfZGV2X2lmO1xuIFx0Zmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbkBAIC0zMSw3ICYjNDM7MzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxuIHtcbiBcdHN0cnVjdCBmbG93aTYgZmw2O1xuIFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbiYjNDM7XHRzdHJ1Y3Qgc29jayAqc2sgPSBza2JfdG9fZnVsbF9zayhza2IpO1xuJiM0MztcbiYjNDM7XHRpZiAoIXNrKVxuJiM0MztcdFx0cmV0dXJuO1xuIFxuIFx0aGRyID0gc2tiLVx1MDAzZWVuY2Fwc3VsYXRpb24gPyBpbm5lcl9pcHY2X2hkcihza2IpIDogaXB2Nl9oZHIoc2tiKTtcbiBcdGZsNi5mbDZfZHBvcnQgPSBpbmV0X3NrKHNrKS1cdTAwM2VpbmV0X2Rwb3J0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUFY2JiMzNDssCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm02X2xvY2FsX3J4cG10dSYjMzQ7LAogICAgJiMzNDt4ZnJtNl9sb2NhbF9lcnJvciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYwZWY4N2RkOTU5MGNkNDM5NmFmNjRiOGRmZjQwMTZmM2U0YzdjOGQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwppbmRleCA1MTJiZGFmMTM2OTk3Li40NGIyMjFhMDlhMGM4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwpAQCAtMTksNyAmIzQzOzE5LDEwIEBACiB2b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQogewogCXN0cnVjdCBmbG93aTYgZmw2OwotCXN0cnVjdCBzb2NrICpzayA9IHNrYi0mZ3Q7c2s7CiYjNDM7CXN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7CiYjNDM7CiYjNDM7CWlmICghc2spCiYjNDM7CQlyZXR1cm47CiAKIAlmbDYuZmxvd2k2X29pZiA9IHNrLSZndDtza19ib3VuZF9kZXZfaWY7CiAJZmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CkBAIC0zMSw3ICYjNDM7MzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQogewogCXN0cnVjdCBmbG93aTYgZmw2OwogCWNvbnN0IHN0cnVjdCBpcHY2aGRyICpoZHI7Ci0Jc3RydWN0IHNvY2sgKnNrID0gc2tiLSZndDtzazsKJiM0MzsJc3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTsKJiM0MzsKJiM0MzsJaWYgKCFzaykKJiM0MzsJCXJldHVybjsKIAogCWhkciA9IHNrYi0mZ3Q7ZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpOwogCWZsNi5mbDZfZHBvcnQgPSBpbmV0X3NrKHNrKS0mZ3Q7aW5ldF9kcG9ydDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDIwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLCBhbmQgaXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGltcG9ydGFudCwgZml4LiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlcGxhY2luZyBgc2tiLSZndDtza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgaW4gdGhlIGNvZGUuIFBsdXMsIGl0IGFkZHMgTlVMTCBjaGVja3MgZm9yIGBza2Agd2l0aGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLgoKUmlnaHQgYXdheSwgSSYjMzk7bSB0aGlua2luZyB0aGlzIGlzIGFsbCBhYm91dCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3IgcGVyaGFwcyBtYWtpbmcgc3VyZSB3ZSYjMzk7cmUgdXNpbmcgdGhlIGNvcnJlY3Qgc29ja2V0IHN0cnVjdHVyZSwgbm90IGEgdGltZS13YWl0IG9yIHJlcXVlc3Qgc29ja2V0LiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byB1bmRlcnN0YW5kLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgZGl2ZSBpbnRvIHRob3NlIHR3byBmdW5jdGlvbnMsIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGV5JiMzOTtyZSBleHBvcnRlZCBvciBzdGF0aWMuIE1vcmUgaW1wb3J0YW50bHksIGFyZSB0aGVyZSBhbnkgY29uZmlnIG9wdGlvbnMgdGllZCB0byB0aGVzZSBmdW5jdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgaG93IHRoaXMgY2hhbmdlIGJlaGF2ZXM/IFdoZXJlIGFyZSB0aGV5IHVzZWQ/CgpTaW5jZSB0aGlzIHBhdGNoIGlzIGluIHRoZSBgbmV0L2lwdjZgIGRpcmVjdG9yeSwgSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBmaWxlIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZW5hYmxlZC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IHRoZSBgbmV0L2lwdjYvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gR290dGEgbWFrZSBzdXJlIHRoZSBidWlsZCBkZXBlbmRlbmNpZXMgYXJlIGFsbCBpbiBvcmRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ZnJtNl9vdXRwdXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9NYWtlZmlsZT0xOD1pcHY2LSQoQ09ORklHX1hGUk0pICYjNDM7PSB4ZnJtNl9wb2xpY3kubyB4ZnJtNl9zdGF0ZS5vIHhmcm02X2lucHV0Lm8gXFxcbm5ldC9pcHY2L01ha2VmaWxlOjE5Olx0eGZybTZfb3V0cHV0Lm8geGZybTZfcHJvdG9jb2wub1xubmV0L2lwdjYvTWFrZWZpbGUtMjAtaXB2Ni0kKENPTkZJR19ORVRGSUxURVIpICYjNDM7PSBuZXRmaWx0ZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MDUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXM6IFhGUk0gJmFtcDsgSVB2NioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gaXQuIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCBvZiBjb3Vyc2UsIEkgbmVlZCB0byB2ZXJpZnkgYSBjb3VwbGUgb2YgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGFjZS4gIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBlbnN1cmUgYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZGVmaW5lZC4gIFRoYXQmIzM5O3MgYSBnaXZlbiwgYnV0IEkgZG9uJiMzOTt0IHdhbnQgdG8gd2FzdGUgdGltZSBkb3duIHRoZSBsaW5lIGlmIEkgZm9yZ2V0IHRvIGxvb2suIE5leHQgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyB0aGF0IGNvbmNlcm5zIG1lIGRpcmVjdGx5LCBzcGVjaWZpY2FsbHkgYXJvdW5kIFBNVFUgYW5kIGVycm9ycyB3aXRoIFhGUk0gYW5kIElQdjYuCgpNeSBtYWluIGZvY3VzIG5vdyBpcyB3aGV0aGVyIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGFyZSBhY3R1YWxseSBleHBvcnRlZCBhbmQgdXNlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVzZSBzeW1ib2xzIHRydWx5IGludGVybmFsIHRvIHRoaXMgc3BlY2lmaWMgbW9kdWxlLCBvciBhcmUgdGhleSBtZWFudCB0byBiZSBwYXJ0IG9mIGEgYnJvYWRlciBBUEk/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCwgb3IgaWYgdGhleSBhcmUganVzdCBsb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBJIGRvbiYjMzk7dCB3YW50IGFueSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBvciBsaW5rIGVycm9ycyBjcm9wcGluZyB1cCBsYXRlciBiZWNhdXNlIG9mIHNvbWUgbWlzc2VkIGRlcGVuZGVuY3kgb3IgdW5kZWNsYXJlZCBleHBvcnQuIFRoYXQmIzM5O3MgYSBtYWpvciByZWQgZmxhZyBpbiBteSBib29rLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3hmcm02X2xvY2FsX3J4cG10dSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC94ZnJtLmg9MTg1OD1pbnQgeGZybTZfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5pbmNsdWRlL25ldC94ZnJtLmgtMTg2MC0jaWZkZWYgQ09ORklHX1hGUk1cbmluY2x1ZGUvbmV0L3hmcm0uaDoxODYxOnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xuaW5jbHVkZS9uZXQveGZybS5oLTE4NjItaW50IHhmcm00X3VkcF9lbmNhcF9yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0xOC1cbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjE5OnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0yMC17XG4tLVxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM9Njc9c3RhdGljIGludCBfX3hmcm02X291dHB1dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05MS1cdGlmICh0b29iaWcgXHUwMDI2XHUwMDI2IHhmcm02X2xvY2FsX2RvbnRmcmFnKHNrKSkge1xubmV0L2lwdjYveGZybTZfb3V0cHV0LmM6OTI6XHRcdHhmcm02X2xvY2FsX3J4cG10dShza2IsIG10dSk7XG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05My1cdFx0a2ZyZWVfc2tiKHNrYik7XG4tLVxubmV0L3hmcm0veGZybV9vdXRwdXQuYz04OTA9aW50IHhmcm02X3R1bm5lbF9jaGVja19zaXplKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3hmcm0veGZybV9vdXRwdXQuYy05MDktXHRcdGlmICh4ZnJtNl9sb2NhbF9kb250ZnJhZyhzaykpXG5uZXQveGZybS94ZnJtX291dHB1dC5jOjkxMDpcdFx0XHR4ZnJtNl9sb2NhbF9yeHBtdHUoc2tiLCBtdHUpO1xubmV0L3hmcm0veGZybV9vdXRwdXQuYy05MTEtXHRcdGVsc2UgaWYgKHNrKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NDkKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaW4gRGVwdGgqKgoKUmlnaHQsIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgYHhmcm02X2xvY2FsX2Vycm9yYCBpc3N1ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBvZiBjb3Vyc2UsIHRvIGNvbnNpZGVyIHRoZSBwb3NzaWJsZSByb290IGNhdXNlcyB3aXRoaW4gdGhlIElQdjYgZm9yd2FyZGluZyBwYXRoLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGxvY2FsaXplZCBlcnJvciB3aXRoaW4gdGhlIFhGUk0gKGVYdGVybmFsIEZvd2FyZGluZyBSdWxlcyBNb2R1bGUpIGZvciBJUHY2LCBzbyB0aGUgZXJyb3IgbGlrZWx5IG9yaWdpbmF0ZXMgd2l0aGluIHRoZSBsb2NhbCBoYW5kbGluZywgbm90IGZyb20gYSByZW1vdGUgaG9zdCYjMzk7cyBtaXNjb25maWd1cmF0aW9uLiBUaGlzIG1lYW5zIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBwb2ludHMgd2l0aGluIHRoZSBrZXJuZWwgd2hlcmUgdGhpcyBlcnJvciBjb3VsZCBiZSB0cmlnZ2VyZWQuCgpJJiMzOTttIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IHRoZSBmb2xsb3dpbmc6CgoqICAgKipQb2xpY3kgTG9va3VwIGFuZCBNYXRjaGluZzoqKiBJcyB0aGUgY29ycmVjdCBYRlJNIHBvbGljeSBiZWluZyBhcHBsaWVkPyBBcmUgdGhlcmUgcG90ZW50aWFsIG92ZXJsYXBzIG9yIGFtYmlndWl0aWVzIGluIHRoZSBwb2xpY3kgZGVmaW5pdGlvbnMgbGVhZGluZyB0byB0aGUgd3JvbmcgU0EgKFNlY3VyaXR5IEFzc29jaWF0aW9uKSBiZWluZyBzZWxlY3RlZD8gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgcG9saWN5IGRhdGFiYXNlIGFuZCB0aGUgYXNzb2NpYXRlZCBsb29rdXAgZnVuY3Rpb25zLiBBIHF1aWNrIHNjYW4gb2YgdGhlIGNvZGUgYXJvdW5kIGB4ZnJtX3BvbGljeV9sb29rdXBgIGFuZCB0aGUgbWF0Y2hpbmcgYWxnb3JpdGhtcyBpcyBpbiBvcmRlci4gSXQmIzM5O3MgcG9zc2libGUgYW4gb3V0ZGF0ZWQgb3IgaW5jb3JyZWN0IHBvbGljeSBpcyBjYXVzaW5nIHRoZSBwcm9ibGVtLgoqICAgKipTQSBTdGF0ZSBhbmQgSW50ZWdyaXR5OioqIEFyZSB0aGUgc2VjdXJpdHkgYXNzb2NpYXRpb25zIHRoZW1zZWx2ZXMgdmFsaWQgYW5kIHByb3Blcmx5IGVzdGFibGlzaGVkPyBJcyB0aGVyZSBhIHJhY2UgY29uZGl0aW9uIG9yIGEgc3RhdGUgaW5jb25zaXN0ZW5jeSBkdXJpbmcgU0EgY3JlYXRpb24sIHVwZGF0ZSwgb3IgZGVsZXRpb24gdGhhdCB0cmlnZ2VycyB0aGUgZXJyb3I/IEkmIzM5O2xsIGhhdmUgdG8gaW52ZXN0aWdhdGUgaWYgdGhlcmUgYXJlIGFueSBpc3N1ZXMgd2l0aCBrZXlpbmcgZGFlbW9ucyBvciByZWtleWluZyBwcm90b2NvbHMuIEVycm9yIGNvbmRpdGlvbnMgd2l0aGluIHRoZSBTQSBtYW5hZ2VtZW50IHJvdXRpbmVzIChgeGZybV9zdGF0ZV9hbGxvY2AsIGB4ZnJtX3N0YXRlX2FkZGAsIGV0Yy4pIGFyZSBoaWdoIG9uIHRoZSBjaGVja2xpc3QuCiogICAqKlBhY2tldCBIYW5kbGluZyBhbmQgTWFuaXB1bGF0aW9uOioqIFRoZSBlcnJvciBtaWdodCBiZSB0cmlnZ2VyZWQgZHVyaW5nIHBhY2tldCBlbmNhcHN1bGF0aW9uIG9yIGRlY2Fwc3VsYXRpb24sIGZvciBpbnN0YW5jZSwgd2hlbiBhbiBJUHNlYyBoZWFkZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gQXJlIHRoZXJlIGFueSBidWZmZXIgb3ZlcmZsb3dzLCBtZW1vcnkgY29ycnVwdGlvbiBpc3N1ZXMsIG9yIGluY29ycmVjdCBoZWFkZXIgY2FsY3VsYXRpb25zIGR1cmluZyB0aGVzZSBvcGVyYXRpb25zPyBJJiMzOTtsbCBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGNvZGUgaW4gdGhlIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24gcGF0aHMsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgZGVhbGluZyB3aXRoIGhlYWRlciBjb25zdHJ1Y3Rpb24gYW5kIHBheWxvYWQgaW50ZWdyaXR5LgoqICAgKipSZXNvdXJjZSBBbGxvY2F0aW9uIGFuZCBMaW1pdHM6KiogQXJlIHdlIGhpdHRpbmcgcmVzb3VyY2UgbGltaXRzIHdpdGhpbiB0aGUgWEZSTSBzdWJzeXN0ZW0/IEFyZSB0aGVyZSBpc3N1ZXMgd2l0aCBtZW1vcnkgYWxsb2NhdGlvbiwgcXVldWUgbGVuZ3Rocywgb3IgdGFibGUgc2l6ZXMgdGhhdCByZXN1bHQgaW4gdGhpcyBsb2NhbCBlcnJvcj8gTWVtb3J5IHByZXNzdXJlIG9yIGV4aGF1c3Rpb24gbWlnaHQgbWFuaWZlc3QgYXMgYSB0cmFuc2llbnQgZXJyb3IuIFRoZSBjb2RlIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBhY2NvdW50aW5nIGFuZCBsaW1pdHMgd2lsbCBuZWVkIGNhcmVmdWwgZXhhbWluYXRpb24uCiogICAqKkVycm9yIFByb3BhZ2F0aW9uIGFuZCBIYW5kbGluZzoqKiBIb3cgaXMgdGhpcyBgeGZybTZfbG9jYWxfZXJyb3JgIGhhbmRsZWQ/IElzIGl0IHByb3BhZ2F0ZWQgY29ycmVjdGx5LCBvciBtYXNrZWQgc29tZXdoZXJlIHVwIHRoZSBjYWxsIHN0YWNrPyBBcmUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgZ2VuZXJhdGVkIGFuZCBsb2dnZWQ/IFRyYWNlYWJpbGl0eSBhbmQgZGVidWdnaW5nIGFyZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlcnJvciBwYXRoIGFuZCBob3cgaXQmIzM5O3MgcmVwb3J0ZWQgdG8gaGlnaGVyIGxheWVycy4KClRoZXJlZm9yZSwgdGhlIGludmVzdGlnYXRpb24gd2lsbCBiZSBiYXNlZCBvbiB0aGVzZSBwb2ludHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eGZybTZfbG9jYWxfZXJyb3ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9uZXQveGZybS5oPTE4NDk9aW50IHhmcm02X2lucHV0X2FkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgeGZybV9hZGRyZXNzX3QgKmRhZGRyLFxuaW5jbHVkZS9uZXQveGZybS5oLTE4NTAtXHRcdCAgICAgeGZybV9hZGRyZXNzX3QgKnNhZGRyLCB1OCBwcm90byk7XG5pbmNsdWRlL25ldC94ZnJtLmg6MTg1MTp2b2lkIHhmcm02X2xvY2FsX2Vycm9yKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xuaW5jbHVkZS9uZXQveGZybS5oLTE4NTItaW50IHhmcm02X3Byb3RvY29sX3JlZ2lzdGVyKHN0cnVjdCB4ZnJtNl9wcm90b2NvbCAqaGFuZGxlciwgdW5zaWduZWQgY2hhciBwcm90b2NvbCk7XG4tLVxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM9MTk9dm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0zMi1cbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjMzOnZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTM0LXtcbi0tXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jPTE3PXN0YXRpYyBzdHJ1Y3QgeGZybV9zdGF0ZV9hZmluZm8geGZybTZfc3RhdGVfYWZpbmZvID0ge1xuLS1cbm5ldC9pcHY2L3hmcm02X3N0YXRlLmMtMjEtXHQudHJhbnNwb3J0X2ZpbmlzaFx0PSB4ZnJtNl90cmFuc3BvcnRfZmluaXNoLFxubmV0L2lwdjYveGZybTZfc3RhdGUuYzoyMjpcdC5sb2NhbF9lcnJvclx0XHQ9IHhmcm02X2xvY2FsX2Vycm9yLFxubmV0L2lwdjYveGZybTZfc3RhdGUuYy0yMy19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NTcKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIE5VTEwgUG9pbnRlciBEZXJlZmVyZW5jZSBpbiB0aGUgWEZSTSBTdWJzeXN0ZW0qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWxseSBuYXN0eSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBmaXggaW52b2x2ZXMgdXNpbmcgYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBjaGVja2luZyBpZiBpdCByZXR1cm5zIE5VTEwuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBmdXp6aW5nIGNhbmRpZGF0ZSB0byBtZSDigJMgZ29vZCBzcG90IGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKVGhlIGZ1bmN0aW9ucyBpbiBxdWVzdGlvbiwgYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAsIGFyZSBib3RoIGV4cG9ydGVkIGFuZCBhY3RpdmVseSB1c2VkLiBTcGVjaWZpY2FsbHksIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGdldHMgY2FsbGVkIGZyb20gYF9feGZybTZfb3V0cHV0YCBhbmQgYHhmcm02X3R1bm5lbF9jaGVja19zaXplYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBJUHY2IHBhdGguIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXMgcmVnaXN0ZXJlZCBpbiBgeGZybTZfc3RhdGVfYWZpbmZvYCBhcyBgLmxvY2FsX2Vycm9yYC4gS25vd2luZyB3aGVyZSBhbmQgaG93IHRoZXNlIGFyZSB1c2VkIGhlbHBzIG1lIHRhcmdldCBteSBhbmFseXNpcy4KCk5vdywgbGV04oCZcyBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbnMuIE15IGluaXRpYWwgY2hlY2tzIHBvaW50IHRvIGBDT05GSUdfWEZSTWAgYW5kIGBDT05GSUdfSVBWNmAgYmVpbmcgdGhlIGtleSBwbGF5ZXJzIGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZXNlIGFyZSB0aGUgb25seSByZWxldmFudCBvbmVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgdGhhdCBpbXBhY3RzIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgQ09ORklHX0lQVjZgIGlzIHByZXR0eSBtdWNoIGFsd2F5cyBlbmFibGVkLCBhbmQgYENPTkZJR19YRlJNYCBpcyBhbHNvIG9mdGVuIGVuYWJsZWQgaW4gbW9kZXJuIHNldHVwcywgYnV0IEkgd2FudCB0byBiZSAqc3VyZSouCgpJ4oCZbSBwYXJ0aWN1bGFybHkgZm9jdXNlZCBvbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgc28gSSYjMzk7bGwgYmUgbG9va2luZyBzcGVjaWZpY2FsbHkgYXQgdGhlaXIgdXNhZ2UgYW5kIHBvdGVudGlhbCBlZGdlIGNhc2VzLiBUaW1lIHRvIGRvdWJsZS1jaGVjayBgbmV0L2lwdjYvS2NvbmZpZ2AgZm9yIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIGF2YWlsYWJpbGl0eSBvciBiZWhhdmlvciBvZiB0aGVzZSBmdW5jdGlvbnMuIEkgbmVlZCB0byBrbm93IHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyB0aGVzZSBjb2RlIHBhdGhzIGFyZSBhY3R1YWxseSB0YWtlbiwgYW5kIGhvdyBmcmVxdWVudGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3hmcm0vS2NvbmZpZy00LSNcbm5ldC94ZnJtL0tjb25maWc6NTpjb25maWcgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy02LVx0Ym9vbFxuLS1cbm5ldC94ZnJtL0tjb25maWctMTAtXG5uZXQveGZybS9LY29uZmlnOjExOmNvbmZpZyBYRlJNX09GRkxPQURcbm5ldC94ZnJtL0tjb25maWctMTItXHRib29sXG5uZXQveGZybS9LY29uZmlnLTEzLVxubmV0L3hmcm0vS2NvbmZpZzoxNDpjb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnPTIyPWlmIElORVRcbm5ldC94ZnJtL0tjb25maWc6MjM6Y29uZmlnIFhGUk1fVVNFUlxubmV0L3hmcm0vS2NvbmZpZy0yNC1cdHRyaXN0YXRlIFwmIzM0O1RyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTMxLVxubmV0L3hmcm0vS2NvbmZpZzozMjpjb25maWcgWEZSTV9VU0VSX0NPTVBBVFxubmV0L3hmcm0vS2NvbmZpZy0zMy1cdHRyaXN0YXRlIFwmIzM0O0NvbXBhdGlibGUgQUJJIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTQyLVxubmV0L3hmcm0vS2NvbmZpZzo0Mzpjb25maWcgWEZSTV9JTlRFUkZBQ0Vcbm5ldC94ZnJtL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB2aXJ0dWFsIGludGVyZmFjZVwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctNTAtXG5uZXQveGZybS9LY29uZmlnOjUxOmNvbmZpZyBYRlJNX1NVQl9QT0xJQ1lcbm5ldC94ZnJtL0tjb25maWctNTItXHRib29sIFwmIzM0O1RyYW5zZm9ybWF0aW9uIHN1YiBwb2xpY3kgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctNjAtXG5uZXQveGZybS9LY29uZmlnOjYxOmNvbmZpZyBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctNjItXHRib29sIFwmIzM0O1RyYW5zZm9ybWF0aW9uIG1pZ3JhdGUgZGF0YWJhc2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTcxLVxubmV0L3hmcm0vS2NvbmZpZzo3Mjpjb25maWcgWEZSTV9TVEFUSVNUSUNTXG5uZXQveGZybS9LY29uZmlnLTczLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBzdGF0aXN0aWNzXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy04My0jIFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXG5uZXQveGZybS9LY29uZmlnOjg0OmNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnLTkyLSMgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXG5uZXQveGZybS9LY29uZmlnOjkzOmNvbmZpZyBYRlJNX0VTUFxubmV0L3hmcm0vS2NvbmZpZy05NC1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZy0xMDUtXG5uZXQveGZybS9LY29uZmlnOjEwNjpjb25maWcgWEZSTV9JUENPTVBcbm5ldC94ZnJtL0tjb25maWctMTA3LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnPTEyNT1jb25maWcgTkVUX0tFWV9NSUdSQVRFXG4tLVxubmV0L3hmcm0vS2NvbmZpZy0xNDAtXG5uZXQveGZybS9LY29uZmlnOjE0MTpjb25maWcgWEZSTV9JUFRGU1xubmV0L3hmcm0vS2NvbmZpZy0xNDItXHR0cmlzdGF0ZSBcJiMzNDtJUHNlYyBJUC1URlMvQUdHRlJBRyAoUkZDIDkzNDcpIGVuY2Fwc3VsYXRpb24gc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctMTU2LVxubmV0L3hmcm0vS2NvbmZpZzoxNTc6Y29uZmlnIFhGUk1fRVNQSU5UQ1Bcbm5ldC94ZnJtL0tjb25maWctMTU4LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTkxCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBYRlJNIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gYENPTkZJR19YRlJNYCBpcyBhIGhpZGRlbiBib29sIOKAkyByaWdodCwgc28gaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0aGUgdXNlciBkaXJlY3RseSB0b2dnbGVzLiBJdCYjMzk7cyAqc2VsZWN0ZWQqIGJ5IHNvbWV0aGluZyBlbHNlIGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIGdvb2QgdG8ga25vdy4gTm93LCBteSBqb2IgaGVyZSBpcyB0byBmaW5kIG91dCBleGFjdGx5ICp3aGF0KiB0aG9zZSBzZWxlY3Rpbmcgb3B0aW9ucyBhcmUuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGVwZW5kZW5jaWVzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggdGhlIFhGUk0gc3Vic3lzdGVtIGdldHMgZW5hYmxlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBkZXBlbmRlbmNpZXMgbG9vayBsaWtlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxuLS1cbm5ldC9pcHY0L0tjb25maWctMzA3LVx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcbm5ldC9pcHY0L0tjb25maWc6MzA4Olx0c2VsZWN0IFhGUk1cbm5ldC9pcHY0L0tjb25maWctMzA5LVx0aGVscFxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXG5uZXQvaXB2NC9LY29uZmlnLTM0MC1cdHRyaXN0YXRlIFwmIzM0O0lQOiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjQvS2NvbmZpZzozNDE6XHRzZWxlY3QgWEZSTV9BSFxubmV0L2lwdjQvS2NvbmZpZy0zNDItXHRoZWxwXG4tLVxubmV0L2lwdjQvS2NvbmZpZz0zNTQ9Y29uZmlnIElORVRfRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O0lQOiBFU1AgdHJhbnNmb3JtYXRpb25cJiMzNDtcbm5ldC9pcHY0L0tjb25maWc6MzU2Olx0c2VsZWN0IFhGUk1fRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY0L0tjb25maWctMzcxLVx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XHRzZWxlY3QgWEZSTV9PRkZMT0FEXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cdGRlZmF1bHQgblxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXG4tLVxubmV0L2lwdjQvS2NvbmZpZy0zODYtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcdHNlbGVjdCBYRlJNX0VTUElOVENQXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcbi0tXG5uZXQvaXB2NC9LY29uZmlnLTM5Ni1cdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo0OTpcdHNlbGVjdCBYRlJNX0FIXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVx0aGVscFxuLS1cbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo2NDpcdHNlbGVjdCBYRlJNX0VTUFxubmV0L2lwdjYvS2NvbmZpZy02NS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTc3PWNvbmZpZyBJTkVUNl9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY2L0tjb25maWctNzktXHRkZXBlbmRzIG9uIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcdHNlbGVjdCBYRlJNX09GRkxPQURcbm5ldC9pcHY2L0tjb25maWctODEtXHRkZWZhdWx0IG5cbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTkwPWNvbmZpZyBJTkVUNl9FU1BJTlRDUFxuLS1cbm5ldC9pcHY2L0tjb25maWctOTQtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2Ni9LY29uZmlnOjk1Olx0c2VsZWN0IFhGUk1fRVNQSU5UQ1Bcbm5ldC9pcHY2L0tjb25maWctOTYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMDI9Y29uZmlnIElORVQ2X0lQQ09NUFxuLS1cbm5ldC9pcHY2L0tjb25maWctMTA0LVx0c2VsZWN0IElORVQ2X1hGUk1fVFVOTkVMXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjYvS2NvbmZpZy0xMDYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMTI9Y29uZmlnIElQVjZfTUlQNlxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBNb2JpbGl0eVwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXG4tLVxubmV0L2lwdjYvS2NvbmZpZy0xNTMtXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6MTY6XHRzZWxlY3QgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy0xNy1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTIzPWNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG5uZXQveGZybS9LY29uZmlnOjI1Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0yNi1cdGhlbHBcbi0tXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6ODY6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTg3LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9OTM9Y29uZmlnIFhGUk1fRVNQXG5uZXQveGZybS9LY29uZmlnLTk0LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6OTU6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTk2LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXHR0cmlzdGF0ZVxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTEwOS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcJiMzNDtcbm5ldC94ZnJtL0tjb25maWc6MTE0Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTI3LVx0ZGVwZW5kcyBvbiBORVRfS0VZXG5uZXQveGZybS9LY29uZmlnOjEyODpcdHNlbGVjdCBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctMTI5LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTQ1CgkJCQkJCQlvdXRwdXQ6IDE0NwoJCQkJCQkJdGhvdWdodHM6IDM5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIHJlbGF0ZWQgdG8gWEZSTSwgYW5kIHRoZSBmaXJzdCB0aGluZyBJIG5vdGljZWQgaXMgdGhhdCBlbmFibGluZyBgQ09ORklHX1hGUk1fVVNFUmAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBYRlJNIGZ1bmN0aW9uYWxpdHkuIE9mIGNvdXJzZSwgd2UmIzM5O2xsIG5lZWQgYENPTkZJR19JUFY2YCBlbmFibGVkIGFzIHdlbGwuIFRoYXQgbXVjaCBpcyBvYnZpb3VzLgoKSSYjMzk7dmUgem9vbWVkIGluIG9uIHRoZSBjb2RlIG5vdywgYW5kIGl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIG1vZGlmaWVzIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGluIGBuZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IHNlZW1zIHRoYXQgdGhlc2UgYXJlIHRoZSAqb25seSogZnVuY3Rpb25zIGltcGFjdGVkLCB3aGljaCBzaW1wbGlmaWVzIHRoZSByZXZpZXcuCgpMb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXRzIHByb3ZpZGVkLCBpdCBzZWVtcyBsaWtlIGJvdGggZnVuY3Rpb25zLCBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgYXJlIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMuIEVzc2VudGlhbGx5LCB0aGV5IGFwcGVhciB0byBiZSBhZGRyZXNzaW5nIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWVzIGFuZCBlbnN1cmluZyB0aGUgZnVsbCBzb2NrZXQgaXMgYmVpbmcgdXNlZCBjb3JyZWN0bHkuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXJ0aGVyIHNjcnV0aW55LCBlc3BlY2lhbGx5IHdpdGggZnV6emluZyBpbiBtaW5kLgoKSSBuZWVkIHRvIGtlZXAgYSBjbG9zZSBleWUgb24gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAgYXMgdGhlIGtleSBmb2N1cyBzeW1ib2xzLgoKU28sIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzOiBgSVBWNmAgYW5kIGBYRlJNX1VTRVJgLiBJIGNoZWNrZWQsIGFuZCBgQ09ORklHX1hGUk1gIGlzIGNvcnJlY3RseSBzZWxlY3RlZCB3aGVuIGBYRlJNX1VTRVJgIGlzIGVuYWJsZWQsIGFuZCBgQ09ORklHX0lQVjZgIGlzIHRoZSBtYWluIGVuYWJsZXIgZm9yIElQdjYsIHNvIHRoYXQgYWxsIGNoZWNrcyBvdXQuCgpJJiMzOTtsbCBwcm9jZWVkIHRvIHNldCB0aGUgcmVzdWx0cyBiYXNlZCBvbiB0aGlzIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtNl9sb2NhbF9yeHBtdHUmIzM0OywKICAgICYjMzQ7eGZybTZfbG9jYWxfZXJyb3ImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGluY29ycmVjdCBzb2NrZXQgdHlwZSB1c2FnZSBieSByZXBsYWNpbmcgYHNrYi1cdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eGZybTZfbG9jYWxfcnhwbXR1JiMzNDssCiAgICAmIzM0O3hmcm02X2xvY2FsX2Vycm9yJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXHUwMDNlc2tgIHdpdGggYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBhZGRpbmcgYSBOVUxMIGNoZWNrIGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBJUHY2IFhGUk0gb3V0cHV0IHBhdGggdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6MzYuNTc5NzU2Mjg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMwMTg0NzY3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gICAgXCJ4ZnJtNl9sb2NhbF9lcnJvclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXFx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6MzYuNTc5NzYxOTY2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg2MTk1NTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjBlZjg3ZGQ5NTkwY2Q0Mzk2YWY2NGI4ZGZmNDAxNmYzZTRjN2M4ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jIGIvbmV0L2lwdjYveGZybTZfb3V0cHV0LmNcXG5pbmRleCA1MTJiZGFmMTM2OTk3Li40NGIyMjFhMDlhMGM4IDEwMDY0NFxcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXFxuKysrIGIvbmV0L2lwdjYveGZybTZfb3V0cHV0LmNcXG5AQCAtMTksNyArMTksMTAgQEBcXG4gdm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcXG4tXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiLVxcdTAwM2VzaztcXG4rXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcXG4rXFxuK1xcdGlmICghc2spXFxuK1xcdFxcdHJldHVybjtcXG4gXFxuIFxcdGZsNi5mbG93aTZfb2lmID0gc2stXFx1MDAzZXNrX2JvdW5kX2Rldl9pZjtcXG4gXFx0Zmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS1cXHUwMDNlZGFkZHI7XFxuQEAgLTMxLDcgKzM0LDEwIEBAIHZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcXG4gXFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcXG4tXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiLVxcdTAwM2VzaztcXG4rXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcXG4rXFxuK1xcdGlmICghc2spXFxuK1xcdFxcdHJldHVybjtcXG4gXFxuIFxcdGhkciA9IHNrYi1cXHUwMDNlZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpO1xcbiBcXHRmbDYuZmw2X2Rwb3J0ID0gaW5ldF9zayhzayktXFx1MDAzZWluZXRfZHBvcnQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjM3Ljc2NjYzMzY3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMxODMxNTkxNTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm02X2xvY2FsX3J4cG10dVwiLFxuICAgIFwieGZybTZfbG9jYWxfZXJyb3JcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVxcdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGYwZWY4N2RkOTU5MGNkNDM5NmFmNjRiOGRmZjQwMTZmM2U0YzdjOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuaW5kZXggNTEyYmRhZjEzNjk5Ny4uNDRiMjIxYTA5YTBjOCAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXG4rKysgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuQEAgLTE5LDcgKzE5LDEwIEBAXG4gdm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbiB7XG4gXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbitcdHN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7XG4rXG4rXHRpZiAoIXNrKVxuK1x0XHRyZXR1cm47XG4gXG4gXHRmbDYuZmxvd2k2X29pZiA9IHNrLVx1MDAzZXNrX2JvdW5kX2Rldl9pZjtcbiBcdGZsNi5kYWRkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG5AQCAtMzEsNyArMzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxuIHtcbiBcdHN0cnVjdCBmbG93aTYgZmw2O1xuIFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbitcdHN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7XG4rXG4rXHRpZiAoIXNrKVxuK1x0XHRyZXR1cm47XG4gXG4gXHRoZHIgPSBza2ItXHUwMDNlZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpO1xuIFx0Zmw2LmZsNl9kcG9ydCA9IGluZXRfc2soc2spLVx1MDAzZWluZXRfZHBvcnQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjozNy43NjY2MzQ3NzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDkxNTI0NzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLCBhbmQgaXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGltcG9ydGFudCwgZml4LiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlcGxhY2luZyBgc2tiLVx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBpbiB0aGUgY29kZS4gUGx1cywgaXQgYWRkcyBOVUxMIGNoZWNrcyBmb3IgYHNrYCB3aXRoaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuXG5cblJpZ2h0IGF3YXksIEknbSB0aGlua2luZyB0aGlzIGlzIGFsbCBhYm91dCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3IgcGVyaGFwcyBtYWtpbmcgc3VyZSB3ZSdyZSB1c2luZyB0aGUgY29ycmVjdCBzb2NrZXQgc3RydWN0dXJlLCBub3QgYSB0aW1lLXdhaXQgb3IgcmVxdWVzdCBzb2NrZXQuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gdW5kZXJzdGFuZC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgZGl2ZSBpbnRvIHRob3NlIHR3byBmdW5jdGlvbnMsIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGV5J3JlIGV4cG9ydGVkIG9yIHN0YXRpYy4gTW9yZSBpbXBvcnRhbnRseSwgYXJlIHRoZXJlIGFueSBjb25maWcgb3B0aW9ucyB0aWVkIHRvIHRoZXNlIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCBob3cgdGhpcyBjaGFuZ2UgYmVoYXZlcz8gV2hlcmUgYXJlIHRoZXkgdXNlZD9cblxuU2luY2UgdGhpcyBwYXRjaCBpcyBpbiB0aGUgYG5ldC9pcHY2YCBkaXJlY3RvcnksIEknbGwgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBmaWxlIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZW5hYmxlZC4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgdGhlIGBuZXQvaXB2Ni9NYWtlZmlsZWAgdG8gY29uZmlybSB0aGF0LiBHb3R0YSBtYWtlIHN1cmUgdGhlIGJ1aWxkIGRlcGVuZGVuY2llcyBhcmUgYWxsIGluIG9yZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NDIuMjU4MTYxNzA3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTg3MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInhmcm02X291dHB1dFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9NYWtlZmlsZT0xOD1pcHY2LSQoQ09ORklHX1hGUk0pICs9IHhmcm02X3BvbGljeS5vIHhmcm02X3N0YXRlLm8geGZybTZfaW5wdXQubyBcXFxcXFxubmV0L2lwdjYvTWFrZWZpbGU6MTk6XFx0eGZybTZfb3V0cHV0Lm8geGZybTZfcHJvdG9jb2wub1xcbm5ldC9pcHY2L01ha2VmaWxlLTIwLWlwdjYtJChDT05GSUdfTkVURklMVEVSKSArPSBuZXRmaWx0ZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjo0Mi4zMDExNTQwNzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzA3MDQ3OTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXM6IFhGUk0gXHUwMDI2IElQdjYqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBpdC4gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCwgb2YgY291cnNlLCBJIG5lZWQgdG8gdmVyaWZ5IGEgY291cGxlIG9mIGRlcGVuZGVuY2llcyBhcmUgaW4gcGxhY2UuICBJJ20gZ29pbmcgdG8gbmVlZCB0byBlbnN1cmUgYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZGVmaW5lZC4gIFRoYXQncyBhIGdpdmVuLCBidXQgSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgZG93biB0aGUgbGluZSBpZiBJIGZvcmdldCB0byBsb29rLiBOZXh0IEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcgdGhhdCBjb25jZXJucyBtZSBkaXJlY3RseSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBQTVRVIGFuZCBlcnJvcnMgd2l0aCBYRlJNIGFuZCBJUHY2LlxuXG5NeSBtYWluIGZvY3VzIG5vdyBpcyB3aGV0aGVyIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGFyZSBhY3R1YWxseSBleHBvcnRlZCBhbmQgdXNlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVzZSBzeW1ib2xzIHRydWx5IGludGVybmFsIHRvIHRoaXMgc3BlY2lmaWMgbW9kdWxlLCBvciBhcmUgdGhleSBtZWFudCB0byBiZSBwYXJ0IG9mIGEgYnJvYWRlciBBUEk/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCwgb3IgaWYgdGhleSBhcmUganVzdCBsb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBJIGRvbid0IHdhbnQgYW55IHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzIG9yIGxpbmsgZXJyb3JzIGNyb3BwaW5nIHVwIGxhdGVyIGJlY2F1c2Ugb2Ygc29tZSBtaXNzZWQgZGVwZW5kZW5jeSBvciB1bmRlY2xhcmVkIGV4cG9ydC4gVGhhdCdzIGEgbWFqb3IgcmVkIGZsYWcgaW4gbXkgYm9vay5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkwNSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjQ1LjYwODIwNDI1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDU1NjQwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC94ZnJtLmg9MTg1OD1pbnQgeGZybTZfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3hmcm0uaC0xODYwLSNpZmRlZiBDT05GSUdfWEZSTVxcbmluY2x1ZGUvbmV0L3hmcm0uaDoxODYxOnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xcbmluY2x1ZGUvbmV0L3hmcm0uaC0xODYyLWludCB4ZnJtNF91ZHBfZW5jYXBfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0xOC1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYzoxOTp2b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTIwLXtcXG4tLVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jPTY3PXN0YXRpYyBpbnQgX194ZnJtNl9vdXRwdXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05MS1cXHRpZiAodG9vYmlnIFxcdTAwMjZcXHUwMDI2IHhmcm02X2xvY2FsX2RvbnRmcmFnKHNrKSkge1xcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjkyOlxcdFxcdHhmcm02X2xvY2FsX3J4cG10dShza2IsIG10dSk7XFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmMtOTMtXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5uZXQveGZybS94ZnJtX291dHB1dC5jPTg5MD1pbnQgeGZybTZfdHVubmVsX2NoZWNrX3NpemUoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC94ZnJtL3hmcm1fb3V0cHV0LmMtOTA5LVxcdFxcdGlmICh4ZnJtNl9sb2NhbF9kb250ZnJhZyhzaykpXFxubmV0L3hmcm0veGZybV9vdXRwdXQuYzo5MTA6XFx0XFx0XFx0eGZybTZfbG9jYWxfcnhwbXR1KHNrYiwgbXR1KTtcXG5uZXQveGZybS94ZnJtX291dHB1dC5jLTkxMS1cXHRcXHRlbHNlIGlmIChzaylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NDcuMjUzNzczNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDY5OTcwNDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaW4gRGVwdGgqKlxuXG5SaWdodCwgbGV0J3MgYnJlYWsgZG93biB0aGlzIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXNzdWUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgb2YgY291cnNlLCB0byBjb25zaWRlciB0aGUgcG9zc2libGUgcm9vdCBjYXVzZXMgd2l0aGluIHRoZSBJUHY2IGZvcndhcmRpbmcgcGF0aC4gV2UncmUgdGFsa2luZyBhYm91dCBhIGxvY2FsaXplZCBlcnJvciB3aXRoaW4gdGhlIFhGUk0gKGVYdGVybmFsIEZvd2FyZGluZyBSdWxlcyBNb2R1bGUpIGZvciBJUHY2LCBzbyB0aGUgZXJyb3IgbGlrZWx5IG9yaWdpbmF0ZXMgd2l0aGluIHRoZSBsb2NhbCBoYW5kbGluZywgbm90IGZyb20gYSByZW1vdGUgaG9zdCdzIG1pc2NvbmZpZ3VyYXRpb24uIFRoaXMgbWVhbnMgSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHBvaW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aGVyZSB0aGlzIGVycm9yIGNvdWxkIGJlIHRyaWdnZXJlZC5cblxuSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IHRoZSBmb2xsb3dpbmc6XG5cbiogICAqKlBvbGljeSBMb29rdXAgYW5kIE1hdGNoaW5nOioqIElzIHRoZSBjb3JyZWN0IFhGUk0gcG9saWN5IGJlaW5nIGFwcGxpZWQ/IEFyZSB0aGVyZSBwb3RlbnRpYWwgb3ZlcmxhcHMgb3IgYW1iaWd1aXRpZXMgaW4gdGhlIHBvbGljeSBkZWZpbml0aW9ucyBsZWFkaW5nIHRvIHRoZSB3cm9uZyBTQSAoU2VjdXJpdHkgQXNzb2NpYXRpb24pIGJlaW5nIHNlbGVjdGVkPyBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZSBwb2xpY3kgZGF0YWJhc2UgYW5kIHRoZSBhc3NvY2lhdGVkIGxvb2t1cCBmdW5jdGlvbnMuIEEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSBhcm91bmQgYHhmcm1fcG9saWN5X2xvb2t1cGAgYW5kIHRoZSBtYXRjaGluZyBhbGdvcml0aG1zIGlzIGluIG9yZGVyLiBJdCdzIHBvc3NpYmxlIGFuIG91dGRhdGVkIG9yIGluY29ycmVjdCBwb2xpY3kgaXMgY2F1c2luZyB0aGUgcHJvYmxlbS5cbiogICAqKlNBIFN0YXRlIGFuZCBJbnRlZ3JpdHk6KiogQXJlIHRoZSBzZWN1cml0eSBhc3NvY2lhdGlvbnMgdGhlbXNlbHZlcyB2YWxpZCBhbmQgcHJvcGVybHkgZXN0YWJsaXNoZWQ/IElzIHRoZXJlIGEgcmFjZSBjb25kaXRpb24gb3IgYSBzdGF0ZSBpbmNvbnNpc3RlbmN5IGR1cmluZyBTQSBjcmVhdGlvbiwgdXBkYXRlLCBvciBkZWxldGlvbiB0aGF0IHRyaWdnZXJzIHRoZSBlcnJvcj8gSSdsbCBoYXZlIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlIGFyZSBhbnkgaXNzdWVzIHdpdGgga2V5aW5nIGRhZW1vbnMgb3IgcmVrZXlpbmcgcHJvdG9jb2xzLiBFcnJvciBjb25kaXRpb25zIHdpdGhpbiB0aGUgU0EgbWFuYWdlbWVudCByb3V0aW5lcyAoYHhmcm1fc3RhdGVfYWxsb2NgLCBgeGZybV9zdGF0ZV9hZGRgLCBldGMuKSBhcmUgaGlnaCBvbiB0aGUgY2hlY2tsaXN0LlxuKiAgICoqUGFja2V0IEhhbmRsaW5nIGFuZCBNYW5pcHVsYXRpb246KiogVGhlIGVycm9yIG1pZ2h0IGJlIHRyaWdnZXJlZCBkdXJpbmcgcGFja2V0IGVuY2Fwc3VsYXRpb24gb3IgZGVjYXBzdWxhdGlvbiwgZm9yIGluc3RhbmNlLCB3aGVuIGFuIElQc2VjIGhlYWRlciBpcyBhZGRlZCBvciByZW1vdmVkLiBBcmUgdGhlcmUgYW55IGJ1ZmZlciBvdmVyZmxvd3MsIG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcywgb3IgaW5jb3JyZWN0IGhlYWRlciBjYWxjdWxhdGlvbnMgZHVyaW5nIHRoZXNlIG9wZXJhdGlvbnM/IEknbGwgbmVlZCB0byBzY3J1dGluaXplIHRoZSBjb2RlIGluIHRoZSBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uIHBhdGhzLCBzcGVjaWZpY2FsbHkgZnVuY3Rpb25zIGRlYWxpbmcgd2l0aCBoZWFkZXIgY29uc3RydWN0aW9uIGFuZCBwYXlsb2FkIGludGVncml0eS5cbiogICAqKlJlc291cmNlIEFsbG9jYXRpb24gYW5kIExpbWl0czoqKiBBcmUgd2UgaGl0dGluZyByZXNvdXJjZSBsaW1pdHMgd2l0aGluIHRoZSBYRlJNIHN1YnN5c3RlbT8gQXJlIHRoZXJlIGlzc3VlcyB3aXRoIG1lbW9yeSBhbGxvY2F0aW9uLCBxdWV1ZSBsZW5ndGhzLCBvciB0YWJsZSBzaXplcyB0aGF0IHJlc3VsdCBpbiB0aGlzIGxvY2FsIGVycm9yPyBNZW1vcnkgcHJlc3N1cmUgb3IgZXhoYXVzdGlvbiBtaWdodCBtYW5pZmVzdCBhcyBhIHRyYW5zaWVudCBlcnJvci4gVGhlIGNvZGUgZGVhbGluZyB3aXRoIHJlc291cmNlIGFjY291bnRpbmcgYW5kIGxpbWl0cyB3aWxsIG5lZWQgY2FyZWZ1bCBleGFtaW5hdGlvbi5cbiogICAqKkVycm9yIFByb3BhZ2F0aW9uIGFuZCBIYW5kbGluZzoqKiBIb3cgaXMgdGhpcyBgeGZybTZfbG9jYWxfZXJyb3JgIGhhbmRsZWQ/IElzIGl0IHByb3BhZ2F0ZWQgY29ycmVjdGx5LCBvciBtYXNrZWQgc29tZXdoZXJlIHVwIHRoZSBjYWxsIHN0YWNrPyBBcmUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgZ2VuZXJhdGVkIGFuZCBsb2dnZWQ/IFRyYWNlYWJpbGl0eSBhbmQgZGVidWdnaW5nIGFyZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlcnJvciBwYXRoIGFuZCBob3cgaXQncyByZXBvcnRlZCB0byBoaWdoZXIgbGF5ZXJzLlxuXG5UaGVyZWZvcmUsIHRoZSBpbnZlc3RpZ2F0aW9uIHdpbGwgYmUgYmFzZWQgb24gdGhlc2UgcG9pbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzQ5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NTIuMzIzNzQ3MjI2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2ODY4OTAyOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZybTZfbG9jYWxfZXJyb3JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbmV0L3hmcm0uaD0xODQ5PWludCB4ZnJtNl9pbnB1dF9hZGRyKHN0cnVjdCBza19idWZmICpza2IsIHhmcm1fYWRkcmVzc190ICpkYWRkcixcXG5pbmNsdWRlL25ldC94ZnJtLmgtMTg1MC1cXHRcXHQgICAgIHhmcm1fYWRkcmVzc190ICpzYWRkciwgdTggcHJvdG8pO1xcbmluY2x1ZGUvbmV0L3hmcm0uaDoxODUxOnZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSk7XFxuaW5jbHVkZS9uZXQveGZybS5oLTE4NTItaW50IHhmcm02X3Byb3RvY29sX3JlZ2lzdGVyKHN0cnVjdCB4ZnJtNl9wcm90b2NvbCAqaGFuZGxlciwgdW5zaWduZWQgY2hhciBwcm90b2NvbCk7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYz0xOT12b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbi0tXFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmMtMzItXFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM6MzM6dm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTM0LXtcXG4tLVxcbm5ldC9pcHY2L3hmcm02X3N0YXRlLmM9MTc9c3RhdGljIHN0cnVjdCB4ZnJtX3N0YXRlX2FmaW5mbyB4ZnJtNl9zdGF0ZV9hZmluZm8gPSB7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jLTIxLVxcdC50cmFuc3BvcnRfZmluaXNoXFx0PSB4ZnJtNl90cmFuc3BvcnRfZmluaXNoLFxcbm5ldC9pcHY2L3hmcm02X3N0YXRlLmM6MjI6XFx0LmxvY2FsX2Vycm9yXFx0XFx0PSB4ZnJtNl9sb2NhbF9lcnJvcixcXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jLTIzLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjU0LjAxMDY0Mzc1MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NjgxNzU4OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIE5VTEwgUG9pbnRlciBEZXJlZmVyZW5jZSBpbiB0aGUgWEZSTSBTdWJzeXN0ZW0qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyB0byBhZGRyZXNzIGEgcG90ZW50aWFsbHkgbmFzdHkgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgZml4IGludm9sdmVzIHVzaW5nIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgY2hlY2tpbmcgaWYgaXQgcmV0dXJucyBOVUxMLiBUaGF0IGltbWVkaWF0ZWx5IHNjcmVhbXMgZnV6emluZyBjYW5kaWRhdGUgdG8gbWUg4oCTIGdvb2Qgc3BvdCBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuVGhlIGZ1bmN0aW9ucyBpbiBxdWVzdGlvbiwgYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAsIGFyZSBib3RoIGV4cG9ydGVkIGFuZCBhY3RpdmVseSB1c2VkLiBTcGVjaWZpY2FsbHksIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGdldHMgY2FsbGVkIGZyb20gYF9feGZybTZfb3V0cHV0YCBhbmQgYHhmcm02X3R1bm5lbF9jaGVja19zaXplYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBJUHY2IHBhdGguIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXMgcmVnaXN0ZXJlZCBpbiBgeGZybTZfc3RhdGVfYWZpbmZvYCBhcyBgLmxvY2FsX2Vycm9yYC4gS25vd2luZyB3aGVyZSBhbmQgaG93IHRoZXNlIGFyZSB1c2VkIGhlbHBzIG1lIHRhcmdldCBteSBhbmFseXNpcy5cblxuTm93LCBsZXTigJlzIGRpZyBpbnRvIHRoZSBjb25maWd1cmF0aW9ucy4gTXkgaW5pdGlhbCBjaGVja3MgcG9pbnQgdG8gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBiZWluZyB0aGUga2V5IHBsYXllcnMgaGVyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGVzZSBhcmUgdGhlIG9ubHkgcmVsZXZhbnQgb25lcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IG1pc3MgYW55dGhpbmcgdGhhdCBpbXBhY3RzIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgQ09ORklHX0lQVjZgIGlzIHByZXR0eSBtdWNoIGFsd2F5cyBlbmFibGVkLCBhbmQgYENPTkZJR19YRlJNYCBpcyBhbHNvIG9mdGVuIGVuYWJsZWQgaW4gbW9kZXJuIHNldHVwcywgYnV0IEkgd2FudCB0byBiZSAqc3VyZSouXG5cbknigJltIHBhcnRpY3VsYXJseSBmb2N1c2VkIG9uIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLCBzbyBJJ2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IHRoZWlyIHVzYWdlIGFuZCBwb3RlbnRpYWwgZWRnZSBjYXNlcy4gVGltZSB0byBkb3VibGUtY2hlY2sgYG5ldC9pcHY2L0tjb25maWdgIGZvciBhbnkgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoZSBhdmFpbGFiaWxpdHkgb3IgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zLiBJIG5lZWQgdG8ga25vdyB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhlc2UgY29kZSBwYXRocyBhcmUgYWN0dWFsbHkgdGFrZW4sIGFuZCBob3cgZnJlcXVlbnRseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc1NywiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjo1OS43Nzg4MjI1ODRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNDEwNDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYRlJNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3hmcm0vS2NvbmZpZy00LSNcXG5uZXQveGZybS9LY29uZmlnOjU6Y29uZmlnIFhGUk1cXG5uZXQveGZybS9LY29uZmlnLTYtXFx0Ym9vbFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMC1cXG5uZXQveGZybS9LY29uZmlnOjExOmNvbmZpZyBYRlJNX09GRkxPQURcXG5uZXQveGZybS9LY29uZmlnLTEyLVxcdGJvb2xcXG5uZXQveGZybS9LY29uZmlnLTEzLVxcbm5ldC94ZnJtL0tjb25maWc6MTQ6Y29uZmlnIFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTUtXFx0dHJpc3RhdGVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MjI9aWYgSU5FVFxcbm5ldC94ZnJtL0tjb25maWc6MjM6Y29uZmlnIFhGUk1fVVNFUlxcbm5ldC94ZnJtL0tjb25maWctMjQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTMxLVxcbm5ldC94ZnJtL0tjb25maWc6MzI6Y29uZmlnIFhGUk1fVVNFUl9DT01QQVRcXG5uZXQveGZybS9LY29uZmlnLTMzLVxcdHRyaXN0YXRlIFxcXCJDb21wYXRpYmxlIEFCSSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy00Mi1cXG5uZXQveGZybS9LY29uZmlnOjQzOmNvbmZpZyBYRlJNX0lOVEVSRkFDRVxcbm5ldC94ZnJtL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHZpcnR1YWwgaW50ZXJmYWNlXFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy01MC1cXG5uZXQveGZybS9LY29uZmlnOjUxOmNvbmZpZyBYRlJNX1NVQl9QT0xJQ1lcXG5uZXQveGZybS9LY29uZmlnLTUyLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIHN1YiBwb2xpY3kgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctNjAtXFxubmV0L3hmcm0vS2NvbmZpZzo2MTpjb25maWcgWEZSTV9NSUdSQVRFXFxubmV0L3hmcm0vS2NvbmZpZy02Mi1cXHRib29sIFxcXCJUcmFuc2Zvcm1hdGlvbiBtaWdyYXRlIGRhdGFiYXNlXFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy03MS1cXG5uZXQveGZybS9LY29uZmlnOjcyOmNvbmZpZyBYRlJNX1NUQVRJU1RJQ1NcXG5uZXQveGZybS9LY29uZmlnLTczLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIHN0YXRpc3RpY3NcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTgzLSMgUkZDIDgyMjEgbGlzdHMgYXMgTVVTVCBiZSBpbXBsZW1lbnRlZC5cXG5uZXQveGZybS9LY29uZmlnOjg0OmNvbmZpZyBYRlJNX0FIXFxubmV0L3hmcm0vS2NvbmZpZy04NS1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy05Mi0jIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxcbm5ldC94ZnJtL0tjb25maWc6OTM6Y29uZmlnIFhGUk1fRVNQXFxubmV0L3hmcm0vS2NvbmZpZy05NC1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMDUtXFxubmV0L3hmcm0vS2NvbmZpZzoxMDY6Y29uZmlnIFhGUk1fSVBDT01QXFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXFx0dHJpc3RhdGVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTI1PWNvbmZpZyBORVRfS0VZX01JR1JBVEVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMTQwLVxcbm5ldC94ZnJtL0tjb25maWc6MTQxOmNvbmZpZyBYRlJNX0lQVEZTXFxubmV0L3hmcm0vS2NvbmZpZy0xNDItXFx0dHJpc3RhdGUgXFxcIklQc2VjIElQLVRGUy9BR0dGUkFHIChSRkMgOTM0NykgZW5jYXBzdWxhdGlvbiBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xNTYtXFxubmV0L3hmcm0vS2NvbmZpZzoxNTc6Y29uZmlnIFhGUk1fRVNQSU5UQ1BcXG5uZXQveGZybS9LY29uZmlnLTE1OC1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjU5Ljg1MDIzNzc5N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzM5MzY0MzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgWEZSTSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gYENPTkZJR19YRlJNYCBpcyBhIGhpZGRlbiBib29sIOKAkyByaWdodCwgc28gaXQncyBub3Qgc29tZXRoaW5nIHRoZSB1c2VyIGRpcmVjdGx5IHRvZ2dsZXMuIEl0J3MgKnNlbGVjdGVkKiBieSBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIGdvb2QgdG8ga25vdy4gTm93LCBteSBqb2IgaGVyZSBpcyB0byBmaW5kIG91dCBleGFjdGx5ICp3aGF0KiB0aG9zZSBzZWxlY3Rpbmcgb3B0aW9ucyBhcmUuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGVwZW5kZW5jaWVzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggdGhlIFhGUk0gc3Vic3lzdGVtIGdldHMgZW5hYmxlZC4gTGV0J3Mgc2VlIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBsb29rIGxpa2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxOTEsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNzowMi41ODk2MDQzNTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NzY0NDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBYRlJNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zMDctXFx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcXG5uZXQvaXB2NC9LY29uZmlnOjMwODpcXHRzZWxlY3QgWEZSTVxcbm5ldC9pcHY0L0tjb25maWctMzA5LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXFxubmV0L2lwdjQvS2NvbmZpZy0zNDAtXFx0dHJpc3RhdGUgXFxcIklQOiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2NC9LY29uZmlnOjM0MTpcXHRzZWxlY3QgWEZSTV9BSFxcbm5ldC9pcHY0L0tjb25maWctMzQyLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzU0PWNvbmZpZyBJTkVUX0VTUFxcbm5ldC9pcHY0L0tjb25maWctMzU1LVxcdHRyaXN0YXRlIFxcXCJJUDogRVNQIHRyYW5zZm9ybWF0aW9uXFxcIlxcbm5ldC9pcHY0L0tjb25maWc6MzU2OlxcdHNlbGVjdCBYRlJNX0VTUFxcbm5ldC9pcHY0L0tjb25maWctMzU3LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzY5PWNvbmZpZyBJTkVUX0VTUF9PRkZMT0FEXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnLTM3MS1cXHRkZXBlbmRzIG9uIElORVRfRVNQXFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XFx0c2VsZWN0IFhGUk1fT0ZGTE9BRFxcbm5ldC9pcHY0L0tjb25maWctMzczLVxcdGRlZmF1bHQgblxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZz0zODI9Y29uZmlnIElORVRfRVNQSU5UQ1BcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzg2LVxcdHNlbGVjdCBORVRfU09DS19NU0dcXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcXHRzZWxlY3QgWEZSTV9FU1BJTlRDUFxcbm5ldC9pcHY0L0tjb25maWctMzg4LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9Mzk0PWNvbmZpZyBJTkVUX0lQQ09NUFxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zOTYtXFx0c2VsZWN0IElORVRfWEZSTV9UVU5ORUxcXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcXHRzZWxlY3QgWEZSTV9JUENPTVBcXG5uZXQvaXB2NC9LY29uZmlnLTM5OC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTQ3PWNvbmZpZyBJTkVUNl9BSFxcbm5ldC9pcHY2L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXFxcIlxcbm5ldC9pcHY2L0tjb25maWc6NDk6XFx0c2VsZWN0IFhGUk1fQUhcXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxcbm5ldC9pcHY2L0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2Ni9LY29uZmlnOjY0OlxcdHNlbGVjdCBYRlJNX0VTUFxcbm5ldC9pcHY2L0tjb25maWctNjUtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz03Nz1jb25maWcgSU5FVDZfRVNQX09GRkxPQURcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctNzktXFx0ZGVwZW5kcyBvbiBJTkVUNl9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnOjgwOlxcdHNlbGVjdCBYRlJNX09GRkxPQURcXG5uZXQvaXB2Ni9LY29uZmlnLTgxLVxcdGRlZmF1bHQgblxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz05MD1jb25maWcgSU5FVDZfRVNQSU5UQ1BcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctOTQtXFx0c2VsZWN0IE5FVF9TT0NLX01TR1xcbm5ldC9pcHY2L0tjb25maWc6OTU6XFx0c2VsZWN0IFhGUk1fRVNQSU5UQ1BcXG5uZXQvaXB2Ni9LY29uZmlnLTk2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9MTAyPWNvbmZpZyBJTkVUNl9JUENPTVBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctMTA0LVxcdHNlbGVjdCBJTkVUNl9YRlJNX1RVTk5FTFxcbm5ldC9pcHY2L0tjb25maWc6MTA1OlxcdHNlbGVjdCBYRlJNX0lQQ09NUFxcbm5ldC9pcHY2L0tjb25maWctMTA2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9MTEyPWNvbmZpZyBJUFY2X01JUDZcXG5uZXQvaXB2Ni9LY29uZmlnLTExMy1cXHR0cmlzdGF0ZSBcXFwiSVB2NjogTW9iaWxpdHlcXFwiXFxubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2Ni9LY29uZmlnLTExNS1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTE1MD1jb25maWcgSVBWNl9WVElcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctMTUzLVxcdHNlbGVjdCBORVRfSVBfVFVOTkVMXFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2Ni9LY29uZmlnLTE1NS1cXHRoZWxwXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTE0PWNvbmZpZyBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTE1LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzoxNjpcXHRzZWxlY3QgWEZSTVxcbm5ldC94ZnJtL0tjb25maWctMTctXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0yMz1jb25maWcgWEZSTV9VU0VSXFxubmV0L3hmcm0vS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdXNlciBjb25maWd1cmF0aW9uIGludGVyZmFjZVxcXCJcXG5uZXQveGZybS9LY29uZmlnOjI1OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTI2LVxcdGhlbHBcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9ODQ9Y29uZmlnIFhGUk1fQUhcXG5uZXQveGZybS9LY29uZmlnLTg1LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzo4NjpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy04Ny1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTkzPWNvbmZpZyBYRlJNX0VTUFxcbm5ldC94ZnJtL0tjb25maWctOTQtXFx0dHJpc3RhdGVcXG5uZXQveGZybS9LY29uZmlnOjk1OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTk2LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxcbm5ldC94ZnJtL0tjb25maWctMTA3LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTA5LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTEyPWNvbmZpZyBORVRfS0VZXFxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlBGX0tFWSBzb2NrZXRzIChkZXByZWNhdGVkKVxcXCJcXG5uZXQveGZybS9LY29uZmlnOjExNDpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xMTUtXFx0aGVscFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMjctXFx0ZGVwZW5kcyBvbiBORVRfS0VZXFxubmV0L3hmcm0vS2NvbmZpZzoxMjg6XFx0c2VsZWN0IFhGUk1fTUlHUkFURVxcbm5ldC94ZnJtL0tjb25maWctMTI5LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6Mjc6MDIuNjU2MzczMTdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg2NDYwNzUwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCByZWxhdGVkIHRvIFhGUk0sIGFuZCB0aGUgZmlyc3QgdGhpbmcgSSBub3RpY2VkIGlzIHRoYXQgZW5hYmxpbmcgYENPTkZJR19YRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgWEZSTSBmdW5jdGlvbmFsaXR5LiBPZiBjb3Vyc2UsIHdlJ2xsIG5lZWQgYENPTkZJR19JUFY2YCBlbmFibGVkIGFzIHdlbGwuIFRoYXQgbXVjaCBpcyBvYnZpb3VzLlxuXG5JJ3ZlIHpvb21lZCBpbiBvbiB0aGUgY29kZSBub3csIGFuZCBpdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBtb2RpZmllcyBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCBpbiBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBpdCBzZWVtcyB0aGF0IHRoZXNlIGFyZSB0aGUgKm9ubHkqIGZ1bmN0aW9ucyBpbXBhY3RlZCwgd2hpY2ggc2ltcGxpZmllcyB0aGUgcmV2aWV3LlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXRzIHByb3ZpZGVkLCBpdCBzZWVtcyBsaWtlIGJvdGggZnVuY3Rpb25zLCBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgYXJlIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMuIEVzc2VudGlhbGx5LCB0aGV5IGFwcGVhciB0byBiZSBhZGRyZXNzaW5nIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWVzIGFuZCBlbnN1cmluZyB0aGUgZnVsbCBzb2NrZXQgaXMgYmVpbmcgdXNlZCBjb3JyZWN0bHkuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXJ0aGVyIHNjcnV0aW55LCBlc3BlY2lhbGx5IHdpdGggZnV6emluZyBpbiBtaW5kLlxuXG5JIG5lZWQgdG8ga2VlcCBhIGNsb3NlIGV5ZSBvbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCBhcyB0aGUga2V5IGZvY3VzIHN5bWJvbHMuXG5cblNvLCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzOiBgSVBWNmAgYW5kIGBYRlJNX1VTRVJgLiBJIGNoZWNrZWQsIGFuZCBgQ09ORklHX1hGUk1gIGlzIGNvcnJlY3RseSBzZWxlY3RlZCB3aGVuIGBYRlJNX1VTRVJgIGlzIGVuYWJsZWQsIGFuZCBgQ09ORklHX0lQVjZgIGlzIHRoZSBtYWluIGVuYWJsZXIgZm9yIElQdjYsIHNvIHRoYXQgYWxsIGNoZWNrcyBvdXQuXG5cbkknbGwgcHJvY2VlZCB0byBzZXQgdGhlIHJlc3VsdHMgYmFzZWQgb24gdGhpcyBhbmFseXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk0NSwiT3V0cHV0VG9rZW5zIjoxNDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6Mjc6MDkuNTIwOTgyODgyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcyNDAxMDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm02X2xvY2FsX3J4cG10dVwiLFxuICAgIFwieGZybTZfbG9jYWxfZXJyb3JcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVxcdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gICAgXCJ4ZnJtNl9sb2NhbF9lcnJvclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXFx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowvvt98[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-03 17:53:06 +0000 UTC FinishedAt: 2026-08-03 19:27:11 +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": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "XFRM_USER" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "af39eb111ce6b5eba9c08513b62c4868eb7e7fd5", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IPV6", "XFRM_USER" ], "series_id": "462a3b9f-96a6-4df8-ad39-8948b6b2e4c3" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "xfrm6_local_rxpmtu", "xfrm6_local_error" ], "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+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eGZybTZfbG9jYWxfcnhwbXR1JiMzNDssCiAgICAmIzM0O3hmcm02X2xvY2FsX2Vycm9yJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXHUwMDNlc2tgIHdpdGggYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBhZGRpbmcgYSBOVUxMIGNoZWNrIGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBJUHY2IFhGUk0gb3V0cHV0IHBhdGggdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgZjBlZjg3ZGQ5NTkwY2Q0Mzk2YWY2NGI4ZGZmNDAxNmYzZTRjN2M4ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBNb24gQXVnIDMgMTk6MjY6MzUgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuaW5kZXggNTEyYmRhZjEzNjk5Ny4uNDRiMjIxYTA5YTBjOCAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuQEAgLTE5LDcgJiM0MzsxOSwxMCBAQFxuIHZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpXG4ge1xuIFx0c3RydWN0IGZsb3dpNiBmbDY7XG4tXHRzdHJ1Y3Qgc29jayAqc2sgPSBza2ItXHUwMDNlc2s7XG4mIzQzO1x0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcbiYjNDM7XG4mIzQzO1x0aWYgKCFzaylcbiYjNDM7XHRcdHJldHVybjtcbiBcbiBcdGZsNi5mbG93aTZfb2lmID0gc2stXHUwMDNlc2tfYm91bmRfZGV2X2lmO1xuIFx0Zmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS1cdTAwM2VkYWRkcjtcbkBAIC0zMSw3ICYjNDM7MzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxuIHtcbiBcdHN0cnVjdCBmbG93aTYgZmw2O1xuIFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbiYjNDM7XHRzdHJ1Y3Qgc29jayAqc2sgPSBza2JfdG9fZnVsbF9zayhza2IpO1xuJiM0MztcbiYjNDM7XHRpZiAoIXNrKVxuJiM0MztcdFx0cmV0dXJuO1xuIFxuIFx0aGRyID0gc2tiLVx1MDAzZWVuY2Fwc3VsYXRpb24gPyBpbm5lcl9pcHY2X2hkcihza2IpIDogaXB2Nl9oZHIoc2tiKTtcbiBcdGZsNi5mbDZfZHBvcnQgPSBpbmV0X3NrKHNrKS1cdTAwM2VpbmV0X2Rwb3J0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJUFY2JiMzNDssCiAgICAmIzM0O1hGUk1fVVNFUiYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O3hmcm02X2xvY2FsX3J4cG10dSYjMzQ7LAogICAgJiMzNDt4ZnJtNl9sb2NhbF9lcnJvciYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IGYwZWY4N2RkOTU5MGNkNDM5NmFmNjRiOGRmZjQwMTZmM2U0YzdjOGQKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwppbmRleCA1MTJiZGFmMTM2OTk3Li40NGIyMjFhMDlhMGM4IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYwpAQCAtMTksNyAmIzQzOzE5LDEwIEBACiB2b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQogewogCXN0cnVjdCBmbG93aTYgZmw2OwotCXN0cnVjdCBzb2NrICpzayA9IHNrYi0mZ3Q7c2s7CiYjNDM7CXN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7CiYjNDM7CiYjNDM7CWlmICghc2spCiYjNDM7CQlyZXR1cm47CiAKIAlmbDYuZmxvd2k2X29pZiA9IHNrLSZndDtza19ib3VuZF9kZXZfaWY7CiAJZmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS0mZ3Q7ZGFkZHI7CkBAIC0zMSw3ICYjNDM7MzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KQogewogCXN0cnVjdCBmbG93aTYgZmw2OwogCWNvbnN0IHN0cnVjdCBpcHY2aGRyICpoZHI7Ci0Jc3RydWN0IHNvY2sgKnNrID0gc2tiLSZndDtzazsKJiM0MzsJc3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTsKJiM0MzsKJiM0MzsJaWYgKCFzaykKJiM0MzsJCXJldHVybjsKIAogCWhkciA9IHNrYi0mZ3Q7ZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpOwogCWZsNi5mbDZfZHBvcnQgPSBpbmV0X3NrKHNrKS0mZ3Q7aW5ldF9kcG9ydDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6MjY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjI0NQoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDIwMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQYXRjaCB0byBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLCBhbmQgaXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGltcG9ydGFudCwgZml4LiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlcGxhY2luZyBgc2tiLSZndDtza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgaW4gdGhlIGNvZGUuIFBsdXMsIGl0IGFkZHMgTlVMTCBjaGVja3MgZm9yIGBza2Agd2l0aGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLgoKUmlnaHQgYXdheSwgSSYjMzk7bSB0aGlua2luZyB0aGlzIGlzIGFsbCBhYm91dCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3IgcGVyaGFwcyBtYWtpbmcgc3VyZSB3ZSYjMzk7cmUgdXNpbmcgdGhlIGNvcnJlY3Qgc29ja2V0IHN0cnVjdHVyZSwgbm90IGEgdGltZS13YWl0IG9yIHJlcXVlc3Qgc29ja2V0LiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBkZWZpbml0ZWx5IHNvbWV0aGluZyB0byB1bmRlcnN0YW5kLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgZGl2ZSBpbnRvIHRob3NlIHR3byBmdW5jdGlvbnMsIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGV5JiMzOTtyZSBleHBvcnRlZCBvciBzdGF0aWMuIE1vcmUgaW1wb3J0YW50bHksIGFyZSB0aGVyZSBhbnkgY29uZmlnIG9wdGlvbnMgdGllZCB0byB0aGVzZSBmdW5jdGlvbnMgdGhhdCBtaWdodCBhZmZlY3QgaG93IHRoaXMgY2hhbmdlIGJlaGF2ZXM/IFdoZXJlIGFyZSB0aGV5IHVzZWQ/CgpTaW5jZSB0aGlzIHBhdGNoIGlzIGluIHRoZSBgbmV0L2lwdjZgIGRpcmVjdG9yeSwgSSYjMzk7bGwgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBmaWxlIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZW5hYmxlZC4gSSYjMzk7bGwgbmVlZCB0byBsb29rIGF0IHRoZSBgbmV0L2lwdjYvTWFrZWZpbGVgIHRvIGNvbmZpcm0gdGhhdC4gR290dGEgbWFrZSBzdXJlIHRoZSBidWlsZCBkZXBlbmRlbmNpZXMgYXJlIGFsbCBpbiBvcmRlci4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt4ZnJtNl9vdXRwdXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvaXB2Ni9NYWtlZmlsZSYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaXB2Ni9NYWtlZmlsZT0xOD1pcHY2LSQoQ09ORklHX1hGUk0pICYjNDM7PSB4ZnJtNl9wb2xpY3kubyB4ZnJtNl9zdGF0ZS5vIHhmcm02X2lucHV0Lm8gXFxcbm5ldC9pcHY2L01ha2VmaWxlOjE5Olx0eGZybTZfb3V0cHV0Lm8geGZybTZfcHJvdG9jb2wub1xubmV0L2lwdjYvTWFrZWZpbGUtMjAtaXB2Ni0kKENPTkZJR19ORVRGSUxURVIpICYjNDM7PSBuZXRmaWx0ZXIub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI5MDUKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiA1MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXM6IFhGUk0gJmFtcDsgSVB2NioqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gaXQuIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGNvZGUgYW5kLCBvZiBjb3Vyc2UsIEkgbmVlZCB0byB2ZXJpZnkgYSBjb3VwbGUgb2YgZGVwZW5kZW5jaWVzIGFyZSBpbiBwbGFjZS4gIEkmIzM5O20gZ29pbmcgdG8gbmVlZCB0byBlbnN1cmUgYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZGVmaW5lZC4gIFRoYXQmIzM5O3MgYSBnaXZlbiwgYnV0IEkgZG9uJiMzOTt0IHdhbnQgdG8gd2FzdGUgdGltZSBkb3duIHRoZSBsaW5lIGlmIEkgZm9yZ2V0IHRvIGxvb2suIE5leHQgSSBuZWVkIHRvIGNoZWNrIHNvbWV0aGluZyB0aGF0IGNvbmNlcm5zIG1lIGRpcmVjdGx5LCBzcGVjaWZpY2FsbHkgYXJvdW5kIFBNVFUgYW5kIGVycm9ycyB3aXRoIFhGUk0gYW5kIElQdjYuCgpNeSBtYWluIGZvY3VzIG5vdyBpcyB3aGV0aGVyIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGFyZSBhY3R1YWxseSBleHBvcnRlZCBhbmQgdXNlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVzZSBzeW1ib2xzIHRydWx5IGludGVybmFsIHRvIHRoaXMgc3BlY2lmaWMgbW9kdWxlLCBvciBhcmUgdGhleSBtZWFudCB0byBiZSBwYXJ0IG9mIGEgYnJvYWRlciBBUEk/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCwgb3IgaWYgdGhleSBhcmUganVzdCBsb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBJIGRvbiYjMzk7dCB3YW50IGFueSB1bmV4cGVjdGVkIHNpZGUgZWZmZWN0cyBvciBsaW5rIGVycm9ycyBjcm9wcGluZyB1cCBsYXRlciBiZWNhdXNlIG9mIHNvbWUgbWlzc2VkIGRlcGVuZGVuY3kgb3IgdW5kZWNsYXJlZCBleHBvcnQuIFRoYXQmIzM5O3MgYSBtYWpvciByZWQgZmxhZyBpbiBteSBib29rLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3hmcm02X2xvY2FsX3J4cG10dSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtpbmNsdWRlL25ldC94ZnJtLmg9MTg1OD1pbnQgeGZybTZfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5pbmNsdWRlL25ldC94ZnJtLmgtMTg2MC0jaWZkZWYgQ09ORklHX1hGUk1cbmluY2x1ZGUvbmV0L3hmcm0uaDoxODYxOnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xuaW5jbHVkZS9uZXQveGZybS5oLTE4NjItaW50IHhmcm00X3VkcF9lbmNhcF9yY3Yoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0xOC1cbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjE5OnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0yMC17XG4tLVxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM9Njc9c3RhdGljIGludCBfX3hmcm02X291dHB1dChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05MS1cdGlmICh0b29iaWcgXHUwMDI2XHUwMDI2IHhmcm02X2xvY2FsX2RvbnRmcmFnKHNrKSkge1xubmV0L2lwdjYveGZybTZfb3V0cHV0LmM6OTI6XHRcdHhmcm02X2xvY2FsX3J4cG10dShza2IsIG10dSk7XG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05My1cdFx0a2ZyZWVfc2tiKHNrYik7XG4tLVxubmV0L3hmcm0veGZybV9vdXRwdXQuYz04OTA9aW50IHhmcm02X3R1bm5lbF9jaGVja19zaXplKHN0cnVjdCBza19idWZmICpza2IpXG4tLVxubmV0L3hmcm0veGZybV9vdXRwdXQuYy05MDktXHRcdGlmICh4ZnJtNl9sb2NhbF9kb250ZnJhZyhzaykpXG5uZXQveGZybS94ZnJtX291dHB1dC5jOjkxMDpcdFx0XHR4ZnJtNl9sb2NhbF9yeHBtdHUoc2tiLCBtdHUpO1xubmV0L3hmcm0veGZybV9vdXRwdXQuYy05MTEtXHRcdGVsc2UgaWYgKHNrKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM3NDkKCQkJCQkJCW91dHB1dDogMjcKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjoKCioqQW5hbHl6aW5nIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaW4gRGVwdGgqKgoKUmlnaHQsIGxldCYjMzk7cyBicmVhayBkb3duIHRoaXMgYHhmcm02X2xvY2FsX2Vycm9yYCBpc3N1ZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBvZiBjb3Vyc2UsIHRvIGNvbnNpZGVyIHRoZSBwb3NzaWJsZSByb290IGNhdXNlcyB3aXRoaW4gdGhlIElQdjYgZm9yd2FyZGluZyBwYXRoLiBXZSYjMzk7cmUgdGFsa2luZyBhYm91dCBhIGxvY2FsaXplZCBlcnJvciB3aXRoaW4gdGhlIFhGUk0gKGVYdGVybmFsIEZvd2FyZGluZyBSdWxlcyBNb2R1bGUpIGZvciBJUHY2LCBzbyB0aGUgZXJyb3IgbGlrZWx5IG9yaWdpbmF0ZXMgd2l0aGluIHRoZSBsb2NhbCBoYW5kbGluZywgbm90IGZyb20gYSByZW1vdGUgaG9zdCYjMzk7cyBtaXNjb25maWd1cmF0aW9uLiBUaGlzIG1lYW5zIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBwb2ludHMgd2l0aGluIHRoZSBrZXJuZWwgd2hlcmUgdGhpcyBlcnJvciBjb3VsZCBiZSB0cmlnZ2VyZWQuCgpJJiMzOTttIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IHRoZSBmb2xsb3dpbmc6CgoqICAgKipQb2xpY3kgTG9va3VwIGFuZCBNYXRjaGluZzoqKiBJcyB0aGUgY29ycmVjdCBYRlJNIHBvbGljeSBiZWluZyBhcHBsaWVkPyBBcmUgdGhlcmUgcG90ZW50aWFsIG92ZXJsYXBzIG9yIGFtYmlndWl0aWVzIGluIHRoZSBwb2xpY3kgZGVmaW5pdGlvbnMgbGVhZGluZyB0byB0aGUgd3JvbmcgU0EgKFNlY3VyaXR5IEFzc29jaWF0aW9uKSBiZWluZyBzZWxlY3RlZD8gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGUgcG9saWN5IGRhdGFiYXNlIGFuZCB0aGUgYXNzb2NpYXRlZCBsb29rdXAgZnVuY3Rpb25zLiBBIHF1aWNrIHNjYW4gb2YgdGhlIGNvZGUgYXJvdW5kIGB4ZnJtX3BvbGljeV9sb29rdXBgIGFuZCB0aGUgbWF0Y2hpbmcgYWxnb3JpdGhtcyBpcyBpbiBvcmRlci4gSXQmIzM5O3MgcG9zc2libGUgYW4gb3V0ZGF0ZWQgb3IgaW5jb3JyZWN0IHBvbGljeSBpcyBjYXVzaW5nIHRoZSBwcm9ibGVtLgoqICAgKipTQSBTdGF0ZSBhbmQgSW50ZWdyaXR5OioqIEFyZSB0aGUgc2VjdXJpdHkgYXNzb2NpYXRpb25zIHRoZW1zZWx2ZXMgdmFsaWQgYW5kIHByb3Blcmx5IGVzdGFibGlzaGVkPyBJcyB0aGVyZSBhIHJhY2UgY29uZGl0aW9uIG9yIGEgc3RhdGUgaW5jb25zaXN0ZW5jeSBkdXJpbmcgU0EgY3JlYXRpb24sIHVwZGF0ZSwgb3IgZGVsZXRpb24gdGhhdCB0cmlnZ2VycyB0aGUgZXJyb3I/IEkmIzM5O2xsIGhhdmUgdG8gaW52ZXN0aWdhdGUgaWYgdGhlcmUgYXJlIGFueSBpc3N1ZXMgd2l0aCBrZXlpbmcgZGFlbW9ucyBvciByZWtleWluZyBwcm90b2NvbHMuIEVycm9yIGNvbmRpdGlvbnMgd2l0aGluIHRoZSBTQSBtYW5hZ2VtZW50IHJvdXRpbmVzIChgeGZybV9zdGF0ZV9hbGxvY2AsIGB4ZnJtX3N0YXRlX2FkZGAsIGV0Yy4pIGFyZSBoaWdoIG9uIHRoZSBjaGVja2xpc3QuCiogICAqKlBhY2tldCBIYW5kbGluZyBhbmQgTWFuaXB1bGF0aW9uOioqIFRoZSBlcnJvciBtaWdodCBiZSB0cmlnZ2VyZWQgZHVyaW5nIHBhY2tldCBlbmNhcHN1bGF0aW9uIG9yIGRlY2Fwc3VsYXRpb24sIGZvciBpbnN0YW5jZSwgd2hlbiBhbiBJUHNlYyBoZWFkZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4gQXJlIHRoZXJlIGFueSBidWZmZXIgb3ZlcmZsb3dzLCBtZW1vcnkgY29ycnVwdGlvbiBpc3N1ZXMsIG9yIGluY29ycmVjdCBoZWFkZXIgY2FsY3VsYXRpb25zIGR1cmluZyB0aGVzZSBvcGVyYXRpb25zPyBJJiMzOTtsbCBuZWVkIHRvIHNjcnV0aW5pemUgdGhlIGNvZGUgaW4gdGhlIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24gcGF0aHMsIHNwZWNpZmljYWxseSBmdW5jdGlvbnMgZGVhbGluZyB3aXRoIGhlYWRlciBjb25zdHJ1Y3Rpb24gYW5kIHBheWxvYWQgaW50ZWdyaXR5LgoqICAgKipSZXNvdXJjZSBBbGxvY2F0aW9uIGFuZCBMaW1pdHM6KiogQXJlIHdlIGhpdHRpbmcgcmVzb3VyY2UgbGltaXRzIHdpdGhpbiB0aGUgWEZSTSBzdWJzeXN0ZW0/IEFyZSB0aGVyZSBpc3N1ZXMgd2l0aCBtZW1vcnkgYWxsb2NhdGlvbiwgcXVldWUgbGVuZ3Rocywgb3IgdGFibGUgc2l6ZXMgdGhhdCByZXN1bHQgaW4gdGhpcyBsb2NhbCBlcnJvcj8gTWVtb3J5IHByZXNzdXJlIG9yIGV4aGF1c3Rpb24gbWlnaHQgbWFuaWZlc3QgYXMgYSB0cmFuc2llbnQgZXJyb3IuIFRoZSBjb2RlIGRlYWxpbmcgd2l0aCByZXNvdXJjZSBhY2NvdW50aW5nIGFuZCBsaW1pdHMgd2lsbCBuZWVkIGNhcmVmdWwgZXhhbWluYXRpb24uCiogICAqKkVycm9yIFByb3BhZ2F0aW9uIGFuZCBIYW5kbGluZzoqKiBIb3cgaXMgdGhpcyBgeGZybTZfbG9jYWxfZXJyb3JgIGhhbmRsZWQ/IElzIGl0IHByb3BhZ2F0ZWQgY29ycmVjdGx5LCBvciBtYXNrZWQgc29tZXdoZXJlIHVwIHRoZSBjYWxsIHN0YWNrPyBBcmUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgZ2VuZXJhdGVkIGFuZCBsb2dnZWQ/IFRyYWNlYWJpbGl0eSBhbmQgZGVidWdnaW5nIGFyZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlcnJvciBwYXRoIGFuZCBob3cgaXQmIzM5O3MgcmVwb3J0ZWQgdG8gaGlnaGVyIGxheWVycy4KClRoZXJlZm9yZSwgdGhlIGludmVzdGlnYXRpb24gd2lsbCBiZSBiYXNlZCBvbiB0aGVzZSBwb2ludHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDMgMTk6MjY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7eGZybTZfbG9jYWxfZXJyb3ImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9uZXQveGZybS5oPTE4NDk9aW50IHhmcm02X2lucHV0X2FkZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgeGZybV9hZGRyZXNzX3QgKmRhZGRyLFxuaW5jbHVkZS9uZXQveGZybS5oLTE4NTAtXHRcdCAgICAgeGZybV9hZGRyZXNzX3QgKnNhZGRyLCB1OCBwcm90byk7XG5pbmNsdWRlL25ldC94ZnJtLmg6MTg1MTp2b2lkIHhmcm02X2xvY2FsX2Vycm9yKHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xuaW5jbHVkZS9uZXQveGZybS5oLTE4NTItaW50IHhmcm02X3Byb3RvY29sX3JlZ2lzdGVyKHN0cnVjdCB4ZnJtNl9wcm90b2NvbCAqaGFuZGxlciwgdW5zaWduZWQgY2hhciBwcm90b2NvbCk7XG4tLVxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM9MTk9dm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbi0tXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0zMi1cbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjMzOnZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTM0LXtcbi0tXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jPTE3PXN0YXRpYyBzdHJ1Y3QgeGZybV9zdGF0ZV9hZmluZm8geGZybTZfc3RhdGVfYWZpbmZvID0ge1xuLS1cbm5ldC9pcHY2L3hmcm02X3N0YXRlLmMtMjEtXHQudHJhbnNwb3J0X2ZpbmlzaFx0PSB4ZnJtNl90cmFuc3BvcnRfZmluaXNoLFxubmV0L2lwdjYveGZybTZfc3RhdGUuYzoyMjpcdC5sb2NhbF9lcnJvclx0XHQ9IHhmcm02X2xvY2FsX2Vycm9yLFxubmV0L2lwdjYveGZybTZfc3RhdGUuYy0yMy19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzAzIDE5OjI2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ3NTcKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMTkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIE5VTEwgUG9pbnRlciBEZXJlZmVyZW5jZSBpbiB0aGUgWEZSTSBTdWJzeXN0ZW0qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0IHNlZW1zIHRvIGFkZHJlc3MgYSBwb3RlbnRpYWxseSBuYXN0eSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UuIFRoZSBmaXggaW52b2x2ZXMgdXNpbmcgYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBjaGVja2luZyBpZiBpdCByZXR1cm5zIE5VTEwuIFRoYXQgaW1tZWRpYXRlbHkgc2NyZWFtcyBmdXp6aW5nIGNhbmRpZGF0ZSB0byBtZSDigJMgZ29vZCBzcG90IGZvciBwb3RlbnRpYWwgdnVsbmVyYWJpbGl0aWVzLgoKVGhlIGZ1bmN0aW9ucyBpbiBxdWVzdGlvbiwgYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAsIGFyZSBib3RoIGV4cG9ydGVkIGFuZCBhY3RpdmVseSB1c2VkLiBTcGVjaWZpY2FsbHksIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGdldHMgY2FsbGVkIGZyb20gYF9feGZybTZfb3V0cHV0YCBhbmQgYHhmcm02X3R1bm5lbF9jaGVja19zaXplYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBJUHY2IHBhdGguIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXMgcmVnaXN0ZXJlZCBpbiBgeGZybTZfc3RhdGVfYWZpbmZvYCBhcyBgLmxvY2FsX2Vycm9yYC4gS25vd2luZyB3aGVyZSBhbmQgaG93IHRoZXNlIGFyZSB1c2VkIGhlbHBzIG1lIHRhcmdldCBteSBhbmFseXNpcy4KCk5vdywgbGV04oCZcyBkaWcgaW50byB0aGUgY29uZmlndXJhdGlvbnMuIE15IGluaXRpYWwgY2hlY2tzIHBvaW50IHRvIGBDT05GSUdfWEZSTWAgYW5kIGBDT05GSUdfSVBWNmAgYmVpbmcgdGhlIGtleSBwbGF5ZXJzIGhlcmUuIEkmIzM5O2xsIG5lZWQgdG8gY29uZmlybSB0aGF0IHRoZXNlIGFyZSB0aGUgb25seSByZWxldmFudCBvbmVzLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgdGhhdCBpbXBhY3RzIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgQ09ORklHX0lQVjZgIGlzIHByZXR0eSBtdWNoIGFsd2F5cyBlbmFibGVkLCBhbmQgYENPTkZJR19YRlJNYCBpcyBhbHNvIG9mdGVuIGVuYWJsZWQgaW4gbW9kZXJuIHNldHVwcywgYnV0IEkgd2FudCB0byBiZSAqc3VyZSouCgpJ4oCZbSBwYXJ0aWN1bGFybHkgZm9jdXNlZCBvbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgc28gSSYjMzk7bGwgYmUgbG9va2luZyBzcGVjaWZpY2FsbHkgYXQgdGhlaXIgdXNhZ2UgYW5kIHBvdGVudGlhbCBlZGdlIGNhc2VzLiBUaW1lIHRvIGRvdWJsZS1jaGVjayBgbmV0L2lwdjYvS2NvbmZpZ2AgZm9yIGFueSBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBpbmZsdWVuY2UgdGhlIGF2YWlsYWJpbGl0eSBvciBiZWhhdmlvciBvZiB0aGVzZSBmdW5jdGlvbnMuIEkgbmVlZCB0byBrbm93IHVuZGVyIHdoYXQgY2lyY3Vtc3RhbmNlcyB0aGVzZSBjb2RlIHBhdGhzIGFyZSBhY3R1YWxseSB0YWtlbiwgYW5kIGhvdyBmcmVxdWVudGx5LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L3hmcm0vS2NvbmZpZy00LSNcbm5ldC94ZnJtL0tjb25maWc6NTpjb25maWcgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy02LVx0Ym9vbFxuLS1cbm5ldC94ZnJtL0tjb25maWctMTAtXG5uZXQveGZybS9LY29uZmlnOjExOmNvbmZpZyBYRlJNX09GRkxPQURcbm5ldC94ZnJtL0tjb25maWctMTItXHRib29sXG5uZXQveGZybS9LY29uZmlnLTEzLVxubmV0L3hmcm0vS2NvbmZpZzoxNDpjb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnPTIyPWlmIElORVRcbm5ldC94ZnJtL0tjb25maWc6MjM6Y29uZmlnIFhGUk1fVVNFUlxubmV0L3hmcm0vS2NvbmZpZy0yNC1cdHRyaXN0YXRlIFwmIzM0O1RyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTMxLVxubmV0L3hmcm0vS2NvbmZpZzozMjpjb25maWcgWEZSTV9VU0VSX0NPTVBBVFxubmV0L3hmcm0vS2NvbmZpZy0zMy1cdHRyaXN0YXRlIFwmIzM0O0NvbXBhdGlibGUgQUJJIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTQyLVxubmV0L3hmcm0vS2NvbmZpZzo0Mzpjb25maWcgWEZSTV9JTlRFUkZBQ0Vcbm5ldC94ZnJtL0tjb25maWctNDQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB2aXJ0dWFsIGludGVyZmFjZVwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctNTAtXG5uZXQveGZybS9LY29uZmlnOjUxOmNvbmZpZyBYRlJNX1NVQl9QT0xJQ1lcbm5ldC94ZnJtL0tjb25maWctNTItXHRib29sIFwmIzM0O1RyYW5zZm9ybWF0aW9uIHN1YiBwb2xpY3kgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctNjAtXG5uZXQveGZybS9LY29uZmlnOjYxOmNvbmZpZyBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctNjItXHRib29sIFwmIzM0O1RyYW5zZm9ybWF0aW9uIG1pZ3JhdGUgZGF0YWJhc2VcJiMzNDtcbi0tXG5uZXQveGZybS9LY29uZmlnLTcxLVxubmV0L3hmcm0vS2NvbmZpZzo3Mjpjb25maWcgWEZSTV9TVEFUSVNUSUNTXG5uZXQveGZybS9LY29uZmlnLTczLVx0Ym9vbCBcJiMzNDtUcmFuc2Zvcm1hdGlvbiBzdGF0aXN0aWNzXCYjMzQ7XG4tLVxubmV0L3hmcm0vS2NvbmZpZy04My0jIFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXG5uZXQveGZybS9LY29uZmlnOjg0OmNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnLTkyLSMgYWxnb3JpdGhtcyB0aGF0IFJGQyA4MjIxIGxpc3RzIGFzIE1VU1QgYmUgaW1wbGVtZW50ZWQuXG5uZXQveGZybS9LY29uZmlnOjkzOmNvbmZpZyBYRlJNX0VTUFxubmV0L3hmcm0vS2NvbmZpZy05NC1cdHRyaXN0YXRlXG4tLVxubmV0L3hmcm0vS2NvbmZpZy0xMDUtXG5uZXQveGZybS9LY29uZmlnOjEwNjpjb25maWcgWEZSTV9JUENPTVBcbm5ldC94ZnJtL0tjb25maWctMTA3LVx0dHJpc3RhdGVcbi0tXG5uZXQveGZybS9LY29uZmlnPTEyNT1jb25maWcgTkVUX0tFWV9NSUdSQVRFXG4tLVxubmV0L3hmcm0vS2NvbmZpZy0xNDAtXG5uZXQveGZybS9LY29uZmlnOjE0MTpjb25maWcgWEZSTV9JUFRGU1xubmV0L3hmcm0vS2NvbmZpZy0xNDItXHR0cmlzdGF0ZSBcJiMzNDtJUHNlYyBJUC1URlMvQUdHRlJBRyAoUkZDIDkzNDcpIGVuY2Fwc3VsYXRpb24gc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC94ZnJtL0tjb25maWctMTU2LVxubmV0L3hmcm0vS2NvbmZpZzoxNTc6Y29uZmlnIFhGUk1fRVNQSU5UQ1Bcbm5ldC94ZnJtL0tjb25maWctMTU4LVx0Ym9vbFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTkxCgkJCQkJCQlvdXRwdXQ6IDI2CgkJCQkJCQl0aG91Z2h0czogMzQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEkmIzM5O20gdGhpbmtpbmcgdGhyb3VnaCB0aGlzIHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIHRoZSBYRlJNIENvbmZpZ3VyYXRpb24qKgoKT2theSwgc28gYENPTkZJR19YRlJNYCBpcyBhIGhpZGRlbiBib29sIOKAkyByaWdodCwgc28gaXQmIzM5O3Mgbm90IHNvbWV0aGluZyB0aGUgdXNlciBkaXJlY3RseSB0b2dnbGVzLiBJdCYjMzk7cyAqc2VsZWN0ZWQqIGJ5IHNvbWV0aGluZyBlbHNlIGluIHRoZSBjb25maWd1cmF0aW9uLiBUaGF0JiMzOTtzIGdvb2QgdG8ga25vdy4gTm93LCBteSBqb2IgaGVyZSBpcyB0byBmaW5kIG91dCBleGFjdGx5ICp3aGF0KiB0aG9zZSBzZWxlY3Rpbmcgb3B0aW9ucyBhcmUuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGVwZW5kZW5jaWVzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggdGhlIFhGUk0gc3Vic3lzdGVtIGdldHMgZW5hYmxlZC4gTGV0JiMzOTtzIHNlZSB3aGF0IHRoZSBkZXBlbmRlbmNpZXMgbG9vayBsaWtlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzZWxlY3QgWEZSTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O25ldC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxuLS1cbm5ldC9pcHY0L0tjb25maWctMzA3LVx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcbm5ldC9pcHY0L0tjb25maWc6MzA4Olx0c2VsZWN0IFhGUk1cbm5ldC9pcHY0L0tjb25maWctMzA5LVx0aGVscFxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXG5uZXQvaXB2NC9LY29uZmlnLTM0MC1cdHRyaXN0YXRlIFwmIzM0O0lQOiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjQvS2NvbmZpZzozNDE6XHRzZWxlY3QgWEZSTV9BSFxubmV0L2lwdjQvS2NvbmZpZy0zNDItXHRoZWxwXG4tLVxubmV0L2lwdjQvS2NvbmZpZz0zNTQ9Y29uZmlnIElORVRfRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1NS1cdHRyaXN0YXRlIFwmIzM0O0lQOiBFU1AgdHJhbnNmb3JtYXRpb25cJiMzNDtcbm5ldC9pcHY0L0tjb25maWc6MzU2Olx0c2VsZWN0IFhGUk1fRVNQXG5uZXQvaXB2NC9LY29uZmlnLTM1Ny1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM2OT1jb25maWcgSU5FVF9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY0L0tjb25maWctMzcxLVx0ZGVwZW5kcyBvbiBJTkVUX0VTUFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XHRzZWxlY3QgWEZSTV9PRkZMT0FEXG5uZXQvaXB2NC9LY29uZmlnLTM3My1cdGRlZmF1bHQgblxuLS1cbm5ldC9pcHY0L0tjb25maWc9MzgyPWNvbmZpZyBJTkVUX0VTUElOVENQXG4tLVxubmV0L2lwdjQvS2NvbmZpZy0zODYtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcdHNlbGVjdCBYRlJNX0VTUElOVENQXG5uZXQvaXB2NC9LY29uZmlnLTM4OC1cdGhlbHBcbi0tXG5uZXQvaXB2NC9LY29uZmlnPTM5ND1jb25maWcgSU5FVF9JUENPTVBcbi0tXG5uZXQvaXB2NC9LY29uZmlnLTM5Ni1cdHNlbGVjdCBJTkVUX1hGUk1fVFVOTkVMXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjQvS2NvbmZpZy0zOTgtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz00Nz1jb25maWcgSU5FVDZfQUhcbm5ldC9pcHY2L0tjb25maWctNDgtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBBSCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo0OTpcdHNlbGVjdCBYRlJNX0FIXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVx0aGVscFxuLS1cbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZy02My1cdHRyaXN0YXRlIFwmIzM0O0lQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzo2NDpcdHNlbGVjdCBYRlJNX0VTUFxubmV0L2lwdjYvS2NvbmZpZy02NS1cdGhlbHBcbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTc3PWNvbmZpZyBJTkVUNl9FU1BfT0ZGTE9BRFxuLS1cbm5ldC9pcHY2L0tjb25maWctNzktXHRkZXBlbmRzIG9uIElORVQ2X0VTUFxubmV0L2lwdjYvS2NvbmZpZzo4MDpcdHNlbGVjdCBYRlJNX09GRkxPQURcbm5ldC9pcHY2L0tjb25maWctODEtXHRkZWZhdWx0IG5cbi0tXG5uZXQvaXB2Ni9LY29uZmlnPTkwPWNvbmZpZyBJTkVUNl9FU1BJTlRDUFxuLS1cbm5ldC9pcHY2L0tjb25maWctOTQtXHRzZWxlY3QgTkVUX1NPQ0tfTVNHXG5uZXQvaXB2Ni9LY29uZmlnOjk1Olx0c2VsZWN0IFhGUk1fRVNQSU5UQ1Bcbm5ldC9pcHY2L0tjb25maWctOTYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMDI9Y29uZmlnIElORVQ2X0lQQ09NUFxuLS1cbm5ldC9pcHY2L0tjb25maWctMTA0LVx0c2VsZWN0IElORVQ2X1hGUk1fVFVOTkVMXG5uZXQvaXB2Ni9LY29uZmlnOjEwNTpcdHNlbGVjdCBYRlJNX0lQQ09NUFxubmV0L2lwdjYvS2NvbmZpZy0xMDYtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xMTI9Y29uZmlnIElQVjZfTUlQNlxubmV0L2lwdjYvS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtJUHY2OiBNb2JpbGl0eVwmIzM0O1xubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L2lwdjYvS2NvbmZpZz0xNTA9Y29uZmlnIElQVjZfVlRJXG4tLVxubmV0L2lwdjYvS2NvbmZpZy0xNTMtXHRzZWxlY3QgTkVUX0lQX1RVTk5FTFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XHRzZWxlY3QgWEZSTVxubmV0L2lwdjYvS2NvbmZpZy0xNTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xND1jb25maWcgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTE1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6MTY6XHRzZWxlY3QgWEZSTVxubmV0L3hmcm0vS2NvbmZpZy0xNy1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTIzPWNvbmZpZyBYRlJNX1VTRVJcbm5ldC94ZnJtL0tjb25maWctMjQtXHR0cmlzdGF0ZSBcJiMzNDtUcmFuc2Zvcm1hdGlvbiB1c2VyIGNvbmZpZ3VyYXRpb24gaW50ZXJmYWNlXCYjMzQ7XG5uZXQveGZybS9LY29uZmlnOjI1Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0yNi1cdGhlbHBcbi0tXG5uZXQveGZybS9LY29uZmlnPTg0PWNvbmZpZyBYRlJNX0FIXG5uZXQveGZybS9LY29uZmlnLTg1LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6ODY6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTg3LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9OTM9Y29uZmlnIFhGUk1fRVNQXG5uZXQveGZybS9LY29uZmlnLTk0LVx0dHJpc3RhdGVcbm5ldC94ZnJtL0tjb25maWc6OTU6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTk2LVx0c2VsZWN0IENSWVBUT1xuLS1cbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXHR0cmlzdGF0ZVxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XHRzZWxlY3QgWEZSTV9BTEdPXG5uZXQveGZybS9LY29uZmlnLTEwOS1cdHNlbGVjdCBDUllQVE9cbi0tXG5uZXQveGZybS9LY29uZmlnPTExMj1jb25maWcgTkVUX0tFWVxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXHR0cmlzdGF0ZSBcJiMzNDtQRl9LRVkgc29ja2V0cyAoZGVwcmVjYXRlZClcJiMzNDtcbm5ldC94ZnJtL0tjb25maWc6MTE0Olx0c2VsZWN0IFhGUk1fQUxHT1xubmV0L3hmcm0vS2NvbmZpZy0xMTUtXHRoZWxwXG4tLVxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxuLS1cbm5ldC94ZnJtL0tjb25maWctMTI3LVx0ZGVwZW5kcyBvbiBORVRfS0VZXG5uZXQveGZybS9LY29uZmlnOjEyODpcdHNlbGVjdCBYRlJNX01JR1JBVEVcbm5ldC94ZnJtL0tjb25maWctMTI5LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3OTQ1CgkJCQkJCQlvdXRwdXQ6IDE0NwoJCQkJCQkJdGhvdWdodHM6IDM5MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O3ZlIGJlZW4gbG9va2luZyBhdCB0aGlzIHBhdGNoIHJlbGF0ZWQgdG8gWEZSTSwgYW5kIHRoZSBmaXJzdCB0aGluZyBJIG5vdGljZWQgaXMgdGhhdCBlbmFibGluZyBgQ09ORklHX1hGUk1fVVNFUmAgaXMgYSBnb29kIHN0YXJ0aW5nIHBvaW50IGZvciBYRlJNIGZ1bmN0aW9uYWxpdHkuIE9mIGNvdXJzZSwgd2UmIzM5O2xsIG5lZWQgYENPTkZJR19JUFY2YCBlbmFibGVkIGFzIHdlbGwuIFRoYXQgbXVjaCBpcyBvYnZpb3VzLgoKSSYjMzk7dmUgem9vbWVkIGluIG9uIHRoZSBjb2RlIG5vdywgYW5kIGl0IGxvb2tzIGxpa2UgdGhlIHBhdGNoIG1vZGlmaWVzIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGluIGBuZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY2AuIEZyb20gYSBxdWljayBnbGFuY2UsIGl0IHNlZW1zIHRoYXQgdGhlc2UgYXJlIHRoZSAqb25seSogZnVuY3Rpb25zIGltcGFjdGVkLCB3aGljaCBzaW1wbGlmaWVzIHRoZSByZXZpZXcuCgpMb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXRzIHByb3ZpZGVkLCBpdCBzZWVtcyBsaWtlIGJvdGggZnVuY3Rpb25zLCBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgYXJlIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMuIEVzc2VudGlhbGx5LCB0aGV5IGFwcGVhciB0byBiZSBhZGRyZXNzaW5nIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWVzIGFuZCBlbnN1cmluZyB0aGUgZnVsbCBzb2NrZXQgaXMgYmVpbmcgdXNlZCBjb3JyZWN0bHkuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXJ0aGVyIHNjcnV0aW55LCBlc3BlY2lhbGx5IHdpdGggZnV6emluZyBpbiBtaW5kLgoKSSBuZWVkIHRvIGtlZXAgYSBjbG9zZSBleWUgb24gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAgYXMgdGhlIGtleSBmb2N1cyBzeW1ib2xzLgoKU28sIGxldCYjMzk7cyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzOiBgSVBWNmAgYW5kIGBYRlJNX1VTRVJgLiBJIGNoZWNrZWQsIGFuZCBgQ09ORklHX1hGUk1gIGlzIGNvcnJlY3RseSBzZWxlY3RlZCB3aGVuIGBYRlJNX1VTRVJgIGlzIGVuYWJsZWQsIGFuZCBgQ09ORklHX0lQVjZgIGlzIHRoZSBtYWluIGVuYWJsZXIgZm9yIElQdjYsIHNvIHRoYXQgYWxsIGNoZWNrcyBvdXQuCgpJJiMzOTtsbCBwcm9jZWVkIHRvIHNldCB0aGUgcmVzdWx0cyBiYXNlZCBvbiB0aGlzIGFuYWx5c2lzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wMyAxOToyNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SVBWNiYjMzQ7LAogICAgJiMzNDtYRlJNX1VTRVImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDt4ZnJtNl9sb2NhbF9yeHBtdHUmIzM0OywKICAgICYjMzQ7eGZybTZfbG9jYWxfZXJyb3ImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSBwb3RlbnRpYWwgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlIG9yIGluY29ycmVjdCBzb2NrZXQgdHlwZSB1c2FnZSBieSByZXBsYWNpbmcgYHNrYi1cdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lQVjYmIzM0OywKICAgICYjMzQ7WEZSTV9VU0VSJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7eGZybTZfbG9jYWxfcnhwbXR1JiMzNDssCiAgICAmIzM0O3hmcm02X2xvY2FsX2Vycm9yJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXHUwMDNlc2tgIHdpdGggYHNrYl90b19mdWxsX3NrKHNrYilgIGFuZCBhZGRpbmcgYSBOVUxMIGNoZWNrIGluIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBUaGVzZSBhcmUgZnVuY3Rpb25hbCBjaGFuZ2VzIGluIHRoZSBJUHY2IFhGUk0gb3V0cHV0IHBhdGggdGhhdCBzaG91bGQgYmUgZnV6emVkLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6MzYuNTc5NzU2Mjg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzMwMTg0NzY3MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gICAgXCJ4ZnJtNl9sb2NhbF9lcnJvclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXFx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6MzYuNTc5NzYxOTY2WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTg2MTk1NTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgZjBlZjg3ZGQ5NTkwY2Q0Mzk2YWY2NGI4ZGZmNDAxNmYzZTRjN2M4ZFxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jIGIvbmV0L2lwdjYveGZybTZfb3V0cHV0LmNcXG5pbmRleCA1MTJiZGFmMTM2OTk3Li40NGIyMjFhMDlhMGM4IDEwMDY0NFxcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXFxuKysrIGIvbmV0L2lwdjYveGZybTZfb3V0cHV0LmNcXG5AQCAtMTksNyArMTksMTAgQEBcXG4gdm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcXG4tXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiLVxcdTAwM2VzaztcXG4rXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcXG4rXFxuK1xcdGlmICghc2spXFxuK1xcdFxcdHJldHVybjtcXG4gXFxuIFxcdGZsNi5mbG93aTZfb2lmID0gc2stXFx1MDAzZXNrX2JvdW5kX2Rldl9pZjtcXG4gXFx0Zmw2LmRhZGRyID0gaXB2Nl9oZHIoc2tiKS1cXHUwMDNlZGFkZHI7XFxuQEAgLTMxLDcgKzM0LDEwIEBAIHZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcXG4ge1xcbiBcXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcXG4gXFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcXG4tXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiLVxcdTAwM2VzaztcXG4rXFx0c3RydWN0IHNvY2sgKnNrID0gc2tiX3RvX2Z1bGxfc2soc2tiKTtcXG4rXFxuK1xcdGlmICghc2spXFxuK1xcdFxcdHJldHVybjtcXG4gXFxuIFxcdGhkciA9IHNrYi1cXHUwMDNlZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpO1xcbiBcXHRmbDYuZmw2X2Rwb3J0ID0gaW5ldF9zayhzayktXFx1MDAzZWluZXRfZHBvcnQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjM3Ljc2NjYzMzY3OFoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjMxODMxNTkxNTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm02X2xvY2FsX3J4cG10dVwiLFxuICAgIFwieGZybTZfbG9jYWxfZXJyb3JcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVxcdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbiAgZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXG4tIERyaXZlciAucmVtb3ZlLCAuc2h1dGRvd24sIG9yIHBjaV91bnJlZ2lzdGVyX2RyaXZlciB0ZWFyZG93biBjYWxsYmFja3MgKGUuZy4sIGlnYl9yZW1vdmUpXG4gIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuICAgUHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50IGZ1bmN0aW9ucyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zXG4gICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgQWxzbyBjaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3NcbiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlnc1xuICAgb3V0cHV0IGFycmF5LCBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IGYwZWY4N2RkOTU5MGNkNDM5NmFmNjRiOGRmZjQwMTZmM2U0YzdjOGRcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgTW9uIEF1ZyAzIDE5OjI2OjM1IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L2lwdjYveGZybTZfb3V0cHV0LmMgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuaW5kZXggNTEyYmRhZjEzNjk5Ny4uNDRiMjIxYTA5YTBjOCAxMDA2NDRcbi0tLSBhL25ldC9pcHY2L3hmcm02X291dHB1dC5jXG4rKysgYi9uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY1xuQEAgLTE5LDcgKzE5LDEwIEBAXG4gdm9pZCB4ZnJtNl9sb2NhbF9yeHBtdHUoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSlcbiB7XG4gXHRzdHJ1Y3QgZmxvd2k2IGZsNjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbitcdHN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7XG4rXG4rXHRpZiAoIXNrKVxuK1x0XHRyZXR1cm47XG4gXG4gXHRmbDYuZmxvd2k2X29pZiA9IHNrLVx1MDAzZXNrX2JvdW5kX2Rldl9pZjtcbiBcdGZsNi5kYWRkciA9IGlwdjZfaGRyKHNrYiktXHUwMDNlZGFkZHI7XG5AQCAtMzEsNyArMzQsMTAgQEAgdm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxuIHtcbiBcdHN0cnVjdCBmbG93aTYgZmw2O1xuIFx0Y29uc3Qgc3RydWN0IGlwdjZoZHIgKmhkcjtcbi1cdHN0cnVjdCBzb2NrICpzayA9IHNrYi1cdTAwM2VzaztcbitcdHN0cnVjdCBzb2NrICpzayA9IHNrYl90b19mdWxsX3NrKHNrYik7XG4rXG4rXHRpZiAoIXNrKVxuK1x0XHRyZXR1cm47XG4gXG4gXHRoZHIgPSBza2ItXHUwMDNlZW5jYXBzdWxhdGlvbiA/IGlubmVyX2lwdjZfaGRyKHNrYikgOiBpcHY2X2hkcihza2IpO1xuIFx0Zmw2LmZsNl9kcG9ydCA9IGluZXRfc2soc2spLVx1MDAzZWluZXRfZHBvcnQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjozNy43NjY2MzQ3NzhaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDkxNTI0NzY5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIFBhdGNoIHRvIGBuZXQvaXB2Ni94ZnJtNl9vdXRwdXQuY2AqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLCBhbmQgaXQgbG9va3MgbGlrZSBhIHN0cmFpZ2h0Zm9yd2FyZCwgYnV0IGltcG9ydGFudCwgZml4LiBUaGUgY2hhbmdlIHNlZW1zIHRvIGJlIHJlcGxhY2luZyBgc2tiLVx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBpbiB0aGUgY29kZS4gUGx1cywgaXQgYWRkcyBOVUxMIGNoZWNrcyBmb3IgYHNrYCB3aXRoaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuXG5cblJpZ2h0IGF3YXksIEknbSB0aGlua2luZyB0aGlzIGlzIGFsbCBhYm91dCBwcmV2ZW50aW5nIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSwgb3IgcGVyaGFwcyBtYWtpbmcgc3VyZSB3ZSdyZSB1c2luZyB0aGUgY29ycmVjdCBzb2NrZXQgc3RydWN0dXJlLCBub3QgYSB0aW1lLXdhaXQgb3IgcmVxdWVzdCBzb2NrZXQuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSwgZGVmaW5pdGVseSBzb21ldGhpbmcgdG8gdW5kZXJzdGFuZC5cblxuTXkgbmV4dCBzdGVwIGlzIHRvIHF1aWNrbHkgZGl2ZSBpbnRvIHRob3NlIHR3byBmdW5jdGlvbnMsIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLiBJIG5lZWQgdG8gZmlndXJlIG91dCBpZiB0aGV5J3JlIGV4cG9ydGVkIG9yIHN0YXRpYy4gTW9yZSBpbXBvcnRhbnRseSwgYXJlIHRoZXJlIGFueSBjb25maWcgb3B0aW9ucyB0aWVkIHRvIHRoZXNlIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0IGFmZmVjdCBob3cgdGhpcyBjaGFuZ2UgYmVoYXZlcz8gV2hlcmUgYXJlIHRoZXkgdXNlZD9cblxuU2luY2UgdGhpcyBwYXRjaCBpcyBpbiB0aGUgYG5ldC9pcHY2YCBkaXJlY3RvcnksIEknbGwgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBmaWxlIGlzIGNvbXBpbGVkIHdoZW4gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZW5hYmxlZC4gSSdsbCBuZWVkIHRvIGxvb2sgYXQgdGhlIGBuZXQvaXB2Ni9NYWtlZmlsZWAgdG8gY29uZmlybSB0aGF0LiBHb3R0YSBtYWtlIHN1cmUgdGhlIGJ1aWxkIGRlcGVuZGVuY2llcyBhcmUgYWxsIGluIG9yZGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMjQ1LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAwLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NDIuMjU4MTYxNzA3WiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQyOTg3MDY2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInhmcm02X291dHB1dFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvaXB2Ni9NYWtlZmlsZVwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvaXB2Ni9NYWtlZmlsZT0xOD1pcHY2LSQoQ09ORklHX1hGUk0pICs9IHhmcm02X3BvbGljeS5vIHhmcm02X3N0YXRlLm8geGZybTZfaW5wdXQubyBcXFxcXFxubmV0L2lwdjYvTWFrZWZpbGU6MTk6XFx0eGZybTZfb3V0cHV0Lm8geGZybTZfcHJvdG9jb2wub1xcbm5ldC9pcHY2L01ha2VmaWxlLTIwLWlwdjYtJChDT05GSUdfTkVURklMVEVSKSArPSBuZXRmaWx0ZXIub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjo0Mi4zMDExNTQwNzNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMzA3MDQ3OTY3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipLZXJuZWwgQ29uZmlndXJhdGlvbiBEZXBlbmRlbmNpZXM6IFhGUk0gXHUwMDI2IElQdjYqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBpdC4gSSdtIGxvb2tpbmcgYXQgdGhpcyBjb2RlIGFuZCwgb2YgY291cnNlLCBJIG5lZWQgdG8gdmVyaWZ5IGEgY291cGxlIG9mIGRlcGVuZGVuY2llcyBhcmUgaW4gcGxhY2UuICBJJ20gZ29pbmcgdG8gbmVlZCB0byBlbnN1cmUgYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBhcmUgZGVmaW5lZC4gIFRoYXQncyBhIGdpdmVuLCBidXQgSSBkb24ndCB3YW50IHRvIHdhc3RlIHRpbWUgZG93biB0aGUgbGluZSBpZiBJIGZvcmdldCB0byBsb29rLiBOZXh0IEkgbmVlZCB0byBjaGVjayBzb21ldGhpbmcgdGhhdCBjb25jZXJucyBtZSBkaXJlY3RseSwgc3BlY2lmaWNhbGx5IGFyb3VuZCBQTVRVIGFuZCBlcnJvcnMgd2l0aCBYRlJNIGFuZCBJUHY2LlxuXG5NeSBtYWluIGZvY3VzIG5vdyBpcyB3aGV0aGVyIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgIGFyZSBhY3R1YWxseSBleHBvcnRlZCBhbmQgdXNlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBjb2RlIGJhc2UuIEFyZSB0aGVzZSBzeW1ib2xzIHRydWx5IGludGVybmFsIHRvIHRoaXMgc3BlY2lmaWMgbW9kdWxlLCBvciBhcmUgdGhleSBtZWFudCB0byBiZSBwYXJ0IG9mIGEgYnJvYWRlciBBUEk/IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZXNlIGZ1bmN0aW9ucyBhcmUgYmVpbmcgdXNlZCwgb3IgaWYgdGhleSBhcmUganVzdCBsb2NhbCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLiBJIGRvbid0IHdhbnQgYW55IHVuZXhwZWN0ZWQgc2lkZSBlZmZlY3RzIG9yIGxpbmsgZXJyb3JzIGNyb3BwaW5nIHVwIGxhdGVyIGJlY2F1c2Ugb2Ygc29tZSBtaXNzZWQgZGVwZW5kZW5jeSBvciB1bmRlY2xhcmVkIGV4cG9ydC4gVGhhdCdzIGEgbWFqb3IgcmVkIGZsYWcgaW4gbXkgYm9vay5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkwNSwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjQ1LjYwODIwNDI1WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2NDU1NjQwNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJpbmNsdWRlL25ldC94ZnJtLmg9MTg1OD1pbnQgeGZybTZfb3V0cHV0KHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTtcXG4tLVxcbmluY2x1ZGUvbmV0L3hmcm0uaC0xODYwLSNpZmRlZiBDT05GSUdfWEZSTVxcbmluY2x1ZGUvbmV0L3hmcm0uaDoxODYxOnZvaWQgeGZybTZfbG9jYWxfcnhwbXR1KHN0cnVjdCBza19idWZmICpza2IsIHUzMiBtdHUpO1xcbmluY2x1ZGUvbmV0L3hmcm0uaC0xODYyLWludCB4ZnJtNF91ZHBfZW5jYXBfcmN2KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy0xOC1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYzoxOTp2b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTIwLXtcXG4tLVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jPTY3PXN0YXRpYyBpbnQgX194ZnJtNl9vdXRwdXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpXFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYy05MS1cXHRpZiAodG9vYmlnIFxcdTAwMjZcXHUwMDI2IHhmcm02X2xvY2FsX2RvbnRmcmFnKHNrKSkge1xcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jOjkyOlxcdFxcdHhmcm02X2xvY2FsX3J4cG10dShza2IsIG10dSk7XFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmMtOTMtXFx0XFx0a2ZyZWVfc2tiKHNrYik7XFxuLS1cXG5uZXQveGZybS94ZnJtX291dHB1dC5jPTg5MD1pbnQgeGZybTZfdHVubmVsX2NoZWNrX3NpemUoc3RydWN0IHNrX2J1ZmYgKnNrYilcXG4tLVxcbm5ldC94ZnJtL3hmcm1fb3V0cHV0LmMtOTA5LVxcdFxcdGlmICh4ZnJtNl9sb2NhbF9kb250ZnJhZyhzaykpXFxubmV0L3hmcm0veGZybV9vdXRwdXQuYzo5MTA6XFx0XFx0XFx0eGZybTZfbG9jYWxfcnhwbXR1KHNrYiwgbXR1KTtcXG5uZXQveGZybS94ZnJtX291dHB1dC5jLTkxMS1cXHRcXHRlbHNlIGlmIChzaylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NDcuMjUzNzczNzRaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MDY5OTcwNDQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqQW5hbHl6aW5nIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaW4gRGVwdGgqKlxuXG5SaWdodCwgbGV0J3MgYnJlYWsgZG93biB0aGlzIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXNzdWUuIE15IGluaXRpYWwgdGhvdWdodCBpcywgb2YgY291cnNlLCB0byBjb25zaWRlciB0aGUgcG9zc2libGUgcm9vdCBjYXVzZXMgd2l0aGluIHRoZSBJUHY2IGZvcndhcmRpbmcgcGF0aC4gV2UncmUgdGFsa2luZyBhYm91dCBhIGxvY2FsaXplZCBlcnJvciB3aXRoaW4gdGhlIFhGUk0gKGVYdGVybmFsIEZvd2FyZGluZyBSdWxlcyBNb2R1bGUpIGZvciBJUHY2LCBzbyB0aGUgZXJyb3IgbGlrZWx5IG9yaWdpbmF0ZXMgd2l0aGluIHRoZSBsb2NhbCBoYW5kbGluZywgbm90IGZyb20gYSByZW1vdGUgaG9zdCdzIG1pc2NvbmZpZ3VyYXRpb24uIFRoaXMgbWVhbnMgSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHBvaW50cyB3aXRoaW4gdGhlIGtlcm5lbCB3aGVyZSB0aGlzIGVycm9yIGNvdWxkIGJlIHRyaWdnZXJlZC5cblxuSSdtIGltbWVkaWF0ZWx5IHRoaW5raW5nIGFib3V0IHRoZSBmb2xsb3dpbmc6XG5cbiogICAqKlBvbGljeSBMb29rdXAgYW5kIE1hdGNoaW5nOioqIElzIHRoZSBjb3JyZWN0IFhGUk0gcG9saWN5IGJlaW5nIGFwcGxpZWQ/IEFyZSB0aGVyZSBwb3RlbnRpYWwgb3ZlcmxhcHMgb3IgYW1iaWd1aXRpZXMgaW4gdGhlIHBvbGljeSBkZWZpbml0aW9ucyBsZWFkaW5nIHRvIHRoZSB3cm9uZyBTQSAoU2VjdXJpdHkgQXNzb2NpYXRpb24pIGJlaW5nIHNlbGVjdGVkPyBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoZSBwb2xpY3kgZGF0YWJhc2UgYW5kIHRoZSBhc3NvY2lhdGVkIGxvb2t1cCBmdW5jdGlvbnMuIEEgcXVpY2sgc2NhbiBvZiB0aGUgY29kZSBhcm91bmQgYHhmcm1fcG9saWN5X2xvb2t1cGAgYW5kIHRoZSBtYXRjaGluZyBhbGdvcml0aG1zIGlzIGluIG9yZGVyLiBJdCdzIHBvc3NpYmxlIGFuIG91dGRhdGVkIG9yIGluY29ycmVjdCBwb2xpY3kgaXMgY2F1c2luZyB0aGUgcHJvYmxlbS5cbiogICAqKlNBIFN0YXRlIGFuZCBJbnRlZ3JpdHk6KiogQXJlIHRoZSBzZWN1cml0eSBhc3NvY2lhdGlvbnMgdGhlbXNlbHZlcyB2YWxpZCBhbmQgcHJvcGVybHkgZXN0YWJsaXNoZWQ/IElzIHRoZXJlIGEgcmFjZSBjb25kaXRpb24gb3IgYSBzdGF0ZSBpbmNvbnNpc3RlbmN5IGR1cmluZyBTQSBjcmVhdGlvbiwgdXBkYXRlLCBvciBkZWxldGlvbiB0aGF0IHRyaWdnZXJzIHRoZSBlcnJvcj8gSSdsbCBoYXZlIHRvIGludmVzdGlnYXRlIGlmIHRoZXJlIGFyZSBhbnkgaXNzdWVzIHdpdGgga2V5aW5nIGRhZW1vbnMgb3IgcmVrZXlpbmcgcHJvdG9jb2xzLiBFcnJvciBjb25kaXRpb25zIHdpdGhpbiB0aGUgU0EgbWFuYWdlbWVudCByb3V0aW5lcyAoYHhmcm1fc3RhdGVfYWxsb2NgLCBgeGZybV9zdGF0ZV9hZGRgLCBldGMuKSBhcmUgaGlnaCBvbiB0aGUgY2hlY2tsaXN0LlxuKiAgICoqUGFja2V0IEhhbmRsaW5nIGFuZCBNYW5pcHVsYXRpb246KiogVGhlIGVycm9yIG1pZ2h0IGJlIHRyaWdnZXJlZCBkdXJpbmcgcGFja2V0IGVuY2Fwc3VsYXRpb24gb3IgZGVjYXBzdWxhdGlvbiwgZm9yIGluc3RhbmNlLCB3aGVuIGFuIElQc2VjIGhlYWRlciBpcyBhZGRlZCBvciByZW1vdmVkLiBBcmUgdGhlcmUgYW55IGJ1ZmZlciBvdmVyZmxvd3MsIG1lbW9yeSBjb3JydXB0aW9uIGlzc3Vlcywgb3IgaW5jb3JyZWN0IGhlYWRlciBjYWxjdWxhdGlvbnMgZHVyaW5nIHRoZXNlIG9wZXJhdGlvbnM/IEknbGwgbmVlZCB0byBzY3J1dGluaXplIHRoZSBjb2RlIGluIHRoZSBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uIHBhdGhzLCBzcGVjaWZpY2FsbHkgZnVuY3Rpb25zIGRlYWxpbmcgd2l0aCBoZWFkZXIgY29uc3RydWN0aW9uIGFuZCBwYXlsb2FkIGludGVncml0eS5cbiogICAqKlJlc291cmNlIEFsbG9jYXRpb24gYW5kIExpbWl0czoqKiBBcmUgd2UgaGl0dGluZyByZXNvdXJjZSBsaW1pdHMgd2l0aGluIHRoZSBYRlJNIHN1YnN5c3RlbT8gQXJlIHRoZXJlIGlzc3VlcyB3aXRoIG1lbW9yeSBhbGxvY2F0aW9uLCBxdWV1ZSBsZW5ndGhzLCBvciB0YWJsZSBzaXplcyB0aGF0IHJlc3VsdCBpbiB0aGlzIGxvY2FsIGVycm9yPyBNZW1vcnkgcHJlc3N1cmUgb3IgZXhoYXVzdGlvbiBtaWdodCBtYW5pZmVzdCBhcyBhIHRyYW5zaWVudCBlcnJvci4gVGhlIGNvZGUgZGVhbGluZyB3aXRoIHJlc291cmNlIGFjY291bnRpbmcgYW5kIGxpbWl0cyB3aWxsIG5lZWQgY2FyZWZ1bCBleGFtaW5hdGlvbi5cbiogICAqKkVycm9yIFByb3BhZ2F0aW9uIGFuZCBIYW5kbGluZzoqKiBIb3cgaXMgdGhpcyBgeGZybTZfbG9jYWxfZXJyb3JgIGhhbmRsZWQ/IElzIGl0IHByb3BhZ2F0ZWQgY29ycmVjdGx5LCBvciBtYXNrZWQgc29tZXdoZXJlIHVwIHRoZSBjYWxsIHN0YWNrPyBBcmUgYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZXMgYmVpbmcgZ2VuZXJhdGVkIGFuZCBsb2dnZWQ/IFRyYWNlYWJpbGl0eSBhbmQgZGVidWdnaW5nIGFyZSBrZXkuIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlcnJvciBwYXRoIGFuZCBob3cgaXQncyByZXBvcnRlZCB0byBoaWdoZXIgbGF5ZXJzLlxuXG5UaGVyZWZvcmUsIHRoZSBpbnZlc3RpZ2F0aW9uIHdpbGwgYmUgYmFzZWQgb24gdGhlc2UgcG9pbnRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNzQ5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6MjY6NTIuMzIzNzQ3MjI2WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE2ODY4OTAyOTYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwieGZybTZfbG9jYWxfZXJyb3JcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbmV0L3hmcm0uaD0xODQ5PWludCB4ZnJtNl9pbnB1dF9hZGRyKHN0cnVjdCBza19idWZmICpza2IsIHhmcm1fYWRkcmVzc190ICpkYWRkcixcXG5pbmNsdWRlL25ldC94ZnJtLmgtMTg1MC1cXHRcXHQgICAgIHhmcm1fYWRkcmVzc190ICpzYWRkciwgdTggcHJvdG8pO1xcbmluY2x1ZGUvbmV0L3hmcm0uaDoxODUxOnZvaWQgeGZybTZfbG9jYWxfZXJyb3Ioc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIG10dSk7XFxuaW5jbHVkZS9uZXQveGZybS5oLTE4NTItaW50IHhmcm02X3Byb3RvY29sX3JlZ2lzdGVyKHN0cnVjdCB4ZnJtNl9wcm90b2NvbCAqaGFuZGxlciwgdW5zaWduZWQgY2hhciBwcm90b2NvbCk7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9vdXRwdXQuYz0xOT12b2lkIHhmcm02X2xvY2FsX3J4cG10dShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbi0tXFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmMtMzItXFxubmV0L2lwdjYveGZybTZfb3V0cHV0LmM6MzM6dm9pZCB4ZnJtNl9sb2NhbF9lcnJvcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCB1MzIgbXR1KVxcbm5ldC9pcHY2L3hmcm02X291dHB1dC5jLTM0LXtcXG4tLVxcbm5ldC9pcHY2L3hmcm02X3N0YXRlLmM9MTc9c3RhdGljIHN0cnVjdCB4ZnJtX3N0YXRlX2FmaW5mbyB4ZnJtNl9zdGF0ZV9hZmluZm8gPSB7XFxuLS1cXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jLTIxLVxcdC50cmFuc3BvcnRfZmluaXNoXFx0PSB4ZnJtNl90cmFuc3BvcnRfZmluaXNoLFxcbm5ldC9pcHY2L3hmcm02X3N0YXRlLmM6MjI6XFx0LmxvY2FsX2Vycm9yXFx0XFx0PSB4ZnJtNl9sb2NhbF9lcnJvcixcXG5uZXQvaXB2Ni94ZnJtNl9zdGF0ZS5jLTIzLX07XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjU0LjAxMDY0Mzc1MloiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU3NjgxNzU4OTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIE5VTEwgUG9pbnRlciBEZXJlZmVyZW5jZSBpbiB0aGUgWEZSTSBTdWJzeXN0ZW0qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpdCBzZWVtcyB0byBhZGRyZXNzIGEgcG90ZW50aWFsbHkgbmFzdHkgTlVMTCBwb2ludGVyIGRlcmVmZXJlbmNlLiBUaGUgZml4IGludm9sdmVzIHVzaW5nIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgY2hlY2tpbmcgaWYgaXQgcmV0dXJucyBOVUxMLiBUaGF0IGltbWVkaWF0ZWx5IHNjcmVhbXMgZnV6emluZyBjYW5kaWRhdGUgdG8gbWUg4oCTIGdvb2Qgc3BvdCBmb3IgcG90ZW50aWFsIHZ1bG5lcmFiaWxpdGllcy5cblxuVGhlIGZ1bmN0aW9ucyBpbiBxdWVzdGlvbiwgYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAsIGFyZSBib3RoIGV4cG9ydGVkIGFuZCBhY3RpdmVseSB1c2VkLiBTcGVjaWZpY2FsbHksIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGdldHMgY2FsbGVkIGZyb20gYF9feGZybTZfb3V0cHV0YCBhbmQgYHhmcm02X3R1bm5lbF9jaGVja19zaXplYCwgd2hpY2ggbWFrZXMgaXQgYSBjcml0aWNhbCBwYXJ0IG9mIHRoZSBJUHY2IHBhdGguIGB4ZnJtNl9sb2NhbF9lcnJvcmAgaXMgcmVnaXN0ZXJlZCBpbiBgeGZybTZfc3RhdGVfYWZpbmZvYCBhcyBgLmxvY2FsX2Vycm9yYC4gS25vd2luZyB3aGVyZSBhbmQgaG93IHRoZXNlIGFyZSB1c2VkIGhlbHBzIG1lIHRhcmdldCBteSBhbmFseXNpcy5cblxuTm93LCBsZXTigJlzIGRpZyBpbnRvIHRoZSBjb25maWd1cmF0aW9ucy4gTXkgaW5pdGlhbCBjaGVja3MgcG9pbnQgdG8gYENPTkZJR19YRlJNYCBhbmQgYENPTkZJR19JUFY2YCBiZWluZyB0aGUga2V5IHBsYXllcnMgaGVyZS4gSSdsbCBuZWVkIHRvIGNvbmZpcm0gdGhhdCB0aGVzZSBhcmUgdGhlIG9ubHkgcmVsZXZhbnQgb25lcy4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIGRvbid0IG1pc3MgYW55dGhpbmcgdGhhdCBpbXBhY3RzIHRoZSByZWFjaGFiaWxpdHkgb2YgdGhlc2UgZnVuY3Rpb25zLiBgQ09ORklHX0lQVjZgIGlzIHByZXR0eSBtdWNoIGFsd2F5cyBlbmFibGVkLCBhbmQgYENPTkZJR19YRlJNYCBpcyBhbHNvIG9mdGVuIGVuYWJsZWQgaW4gbW9kZXJuIHNldHVwcywgYnV0IEkgd2FudCB0byBiZSAqc3VyZSouXG5cbknigJltIHBhcnRpY3VsYXJseSBmb2N1c2VkIG9uIGB4ZnJtNl9sb2NhbF9yeHBtdHVgIGFuZCBgeGZybTZfbG9jYWxfZXJyb3JgLCBzbyBJJ2xsIGJlIGxvb2tpbmcgc3BlY2lmaWNhbGx5IGF0IHRoZWlyIHVzYWdlIGFuZCBwb3RlbnRpYWwgZWRnZSBjYXNlcy4gVGltZSB0byBkb3VibGUtY2hlY2sgYG5ldC9pcHY2L0tjb25maWdgIGZvciBhbnkgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoZSBhdmFpbGFiaWxpdHkgb3IgYmVoYXZpb3Igb2YgdGhlc2UgZnVuY3Rpb25zLiBJIG5lZWQgdG8ga25vdyB1bmRlciB3aGF0IGNpcmN1bXN0YW5jZXMgdGhlc2UgY29kZSBwYXRocyBhcmUgYWN0dWFsbHkgdGFrZW4sIGFuZCBob3cgZnJlcXVlbnRseS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDc1NywiT3V0cHV0VG9rZW5zIjoyNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxOSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNjo1OS43Nzg4MjI1ODRaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcxNDEwNDIzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBYRlJNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3hmcm0vS2NvbmZpZy00LSNcXG5uZXQveGZybS9LY29uZmlnOjU6Y29uZmlnIFhGUk1cXG5uZXQveGZybS9LY29uZmlnLTYtXFx0Ym9vbFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMC1cXG5uZXQveGZybS9LY29uZmlnOjExOmNvbmZpZyBYRlJNX09GRkxPQURcXG5uZXQveGZybS9LY29uZmlnLTEyLVxcdGJvb2xcXG5uZXQveGZybS9LY29uZmlnLTEzLVxcbm5ldC94ZnJtL0tjb25maWc6MTQ6Y29uZmlnIFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTUtXFx0dHJpc3RhdGVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MjI9aWYgSU5FVFxcbm5ldC94ZnJtL0tjb25maWc6MjM6Y29uZmlnIFhGUk1fVVNFUlxcbm5ldC94ZnJtL0tjb25maWctMjQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHVzZXIgY29uZmlndXJhdGlvbiBpbnRlcmZhY2VcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTMxLVxcbm5ldC94ZnJtL0tjb25maWc6MzI6Y29uZmlnIFhGUk1fVVNFUl9DT01QQVRcXG5uZXQveGZybS9LY29uZmlnLTMzLVxcdHRyaXN0YXRlIFxcXCJDb21wYXRpYmxlIEFCSSBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy00Mi1cXG5uZXQveGZybS9LY29uZmlnOjQzOmNvbmZpZyBYRlJNX0lOVEVSRkFDRVxcbm5ldC94ZnJtL0tjb25maWctNDQtXFx0dHJpc3RhdGUgXFxcIlRyYW5zZm9ybWF0aW9uIHZpcnR1YWwgaW50ZXJmYWNlXFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy01MC1cXG5uZXQveGZybS9LY29uZmlnOjUxOmNvbmZpZyBYRlJNX1NVQl9QT0xJQ1lcXG5uZXQveGZybS9LY29uZmlnLTUyLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIHN1YiBwb2xpY3kgc3VwcG9ydFxcXCJcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctNjAtXFxubmV0L3hmcm0vS2NvbmZpZzo2MTpjb25maWcgWEZSTV9NSUdSQVRFXFxubmV0L3hmcm0vS2NvbmZpZy02Mi1cXHRib29sIFxcXCJUcmFuc2Zvcm1hdGlvbiBtaWdyYXRlIGRhdGFiYXNlXFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy03MS1cXG5uZXQveGZybS9LY29uZmlnOjcyOmNvbmZpZyBYRlJNX1NUQVRJU1RJQ1NcXG5uZXQveGZybS9LY29uZmlnLTczLVxcdGJvb2wgXFxcIlRyYW5zZm9ybWF0aW9uIHN0YXRpc3RpY3NcXFwiXFxuLS1cXG5uZXQveGZybS9LY29uZmlnLTgzLSMgUkZDIDgyMjEgbGlzdHMgYXMgTVVTVCBiZSBpbXBsZW1lbnRlZC5cXG5uZXQveGZybS9LY29uZmlnOjg0OmNvbmZpZyBYRlJNX0FIXFxubmV0L3hmcm0vS2NvbmZpZy04NS1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy05Mi0jIGFsZ29yaXRobXMgdGhhdCBSRkMgODIyMSBsaXN0cyBhcyBNVVNUIGJlIGltcGxlbWVudGVkLlxcbm5ldC94ZnJtL0tjb25maWc6OTM6Y29uZmlnIFhGUk1fRVNQXFxubmV0L3hmcm0vS2NvbmZpZy05NC1cXHR0cmlzdGF0ZVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMDUtXFxubmV0L3hmcm0vS2NvbmZpZzoxMDY6Y29uZmlnIFhGUk1fSVBDT01QXFxubmV0L3hmcm0vS2NvbmZpZy0xMDctXFx0dHJpc3RhdGVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTI1PWNvbmZpZyBORVRfS0VZX01JR1JBVEVcXG4tLVxcbm5ldC94ZnJtL0tjb25maWctMTQwLVxcbm5ldC94ZnJtL0tjb25maWc6MTQxOmNvbmZpZyBYRlJNX0lQVEZTXFxubmV0L3hmcm0vS2NvbmZpZy0xNDItXFx0dHJpc3RhdGUgXFxcIklQc2VjIElQLVRGUy9BR0dGUkFHIChSRkMgOTM0NykgZW5jYXBzdWxhdGlvbiBzdXBwb3J0XFxcIlxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xNTYtXFxubmV0L3hmcm0vS2NvbmZpZzoxNTc6Y29uZmlnIFhGUk1fRVNQSU5UQ1BcXG5uZXQveGZybS9LY29uZmlnLTE1OC1cXHRib29sXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTAzVDE5OjI2OjU5Ljg1MDIzNzc5N1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNzM5MzY0MzI5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgc3VtbWFyeSwgYXMgdGhvdWdoIEknbSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byB0aGUgWEZSTSBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gYENPTkZJR19YRlJNYCBpcyBhIGhpZGRlbiBib29sIOKAkyByaWdodCwgc28gaXQncyBub3Qgc29tZXRoaW5nIHRoZSB1c2VyIGRpcmVjdGx5IHRvZ2dsZXMuIEl0J3MgKnNlbGVjdGVkKiBieSBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY29uZmlndXJhdGlvbi4gVGhhdCdzIGdvb2QgdG8ga25vdy4gTm93LCBteSBqb2IgaGVyZSBpcyB0byBmaW5kIG91dCBleGFjdGx5ICp3aGF0KiB0aG9zZSBzZWxlY3Rpbmcgb3B0aW9ucyBhcmUuIEkgbmVlZCB0byB0cmFjZSB0aGUgZGVwZW5kZW5jaWVzIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggdGhlIFhGUk0gc3Vic3lzdGVtIGdldHMgZW5hYmxlZC4gTGV0J3Mgc2VlIHdoYXQgdGhlIGRlcGVuZGVuY2llcyBsb29rIGxpa2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjYxOTEsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wM1QxOToyNzowMi41ODk2MDQzNTZaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjY2NzY0NDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBYRlJNXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm5ldC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L2lwdjQvS2NvbmZpZz0zMDQ9Y29uZmlnIE5FVF9JUFZUSVxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zMDctXFx0c2VsZWN0IE5FVF9JUF9UVU5ORUxcXG5uZXQvaXB2NC9LY29uZmlnOjMwODpcXHRzZWxlY3QgWEZSTVxcbm5ldC9pcHY0L0tjb25maWctMzA5LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzM5PWNvbmZpZyBJTkVUX0FIXFxubmV0L2lwdjQvS2NvbmZpZy0zNDAtXFx0dHJpc3RhdGUgXFxcIklQOiBBSCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2NC9LY29uZmlnOjM0MTpcXHRzZWxlY3QgWEZSTV9BSFxcbm5ldC9pcHY0L0tjb25maWctMzQyLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzU0PWNvbmZpZyBJTkVUX0VTUFxcbm5ldC9pcHY0L0tjb25maWctMzU1LVxcdHRyaXN0YXRlIFxcXCJJUDogRVNQIHRyYW5zZm9ybWF0aW9uXFxcIlxcbm5ldC9pcHY0L0tjb25maWc6MzU2OlxcdHNlbGVjdCBYRlJNX0VTUFxcbm5ldC9pcHY0L0tjb25maWctMzU3LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9MzY5PWNvbmZpZyBJTkVUX0VTUF9PRkZMT0FEXFxuLS1cXG5uZXQvaXB2NC9LY29uZmlnLTM3MS1cXHRkZXBlbmRzIG9uIElORVRfRVNQXFxubmV0L2lwdjQvS2NvbmZpZzozNzI6XFx0c2VsZWN0IFhGUk1fT0ZGTE9BRFxcbm5ldC9pcHY0L0tjb25maWctMzczLVxcdGRlZmF1bHQgblxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZz0zODI9Y29uZmlnIElORVRfRVNQSU5UQ1BcXG4tLVxcbm5ldC9pcHY0L0tjb25maWctMzg2LVxcdHNlbGVjdCBORVRfU09DS19NU0dcXG5uZXQvaXB2NC9LY29uZmlnOjM4NzpcXHRzZWxlY3QgWEZSTV9FU1BJTlRDUFxcbm5ldC9pcHY0L0tjb25maWctMzg4LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY0L0tjb25maWc9Mzk0PWNvbmZpZyBJTkVUX0lQQ09NUFxcbi0tXFxubmV0L2lwdjQvS2NvbmZpZy0zOTYtXFx0c2VsZWN0IElORVRfWEZSTV9UVU5ORUxcXG5uZXQvaXB2NC9LY29uZmlnOjM5NzpcXHRzZWxlY3QgWEZSTV9JUENPTVBcXG5uZXQvaXB2NC9LY29uZmlnLTM5OC1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTQ3PWNvbmZpZyBJTkVUNl9BSFxcbm5ldC9pcHY2L0tjb25maWctNDgtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEFIIHRyYW5zZm9ybWF0aW9uXFxcIlxcbm5ldC9pcHY2L0tjb25maWc6NDk6XFx0c2VsZWN0IFhGUk1fQUhcXG5uZXQvaXB2Ni9LY29uZmlnLTUwLVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9NjI9Y29uZmlnIElORVQ2X0VTUFxcbm5ldC9pcHY2L0tjb25maWctNjMtXFx0dHJpc3RhdGUgXFxcIklQdjY6IEVTUCB0cmFuc2Zvcm1hdGlvblxcXCJcXG5uZXQvaXB2Ni9LY29uZmlnOjY0OlxcdHNlbGVjdCBYRlJNX0VTUFxcbm5ldC9pcHY2L0tjb25maWctNjUtXFx0aGVscFxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz03Nz1jb25maWcgSU5FVDZfRVNQX09GRkxPQURcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctNzktXFx0ZGVwZW5kcyBvbiBJTkVUNl9FU1BcXG5uZXQvaXB2Ni9LY29uZmlnOjgwOlxcdHNlbGVjdCBYRlJNX09GRkxPQURcXG5uZXQvaXB2Ni9LY29uZmlnLTgxLVxcdGRlZmF1bHQgblxcbi0tXFxubmV0L2lwdjYvS2NvbmZpZz05MD1jb25maWcgSU5FVDZfRVNQSU5UQ1BcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctOTQtXFx0c2VsZWN0IE5FVF9TT0NLX01TR1xcbm5ldC9pcHY2L0tjb25maWc6OTU6XFx0c2VsZWN0IFhGUk1fRVNQSU5UQ1BcXG5uZXQvaXB2Ni9LY29uZmlnLTk2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9MTAyPWNvbmZpZyBJTkVUNl9JUENPTVBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctMTA0LVxcdHNlbGVjdCBJTkVUNl9YRlJNX1RVTk5FTFxcbm5ldC9pcHY2L0tjb25maWc6MTA1OlxcdHNlbGVjdCBYRlJNX0lQQ09NUFxcbm5ldC9pcHY2L0tjb25maWctMTA2LVxcdGhlbHBcXG4tLVxcbm5ldC9pcHY2L0tjb25maWc9MTEyPWNvbmZpZyBJUFY2X01JUDZcXG5uZXQvaXB2Ni9LY29uZmlnLTExMy1cXHR0cmlzdGF0ZSBcXFwiSVB2NjogTW9iaWxpdHlcXFwiXFxubmV0L2lwdjYvS2NvbmZpZzoxMTQ6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2Ni9LY29uZmlnLTExNS1cXHRoZWxwXFxuLS1cXG5uZXQvaXB2Ni9LY29uZmlnPTE1MD1jb25maWcgSVBWNl9WVElcXG4tLVxcbm5ldC9pcHY2L0tjb25maWctMTUzLVxcdHNlbGVjdCBORVRfSVBfVFVOTkVMXFxubmV0L2lwdjYvS2NvbmZpZzoxNTQ6XFx0c2VsZWN0IFhGUk1cXG5uZXQvaXB2Ni9LY29uZmlnLTE1NS1cXHRoZWxwXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTE0PWNvbmZpZyBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTE1LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzoxNjpcXHRzZWxlY3QgWEZSTVxcbm5ldC94ZnJtL0tjb25maWctMTctXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0yMz1jb25maWcgWEZSTV9VU0VSXFxubmV0L3hmcm0vS2NvbmZpZy0yNC1cXHR0cmlzdGF0ZSBcXFwiVHJhbnNmb3JtYXRpb24gdXNlciBjb25maWd1cmF0aW9uIGludGVyZmFjZVxcXCJcXG5uZXQveGZybS9LY29uZmlnOjI1OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTI2LVxcdGhlbHBcXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9ODQ9Y29uZmlnIFhGUk1fQUhcXG5uZXQveGZybS9LY29uZmlnLTg1LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzo4NjpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy04Ny1cXHRzZWxlY3QgQ1JZUFRPXFxuLS1cXG5uZXQveGZybS9LY29uZmlnPTkzPWNvbmZpZyBYRlJNX0VTUFxcbm5ldC94ZnJtL0tjb25maWctOTQtXFx0dHJpc3RhdGVcXG5uZXQveGZybS9LY29uZmlnOjk1OlxcdHNlbGVjdCBYRlJNX0FMR09cXG5uZXQveGZybS9LY29uZmlnLTk2LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTA2PWNvbmZpZyBYRlJNX0lQQ09NUFxcbm5ldC94ZnJtL0tjb25maWctMTA3LVxcdHRyaXN0YXRlXFxubmV0L3hmcm0vS2NvbmZpZzoxMDg6XFx0c2VsZWN0IFhGUk1fQUxHT1xcbm5ldC94ZnJtL0tjb25maWctMTA5LVxcdHNlbGVjdCBDUllQVE9cXG4tLVxcbm5ldC94ZnJtL0tjb25maWc9MTEyPWNvbmZpZyBORVRfS0VZXFxubmV0L3hmcm0vS2NvbmZpZy0xMTMtXFx0dHJpc3RhdGUgXFxcIlBGX0tFWSBzb2NrZXRzIChkZXByZWNhdGVkKVxcXCJcXG5uZXQveGZybS9LY29uZmlnOjExNDpcXHRzZWxlY3QgWEZSTV9BTEdPXFxubmV0L3hmcm0vS2NvbmZpZy0xMTUtXFx0aGVscFxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZz0xMjU9Y29uZmlnIE5FVF9LRVlfTUlHUkFURVxcbi0tXFxubmV0L3hmcm0vS2NvbmZpZy0xMjctXFx0ZGVwZW5kcyBvbiBORVRfS0VZXFxubmV0L3hmcm0vS2NvbmZpZzoxMjg6XFx0c2VsZWN0IFhGUk1fTUlHUkFURVxcbm5ldC94ZnJtL0tjb25maWctMTI5LVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6Mjc6MDIuNjU2MzczMTdaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Njg2NDYwNzUwMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50IG9mIHRoZSBYRlJNIFBhdGNoKipcblxuT2theSwgc28gSSd2ZSBiZWVuIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCByZWxhdGVkIHRvIFhGUk0sIGFuZCB0aGUgZmlyc3QgdGhpbmcgSSBub3RpY2VkIGlzIHRoYXQgZW5hYmxpbmcgYENPTkZJR19YRlJNX1VTRVJgIGlzIGEgZ29vZCBzdGFydGluZyBwb2ludCBmb3IgWEZSTSBmdW5jdGlvbmFsaXR5LiBPZiBjb3Vyc2UsIHdlJ2xsIG5lZWQgYENPTkZJR19JUFY2YCBlbmFibGVkIGFzIHdlbGwuIFRoYXQgbXVjaCBpcyBvYnZpb3VzLlxuXG5JJ3ZlIHpvb21lZCBpbiBvbiB0aGUgY29kZSBub3csIGFuZCBpdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBtb2RpZmllcyBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCBpbiBgbmV0L2lwdjYveGZybTZfb3V0cHV0LmNgLiBGcm9tIGEgcXVpY2sgZ2xhbmNlLCBpdCBzZWVtcyB0aGF0IHRoZXNlIGFyZSB0aGUgKm9ubHkqIGZ1bmN0aW9ucyBpbXBhY3RlZCwgd2hpY2ggc2ltcGxpZmllcyB0aGUgcmV2aWV3LlxuXG5Mb29raW5nIGF0IHRoZSBjb2RlIHNuaXBwZXRzIHByb3ZpZGVkLCBpdCBzZWVtcyBsaWtlIGJvdGggZnVuY3Rpb25zLCBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCwgYXJlIG1ha2luZyBmdW5jdGlvbmFsIGNoYW5nZXMuIEVzc2VudGlhbGx5LCB0aGV5IGFwcGVhciB0byBiZSBhZGRyZXNzaW5nIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaXNzdWVzIGFuZCBlbnN1cmluZyB0aGUgZnVsbCBzb2NrZXQgaXMgYmVpbmcgdXNlZCBjb3JyZWN0bHkuIFRoaXMgZGVmaW5pdGVseSB3YXJyYW50cyBmdXJ0aGVyIHNjcnV0aW55LCBlc3BlY2lhbGx5IHdpdGggZnV6emluZyBpbiBtaW5kLlxuXG5JIG5lZWQgdG8ga2VlcCBhIGNsb3NlIGV5ZSBvbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYCBhcyB0aGUga2V5IGZvY3VzIHN5bWJvbHMuXG5cblNvLCBsZXQncyBuYWlsIGRvd24gdGhlIGNvbmZpZ3VyYXRpb24gcmVxdWlyZW1lbnRzOiBgSVBWNmAgYW5kIGBYRlJNX1VTRVJgLiBJIGNoZWNrZWQsIGFuZCBgQ09ORklHX1hGUk1gIGlzIGNvcnJlY3RseSBzZWxlY3RlZCB3aGVuIGBYRlJNX1VTRVJgIGlzIGVuYWJsZWQsIGFuZCBgQ09ORklHX0lQVjZgIGlzIHRoZSBtYWluIGVuYWJsZXIgZm9yIElQdjYsIHNvIHRoYXQgYWxsIGNoZWNrcyBvdXQuXG5cbkknbGwgcHJvY2VlZCB0byBzZXQgdGhlIHJlc3VsdHMgYmFzZWQgb24gdGhpcyBhbmFseXNpcy5cblxuXG4iLCJJbnB1dFRva2VucyI6Nzk0NSwiT3V0cHV0VG9rZW5zIjoxNDcsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozOTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDNUMTk6Mjc6MDkuNTIwOTgyODgyWiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzcyNDAxMDMsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIklQVjZcIixcbiAgICBcIlhGUk1fVVNFUlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcInhmcm02X2xvY2FsX3J4cG10dVwiLFxuICAgIFwieGZybTZfbG9jYWxfZXJyb3JcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2Ugb3IgaW5jb3JyZWN0IHNvY2tldCB0eXBlIHVzYWdlIGJ5IHJlcGxhY2luZyBgc2tiLVxcdTAwM2Vza2Agd2l0aCBgc2tiX3RvX2Z1bGxfc2soc2tiKWAgYW5kIGFkZGluZyBhIE5VTEwgY2hlY2sgaW4gYHhmcm02X2xvY2FsX3J4cG10dWAgYW5kIGB4ZnJtNl9sb2NhbF9lcnJvcmAuIFRoZXNlIGFyZSBmdW5jdGlvbmFsIGNoYW5nZXMgaW4gdGhlIElQdjYgWEZSTSBvdXRwdXQgcGF0aCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSVBWNlwiLFxuICAgIFwiWEZSTV9VU0VSXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwieGZybTZfbG9jYWxfcnhwbXR1XCIsXG4gICAgXCJ4ZnJtNl9sb2NhbF9lcnJvclwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcG90ZW50aWFsIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBvciBpbmNvcnJlY3Qgc29ja2V0IHR5cGUgdXNhZ2UgYnkgcmVwbGFjaW5nIGBza2ItXFx1MDAzZXNrYCB3aXRoIGBza2JfdG9fZnVsbF9zayhza2IpYCBhbmQgYWRkaW5nIGEgTlVMTCBjaGVjayBpbiBgeGZybTZfbG9jYWxfcnhwbXR1YCBhbmQgYHhmcm02X2xvY2FsX2Vycm9yYC4gVGhlc2UgYXJlIGZ1bmN0aW9uYWwgY2hhbmdlcyBpbiB0aGUgSVB2NiBYRlJNIG91dHB1dCBwYXRoIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowvvt98[1] Phase: Succeeded StartedAt: 2026-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 19:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 19:27:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2] Phase: Succeeded StartedAt: 2026-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 19:27:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:14 +0000 UTC FinishedAt: 2026-08-03 19:27:18 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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-workflowvvt98/series-workflowvvt98-convert-artifact-2849708086/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:24 +0000 UTC FinishedAt: 2026-08-03 19:43:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:24 +0000 UTC FinishedAt: 2026-08-03 19:43:12 +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:*7a183d42-746a-4e49-bcf7-6afaafa7fcf4,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-workflowvvt98/series-workflowvvt98-convert-artifact-2849708086/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": "c67e5df1-3040-4312-a85d-bd4de49a51ea", "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-workflowvvt98/series-workflowvvt98-build-action-2771140428/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:27:24 +0000 UTC FinishedAt: 2026-08-03 19:43:02 +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:*7a183d42-746a-4e49-bcf7-6afaafa7fcf4,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-workflowvvt98/series-workflowvvt98-convert-artifact-2849708086/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": "c67e5df1-3040-4312-a85d-bd4de49a51ea", "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-workflowvvt98/series-workflowvvt98-build-action-2771140428/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:12 +0000 UTC FinishedAt: 2026-08-03 19:43:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:12 +0000 UTC FinishedAt: 2026-08-03 19:43:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:12 +0000 UTC FinishedAt: 2026-08-03 19:43:22 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:12 +0000 UTC FinishedAt: 2026-08-03 19:43:16 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-workflowvvt98/series-workflowvvt98-convert-artifact-2117872329/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:22 +0000 UTC FinishedAt: 2026-08-03 19:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:43:22 +0000 UTC FinishedAt: 2026-08-03 19:45:02 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c67e5df1-3040-4312-a85d-bd4de49a51ea,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-workflowvvt98/series-workflowvvt98-build-action-2771140428/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-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:45:12 +0000 UTC FinishedAt: 2026-08-03 19:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:45:12 +0000 UTC FinishedAt: 2026-08-03 19:45:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:45:12 +0000 UTC FinishedAt: 2026-08-03 20:01:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:45:12 +0000 UTC FinishedAt: 2026-08-03 20:01:23 +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:*7a183d42-746a-4e49-bcf7-6afaafa7fcf4,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-workflowvvt98/series-workflowvvt98-convert-artifact-2117872329/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": "efba6a38-31a2-4ea4-8d30-c9c45fe7bb7a", "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-workflowvvt98/series-workflowvvt98-build-action-4030839205/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 19:45:12 +0000 UTC FinishedAt: 2026-08-03 20:01:13 +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:*7a183d42-746a-4e49-bcf7-6afaafa7fcf4,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-workflowvvt98/series-workflowvvt98-convert-artifact-2117872329/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": "efba6a38-31a2-4ea4-8d30-c9c45fe7bb7a", "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-workflowvvt98/series-workflowvvt98-build-action-4030839205/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:01:23 +0000 UTC FinishedAt: 2026-08-03 20:01:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:01:23 +0000 UTC FinishedAt: 2026-08-03 20:01:23 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:01:23 +0000 UTC FinishedAt: 2026-08-03 20:03:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:01:23 +0000 UTC FinishedAt: 2026-08-03 20:03:10 +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:*efba6a38-31a2-4ea4-8d30-c9c45fe7bb7a,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-workflowvvt98/series-workflowvvt98-build-action-4030839205/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-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"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:*c67e5df1-3040-4312-a85d-bd4de49a51ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*efba6a38-31a2-4ea4-8d30-c9c45fe7bb7a,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-workflowvvt98/series-workflowvvt98-build-action-2771140428/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-workflowvvt98/series-workflowvvt98-build-action-4030839205/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 20:03:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 20:03:25 +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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"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-workflowvvt98/series-workflowvvt98-convert-artifact-1690300190/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 20:03:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 20:03:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:20 +0000 UTC FinishedAt: 2026-08-03 20:03:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:30 +0000 UTC FinishedAt: 2026-08-03 23:05:07 +0000 UTC Input: nil Output: nil --------- Name: series-workflowvvt98[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"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":["xfrm6_local_rxpmtu","xfrm6_local_error"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"af39eb111ce6b5eba9c08513b62c4868eb7e7fd5","config_name":"upstream-apparmor-kasan.config","enable_configs":["IPV6","XFRM_USER"],"series_id":"462a3b9f-96a6-4df8-ad39-8948b6b2e4c3","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-08-03 20:03:30 +0000 UTC FinishedAt: 2026-08-03 23:04:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*c67e5df1-3040-4312-a85d-bd4de49a51ea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*efba6a38-31a2-4ea4-8d30-c9c45fe7bb7a,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-workflowvvt98/series-workflowvvt98-build-action-2771140428/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-workflowvvt98/series-workflowvvt98-build-action-4030839205/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-workflowvvt98/series-workflowvvt98-convert-artifact-1690300190/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,}