Name: series-workflowbgnlg Phase: Succeeded StartedAt: 2026-07-10 19:54:58 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[0] Phase: Succeeded StartedAt: 2026-07-10 19:54:58 +0000 UTC FinishedAt: 2026-07-10 20:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[0].run-triage Phase: Succeeded StartedAt: 2026-07-10 19:54:58 +0000 UTC FinishedAt: 2026-07-10 20:18:27 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IEEE802154_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IEEE802154_HWSIM" ], "series_id": "2bedaeb2-8feb-420b-a8d3-e2dc6d992060" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "hwsim_update_pib" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtod3NpbV91cGRhdGVfcGliJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDliYTAwMTE5ZDJmZjM1NDY5MTBhNGI2OWE0MmY4MzQzOWRiMTAyODJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxMCAyMDoxNzoyNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuQEAgLTcyLDYgJiM0Mzs3Miw4IEBAIHN0cnVjdCBod3NpbV9waHkge1xuIFx0c3RydWN0IGllZWU4MDIxNTRfaHcgKmh3O1xuIFx0dTMyIGlkeDtcbiBcbiYjNDM7XHQvKiBTZXJpYWxpemVzIHBoeS1cdTAwM2VwaWJfdXBkYXRlcy4gKi9cbiYjNDM7XHRzcGlubG9ja190IHBpYl9sb2NrO1xuIFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xuIFxuIFx0Ym9vbCBzdXNwZW5kZWQ7XG5AQCAtMTAyLDggJiM0MzsxMDQsNiBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxuIFx0aWYgKCFwaWIpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0cGliX29sZCA9IHJ0bmxfZGVyZWZlcmVuY2UocGh5LVx1MDAzZXBpYik7XG4tXG4gXHRwaWItXHUwMDNlcGFnZSA9IHBhZ2U7XG4gXHRwaWItXHUwMDNlY2hhbm5lbCA9IGNoYW5uZWw7XG4gXHRwaWItXHUwMDNlZmlsdC5zaG9ydF9hZGRyID0gZmlsdC1cdTAwM2VzaG9ydF9hZGRyO1xuQEAgLTExMiw3ICYjNDM7MTEyLDEwIEBAIHN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG4gXHRwaWItXHUwMDNlZmlsdC5wYW5fY29vcmQgPSBmaWx0LVx1MDAzZXBhbl9jb29yZDtcbiBcdHBpYi1cdTAwM2VmaWx0X2xldmVsID0gZmlsdF9sZXZlbDtcbiBcbi1cdHJjdV9hc3NpZ25fcG9pbnRlcihwaHktXHUwMDNlcGliLCBwaWIpO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuJiM0MztcdHBpYl9vbGQgPSByY3VfcmVwbGFjZV9wb2ludGVyKHBoeS1cdTAwM2VwaWIsIHBpYixcbiYjNDM7XHRcdFx0XHQgICAgICBsb2NrZGVwX2lzX2hlbGQoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKSk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKTtcbiBcdGtmcmVlX3JjdShwaWJfb2xkLCByY3UpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTk1Miw2ICYjNDM7OTU1LDcgQEAgc3RhdGljIGludCBod3NpbV9hZGRfb25lKHN0cnVjdCBnZW5sX2luZm8gKmluZm8sIHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdFx0Z290byBlcnJfcGliO1xuIFx0fVxuIFxuJiM0MztcdHNwaW5fbG9ja19pbml0KFx1MDAyNnBoeS1cdTAwM2VwaWJfbG9jayk7XG4gXHRwaWItXHUwMDNlY2hhbm5lbCA9IDEzO1xuIFx0cGliLVx1MDAzZWZpbHQuc2hvcnRfYWRkciA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfQUREUl9CUk9BRENBU1QpO1xuIFx0cGliLVx1MDAzZWZpbHQucGFuX2lkID0gY3B1X3RvX2xlMTYoSUVFRTgwMjE1NF9QQU5JRF9CUk9BRENBU1QpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtod3NpbV91cGRhdGVfcGliJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWJhMDAxMTlkMmZmMzU0NjkxMGE0YjY5YTQyZjgzNDM5ZGIxMDI4MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDEwIDIwOjE3OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYyBiL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMKaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMKQEAgLTcyLDYgJiM0Mzs3Miw4IEBAIHN0cnVjdCBod3NpbV9waHkgewogCXN0cnVjdCBpZWVlODAyMTU0X2h3ICpodzsKIAl1MzIgaWR4OwogCiYjNDM7CS8qIFNlcmlhbGl6ZXMgcGh5LSZndDtwaWJfdXBkYXRlcy4gKi8KJiM0MzsJc3BpbmxvY2tfdCBwaWJfbG9jazsKIAlzdHJ1Y3QgaHdzaW1fcGliIF9fcmN1ICpwaWI7CiAKIAlib29sIHN1c3BlbmRlZDsKQEAgLTEwMiw4ICYjNDM7MTA0LDYgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCwKIAlpZiAoIXBpYikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktJmd0O3BpYik7Ci0KIAlwaWItJmd0O3BhZ2UgPSBwYWdlOwogCXBpYi0mZ3Q7Y2hhbm5lbCA9IGNoYW5uZWw7CiAJcGliLSZndDtmaWx0LnNob3J0X2FkZHIgPSBmaWx0LSZndDtzaG9ydF9hZGRyOwpAQCAtMTEyLDcgJiM0MzsxMTIsMTAgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCwKIAlwaWItJmd0O2ZpbHQucGFuX2Nvb3JkID0gZmlsdC0mZ3Q7cGFuX2Nvb3JkOwogCXBpYi0mZ3Q7ZmlsdF9sZXZlbCA9IGZpbHRfbGV2ZWw7CiAKLQlyY3VfYXNzaWduX3BvaW50ZXIocGh5LSZndDtwaWIsIHBpYik7CiYjNDM7CXNwaW5fbG9ja19iaCgmYW1wO3BoeS0mZ3Q7cGliX2xvY2spOwomIzQzOwlwaWJfb2xkID0gcmN1X3JlcGxhY2VfcG9pbnRlcihwaHktJmd0O3BpYiwgcGliLAomIzQzOwkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQoJmFtcDtwaHktJmd0O3BpYl9sb2NrKSk7CiYjNDM7CXNwaW5fdW5sb2NrX2JoKCZhbXA7cGh5LSZndDtwaWJfbG9jayk7CiAJa2ZyZWVfcmN1KHBpYl9vbGQsIHJjdSk7CiAJcmV0dXJuIDA7CiB9CkBAIC05NTIsNiAmIzQzOzk1NSw3IEBAIHN0YXRpYyBpbnQgaHdzaW1fYWRkX29uZShzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gZXJyX3BpYjsKIAl9CiAKJiM0MzsJc3Bpbl9sb2NrX2luaXQoJmFtcDtwaHktJmd0O3BpYl9sb2NrKTsKIAlwaWItJmd0O2NoYW5uZWwgPSAxMzsKIAlwaWItJmd0O2ZpbHQuc2hvcnRfYWRkciA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfQUREUl9CUk9BRENBU1QpOwogCXBpYi0mZ3Q7ZmlsdC5wYW5faWQgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X1BBTklEX0JST0FEQ0FTVCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNDMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jYC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgaW50cm9kdWNpbmcgYSBzcGlubG9jaywgYHBpYl9sb2NrYCwgd2l0aGluIHRoZSBgc3RydWN0IGh3c2ltX3BoeWAuIFRoZSBpbnRlbnQgaGVyZSBpcyBjbGVhcjogdGhleSYjMzk7cmUgc2VyaWFsaXppbmcgdGhlIHVwZGF0ZXMgdG8gdGhlIGBwaHktJmd0O3BpYmAgZGF0YSBzdHJ1Y3R1cmUgd2l0aGluIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFRoaXMgKmhhcyogdG8gYmUgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgYSBmaXggZm9yIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIGEgcmVsYXRlZCBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gYG1hYzgwMjE1NF9od3NpbWAuCgpTaW5jZSB0aGlzIGlzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB0aGUgYG1hYzgwMjE1NF9od3NpbWAgY29kZSwgSSBjYW4gaW1hZ2luZSB0aGlzIGlzIGxpa2VseSBlbmNvdW50ZXJlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEdpdmVuIHRoaXMgZHJpdmVyJiMzOTtzIG5hdHVyZSwgaXRzIHByZXNlbmNlIG5lY2Vzc2l0YXRlcyBtb3JlIHNjcnV0aW55IG9mIHRoZSBjb2RlLgoKQmVmb3JlIGdvaW5nIGRlZXBlciwgSSYjMzk7bGwgY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGBtYWM4MDIxNTRfaHdzaW1gLiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGJlZm9yZSBkaXZpbmcgaW50byB0aGUgY29kZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTU0X2h3c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMTQ9Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTIyLVx0ICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gVG8gZG8gc28gc2F5IE0gaGVyZS5cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMjM6XHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgJiMzOTttYWM4MDIxNTRfaHdzaW0mIzM5Oy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTEwCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBicmVha2Rvd24gb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIFRhcmdldGVkIEZ1bmN0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIGBJRUVFODAyMTU0X0hXU0lNYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIHRoaW5ncyBkb3duIHNpZ25pZmljYW50bHkuIEkmIzM5O20gd29ya2luZyB3aXRoaW4gYSBoYXJkd2FyZSBzaW11bGF0aW9uIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgZW11bGF0aW5nIHRoZSA4MDIuMTUuNCBzdGFuZGFyZC4gVGhlIGtleSBmdW5jdGlvbiBJJiMzOTttIGxvb2tpbmcgYXQsIHRoZSBvbmUgdGhhdCYjMzk7cyBiZWVuIG1vZGlmaWVkLCBpcyBgaHdzaW1fdXBkYXRlX3BpYmAuIFRoYXQmIzM5O3MgdGhlIFBlcnNvbmFsIEluZm9ybWF0aW9uIEJhc2UsIHNvIHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoZSBzaW11bGF0ZWQgaGFyZHdhcmUmIzM5O3MgaW50ZXJuYWwgcGFyYW1ldGVycywgb3IgUElCIGF0dHJpYnV0ZXMuCgpHaXZlbiB0aGUgc2ltIGNvbnRleHQsIGl0JiMzOTtzIHJlYXNvbmFibGUgdGhhdCBtb2RpZmljYXRpb25zIHRvIHRoaXMgZnVuY3Rpb24gYXJlIHJlbGF0ZWQgdG8gYSByYW5nZSBvZiB0aGluZ3MsIG1heWJlIGEgc3BlY2lmaWMgYXNwZWN0IG9mIHRoZSBIVyBzaW0uCgpMZXQmIzM5O3MgZG8gc29tZSBxdWljayByZXNlYXJjaCB0byBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGNvbmZpZ3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aHdzaW1fdXBkYXRlX3BpYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz04OT1zdGF0aWMgaW50IGh3c2ltX2h3X2VkKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggKmxldmVsKVxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtOTUtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jOjk2OnN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTk3LVx0XHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjE1NF9od19hZGRyX2ZpbHQgKmZpbHQsXG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMjM9c3RhdGljIGludCBod3NpbV9od19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTEzMC1cdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXHUwMDNlcGliKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM6MTMxOlx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGFnZSwgY2hhbm5lbCwgXHUwMDI2cGliLVx1MDAzZWZpbHQsIHBpYi1cdTAwM2VmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTMyLVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMzc9c3RhdGljIGludCBod3NpbV9od19hZGRyX2ZpbHQoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ2LVx0cGliID0gcmN1X2RlcmVmZXJlbmNlKHBoeS1cdTAwM2VwaWIpO1xuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxNDc6XHRyZXQgPSBod3NpbV91cGRhdGVfcGliKGh3LCBwaWItXHUwMDNlcGFnZSwgcGliLVx1MDAzZWNoYW5uZWwsIGZpbHQsIHBpYi1cdTAwM2VmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ4LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0zMTI9aHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGUoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCBjb25zdCBib29sIG9uKVxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMzI1LVx0cGliID0gcmN1X2RlcmVmZXJlbmNlKHBoeS1cdTAwM2VwaWIpO1xuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzozMjY6XHRyZXQgPSBod3NpbV91cGRhdGVfcGliKGh3LCBwaWItXHUwMDNlcGFnZSwgcGliLVx1MDAzZWNoYW5uZWwsIFx1MDAyNnBpYi1cdTAwM2VmaWx0LCBmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMzI3LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAyOQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDE4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBod3NpbV91cGRhdGVfcGliYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdHJhY2luZyB0aGUgdXNlIG9mIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHNlZSBpdCYjMzk7cyBjYWxsZWQgZnJvbSB0aHJlZSBvdGhlciBmdW5jdGlvbnM6IGBod3NpbV9od19jaGFubmVsYCwgYGh3c2ltX2h3X2FkZHJfZmlsdGAsIGFuZCBgaHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGVgLiBUaGVzZSBhbGwgc2VlbSB0byBiZSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIGRyaXZlciwgc28gd2UgYXJlIGRlYWxpbmcgd2l0aCB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgZm9yIDgwMi4xNS40LiBNYWtlcyBzZW5zZS4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIHRoZSBwYXRjaCBpdHNlbGYgaW50cm9kdWNlcyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSB1cGRhdGVzIHRvIGBwaHktJmd0O3BpYmAuCgpUaGlzIHNwaW5sb2NrIGlzIGEgZ29vZCBzaWduOyBpdCBpbmRpY2F0ZXMgdGhhdCBjb25jdXJyZW5jeSBpcyBhIGNvbmNlcm4gYW5kIHRoZSBwYXRjaCBpcyBhdHRlbXB0aW5nIHRvIHByb3RlY3Qgc2hhcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgYSBncmVhdCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIGNhbiB0YXJnZXQgYGh3c2ltX3VwZGF0ZV9waWJgIGRpcmVjdGx5LgoKQmVmb3JlIEkgY29tbWl0IHRvIHRoaXMgYXBwcm9hY2gsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBXaGlsZSBgSUVFRTgwMjE1NF9IV1NJTWAgc2hvdWxkIHByb2JhYmx5IGVpdGhlciBzZWxlY3Qgb3IgZGVwZW5kIG9uIHRoZSBiYXNlIGBJRUVFODAyMTU0YCBjb25maWd1cmF0aW9uLCBJIGRvbiYjMzk7dCB3YW50IHRvIG92ZXJsb29rIGFueSBzdWJ0bGUgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgYmUgbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBlbmFibGUgYW5kIHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZHVyaW5nIGZ1enppbmcuIEFsd2F5cyBhIGdvb2QgaWRlYSB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSBmb3IgYSBwcm9wZXIgdGVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMDI9Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMTQ6Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMTUtXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcdTAwMjZcdTAwMjYgTUFDODAyMTU0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcyMQoJCQkJCQkJb3V0cHV0OiAxMDYKCQkJCQkJCXRob3VnaHRzOiAxMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBjaGFuZ2U6CgoqKkFuYWx5emluZyBhIERyaXZlciBDb25maWd1cmF0aW9uIFVwZGF0ZSoqCgpPa2F5LCBzbyB0aGlzIHByb3Bvc2VkIGNoYW5nZSBoaW5nZXMgb24gYSBmZXcgZXhpc3RpbmcgY29tcG9uZW50czogYElFRUU4MDIxNTRfRFJJVkVSU2AgYW5kIGBNQUM4MDIxNTRgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBpdCBzZWVtcyB3ZSYjMzk7cmUgYWRkaW5nIGBJRUVFODAyMTU0X0hXU0lNYCB0byBgRW5hYmxlQ29uZmlnc2AuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIGNsZWFyLCBhbmQgaXQgbWFrZXMgcGVyZmVjdCBzZW5zZSBmcm9tIGEgc3lzdGVtcyBwZXJzcGVjdGl2ZS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSByYWNlIGNvbmRpdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYG1hYzgwMjE1NF9od3NpbWAgbW9kdWxlLCBhbmQgdGhlIHNvbHV0aW9uIGlzIGEgd2VsbC1lc3RhYmxpc2hlZCBwYXR0ZXJuOiB1c2UgYSBzcGlubG9jayB0byBzZXJpYWxpemUgUHJvcGVydHkgSW5mb3JtYXRpb24gQmFzZSAoUElCKSB1cGRhdGVzLiBHaXZlbiB0aGF0IGBtYWM4MDIxNTRfaHdzaW1gIGlzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB0aGlzIGlzIGEgZnVuY3Rpb25hbGx5IHNvdW5kIG1vZGlmaWNhdGlvbiwgZWFzaWx5IHRlc3RhYmxlIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLgoKVGhlcmVmb3JlLCBhZnRlciB0aGUgY2hhbmdlcyBhcmUgY29tcGxldGUsIEkgd2lsbCBjYWxsIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SUVFRTgwMjE1NF9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2h3c2ltX3VwZGF0ZV9waWImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBtYWM4MDIxNTRfaHdzaW0gYnkgYWRkaW5nIGEgc3BpbmxvY2sgdG8gc2VyaWFsaXplIHBpYiB1cGRhdGVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIsIHdoaWNoIGlzIHJlYWNoYWJsZSBhbmQgdGVzdGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aHdzaW1fdXBkYXRlX3BpYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzoyOC41NDA1NzE3NzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYwMzM4NTY4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaHdzaW1fdXBkYXRlX3BpYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MjguNTQwNTc2OTQ5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzkyODE3MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YmEwMDExOWQyZmYzNTQ2OTEwYTRiNjlhNDJmODM0MzlkYjEwMjgyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDIwOjE3OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMgYi9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jXFxuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmNcXG4rKysgYi9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jXFxuQEAgLTcyLDYgKzcyLDggQEAgc3RydWN0IGh3c2ltX3BoeSB7XFxuIFxcdHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodztcXG4gXFx0dTMyIGlkeDtcXG4gXFxuK1xcdC8qIFNlcmlhbGl6ZXMgcGh5LVxcdTAwM2VwaWJfdXBkYXRlcy4gKi9cXG4rXFx0c3BpbmxvY2tfdCBwaWJfbG9jaztcXG4gXFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xcbiBcXG4gXFx0Ym9vbCBzdXNwZW5kZWQ7XFxuQEAgLTEwMiw4ICsxMDQsNiBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxcbiBcXHRpZiAoIXBpYilcXG4gXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcbi1cXHRwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuLVxcbiBcXHRwaWItXFx1MDAzZXBhZ2UgPSBwYWdlO1xcbiBcXHRwaWItXFx1MDAzZWNoYW5uZWwgPSBjaGFubmVsO1xcbiBcXHRwaWItXFx1MDAzZWZpbHQuc2hvcnRfYWRkciA9IGZpbHQtXFx1MDAzZXNob3J0X2FkZHI7XFxuQEAgLTExMiw3ICsxMTIsMTAgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCxcXG4gXFx0cGliLVxcdTAwM2VmaWx0LnBhbl9jb29yZCA9IGZpbHQtXFx1MDAzZXBhbl9jb29yZDtcXG4gXFx0cGliLVxcdTAwM2VmaWx0X2xldmVsID0gZmlsdF9sZXZlbDtcXG4gXFxuLVxcdHJjdV9hc3NpZ25fcG9pbnRlcihwaHktXFx1MDAzZXBpYiwgcGliKTtcXG4rXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4rXFx0cGliX29sZCA9IHJjdV9yZXBsYWNlX3BvaW50ZXIocGh5LVxcdTAwM2VwaWIsIHBpYixcXG4rXFx0XFx0XFx0XFx0ICAgICAgbG9ja2RlcF9pc19oZWxkKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKSk7XFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4gXFx0a2ZyZWVfcmN1KHBpYl9vbGQsIHJjdSk7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuQEAgLTk1Miw2ICs5NTUsNyBAQCBzdGF0aWMgaW50IGh3c2ltX2FkZF9vbmUoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywgc3RydWN0IGRldmljZSAqZGV2LFxcbiBcXHRcXHRnb3RvIGVycl9waWI7XFxuIFxcdH1cXG4gXFxuK1xcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4gXFx0cGliLVxcdTAwM2VjaGFubmVsID0gMTM7XFxuIFxcdHBpYi1cXHUwMDNlZmlsdC5zaG9ydF9hZGRyID0gY3B1X3RvX2xlMTYoSUVFRTgwMjE1NF9BRERSX0JST0FEQ0FTVCk7XFxuIFxcdHBpYi1cXHUwMDNlZmlsdC5wYW5faWQgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X1BBTklEX0JST0FEQ0FTVCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjI5LjA4MDY2OTcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjA2MzI3ODcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaHdzaW1fdXBkYXRlX3BpYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5YmEwMDExOWQyZmYzNTQ2OTEwYTRiNjlhNDJmODM0MzlkYjEwMjgyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMjA6MTc6MjcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuKysrIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuQEAgLTcyLDYgKzcyLDggQEAgc3RydWN0IGh3c2ltX3BoeSB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHc7XG4gXHR1MzIgaWR4O1xuIFxuK1x0LyogU2VyaWFsaXplcyBwaHktXHUwMDNlcGliX3VwZGF0ZXMuICovXG4rXHRzcGlubG9ja190IHBpYl9sb2NrO1xuIFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xuIFxuIFx0Ym9vbCBzdXNwZW5kZWQ7XG5AQCAtMTAyLDggKzEwNCw2IEBAIHN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG4gXHRpZiAoIXBpYilcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktXHUwMDNlcGliKTtcbi1cbiBcdHBpYi1cdTAwM2VwYWdlID0gcGFnZTtcbiBcdHBpYi1cdTAwM2VjaGFubmVsID0gY2hhbm5lbDtcbiBcdHBpYi1cdTAwM2VmaWx0LnNob3J0X2FkZHIgPSBmaWx0LVx1MDAzZXNob3J0X2FkZHI7XG5AQCAtMTEyLDcgKzExMiwxMCBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxuIFx0cGliLVx1MDAzZWZpbHQucGFuX2Nvb3JkID0gZmlsdC1cdTAwM2VwYW5fY29vcmQ7XG4gXHRwaWItXHUwMDNlZmlsdF9sZXZlbCA9IGZpbHRfbGV2ZWw7XG4gXG4tXHRyY3VfYXNzaWduX3BvaW50ZXIocGh5LVx1MDAzZXBpYiwgcGliKTtcbitcdHNwaW5fbG9ja19iaChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuK1x0cGliX29sZCA9IHJjdV9yZXBsYWNlX3BvaW50ZXIocGh5LVx1MDAzZXBpYiwgcGliLFxuK1x0XHRcdFx0ICAgICAgbG9ja2RlcF9pc19oZWxkKFx1MDAyNnBoeS1cdTAwM2VwaWJfbG9jaykpO1xuK1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKTtcbiBcdGtmcmVlX3JjdShwaWJfb2xkLCByY3UpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTk1Miw2ICs5NTUsNyBAQCBzdGF0aWMgaW50IGh3c2ltX2FkZF9vbmUoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywgc3RydWN0IGRldmljZSAqZGV2LFxuIFx0XHRnb3RvIGVycl9waWI7XG4gXHR9XG4gXG4rXHRzcGluX2xvY2tfaW5pdChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuIFx0cGliLVx1MDAzZWNoYW5uZWwgPSAxMztcbiBcdHBpYi1cdTAwM2VmaWx0LnNob3J0X2FkZHIgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X0FERFJfQlJPQURDQVNUKTtcbiBcdHBpYi1cdTAwM2VmaWx0LnBhbl9pZCA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfUEFOSURfQlJPQURDQVNUKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjI5LjA4MDY3MTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwMTc3NTY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jYC4gSXQgbG9va3MgbGlrZSB3ZSdyZSBpbnRyb2R1Y2luZyBhIHNwaW5sb2NrLCBgcGliX2xvY2tgLCB3aXRoaW4gdGhlIGBzdHJ1Y3QgaHdzaW1fcGh5YC4gVGhlIGludGVudCBoZXJlIGlzIGNsZWFyOiB0aGV5J3JlIHNlcmlhbGl6aW5nIHRoZSB1cGRhdGVzIHRvIHRoZSBgcGh5LVx1MDAzZXBpYmAgZGF0YSBzdHJ1Y3R1cmUgd2l0aGluIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFRoaXMgKmhhcyogdG8gYmUgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgYSBmaXggZm9yIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIGEgcmVsYXRlZCBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gYG1hYzgwMjE1NF9od3NpbWAuXG5cblNpbmNlIHRoaXMgaXMgYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIsIHRoZSBgbWFjODAyMTU0X2h3c2ltYCBjb2RlLCBJIGNhbiBpbWFnaW5lIHRoaXMgaXMgbGlrZWx5IGVuY291bnRlcmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gR2l2ZW4gdGhpcyBkcml2ZXIncyBuYXR1cmUsIGl0cyBwcmVzZW5jZSBuZWNlc3NpdGF0ZXMgbW9yZSBzY3J1dGlueSBvZiB0aGUgY29kZS5cblxuQmVmb3JlIGdvaW5nIGRlZXBlciwgSSdsbCBjaGVjayB0aGUgS2NvbmZpZyBlbnRyeSBmb3IgYG1hYzgwMjE1NF9od3NpbWAuIFdlIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgYmVmb3JlIGRpdmluZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM0MywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjMzLjE4MjQ1MDAyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU2MzE2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWM4MDIxNTRfaHdzaW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMTQ9Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMjItXFx0ICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gVG8gZG8gc28gc2F5IE0gaGVyZS5cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTIzOlxcdCAgVGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCAnbWFjODAyMTU0X2h3c2ltJy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MzMuMjQyMDIxMDQzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxODkxMDA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgYnJlYWtkb3duIG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIFRhcmdldGVkIEZ1bmN0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElFRUU4MDIxNTRfSFdTSU1gLiBUaGF0IGltbWVkaWF0ZWx5IG5hcnJvd3MgdGhpbmdzIGRvd24gc2lnbmlmaWNhbnRseS4gSSdtIHdvcmtpbmcgd2l0aGluIGEgaGFyZHdhcmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGVtdWxhdGluZyB0aGUgODAyLjE1LjQgc3RhbmRhcmQuIFRoZSBrZXkgZnVuY3Rpb24gSSdtIGxvb2tpbmcgYXQsIHRoZSBvbmUgdGhhdCdzIGJlZW4gbW9kaWZpZWQsIGlzIGBod3NpbV91cGRhdGVfcGliYC4gVGhhdCdzIHRoZSBQZXJzb25hbCBJbmZvcm1hdGlvbiBCYXNlLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgc2ltdWxhdGVkIGhhcmR3YXJlJ3MgaW50ZXJuYWwgcGFyYW1ldGVycywgb3IgUElCIGF0dHJpYnV0ZXMuXG5cbkdpdmVuIHRoZSBzaW0gY29udGV4dCwgaXQncyByZWFzb25hYmxlIHRoYXQgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZ1bmN0aW9uIGFyZSByZWxhdGVkIHRvIGEgcmFuZ2Ugb2YgdGhpbmdzLCBtYXliZSBhIHNwZWNpZmljIGFzcGVjdCBvZiB0aGUgSFcgc2ltLlxuXG5MZXQncyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIHRvIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgY29uZmlncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkxMCwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjM2LjU2MDkzNDA3NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE3NDI4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJod3NpbV91cGRhdGVfcGliXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz04OT1zdGF0aWMgaW50IGh3c2ltX2h3X2VkKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggKmxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy05NS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jOjk2OnN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy05Ny1cXHRcXHRcXHQgICAgc3RydWN0IGllZWU4MDIxNTRfaHdfYWRkcl9maWx0ICpmaWx0LFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMjM9c3RhdGljIGludCBod3NpbV9od19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTMwLVxcdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxMzE6XFx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGFnZSwgY2hhbm5lbCwgXFx1MDAyNnBpYi1cXHUwMDNlZmlsdCwgcGliLVxcdTAwM2VmaWx0X2xldmVsKTtcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTEzMi1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM9MTM3PXN0YXRpYyBpbnQgaHdzaW1faHdfYWRkcl9maWx0KHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ2LVxcdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxNDc6XFx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGliLVxcdTAwM2VwYWdlLCBwaWItXFx1MDAzZWNoYW5uZWwsIGZpbHQsIHBpYi1cXHUwMDNlZmlsdF9sZXZlbCk7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy0xNDgtXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jPTMxMj1od3NpbV9zZXRfcHJvbWlzY3VvdXNfbW9kZShzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIGNvbnN0IGJvb2wgb24pXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTMyNS1cXHRwaWIgPSByY3VfZGVyZWZlcmVuY2UocGh5LVxcdTAwM2VwaWIpO1xcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM6MzI2OlxcdHJldCA9IGh3c2ltX3VwZGF0ZV9waWIoaHcsIHBpYi1cXHUwMDNlcGFnZSwgcGliLVxcdTAwM2VjaGFubmVsLCBcXHUwMDI2cGliLVxcdTAwM2VmaWx0LCBmaWx0X2xldmVsKTtcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTMyNy1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MzYuNjE5MTEzNDI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM0MzY2NTc0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBod3NpbV91cGRhdGVfcGliYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyYWNpbmcgdGhlIHVzZSBvZiB0aGUgYGh3c2ltX3VwZGF0ZV9waWJgIGZ1bmN0aW9uLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgaXQncyBjYWxsZWQgZnJvbSB0aHJlZSBvdGhlciBmdW5jdGlvbnM6IGBod3NpbV9od19jaGFubmVsYCwgYGh3c2ltX2h3X2FkZHJfZmlsdGAsIGFuZCBgaHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGVgLiBUaGVzZSBhbGwgc2VlbSB0byBiZSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIGRyaXZlciwgc28gd2UgYXJlIGRlYWxpbmcgd2l0aCB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgZm9yIDgwMi4xNS40LiBNYWtlcyBzZW5zZS4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIHRoZSBwYXRjaCBpdHNlbGYgaW50cm9kdWNlcyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSB1cGRhdGVzIHRvIGBwaHktXHUwMDNlcGliYC5cblxuVGhpcyBzcGlubG9jayBpcyBhIGdvb2Qgc2lnbjsgaXQgaW5kaWNhdGVzIHRoYXQgY29uY3VycmVuY3kgaXMgYSBjb25jZXJuIGFuZCB0aGUgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBwcm90ZWN0IHNoYXJlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBXZSBjYW4gdGFyZ2V0IGBod3NpbV91cGRhdGVfcGliYCBkaXJlY3RseS5cblxuQmVmb3JlIEkgY29tbWl0IHRvIHRoaXMgYXBwcm9hY2gsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBXaGlsZSBgSUVFRTgwMjE1NF9IV1NJTWAgc2hvdWxkIHByb2JhYmx5IGVpdGhlciBzZWxlY3Qgb3IgZGVwZW5kIG9uIHRoZSBiYXNlIGBJRUVFODAyMTU0YCBjb25maWd1cmF0aW9uLCBJIGRvbid0IHdhbnQgdG8gb3Zlcmxvb2sgYW55IHN1YnRsZSBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBiZSBuZWVkZWQgdG8gc3VjY2Vzc2Z1bGx5IGVuYWJsZSBhbmQgdXNlIHRoaXMgZnVuY3Rpb25hbGl0eSBkdXJpbmcgZnV6emluZy4gQWx3YXlzIGEgZ29vZCBpZGVhIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIGZvciBhIHByb3BlciB0ZXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDI5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjQwLjk2Mjc4MTM0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc5MzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklFRUU4MDIxNTRfSFdTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMDI9Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTEzLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMTQ6Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTE1LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzo0MS4wMjEwNjgwMThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2NDAzNDY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBjaGFuZ2U6XG5cbioqQW5hbHl6aW5nIGEgRHJpdmVyIENvbmZpZ3VyYXRpb24gVXBkYXRlKipcblxuT2theSwgc28gdGhpcyBwcm9wb3NlZCBjaGFuZ2UgaGluZ2VzIG9uIGEgZmV3IGV4aXN0aW5nIGNvbXBvbmVudHM6IGBJRUVFODAyMTU0X0RSSVZFUlNgIGFuZCBgTUFDODAyMTU0YC4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBpdCBzZWVtcyB3ZSdyZSBhZGRpbmcgYElFRUU4MDIxNTRfSFdTSU1gIHRvIGBFbmFibGVDb25maWdzYC4gVGhlIGp1c3RpZmljYXRpb24gaXMgY2xlYXIsIGFuZCBpdCBtYWtlcyBwZXJmZWN0IHNlbnNlIGZyb20gYSBzeXN0ZW1zIHBlcnNwZWN0aXZlLlxuXG5UaGUgY29yZSBvZiB0aGUgcGF0Y2ggYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIG1vZHVsZSwgYW5kIHRoZSBzb2x1dGlvbiBpcyBhIHdlbGwtZXN0YWJsaXNoZWQgcGF0dGVybjogdXNlIGEgc3BpbmxvY2sgdG8gc2VyaWFsaXplIFByb3BlcnR5IEluZm9ybWF0aW9uIEJhc2UgKFBJQikgdXBkYXRlcy4gR2l2ZW4gdGhhdCBgbWFjODAyMTU0X2h3c2ltYCBpcyBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgdGhpcyBpcyBhIGZ1bmN0aW9uYWxseSBzb3VuZCBtb2RpZmljYXRpb24sIGVhc2lseSB0ZXN0YWJsZSBpbiB2aXJ0dWFsIGVudmlyb25tZW50cy5cblxuVGhlcmVmb3JlLCBhZnRlciB0aGUgY2hhbmdlcyBhcmUgY29tcGxldGUsIEkgd2lsbCBjYWxsIHNldC1yZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzIxLCJPdXRwdXRUb2tlbnMiOjEwNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzo0NS4wNDc0NzM3NzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjQ2OTQ0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImh3c2ltX3VwZGF0ZV9waWJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImh3c2ltX3VwZGF0ZV9waWJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowbgnlg[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-10 19:54:58 +0000 UTC FinishedAt: 2026-07-10 20:17:46 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IEEE802154_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net-next", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git", "commit_hash": "23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "IEEE802154_HWSIM" ], "series_id": "2bedaeb2-8feb-420b-a8d3-e2dc6d992060" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "hwsim_update_pib" ], "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+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtod3NpbV91cGRhdGVfcGliJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDliYTAwMTE5ZDJmZjM1NDY5MTBhNGI2OWE0MmY4MzQzOWRiMTAyODJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgRnJpIEp1bCAxMCAyMDoxNzoyNyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuQEAgLTcyLDYgJiM0Mzs3Miw4IEBAIHN0cnVjdCBod3NpbV9waHkge1xuIFx0c3RydWN0IGllZWU4MDIxNTRfaHcgKmh3O1xuIFx0dTMyIGlkeDtcbiBcbiYjNDM7XHQvKiBTZXJpYWxpemVzIHBoeS1cdTAwM2VwaWJfdXBkYXRlcy4gKi9cbiYjNDM7XHRzcGlubG9ja190IHBpYl9sb2NrO1xuIFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xuIFxuIFx0Ym9vbCBzdXNwZW5kZWQ7XG5AQCAtMTAyLDggJiM0MzsxMDQsNiBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxuIFx0aWYgKCFwaWIpXG4gXHRcdHJldHVybiAtRU5PTUVNO1xuIFxuLVx0cGliX29sZCA9IHJ0bmxfZGVyZWZlcmVuY2UocGh5LVx1MDAzZXBpYik7XG4tXG4gXHRwaWItXHUwMDNlcGFnZSA9IHBhZ2U7XG4gXHRwaWItXHUwMDNlY2hhbm5lbCA9IGNoYW5uZWw7XG4gXHRwaWItXHUwMDNlZmlsdC5zaG9ydF9hZGRyID0gZmlsdC1cdTAwM2VzaG9ydF9hZGRyO1xuQEAgLTExMiw3ICYjNDM7MTEyLDEwIEBAIHN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG4gXHRwaWItXHUwMDNlZmlsdC5wYW5fY29vcmQgPSBmaWx0LVx1MDAzZXBhbl9jb29yZDtcbiBcdHBpYi1cdTAwM2VmaWx0X2xldmVsID0gZmlsdF9sZXZlbDtcbiBcbi1cdHJjdV9hc3NpZ25fcG9pbnRlcihwaHktXHUwMDNlcGliLCBwaWIpO1xuJiM0MztcdHNwaW5fbG9ja19iaChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuJiM0MztcdHBpYl9vbGQgPSByY3VfcmVwbGFjZV9wb2ludGVyKHBoeS1cdTAwM2VwaWIsIHBpYixcbiYjNDM7XHRcdFx0XHQgICAgICBsb2NrZGVwX2lzX2hlbGQoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKSk7XG4mIzQzO1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKTtcbiBcdGtmcmVlX3JjdShwaWJfb2xkLCByY3UpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTk1Miw2ICYjNDM7OTU1LDcgQEAgc3RhdGljIGludCBod3NpbV9hZGRfb25lKHN0cnVjdCBnZW5sX2luZm8gKmluZm8sIHN0cnVjdCBkZXZpY2UgKmRldixcbiBcdFx0Z290byBlcnJfcGliO1xuIFx0fVxuIFxuJiM0MztcdHNwaW5fbG9ja19pbml0KFx1MDAyNnBoeS1cdTAwM2VwaWJfbG9jayk7XG4gXHRwaWItXHUwMDNlY2hhbm5lbCA9IDEzO1xuIFx0cGliLVx1MDAzZWZpbHQuc2hvcnRfYWRkciA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfQUREUl9CUk9BRENBU1QpO1xuIFx0cGliLVx1MDAzZWZpbHQucGFuX2lkID0gY3B1X3RvX2xlMTYoSUVFRTgwMjE1NF9QQU5JRF9CUk9BRENBU1QpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtod3NpbV91cGRhdGVfcGliJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgOWJhMDAxMTlkMmZmMzU0NjkxMGE0YjY5YTQyZjgzNDM5ZGIxMDI4MgpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBGcmkgSnVsIDEwIDIwOjE3OjI3IDIwMjYgJiM0MzswMDAwCgogICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYyBiL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMKaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jCiYjNDM7JiM0MzsmIzQzOyBiL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMKQEAgLTcyLDYgJiM0Mzs3Miw4IEBAIHN0cnVjdCBod3NpbV9waHkgewogCXN0cnVjdCBpZWVlODAyMTU0X2h3ICpodzsKIAl1MzIgaWR4OwogCiYjNDM7CS8qIFNlcmlhbGl6ZXMgcGh5LSZndDtwaWJfdXBkYXRlcy4gKi8KJiM0MzsJc3BpbmxvY2tfdCBwaWJfbG9jazsKIAlzdHJ1Y3QgaHdzaW1fcGliIF9fcmN1ICpwaWI7CiAKIAlib29sIHN1c3BlbmRlZDsKQEAgLTEwMiw4ICYjNDM7MTA0LDYgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCwKIAlpZiAoIXBpYikKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktJmd0O3BpYik7Ci0KIAlwaWItJmd0O3BhZ2UgPSBwYWdlOwogCXBpYi0mZ3Q7Y2hhbm5lbCA9IGNoYW5uZWw7CiAJcGliLSZndDtmaWx0LnNob3J0X2FkZHIgPSBmaWx0LSZndDtzaG9ydF9hZGRyOwpAQCAtMTEyLDcgJiM0MzsxMTIsMTAgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCwKIAlwaWItJmd0O2ZpbHQucGFuX2Nvb3JkID0gZmlsdC0mZ3Q7cGFuX2Nvb3JkOwogCXBpYi0mZ3Q7ZmlsdF9sZXZlbCA9IGZpbHRfbGV2ZWw7CiAKLQlyY3VfYXNzaWduX3BvaW50ZXIocGh5LSZndDtwaWIsIHBpYik7CiYjNDM7CXNwaW5fbG9ja19iaCgmYW1wO3BoeS0mZ3Q7cGliX2xvY2spOwomIzQzOwlwaWJfb2xkID0gcmN1X3JlcGxhY2VfcG9pbnRlcihwaHktJmd0O3BpYiwgcGliLAomIzQzOwkJCQkgICAgICBsb2NrZGVwX2lzX2hlbGQoJmFtcDtwaHktJmd0O3BpYl9sb2NrKSk7CiYjNDM7CXNwaW5fdW5sb2NrX2JoKCZhbXA7cGh5LSZndDtwaWJfbG9jayk7CiAJa2ZyZWVfcmN1KHBpYl9vbGQsIHJjdSk7CiAJcmV0dXJuIDA7CiB9CkBAIC05NTIsNiAmIzQzOzk1NSw3IEBAIHN0YXRpYyBpbnQgaHdzaW1fYWRkX29uZShzdHJ1Y3QgZ2VubF9pbmZvICppbmZvLCBzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJCWdvdG8gZXJyX3BpYjsKIAl9CiAKJiM0MzsJc3Bpbl9sb2NrX2luaXQoJmFtcDtwaHktJmd0O3BpYl9sb2NrKTsKIAlwaWItJmd0O2NoYW5uZWwgPSAxMzsKIAlwaWItJmd0O2ZpbHQuc2hvcnRfYWRkciA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfQUREUl9CUk9BRENBU1QpOwogCXBpYi0mZ3Q7ZmlsdC5wYW5faWQgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X1BBTklEX0JST0FEQ0FTVCk7CjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzEwIDIwOjE3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIzNDMKCQkJCQkJCW91dHB1dDogNDUKCQkJCQkJCXRob3VnaHRzOiAxNTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgTmV0d29yayBEcml2ZXIgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jYC4gSXQgbG9va3MgbGlrZSB3ZSYjMzk7cmUgaW50cm9kdWNpbmcgYSBzcGlubG9jaywgYHBpYl9sb2NrYCwgd2l0aGluIHRoZSBgc3RydWN0IGh3c2ltX3BoeWAuIFRoZSBpbnRlbnQgaGVyZSBpcyBjbGVhcjogdGhleSYjMzk7cmUgc2VyaWFsaXppbmcgdGhlIHVwZGF0ZXMgdG8gdGhlIGBwaHktJmd0O3BpYmAgZGF0YSBzdHJ1Y3R1cmUgd2l0aGluIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFRoaXMgKmhhcyogdG8gYmUgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgYSBmaXggZm9yIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIGEgcmVsYXRlZCBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gYG1hYzgwMjE1NF9od3NpbWAuCgpTaW5jZSB0aGlzIGlzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB0aGUgYG1hYzgwMjE1NF9od3NpbWAgY29kZSwgSSBjYW4gaW1hZ2luZSB0aGlzIGlzIGxpa2VseSBlbmNvdW50ZXJlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuIEdpdmVuIHRoaXMgZHJpdmVyJiMzOTtzIG5hdHVyZSwgaXRzIHByZXNlbmNlIG5lY2Vzc2l0YXRlcyBtb3JlIHNjcnV0aW55IG9mIHRoZSBjb2RlLgoKQmVmb3JlIGdvaW5nIGRlZXBlciwgSSYjMzk7bGwgY2hlY2sgdGhlIEtjb25maWcgZW50cnkgZm9yIGBtYWM4MDIxNTRfaHdzaW1gLiBXZSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIGJlZm9yZSBkaXZpbmcgaW50byB0aGUgY29kZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bWFjODAyMTU0X2h3c2ltJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMTQ9Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTIyLVx0ICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gVG8gZG8gc28gc2F5IE0gaGVyZS5cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMjM6XHQgIFRoZSBtb2R1bGUgd2lsbCBiZSBjYWxsZWQgJiMzOTttYWM4MDIxNTRfaHdzaW0mIzM5Oy5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyOTEwCgkJCQkJCQlvdXRwdXQ6IDUyCgkJCQkJCQl0aG91Z2h0czogNDIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBicmVha2Rvd24gb2YgbXkgdGhvdWdodCBwcm9jZXNzOgoKKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIFRhcmdldGVkIEZ1bmN0aW9uKioKCk9rYXksIHNvIHRoZSBjdXJyZW50IGNvbmZpZ3VyYXRpb24gaXMgc2V0IHRvIGBJRUVFODAyMTU0X0hXU0lNYC4gVGhhdCBpbW1lZGlhdGVseSBuYXJyb3dzIHRoaW5ncyBkb3duIHNpZ25pZmljYW50bHkuIEkmIzM5O20gd29ya2luZyB3aXRoaW4gYSBoYXJkd2FyZSBzaW11bGF0aW9uIGVudmlyb25tZW50LCBzcGVjaWZpY2FsbHkgZW11bGF0aW5nIHRoZSA4MDIuMTUuNCBzdGFuZGFyZC4gVGhlIGtleSBmdW5jdGlvbiBJJiMzOTttIGxvb2tpbmcgYXQsIHRoZSBvbmUgdGhhdCYjMzk7cyBiZWVuIG1vZGlmaWVkLCBpcyBgaHdzaW1fdXBkYXRlX3BpYmAuIFRoYXQmIzM5O3MgdGhlIFBlcnNvbmFsIEluZm9ybWF0aW9uIEJhc2UsIHNvIHRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHVwZGF0aW5nIHRoZSBzaW11bGF0ZWQgaGFyZHdhcmUmIzM5O3MgaW50ZXJuYWwgcGFyYW1ldGVycywgb3IgUElCIGF0dHJpYnV0ZXMuCgpHaXZlbiB0aGUgc2ltIGNvbnRleHQsIGl0JiMzOTtzIHJlYXNvbmFibGUgdGhhdCBtb2RpZmljYXRpb25zIHRvIHRoaXMgZnVuY3Rpb24gYXJlIHJlbGF0ZWQgdG8gYSByYW5nZSBvZiB0aGluZ3MsIG1heWJlIGEgc3BlY2lmaWMgYXNwZWN0IG9mIHRoZSBIVyBzaW0uCgpMZXQmIzM5O3MgZG8gc29tZSBxdWljayByZXNlYXJjaCB0byBzZWUgaWYgdGhlcmUgYXJlIG90aGVyIGNvbmZpZ3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7aHdzaW1fdXBkYXRlX3BpYiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz04OT1zdGF0aWMgaW50IGh3c2ltX2h3X2VkKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggKmxldmVsKVxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtOTUtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jOjk2OnN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTk3LVx0XHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjE1NF9od19hZGRyX2ZpbHQgKmZpbHQsXG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMjM9c3RhdGljIGludCBod3NpbV9od19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbClcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTEzMC1cdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXHUwMDNlcGliKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM6MTMxOlx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGFnZSwgY2hhbm5lbCwgXHUwMDI2cGliLVx1MDAzZWZpbHQsIHBpYi1cdTAwM2VmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTMyLVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMzc9c3RhdGljIGludCBod3NpbV9od19hZGRyX2ZpbHQoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LFxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ2LVx0cGliID0gcmN1X2RlcmVmZXJlbmNlKHBoeS1cdTAwM2VwaWIpO1xuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxNDc6XHRyZXQgPSBod3NpbV91cGRhdGVfcGliKGh3LCBwaWItXHUwMDNlcGFnZSwgcGliLVx1MDAzZWNoYW5uZWwsIGZpbHQsIHBpYi1cdTAwM2VmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ4LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0zMTI9aHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGUoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCBjb25zdCBib29sIG9uKVxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMzI1LVx0cGliID0gcmN1X2RlcmVmZXJlbmNlKHBoeS1cdTAwM2VwaWIpO1xuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzozMjY6XHRyZXQgPSBod3NpbV91cGRhdGVfcGliKGh3LCBwaWItXHUwMDNlcGFnZSwgcGliLVx1MDAzZWNoYW5uZWwsIFx1MDAyNnBpYi1cdTAwM2VmaWx0LCBmaWx0X2xldmVsKTtcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMzI3LVx0cmN1X3JlYWRfdW5sb2NrKCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDAyOQoJCQkJCQkJb3V0cHV0OiA0NgoJCQkJCQkJdGhvdWdodHM6IDE4OAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIGBod3NpbV91cGRhdGVfcGliYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgdHJhY2luZyB0aGUgdXNlIG9mIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFJpZ2h0IG9mZiB0aGUgYmF0LCBJIHNlZSBpdCYjMzk7cyBjYWxsZWQgZnJvbSB0aHJlZSBvdGhlciBmdW5jdGlvbnM6IGBod3NpbV9od19jaGFubmVsYCwgYGh3c2ltX2h3X2FkZHJfZmlsdGAsIGFuZCBgaHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGVgLiBUaGVzZSBhbGwgc2VlbSB0byBiZSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIGRyaXZlciwgc28gd2UgYXJlIGRlYWxpbmcgd2l0aCB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgZm9yIDgwMi4xNS40LiBNYWtlcyBzZW5zZS4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIHRoZSBwYXRjaCBpdHNlbGYgaW50cm9kdWNlcyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSB1cGRhdGVzIHRvIGBwaHktJmd0O3BpYmAuCgpUaGlzIHNwaW5sb2NrIGlzIGEgZ29vZCBzaWduOyBpdCBpbmRpY2F0ZXMgdGhhdCBjb25jdXJyZW5jeSBpcyBhIGNvbmNlcm4gYW5kIHRoZSBwYXRjaCBpcyBhdHRlbXB0aW5nIHRvIHByb3RlY3Qgc2hhcmVkIGRhdGEuIFRoaXMgbWFrZXMgaXQgYSBncmVhdCBjYW5kaWRhdGUgZm9yIGZ1enppbmcuIFdlIGNhbiB0YXJnZXQgYGh3c2ltX3VwZGF0ZV9waWJgIGRpcmVjdGx5LgoKQmVmb3JlIEkgY29tbWl0IHRvIHRoaXMgYXBwcm9hY2gsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBXaGlsZSBgSUVFRTgwMjE1NF9IV1NJTWAgc2hvdWxkIHByb2JhYmx5IGVpdGhlciBzZWxlY3Qgb3IgZGVwZW5kIG9uIHRoZSBiYXNlIGBJRUVFODAyMTU0YCBjb25maWd1cmF0aW9uLCBJIGRvbiYjMzk7dCB3YW50IHRvIG92ZXJsb29rIGFueSBzdWJ0bGUgZGVwZW5kZW5jaWVzIHRoYXQgbWlnaHQgYmUgbmVlZGVkIHRvIHN1Y2Nlc3NmdWxseSBlbmFibGUgYW5kIHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgZHVyaW5nIGZ1enppbmcuIEFsd2F5cyBhIGdvb2QgaWRlYSB0byBlbnN1cmUgZXZlcnl0aGluZyBpcyBpbiBwbGFjZSBmb3IgYSBwcm9wZXIgdGVzdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMDI9Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExMy1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMTQ6Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMTUtXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcdTAwMjZcdTAwMjYgTUFDODAyMTU0XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTAgMjA6MTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDcyMQoJCQkJCQkJb3V0cHV0OiAxMDYKCQkJCQkJCXRob3VnaHRzOiAxMTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBjaGFuZ2U6CgoqKkFuYWx5emluZyBhIERyaXZlciBDb25maWd1cmF0aW9uIFVwZGF0ZSoqCgpPa2F5LCBzbyB0aGlzIHByb3Bvc2VkIGNoYW5nZSBoaW5nZXMgb24gYSBmZXcgZXhpc3RpbmcgY29tcG9uZW50czogYElFRUU4MDIxNTRfRFJJVkVSU2AgYW5kIGBNQUM4MDIxNTRgLiBJdCYjMzk7cyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBpdCBzZWVtcyB3ZSYjMzk7cmUgYWRkaW5nIGBJRUVFODAyMTU0X0hXU0lNYCB0byBgRW5hYmxlQ29uZmlnc2AuIFRoZSBqdXN0aWZpY2F0aW9uIGlzIGNsZWFyLCBhbmQgaXQgbWFrZXMgcGVyZmVjdCBzZW5zZSBmcm9tIGEgc3lzdGVtcyBwZXJzcGVjdGl2ZS4KClRoZSBjb3JlIG9mIHRoZSBwYXRjaCBhZGRyZXNzZXMgYSByYWNlIGNvbmRpdGlvbiwgc3BlY2lmaWNhbGx5IHdpdGhpbiB0aGUgYG1hYzgwMjE1NF9od3NpbWAgbW9kdWxlLCBhbmQgdGhlIHNvbHV0aW9uIGlzIGEgd2VsbC1lc3RhYmxpc2hlZCBwYXR0ZXJuOiB1c2UgYSBzcGlubG9jayB0byBzZXJpYWxpemUgUHJvcGVydHkgSW5mb3JtYXRpb24gQmFzZSAoUElCKSB1cGRhdGVzLiBHaXZlbiB0aGF0IGBtYWM4MDIxNTRfaHdzaW1gIGlzIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB0aGlzIGlzIGEgZnVuY3Rpb25hbGx5IHNvdW5kIG1vZGlmaWNhdGlvbiwgZWFzaWx5IHRlc3RhYmxlIGluIHZpcnR1YWwgZW52aXJvbm1lbnRzLgoKVGhlcmVmb3JlLCBhZnRlciB0aGUgY2hhbmdlcyBhcmUgY29tcGxldGUsIEkgd2lsbCBjYWxsIHNldC1yZXN1bHRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xMCAyMDoxNzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7SUVFRTgwMjE1NF9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2h3c2ltX3VwZGF0ZV9waWImIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYSByYWNlIGNvbmRpdGlvbiBpbiBtYWM4MDIxNTRfaHdzaW0gYnkgYWRkaW5nIGEgc3BpbmxvY2sgdG8gc2VyaWFsaXplIHBpYiB1cGRhdGVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIsIHdoaWNoIGlzIHJlYWNoYWJsZSBhbmQgdGVzdGFibGUgaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7aHdzaW1fdXBkYXRlX3BpYiYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzoyOC41NDA1NzE3NzlaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjYwMzM4NTY4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaHdzaW1fdXBkYXRlX3BpYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MjguNTQwNTc2OTQ5WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MzkyODE3MDEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCA5YmEwMDExOWQyZmYzNTQ2OTEwYTRiNjlhNDJmODM0MzlkYjEwMjgyXFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBGcmkgSnVsIDEwIDIwOjE3OjI3IDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMgYi9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jXFxuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxcbi0tLSBhL2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmNcXG4rKysgYi9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jXFxuQEAgLTcyLDYgKzcyLDggQEAgc3RydWN0IGh3c2ltX3BoeSB7XFxuIFxcdHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodztcXG4gXFx0dTMyIGlkeDtcXG4gXFxuK1xcdC8qIFNlcmlhbGl6ZXMgcGh5LVxcdTAwM2VwaWJfdXBkYXRlcy4gKi9cXG4rXFx0c3BpbmxvY2tfdCBwaWJfbG9jaztcXG4gXFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xcbiBcXG4gXFx0Ym9vbCBzdXNwZW5kZWQ7XFxuQEAgLTEwMiw4ICsxMDQsNiBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxcbiBcXHRpZiAoIXBpYilcXG4gXFx0XFx0cmV0dXJuIC1FTk9NRU07XFxuIFxcbi1cXHRwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuLVxcbiBcXHRwaWItXFx1MDAzZXBhZ2UgPSBwYWdlO1xcbiBcXHRwaWItXFx1MDAzZWNoYW5uZWwgPSBjaGFubmVsO1xcbiBcXHRwaWItXFx1MDAzZWZpbHQuc2hvcnRfYWRkciA9IGZpbHQtXFx1MDAzZXNob3J0X2FkZHI7XFxuQEAgLTExMiw3ICsxMTIsMTAgQEAgc3RhdGljIGludCBod3NpbV91cGRhdGVfcGliKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbCxcXG4gXFx0cGliLVxcdTAwM2VmaWx0LnBhbl9jb29yZCA9IGZpbHQtXFx1MDAzZXBhbl9jb29yZDtcXG4gXFx0cGliLVxcdTAwM2VmaWx0X2xldmVsID0gZmlsdF9sZXZlbDtcXG4gXFxuLVxcdHJjdV9hc3NpZ25fcG9pbnRlcihwaHktXFx1MDAzZXBpYiwgcGliKTtcXG4rXFx0c3Bpbl9sb2NrX2JoKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4rXFx0cGliX29sZCA9IHJjdV9yZXBsYWNlX3BvaW50ZXIocGh5LVxcdTAwM2VwaWIsIHBpYixcXG4rXFx0XFx0XFx0XFx0ICAgICAgbG9ja2RlcF9pc19oZWxkKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKSk7XFxuK1xcdHNwaW5fdW5sb2NrX2JoKFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4gXFx0a2ZyZWVfcmN1KHBpYl9vbGQsIHJjdSk7XFxuIFxcdHJldHVybiAwO1xcbiB9XFxuQEAgLTk1Miw2ICs5NTUsNyBAQCBzdGF0aWMgaW50IGh3c2ltX2FkZF9vbmUoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywgc3RydWN0IGRldmljZSAqZGV2LFxcbiBcXHRcXHRnb3RvIGVycl9waWI7XFxuIFxcdH1cXG4gXFxuK1xcdHNwaW5fbG9ja19pbml0KFxcdTAwMjZwaHktXFx1MDAzZXBpYl9sb2NrKTtcXG4gXFx0cGliLVxcdTAwM2VjaGFubmVsID0gMTM7XFxuIFxcdHBpYi1cXHUwMDNlZmlsdC5zaG9ydF9hZGRyID0gY3B1X3RvX2xlMTYoSUVFRTgwMjE1NF9BRERSX0JST0FEQ0FTVCk7XFxuIFxcdHBpYi1cXHUwMDNlZmlsdC5wYW5faWQgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X1BBTklEX0JST0FEQ0FTVCk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjI5LjA4MDY2OTcxWiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNjA2MzI3ODcxMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiaHdzaW1fdXBkYXRlX3BpYlwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGEgcmFjZSBjb25kaXRpb24gaW4gbWFjODAyMTU0X2h3c2ltIGJ5IGFkZGluZyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSBwaWIgdXBkYXRlcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGEgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgZHJpdmVyLCB3aGljaCBpcyByZWFjaGFibGUgYW5kIHRlc3RhYmxlIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdFxuICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LFxuICAgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA5YmEwMDExOWQyZmYzNTQ2OTEwYTRiNjlhNDJmODM0MzlkYjEwMjgyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMTAgMjA6MTc6MjcgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuaW5kZXggNmRhYTBmMTk4YjlmYTMuLmE5YmQxNTU1ZDJkYzdjIDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuKysrIGIvZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uY1xuQEAgLTcyLDYgKzcyLDggQEAgc3RydWN0IGh3c2ltX3BoeSB7XG4gXHRzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHc7XG4gXHR1MzIgaWR4O1xuIFxuK1x0LyogU2VyaWFsaXplcyBwaHktXHUwMDNlcGliX3VwZGF0ZXMuICovXG4rXHRzcGlubG9ja190IHBpYl9sb2NrO1xuIFx0c3RydWN0IGh3c2ltX3BpYiBfX3JjdSAqcGliO1xuIFxuIFx0Ym9vbCBzdXNwZW5kZWQ7XG5AQCAtMTAyLDggKzEwNCw2IEBAIHN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXG4gXHRpZiAoIXBpYilcbiBcdFx0cmV0dXJuIC1FTk9NRU07XG4gXG4tXHRwaWJfb2xkID0gcnRubF9kZXJlZmVyZW5jZShwaHktXHUwMDNlcGliKTtcbi1cbiBcdHBpYi1cdTAwM2VwYWdlID0gcGFnZTtcbiBcdHBpYi1cdTAwM2VjaGFubmVsID0gY2hhbm5lbDtcbiBcdHBpYi1cdTAwM2VmaWx0LnNob3J0X2FkZHIgPSBmaWx0LVx1MDAzZXNob3J0X2FkZHI7XG5AQCAtMTEyLDcgKzExMiwxMCBAQCBzdGF0aWMgaW50IGh3c2ltX3VwZGF0ZV9waWIoc3RydWN0IGllZWU4MDIxNTRfaHcgKmh3LCB1OCBwYWdlLCB1OCBjaGFubmVsLFxuIFx0cGliLVx1MDAzZWZpbHQucGFuX2Nvb3JkID0gZmlsdC1cdTAwM2VwYW5fY29vcmQ7XG4gXHRwaWItXHUwMDNlZmlsdF9sZXZlbCA9IGZpbHRfbGV2ZWw7XG4gXG4tXHRyY3VfYXNzaWduX3BvaW50ZXIocGh5LVx1MDAzZXBpYiwgcGliKTtcbitcdHNwaW5fbG9ja19iaChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuK1x0cGliX29sZCA9IHJjdV9yZXBsYWNlX3BvaW50ZXIocGh5LVx1MDAzZXBpYiwgcGliLFxuK1x0XHRcdFx0ICAgICAgbG9ja2RlcF9pc19oZWxkKFx1MDAyNnBoeS1cdTAwM2VwaWJfbG9jaykpO1xuK1x0c3Bpbl91bmxvY2tfYmgoXHUwMDI2cGh5LVx1MDAzZXBpYl9sb2NrKTtcbiBcdGtmcmVlX3JjdShwaWJfb2xkLCByY3UpO1xuIFx0cmV0dXJuIDA7XG4gfVxuQEAgLTk1Miw2ICs5NTUsNyBAQCBzdGF0aWMgaW50IGh3c2ltX2FkZF9vbmUoc3RydWN0IGdlbmxfaW5mbyAqaW5mbywgc3RydWN0IGRldmljZSAqZGV2LFxuIFx0XHRnb3RvIGVycl9waWI7XG4gXHR9XG4gXG4rXHRzcGluX2xvY2tfaW5pdChcdTAwMjZwaHktXHUwMDNlcGliX2xvY2spO1xuIFx0cGliLVx1MDAzZWNoYW5uZWwgPSAxMztcbiBcdHBpYi1cdTAwM2VmaWx0LnNob3J0X2FkZHIgPSBjcHVfdG9fbGUxNihJRUVFODAyMTU0X0FERFJfQlJPQURDQVNUKTtcbiBcdHBpYi1cdTAwM2VmaWx0LnBhbl9pZCA9IGNwdV90b19sZTE2KElFRUU4MDIxNTRfUEFOSURfQlJPQURDQVNUKTtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjI5LjA4MDY3MTU3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDEwMTc3NTY2NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBOZXR3b3JrIERyaXZlciBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jYC4gSXQgbG9va3MgbGlrZSB3ZSdyZSBpbnRyb2R1Y2luZyBhIHNwaW5sb2NrLCBgcGliX2xvY2tgLCB3aXRoaW4gdGhlIGBzdHJ1Y3QgaHdzaW1fcGh5YC4gVGhlIGludGVudCBoZXJlIGlzIGNsZWFyOiB0aGV5J3JlIHNlcmlhbGl6aW5nIHRoZSB1cGRhdGVzIHRvIHRoZSBgcGh5LVx1MDAzZXBpYmAgZGF0YSBzdHJ1Y3R1cmUgd2l0aGluIHRoZSBgaHdzaW1fdXBkYXRlX3BpYmAgZnVuY3Rpb24uIFRoaXMgKmhhcyogdG8gYmUgYSBmdW5jdGlvbmFsIGNoYW5nZSDigJMgYSBmaXggZm9yIGEgcG90ZW50aWFsIHJhY2UgY29uZGl0aW9uIG9yIGEgcmVsYXRlZCBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gYG1hYzgwMjE1NF9od3NpbWAuXG5cblNpbmNlIHRoaXMgaXMgYSBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSBkcml2ZXIsIHRoZSBgbWFjODAyMTU0X2h3c2ltYCBjb2RlLCBJIGNhbiBpbWFnaW5lIHRoaXMgaXMgbGlrZWx5IGVuY291bnRlcmVkIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gR2l2ZW4gdGhpcyBkcml2ZXIncyBuYXR1cmUsIGl0cyBwcmVzZW5jZSBuZWNlc3NpdGF0ZXMgbW9yZSBzY3J1dGlueSBvZiB0aGUgY29kZS5cblxuQmVmb3JlIGdvaW5nIGRlZXBlciwgSSdsbCBjaGVjayB0aGUgS2NvbmZpZyBlbnRyeSBmb3IgYG1hYzgwMjE1NF9od3NpbWAuIFdlIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgYmVmb3JlIGRpdmluZyBpbnRvIHRoZSBjb2RlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjM0MywiT3V0cHV0VG9rZW5zIjo0NSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1NCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjMzLjE4MjQ1MDAyNVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1OTU2MzE2OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWM4MDIxNTRfaHdzaW1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMTQ9Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMjItXFx0ICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gVG8gZG8gc28gc2F5IE0gaGVyZS5cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTIzOlxcdCAgVGhlIG1vZHVsZSB3aWxsIGJlIGNhbGxlZCAnbWFjODAyMTU0X2h3c2ltJy5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MzMuMjQyMDIxMDQzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzMxODkxMDA4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgYnJlYWtkb3duIG9mIG15IHRob3VnaHQgcHJvY2VzczpcblxuKipBbmFseXppbmcgdGhlIENvbmZpZ3VyYXRpb24gYW5kIFRhcmdldGVkIEZ1bmN0aW9uKipcblxuT2theSwgc28gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbiBpcyBzZXQgdG8gYElFRUU4MDIxNTRfSFdTSU1gLiBUaGF0IGltbWVkaWF0ZWx5IG5hcnJvd3MgdGhpbmdzIGRvd24gc2lnbmlmaWNhbnRseS4gSSdtIHdvcmtpbmcgd2l0aGluIGEgaGFyZHdhcmUgc2ltdWxhdGlvbiBlbnZpcm9ubWVudCwgc3BlY2lmaWNhbGx5IGVtdWxhdGluZyB0aGUgODAyLjE1LjQgc3RhbmRhcmQuIFRoZSBrZXkgZnVuY3Rpb24gSSdtIGxvb2tpbmcgYXQsIHRoZSBvbmUgdGhhdCdzIGJlZW4gbW9kaWZpZWQsIGlzIGBod3NpbV91cGRhdGVfcGliYC4gVGhhdCdzIHRoZSBQZXJzb25hbCBJbmZvcm1hdGlvbiBCYXNlLCBzbyB0aGlzIGZ1bmN0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciB1cGRhdGluZyB0aGUgc2ltdWxhdGVkIGhhcmR3YXJlJ3MgaW50ZXJuYWwgcGFyYW1ldGVycywgb3IgUElCIGF0dHJpYnV0ZXMuXG5cbkdpdmVuIHRoZSBzaW0gY29udGV4dCwgaXQncyByZWFzb25hYmxlIHRoYXQgbW9kaWZpY2F0aW9ucyB0byB0aGlzIGZ1bmN0aW9uIGFyZSByZWxhdGVkIHRvIGEgcmFuZ2Ugb2YgdGhpbmdzLCBtYXliZSBhIHNwZWNpZmljIGFzcGVjdCBvZiB0aGUgSFcgc2ltLlxuXG5MZXQncyBkbyBzb21lIHF1aWNrIHJlc2VhcmNoIHRvIHNlZSBpZiB0aGVyZSBhcmUgb3RoZXIgY29uZmlncy5cblxuXG4iLCJJbnB1dFRva2VucyI6MjkxMCwiT3V0cHV0VG9rZW5zIjo1MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjM2LjU2MDkzNDA3NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1ODE3NDI4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJod3NpbV91cGRhdGVfcGliXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz04OT1zdGF0aWMgaW50IGh3c2ltX2h3X2VkKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggKmxldmVsKVxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy05NS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jOjk2OnN0YXRpYyBpbnQgaHdzaW1fdXBkYXRlX3BpYihzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIHU4IHBhZ2UsIHU4IGNoYW5uZWwsXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy05Ny1cXHRcXHRcXHQgICAgc3RydWN0IGllZWU4MDIxNTRfaHdfYWRkcl9maWx0ICpmaWx0LFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYz0xMjM9c3RhdGljIGludCBod3NpbV9od19jaGFubmVsKHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodywgdTggcGFnZSwgdTggY2hhbm5lbClcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTMwLVxcdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxMzE6XFx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGFnZSwgY2hhbm5lbCwgXFx1MDAyNnBpYi1cXHUwMDNlZmlsdCwgcGliLVxcdTAwM2VmaWx0X2xldmVsKTtcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTEzMi1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM9MTM3PXN0YXRpYyBpbnQgaHdzaW1faHdfYWRkcl9maWx0KHN0cnVjdCBpZWVlODAyMTU0X2h3ICpodyxcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmMtMTQ2LVxcdHBpYiA9IHJjdV9kZXJlZmVyZW5jZShwaHktXFx1MDAzZXBpYik7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYzoxNDc6XFx0cmV0ID0gaHdzaW1fdXBkYXRlX3BpYihodywgcGliLVxcdTAwM2VwYWdlLCBwaWItXFx1MDAzZWNoYW5uZWwsIGZpbHQsIHBpYi1cXHUwMDNlZmlsdF9sZXZlbCk7XFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9tYWM4MDIxNTRfaHdzaW0uYy0xNDgtXFx0cmN1X3JlYWRfdW5sb2NrKCk7XFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jPTMxMj1od3NpbV9zZXRfcHJvbWlzY3VvdXNfbW9kZShzdHJ1Y3QgaWVlZTgwMjE1NF9odyAqaHcsIGNvbnN0IGJvb2wgb24pXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTMyNS1cXHRwaWIgPSByY3VfZGVyZWZlcmVuY2UocGh5LVxcdTAwM2VwaWIpO1xcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvbWFjODAyMTU0X2h3c2ltLmM6MzI2OlxcdHJldCA9IGh3c2ltX3VwZGF0ZV9waWIoaHcsIHBpYi1cXHUwMDNlcGFnZSwgcGliLVxcdTAwM2VjaGFubmVsLCBcXHUwMDI2cGliLVxcdTAwM2VmaWx0LCBmaWx0X2xldmVsKTtcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L21hYzgwMjE1NF9od3NpbS5jLTMyNy1cXHRyY3VfcmVhZF91bmxvY2soKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTBUMjA6MTc6MzYuNjE5MTEzNDI0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDM0MzY2NTc0NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBod3NpbV91cGRhdGVfcGliYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIHRyYWNpbmcgdGhlIHVzZSBvZiB0aGUgYGh3c2ltX3VwZGF0ZV9waWJgIGZ1bmN0aW9uLiBSaWdodCBvZmYgdGhlIGJhdCwgSSBzZWUgaXQncyBjYWxsZWQgZnJvbSB0aHJlZSBvdGhlciBmdW5jdGlvbnM6IGBod3NpbV9od19jaGFubmVsYCwgYGh3c2ltX2h3X2FkZHJfZmlsdGAsIGFuZCBgaHdzaW1fc2V0X3Byb21pc2N1b3VzX21vZGVgLiBUaGVzZSBhbGwgc2VlbSB0byBiZSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIGRyaXZlciwgc28gd2UgYXJlIGRlYWxpbmcgd2l0aCB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgZm9yIDgwMi4xNS40LiBNYWtlcyBzZW5zZS4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gb3B0aW9uIGlzIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIHRoZSBwYXRjaCBpdHNlbGYgaW50cm9kdWNlcyBhIHNwaW5sb2NrIHRvIHNlcmlhbGl6ZSB1cGRhdGVzIHRvIGBwaHktXHUwMDNlcGliYC5cblxuVGhpcyBzcGlubG9jayBpcyBhIGdvb2Qgc2lnbjsgaXQgaW5kaWNhdGVzIHRoYXQgY29uY3VycmVuY3kgaXMgYSBjb25jZXJuIGFuZCB0aGUgcGF0Y2ggaXMgYXR0ZW1wdGluZyB0byBwcm90ZWN0IHNoYXJlZCBkYXRhLiBUaGlzIG1ha2VzIGl0IGEgZ3JlYXQgY2FuZGlkYXRlIGZvciBmdXp6aW5nLiBXZSBjYW4gdGFyZ2V0IGBod3NpbV91cGRhdGVfcGliYCBkaXJlY3RseS5cblxuQmVmb3JlIEkgY29tbWl0IHRvIHRoaXMgYXBwcm9hY2gsIEkgbmVlZCB0byBkb3VibGUtY2hlY2sgdGhlIGNvbmZpZ3VyYXRpb24gZGVwZW5kZW5jaWVzLiBXaGlsZSBgSUVFRTgwMjE1NF9IV1NJTWAgc2hvdWxkIHByb2JhYmx5IGVpdGhlciBzZWxlY3Qgb3IgZGVwZW5kIG9uIHRoZSBiYXNlIGBJRUVFODAyMTU0YCBjb25maWd1cmF0aW9uLCBJIGRvbid0IHdhbnQgdG8gb3Zlcmxvb2sgYW55IHN1YnRsZSBkZXBlbmRlbmNpZXMgdGhhdCBtaWdodCBiZSBuZWVkZWQgdG8gc3VjY2Vzc2Z1bGx5IGVuYWJsZSBhbmQgdXNlIHRoaXMgZnVuY3Rpb25hbGl0eSBkdXJpbmcgZnV6emluZy4gQWx3YXlzIGEgZ29vZCBpZGVhIHRvIGVuc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIGZvciBhIHByb3BlciB0ZXN0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MDI5LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTg4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTEwVDIwOjE3OjQwLjk2Mjc4MTM0WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU4Mjc5MzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIklFRUU4MDIxNTRfSFdTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZz0xMDI9Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTEzLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMTQ6Y29uZmlnIElFRUU4MDIxNTRfSFdTSU1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTE1LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzo0MS4wMjEwNjgwMThaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MDI2NDAzNDY4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYW5hbHlzaXMgb2YgdGhpcyBjaGFuZ2U6XG5cbioqQW5hbHl6aW5nIGEgRHJpdmVyIENvbmZpZ3VyYXRpb24gVXBkYXRlKipcblxuT2theSwgc28gdGhpcyBwcm9wb3NlZCBjaGFuZ2UgaGluZ2VzIG9uIGEgZmV3IGV4aXN0aW5nIGNvbXBvbmVudHM6IGBJRUVFODAyMTU0X0RSSVZFUlNgIGFuZCBgTUFDODAyMTU0YC4gSXQncyBwcmV0dHkgc3RyYWlnaHRmb3J3YXJkLCBpdCBzZWVtcyB3ZSdyZSBhZGRpbmcgYElFRUU4MDIxNTRfSFdTSU1gIHRvIGBFbmFibGVDb25maWdzYC4gVGhlIGp1c3RpZmljYXRpb24gaXMgY2xlYXIsIGFuZCBpdCBtYWtlcyBwZXJmZWN0IHNlbnNlIGZyb20gYSBzeXN0ZW1zIHBlcnNwZWN0aXZlLlxuXG5UaGUgY29yZSBvZiB0aGUgcGF0Y2ggYWRkcmVzc2VzIGEgcmFjZSBjb25kaXRpb24sIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIGBtYWM4MDIxNTRfaHdzaW1gIG1vZHVsZSwgYW5kIHRoZSBzb2x1dGlvbiBpcyBhIHdlbGwtZXN0YWJsaXNoZWQgcGF0dGVybjogdXNlIGEgc3BpbmxvY2sgdG8gc2VyaWFsaXplIFByb3BlcnR5IEluZm9ybWF0aW9uIEJhc2UgKFBJQikgdXBkYXRlcy4gR2l2ZW4gdGhhdCBgbWFjODAyMTU0X2h3c2ltYCBpcyBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgdGhpcyBpcyBhIGZ1bmN0aW9uYWxseSBzb3VuZCBtb2RpZmljYXRpb24sIGVhc2lseSB0ZXN0YWJsZSBpbiB2aXJ0dWFsIGVudmlyb25tZW50cy5cblxuVGhlcmVmb3JlLCBhZnRlciB0aGUgY2hhbmdlcyBhcmUgY29tcGxldGUsIEkgd2lsbCBjYWxsIHNldC1yZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0NzIxLCJPdXRwdXRUb2tlbnMiOjEwNiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExNCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xMFQyMDoxNzo0NS4wNDc0NzM3NzZaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo5NjQ2OTQ0NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImh3c2ltX3VwZGF0ZV9waWJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImh3c2ltX3VwZGF0ZV9waWJcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhIHJhY2UgY29uZGl0aW9uIGluIG1hYzgwMjE1NF9od3NpbSBieSBhZGRpbmcgYSBzcGlubG9jayB0byBzZXJpYWxpemUgcGliIHVwZGF0ZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBhIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIGRyaXZlciwgd2hpY2ggaXMgcmVhY2hhYmxlIGFuZCB0ZXN0YWJsZSBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },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-workflowbgnlg[1] Phase: Succeeded StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-10 20:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-10 20:18:27 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2] Phase: Succeeded StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-10 20:18:50 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-10 20:18:27 +0000 UTC FinishedAt: 2026-07-10 20:18:33 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowbgnlg/series-workflowbgnlg-convert-artifact-570331171/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-10 20:18:50 +0000 UTC FinishedAt: 2026-07-10 20:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-10 20:18:50 +0000 UTC FinishedAt: 2026-07-10 20:47: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:*a2cfedea-5752-4ad4-8f0b-aa3ee79beb47,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-workflowbgnlg/series-workflowbgnlg-convert-artifact-570331171/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": "92aa153b-8211-4121-9f99-e7c808ab10df", "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-workflowbgnlg/series-workflowbgnlg-build-action-3250128017/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-10 20:18:50 +0000 UTC FinishedAt: 2026-07-10 20:46:42 +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:*a2cfedea-5752-4ad4-8f0b-aa3ee79beb47,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-workflowbgnlg/series-workflowbgnlg-convert-artifact-570331171/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": "92aa153b-8211-4121-9f99-e7c808ab10df", "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-workflowbgnlg/series-workflowbgnlg-build-action-3250128017/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-10 20:47:02 +0000 UTC FinishedAt: 2026-07-10 20:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-10 20:47:02 +0000 UTC FinishedAt: 2026-07-10 20:47:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-10 20:47:02 +0000 UTC FinishedAt: 2026-07-10 20:47:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-10 20:47:02 +0000 UTC FinishedAt: 2026-07-10 20:47:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.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-workflowbgnlg/series-workflowbgnlg-convert-artifact-4235333210/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-10 20:47:12 +0000 UTC FinishedAt: 2026-07-10 20:49:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-10 20:47:12 +0000 UTC FinishedAt: 2026-07-10 20:49:01 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*92aa153b-8211-4121-9f99-e7c808ab10df,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-workflowbgnlg/series-workflowbgnlg-build-action-3250128017/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-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-10 20:49:08 +0000 UTC FinishedAt: 2026-07-10 20:49:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-10 20:49:08 +0000 UTC FinishedAt: 2026-07-10 20:49:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-10 20:49:08 +0000 UTC FinishedAt: 2026-07-10 21:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-10 20:49:08 +0000 UTC FinishedAt: 2026-07-10 21:18:20 +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:*a2cfedea-5752-4ad4-8f0b-aa3ee79beb47,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-workflowbgnlg/series-workflowbgnlg-convert-artifact-4235333210/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": "8c1417f7-27a9-4095-9223-b279ab36ebbd", "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-workflowbgnlg/series-workflowbgnlg-build-action-1908759358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-10 20:49:08 +0000 UTC FinishedAt: 2026-07-10 21:17:56 +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:*a2cfedea-5752-4ad4-8f0b-aa3ee79beb47,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-workflowbgnlg/series-workflowbgnlg-convert-artifact-4235333210/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": "8c1417f7-27a9-4095-9223-b279ab36ebbd", "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-workflowbgnlg/series-workflowbgnlg-build-action-1908759358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-10 21:18:20 +0000 UTC FinishedAt: 2026-07-10 21:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-10 21:18:20 +0000 UTC FinishedAt: 2026-07-10 21:18:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-10 21:18:20 +0000 UTC FinishedAt: 2026-07-10 21:20:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-10 21:18:20 +0000 UTC FinishedAt: 2026-07-10 21:20:09 +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:*8c1417f7-27a9-4095-9223-b279ab36ebbd,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-workflowbgnlg/series-workflowbgnlg-build-action-1908759358/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-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +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":["hwsim_update_pib"],"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:*92aa153b-8211-4121-9f99-e7c808ab10df,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8c1417f7-27a9-4095-9223-b279ab36ebbd,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-workflowbgnlg/series-workflowbgnlg-build-action-3250128017/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-workflowbgnlg/series-workflowbgnlg-build-action-1908759358/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-10 21:20:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-10 21:20:26 +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":["hwsim_update_pib"],"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-workflowbgnlg/series-workflowbgnlg-convert-artifact-3117003023/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-10 21:20:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-10 21:20:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-10 21:20:19 +0000 UTC FinishedAt: 2026-07-10 21:20:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-10 21:20:30 +0000 UTC FinishedAt: 2026-07-11 00:23:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflowbgnlg[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["hwsim_update_pib"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"23dad2d088dfc82cae1f5a936f8ff7ffebb38dd9","config_name":"upstream-apparmor-kasan.config","enable_configs":["IEEE802154_HWSIM"],"series_id":"2bedaeb2-8feb-420b-a8d3-e2dc6d992060","tree_name":"net-next","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net-next.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-10 21:20:30 +0000 UTC FinishedAt: 2026-07-11 00:23:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*92aa153b-8211-4121-9f99-e7c808ab10df,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*8c1417f7-27a9-4095-9223-b279ab36ebbd,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-workflowbgnlg/series-workflowbgnlg-build-action-3250128017/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-workflowbgnlg/series-workflowbgnlg-build-action-1908759358/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-workflowbgnlg/series-workflowbgnlg-convert-artifact-3117003023/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,}