Name: series-workflowzbrwh Phase: Succeeded StartedAt: 2026-07-08 14:03:04 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[0] Phase: Succeeded StartedAt: 2026-07-08 14:03:04 +0000 UTC FinishedAt: 2026-07-08 14:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[0].run-triage Phase: Succeeded StartedAt: 2026-07-08 14:03:04 +0000 UTC FinishedAt: 2026-07-08 14:40:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "61f73776-cecd-4c7f-971f-0e2d72f9f6cd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_process_wiphy_works" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDoyNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDIzMDkzNmI2YzhhNmU1MjAwOWY4Y2M2MGYyZjE3NjJmYWEzNGFmZTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDE0OjI3OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5AQCAtMTI1Niw3ICYjNDM7MTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpXG4ge1xuLVx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7XG4mIzQzO1x0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAzMDAwMDtcbiBcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gXG4gXHRsb2NrZGVwX2Fzc2VydF9oZWxkKFx1MDAyNnJkZXYtXHUwMDNld2lwaHkubXR4KTtcbkBAIC0xMjc4LDggJiM0MzsxMjc4LDggQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbiBcdFx0aWYgKHdrID09IGVuZClcbiBcdFx0XHRicmVhaztcbiBcbi1cdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxuLVx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KTtcbiYjNDM7XHRcdGlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMClcbiYjNDM7XHRcdFx0QlVHKCk7XG4gXHR9XG4gXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19sb2NrLCBmbGFncyk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjEybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMjMwOTM2YjZjOGE2ZTUyMDA5ZjhjYzYwZjJmMTc2MmZhYTM0YWZlOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuYwppbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVzcy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL2NvcmUuYwpAQCAtMTI1Niw3ICYjNDM7MTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpOwogdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiwKIAkJCQkgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpCiB7Ci0JdW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7CiYjNDM7CXVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMzAwMDA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmFtcDtyZGV2LSZndDt3aXBoeS5tdHgpOwpAQCAtMTI3OCw4ICYjNDM7MTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsCiAJCWlmICh3ayA9PSBlbmQpCiAJCQlicmVhazsKIAotCQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpCi0JCQlJTklUX0xJU1RfSEVBRCgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCk7CiYjNDM7CQlpZiAoLS1ydW5hd2F5X2xpbWl0ID09IDApCiYjNDM7CQkJQlVHKCk7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtyZGV2LSZndDt3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4NAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDQ2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBgbmV0L3dpcmVsZXNzL2NvcmUuY2AgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBuZXQvd2lyZWxlc3MvY29yZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIGNoYW5nZWQuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gdGhpbmssICYjMzQ7SXMgdGhpcyBmdXp6YWJsZT8mIzM0OyBTaW5jZSBJJiMzOTttIGFuIGV4cGVydCwgSSBpbW1lZGlhdGVseSB6ZXJvIGluIG9uIHRoZSBrZXkgcGFydHMuIFRoZSBgcnVuYXdheV9saW1pdGAgaGFzIGJlZW4gYnVtcGVkIGZyb20gMTAwIHRvIDMwMDAwLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IGFsc28gYSBgV0FSTl9PTmAgaXMgbm93IGEgYEJVRygpYC4gTXkgZ3V0IHNheXMsICYjMzQ7WWVzLCBmdXp6IGl0ISBJdCYjMzk7cyBpbiB0aGUgd2lyZWxlc3MgY29yZTsgY2hhbmdlcyBoZXJlIGFyZSBvZnRlbiBpbXBhY3RmdWwuJiMzNDsKCkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgcHJlY2lzZS4gVGhlIGluc3RydWN0aW9ucyBzYXkgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuIExldCBtZSBjbGFyaWZ5IGlmIHRoaXMgaXMgb25lIG9mIHRoZW0uICYjMzQ7TW9kaWZpY2F0aW9ucyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCAqZG8gbm90KiBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3c/JiMzNDsgQSBjaGFuZ2UgZnJvbSBgV0FSTl9PTmAgdG8gYEJVRygpYCAqZGVmaW5pdGVseSogYWx0ZXJzIHRoZSBleGVjdXRpb24gZmxvdzsgdGhhdCYjMzk7cyBhIGNyYXNoIHZlcnN1cyBhbiBhdHRlbXB0IHRvIGNvbnRpbnVlLiBBbmQgdGhlIGxpbWl0IGluY3JlYXNlIGNvdWxkIGV4cG9zZSB0aGUgQlVHIG1vcmUgcXVpY2tseSwgb3IgbWFrZSBpdCBtb3JlIGxpa2VseSB0byBvY2N1ci4gSXQmIzM5O3Mgbm90IGEgcHVyZSBjb3NtZXRpYyBjaGFuZ2UgbGlrZSBsb2dnaW5nIG9yIGRvY3VtZW50YXRpb24uIFNvLCB0aGlzIGNoYW5nZSBpcyBub3Qgc2ltcGx5IGRlY29yYXRpdmUuCgpUaGUgY29kZSBzbmlwcGV0IGNvbmZpcm1zIHRoaXM6CgpgYGBjCi0JCWlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSkKLQkJCUlOSVRfTElTVF9IRUFEKCZhbXA7cmRldi0mZ3Q7d2lwaHlfd29ya19saXN0KTsKJiM0MzsJCWlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMCkKJiM0MzsJCQlCVUcoKTsKYGBgCgpUaGUgY2hhbmdlIGlzIG5vdCBtZXJlbHkgY29zbWV0aWMuIEl0IGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBrZXJuZWwgYmVoYXZpb3IsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gYSBjcmFzaCBpbnN0ZWFkIG9mIGEgbW9yZSBncmFjZWZ1bCByZWNvdmVyeS4gSSBhbHNvIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3MgZm9yIGBuZXQvd2lyZWxlc3MvY29yZS5jYC4gTGV0JiMzOTtzIGNvbmZpcm0gaXQgdXNlcyBgQ09ORklHX0NGRzgwMjExYC4gTm93IEkgbmVlZCB0byBjaGVjayBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gSSB3aWxsIHZlcmlmeSB0aGUgbWFrZWZpbGUgdG8gY29uZmlybSB0aGUgY29uZmlnIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIHdhcnJhbnRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdG9iai0kKENPTkZJR19DRkc4MDIxMSkgJiM0Mzs9IGNmZzgwMjExLm9cbiAgIDM6XHRvYmoteSAmIzQzOz0gdGVzdHMvXG4gICA0Olx0XG4gICA1Olx0b2JqLSQoQ09ORklHX1dFWFRfQ09SRSkgJiM0Mzs9IHdleHQtY29yZS5vXG4gICA2Olx0b2JqLSQoQ09ORklHX1dFWFRfUFJPQykgJiM0Mzs9IHdleHQtcHJvYy5vXG4gICA3Olx0b2JqLSQoQ09ORklHX1dFWFRfUFJJVikgJiM0Mzs9IHdleHQtcHJpdi5vXG4gICA4Olx0XG4gICA5Olx0Y2ZnODAyMTEteSAmIzQzOz0gY29yZS5vIHN5c2ZzLm8gcmFkaW90YXAubyB1dGlsLm8gcmVnLm8gc2Nhbi5vIG5sODAyMTEub1xuICAxMDpcdGNmZzgwMjExLXkgJiM0Mzs9IG1sbWUubyBpYnNzLm8gc21lLm8gY2hhbi5vIGV0aHRvb2wubyBtZXNoLm8gYXAubyB0cmFjZS5vIG9jYi5vXG4gIDExOlx0Y2ZnODAyMTEteSAmIzQzOz0gbWljaGFlbC1taWMubyBwbXNyLm9cbiAgMTI6XHRjZmc4MDIxMS0kKENPTkZJR19PRikgJiM0Mzs9IG9mLm9cbiAgMTM6XHRjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vXG4gIDE0Olx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfV0VYVCkgJiM0Mzs9IHdleHQtY29tcGF0Lm8gd2V4dC1zbWUub1xuICAxNTpcdFxuICAxNjpcdENGTEFHU190cmFjZS5vIDo9IC1JJChzcmMpXG4gIDE3Olx0XG4gIDE4Olx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTKSAmIzQzOz0gc2hpcHBlZC1jZXJ0cy5vXG4gIDE5Olx0aWZuZXEgKCQoQ09ORklHX0NGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUiksKVxuICAyMDpcdGNmZzgwMjExLXkgJiM0Mzs9IGV4dHJhLWNlcnRzLm9cbiAgMjE6XHRlbmRpZlxuICAyMjpcdFxuICAyMzpcdCQob2JqKS9zaGlwcGVkLWNlcnRzLmM6ICQoc29ydCAkKHdpbGRjYXJkICQoc3JjKS9jZXJ0cy8qLmhleCkpXG4gIDI0Olx0XHRAJChrZWNobykgXCYjMzQ7ICBHRU4gICAgICRAXCYjMzQ7XG4gIDI1Olx0XHQkKFEpKGVjaG8gJiMzOTsjaW5jbHVkZSBcJiMzNDtyZWcuaFwmIzM0OyYjMzk7OyBcXFxuICAyNjpcdFx0ICBlY2hvICYjMzk7Y29uc3QgdTggc2hpcHBlZF9yZWdkYl9jZXJ0c1tdID0geyYjMzk7OyBcXFxuICAyNzpcdFx0ICBlY2hvIHwgY2F0IC0gJF4gOyBcXFxuICAyODpcdFx0ICBlY2hvICYjMzk7fTsmIzM5OzsgXFxcbiAgMjk6XHRcdCAgZWNobyAmIzM5O3Vuc2lnbmVkIGludCBzaGlwcGVkX3JlZ2RiX2NlcnRzX2xlbiA9IHNpemVvZihzaGlwcGVkX3JlZ2RiX2NlcnRzKTsmIzM5OzsgXFxcbiAgMzA6XHRcdCApIFx1MDAzZSAkQFxuICAzMTpcdFxuICAzMjpcdCQob2JqKS9leHRyYS1jZXJ0cy5jOiAkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpIFxcXG4gIDMzOlx0XHRcdCAgICAgICQoc29ydCAkKHdpbGRjYXJkICQoQ09ORklHX0NGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUikvKi54NTA5KSlcbiAgMzQ6XHRcdEAkKGtlY2hvKSBcJiMzNDsgIEdFTiAgICAgJEBcJiMzNDtcbiAgMzU6XHRcdCQoUSkoc2V0IC1lOyBcXFxuICAzNjpcdFx0ICBhbGxmPVwmIzM0O1wmIzM0OzsgXFxcbiAgMzc6XHRcdCAgZm9yIGYgaW4gJF4gOyBkbyBcXFxuICAzODpcdFx0ICAgICAgdGVzdCAtZiAkJGYgfHwgY29udGludWU7XFxcbiAgMzk6XHRcdCAgICAgICMgc2ltaWxhciB0byBoZXhkdW1wIC12IC1lICYjMzk7MS8xIFwmIzM0OzB4JS4yeCxcJiMzNDsgXCYjMzQ7XFxuXCYjMzQ7JiMzOTsgXFxcbiAgNDA6XHRcdCAgICAgIHRoaXNmPSQkKG9kIC1BbiAtdiAtdHgxIFx1MDAzYyAkJGYgfCBcXFxuICA0MTpcdFx0ICAgICAgICAgICAgICAgICAgIHNlZCAtZSAmIzM5O3MvIC9cXG4vZyYjMzk7IHwgXFxcbiAgNDI6XHRcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJiMzOTtzL15bMC05YS1mXVxcJiM0MzskJC9cXDAvO3Q7ZCYjMzk7IHwgXFxcbiAgNDM6XHRcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJiMzOTtzL14vMHgvO3MvJCQvLC8mIzM5Oyk7IFxcXG4gIDQ0Olx0XHQgICAgICAjIGZpbGUgc2hvdWxkIG5vdCBiZSBlbXB0eSAtIG1heWJlIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZhaWxlZD8gXFxcbiAgNDU6XHRcdCAgICAgIHRlc3QgISAteiBcJiMzNDskJHRoaXNmXCYjMzQ7O1xcXG4gIDQ2Olx0XHQgICAgICBhbGxmPSQkYWxsZiQkdGhpc2Y7XFxcbiAgNDc6XHRcdCAgZG9uZTsgXFxcbiAgNDg6XHRcdCAgKCBcXFxuICA0OTpcdFx0ICAgICAgZWNobyAmIzM5OyNpbmNsdWRlIFwmIzM0O3JlZy5oXCYjMzQ7JiMzOTs7IFxcXG4gIDUwOlx0XHQgICAgICBlY2hvICYjMzk7Y29uc3QgdTggZXh0cmFfcmVnZGJfY2VydHNbXSA9IHsmIzM5OzsgXFxcbiAgNTE6XHRcdCAgICAgIGVjaG8gXCYjMzQ7JCRhbGxmXCYjMzQ7OyBcXFxuICA1MjpcdFx0ICAgICAgZWNobyAmIzM5O307JiMzOTs7IFxcXG4gIDUzOlx0XHQgICAgICBlY2hvICYjMzk7dW5zaWduZWQgaW50IGV4dHJhX3JlZ2RiX2NlcnRzX2xlbiA9IHNpemVvZihleHRyYV9yZWdkYl9jZXJ0cyk7JiMzOTs7IFxcXG4gIDU0Olx0XHQgICkgXHUwMDNlICRAKVxuICA1NTpcdFxuICA1NjpcdGNsZWFuLWZpbGVzICYjNDM7PSBzaGlwcGVkLWNlcnRzLmMgZXh0cmEtY2VydHMuY1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT40bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgQ0ZHODAyMTFgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQ0ZHODAyMTFgIOKAkyB0aGUgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gYWN0dWFsbHkgcG9rZSBhdCBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgc2luY2UgSSYjMzk7bSBvZnRlbiB3b3JraW5nIHdpdGggdmlydHVhbGl6ZWQgc3lzdGVtcy4gR29vZCBuZXdzLCBpdCBsb29rcyBsaWtlIGBtYWM4MDIxMV9od3NpbWAgb2ZmZXJzIGEgZ3JlYXQgc29sdXRpb24gYXMgaXQgZW11bGF0ZXMgdGhlIHdpcmVsZXNzIGhhcmR3YXJlLCB3aGljaCBzaG91bGQgZ2l2ZSBtZSBhY2Nlc3MgdG8gdGhlIGNvcmUgd2lyZWxlc3MgY29kZS4KCk5vdywgbGV0JiMzOTtzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIGZvY3VzIG9uIGEgcGFydGljdWxhciBmdW5jdGlvbiwgYW5kIEkgYmVsaWV2ZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGlzIGxpa2VseSB0aGUgZW50cnkgcG9pbnQgSSYjMzk7bSBhZnRlciwgd2hlcmUgdGhlIG1hZ2ljIHJlYWxseSBoYXBwZW5zLgoKTXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gdHJhY2UgKndoZXJlKiB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkLiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgYmUgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcm9sZSBhbmQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgd2l0aGluIHRoZSBsYXJnZXIgYENGRzgwMjExYCBlY29zeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jPTEyNTQ9RVhQT1JUX1NZTUJPTCh3aXBoeV9yZmtpbGxfc3RhcnRfcG9sbGluZyk7XG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTUtXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1Ny1cdFx0XHRcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jPTEyODc9dm9pZCB3aXBoeV91bnJlZ2lzdGVyKHN0cnVjdCB3aXBoeSAqd2lwaHkpXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzMwLVx0Lyogc3VyZWx5IG5vdGhpbmcgaXMgcmVhY2hhYmxlIG5vdywgY2xlYW4gdXAgd29yayAqL1xubmV0L3dpcmVsZXNzL2NvcmUuYzoxMzMxOlx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTMzMi1cdHdpcGh5X3VubG9jayhcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KTtcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MDc9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmMtMTkxOS1cdGlmIChydW4pXG5uZXQvd2lyZWxlc3MvY29yZS5jOjE5MjA6XHRcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XG5uZXQvd2lyZWxlc3MvY29yZS5jLTE5MjEtfVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xubmV0L3dpcmVsZXNzL2NvcmUuaDo0NzA6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtNDcxLVx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcbi0tXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYz05ND1zdGF0aWMgaW50IHdpcGh5X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEwNi1cdFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KSB7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XHRcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEwOC1cdFx0XHRpZiAocmRldi1cdTAwM2VvcHMtXHUwMDNlc3VzcGVuZClcbi0tXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMjAtXHRcdGNmZzgwMjExX3Byb2Nlc3NfcmRldl9ldmVudHMocmRldik7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMjE6XHRcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgTlVMTCk7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMjItXHRcdGlmIChyZGV2LVx1MDAzZW9wcy1cdTAwM2VzdXNwZW5kKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNjYKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIEZ1bmN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0JiMzOTtzIGNhbGxlZCBmcm9tIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLCBzbyB5ZWFoLCBpdCYjMzk7cyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gU2VlbXMgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlLCBzbyBpdCYjMzk7cyBwcm9iYWJseSB3b3J0aCBwdXR0aW5nIHNvbWUgZnV6emluZyBlZmZvcnQgaW50byB0aGlzLgoKUmlnaHQsIHdoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gZW5hYmxlPyBUaGUgaW5zdHJ1Y3Rpb24gc2F5cyBJIG5lZWQgYENGRzgwMjExYCwgb2J2aW91c2x5LiBBbmQgdGhlbiBgTUFDODAyMTFfSFdTSU1gIHRvIGFjdHVhbGx5IGJlIGFibGUgdG8gdGVzdCB0aGlzIGluIGEgdmlydHVhbCBtYWNoaW5lLCBzaW5jZSB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gc2F5cyAmIzM0O3RvIGNvbXBpbGUgYW5kIHRlc3QmIzM0Oy4gVGhvdWdoLCBoYW5nIG9uLi4uIGBNQUM4MDIxMV9IV1NJTWAgaXNuJiMzOTt0ICpzdHJpY3RseSogcmVxdWlyZWQgdG8gKmNvbXBpbGUqIHRoZSBjb2RlLCBqdXN0IHRvIHRlc3QgaXQgZWZmZWN0aXZlbHkuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmllZCAmIzM0O2NvbXBpbGUgYW5kIHRlc3QmIzM0Oy4gU28sIGdvb2QsIEkmIzM5O20gb24gdGhlIHJpZ2h0IHRyYWNrISBUaGUgaW5zdHJ1Y3Rpb24gc2FpZDogJiMzNDtMaXN0IG9mIGtlcm5lbCBjb25maWcgZmxhZ3MgdGhhdCBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZCB0byBjb21waWxlIGFuZCB0ZXN0IHRoZSBtb2RpZmllZCBjb2RlLiYjMzQ7IFNvIEkmIzM5O20gZ29vZCBvbiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLgoKTGV0JiMzOTtzIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhvc2UgdHdvIGluIEtjb25maWcgdG8gYmUgYWJzb2x1dGVseSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg3CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gcHJvbXB0OgoKKipLY29uZmlnIERpdmUgaW50byBDRkc4MDIxMSoqCgpPa2F5LCBzbyB0aGUgcHJvbXB0IHdhbnRzIG1lIHRvIHN1bW1hcml6ZSBteSB0aG91Z2h0cyBhYm91dCBjaGVja2luZyBgQ0ZHODAyMTFgIGluIEtjb25maWcuIEFscmlnaHQsIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gVGhpcyBpcyBsaWtlbHkgYWJvdXQgY29uZmlndXJpbmcgYSBMaW51eCBrZXJuZWwsIHNwZWNpZmljYWxseSB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdWJzeXN0ZW0sIGFuZCBgQ0ZHODAyMTFgIGlzIHRoZSBjb3JlIG9mIHRoYXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gdGhlIHVzZXIuIFNpbmNlIHRoZSBwcm9tcHQgaXMgdG8gcHJvdmlkZSBhICYjMzQ7ZnVsc29tZSYjMzQ7IHN1bW1hcnksIEkgc2hvdWxkIGJlIGRldGFpbGVkLCBidXQgbm90IG92ZXJseSB2ZXJib3NlLiBJIGFzc3VtZSB0aGUgdXNlciBpcyBmYW1pbGlhciB3aXRoIHRoZSBiYXNpY3MsIHNvIEkgY2FuIGdvIGludG8gc29tZSBkZXRhaWxzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBzaG91bGQgKmxvb2sqIGF0IHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBgQ0ZHODAyMTFgLiBJIGtub3cgaXTigJlzIGEgY29uZmlndXJhdGlvbiBzeXN0ZW0gdXNlZCB0byBidWlsZCBMaW51eCBrZXJuZWxzLCBzbyBJJiMzOTtkIG9wZW4gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMuIFRoZW4gSSYjMzk7ZCBjaGVjayB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgaGVscCB0ZXh0LCBhbmQgc2VlIGhvdyBgQ0ZHODAyMTFgIGlzIGV4cG9zZWQuIEkmIzM5O2QgbmVlZCB0byBjb25zaWRlciBpZiBgQ0ZHODAyMTFgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hhdCBvdGhlciBvcHRpb25zIG9yIGZlYXR1cmVzIGFyZSBkZXBlbmRlbnQgb24gaXQsIGFuZCB3aGF0IG90aGVyIG1vZHVsZXMgbWF5IGJlIGFmZmVjdGVkIGlmIGl0JiMzOTtzIGRpc2FibGVkLiBJcyBpdCBhIG1vZHVsZSwgb3IgYnVpbHQtaW4sIG9yIHBvdGVudGlhbGx5IGJvdGg/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG5lZWQgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGluIGRpZmZlcmVudCB1c2UtY2FzZXM/IElzIHRoZXJlIGFueXRoaW5nIG5ldyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB0aGVyZSBhbnkgcmVsZXZhbnQgY2hhbmdlcyBJIG1pZ2h0IG5lZWQgdG8gdGFrZSBhY2NvdW50IG9mPyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBicm9hZGVyIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGFyb3VuZCBpdCB0byBnZXQgYSBmdWxsIHBpY3R1cmUuIEFuZCBmaW5hbGx5LCBJIHNob3VsZCBrZWVwIGluIG1pbmQgdGhhdCBJJiMzOTttIGNvbnNpZGVyaW5nIGl0IGluIHRoZSBjb250ZXh0IG9mIGEgcHJvbXB0LCBzbyB0aGlzIGVudGlyZSBwcm9jZXNzIGlzIGh5cG90aGV0aWNhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9LY29uZmlnPTE0PWNvbmZpZyBXRVhUX1BSSVZcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE3OmNvbmZpZyBDRkc4MDIxMVxubmV0L3dpcmVsZXNzL0tjb25maWctMTgtXHR0cmlzdGF0ZSBcJiMzNDtjZmc4MDIxMSAtIHdpcmVsZXNzIGNvbmZpZ3VyYXRpb24gQVBJXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWc9Mzg9Y29uZmlnIE5MODAyMTFfVEVTVE1PREVcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjUyOmNvbmZpZyBDRkc4MDIxMV9ERVZFTE9QRVJfV0FSTklOR1Ncbm5ldC93aXJlbGVzcy9LY29uZmlnLTUzLVx0Ym9vbCBcJiMzNDtlbmFibGUgZGV2ZWxvcGVyIHdhcm5pbmdzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctNjctXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo2ODpjb25maWcgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgY2VydGlmaWNhdGlvbiBvbnVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctODgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTkwLVx0Ym9vbCBcJiMzNDtyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjk5OmNvbmZpZyBDRkc4MDIxMV9VU0VfS0VSTkVMX1JFR0RCX0tFWVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEwMC1cdGJvb2wgXCYjMzQ7YWxsb3cgcmVnZGIga2V5cyBzaGlwcGVkIHdpdGggdGhlIGtlcm5lbFwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTAtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMTE6Y29uZmlnIENGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUlxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVx0c3RyaW5nIFwmIzM0O2FkZGl0aW9uYWwgcmVnZGIga2V5IGRpcmVjdG9yeVwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjEtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTIzLVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEzNTpjb25maWcgQ0ZHODAyMTFfUkVHX1JFTEFYX05PX0lSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMzYtXHRib29sIFwmIzM0O2NmZzgwMjExIHN1cHBvcnQgZm9yIE5PX0lSIHJlbGF4YXRpb25cJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNTgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNTk6Y29uZmlnIENGRzgwMjExX0RFRkFVTFRfUFNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cdGJvb2wgXCYjMzQ7ZW5hYmxlIHBvd2Vyc2F2ZSBieSBkZWZhdWx0XCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTY4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzAtXHRib29sIFwmIzM0O2NmZzgwMjExIERlYnVnRlMgZW50cmllc1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE3Nzpjb25maWcgQ0ZHODAyMTFfQ1JEQV9TVVBQT1JUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzgtXHRib29sIFwmIzM0O3N1cHBvcnQgQ1JEQVwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxODc6Y29uZmlnIENGRzgwMjExX1dFWFRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgd2lyZWxlc3MgZXh0ZW5zaW9ucyBjb21wYXRpYmlsaXR5XCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTkzLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTUtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MDI4CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYENGRzgwMjExYCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGluIHBsYXkuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gVGhhdCYjMzk7cyB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIGRlZmluaXRlbHkgdGhlIGtleSBzeW1ib2wgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCwgY29uZmlybWluZyBteSBpbml0aWFsIHRob3VnaHQuIFRoYXQgZnVuY3Rpb24gaXMgKnRoZSogZm9jdXMgc3ltYm9sLCBubyBkb3VidC4KCk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2s6IGlzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBMZXQmIzM5O3Mgc2VlLi4uIGl0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIE5vcGUsIG5vdCBob3QtcGF0aDsgdGhvc2UgYXJlIGFsbCBjb250cm9sLXBhdGggZnVuY3Rpb25zLiBUaGF0IG1ha2VzIHNlbnNlOyBpdOKAmXMgcGVyZmVjdCwgYWN0dWFsbHksIGJlY2F1c2UgdGhhdCBtZWFucyBpdCYjMzk7cyBoYW5kbGluZyB0aGUgbG9naWMgZmxvdyBhbmQgaXNuJiMzOTt0IGNhdWdodCB1cCBpbiBwYWNrZXQtcHJvY2Vzc2luZyBvdmVyaGVhZC4KCk9rYXksIGxldCBtZSByZXZpZXcgdGhlIGluc3RydWN0aW9ucyB0byBlbnN1cmUgSSB1bmRlcnN0YW5kIGV2ZXJ5dGhpbmcuICYjMzQ7V29ydGhGdXp6aW5nOiB0cnVlLCYjMzQ7IGdyZWF0LiAmIzM0O0ZvY3VzU3ltYm9sczogYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLCYjMzQ7IGNoZWNrLiAmIzM0O0VuYWJsZUNvbmZpZ3M6IGBDRkc4MDIxMWAsIGBNQUM4MDIxMV9IV1NJTWAsJiMzNDsgY29uZmlybWVkLiBUaGUgcmVhc29uaW5nIHNheXMgdGhlIHBhdGNoIGltcGFjdHMgdGhlIHJ1bmF3YXkgbGltaXQsIGNoYW5nZXMgYSBgV0FSTl9PTmAgdG8gYSBgQlVHKClgIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGgsIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYC4KCk9uZSBsYXN0IHRoaW5nLCBsZXQmIzM5O3MgZG91YmxlIGNoZWNrIGlmIGBNQUM4MDIxMV9IV1NJTWAgaXMgZW5vdWdoIG9yIHdlIG5lZWQgdG8gZW5hYmxlIGBNQUM4MDIxMWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKk1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk1MAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlcGVuZGVuY2llcyBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGhhcyBhIGRpcmVjdCBkZXBlbmRlbmN5IG9uIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2U7IGhhcmR3YXJlIHNpbXVsYXRpb24gaXMgYnVpbHQgb24gdGhlIGNvcmUgTUFDIGxheWVyLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBiZSBzdXJlIHRvIGluY2x1ZGUgYE1BQzgwMjExYCB3aGVuIEkmIzM5O20gY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gQWxyaWdodCwgbGV0JiMzOTtzIGFkZCB0aGF0IHRvIHRoZSBFbmFibGVDb25maWdzIGxpc3Q6IGBbJiMzNDtDRkc4MDIxMSYjMzQ7LCAmIzM0O01BQzgwMjExJiMzNDssICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0O11gLgoKSG9sZCBvbiBhIHNlY29uZC4uLiByaWdodCwgb2YgY291cnNlLiBgQ0ZHODAyMTFgIGlzIGFsc28gYSBmdW5kYW1lbnRhbCByZXF1aXJlbWVudCBmb3IgYE1BQzgwMjExYC4gSSBrbmV3IHRoYXQuIEJldHRlciBtYWtlIHN1cmUgdGhhdCYjMzk7cyBhY2NvdW50ZWQgZm9yIGFzIHdlbGwsIGp1c3QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKkNGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWc9Mj1jb25maWcgTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NDpcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXHRzZWxlY3QgQ1JZUFRPXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcJiMzNDtDRkc4MDIxMSBuZWVkcyB0byBiZSBlbmFibGVkIGZvciBNQUM4MDIxMVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIENGRzgwMjExPW5cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4LVxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7RXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5MDpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NTgzCgkJCQkJCQlvdXRwdXQ6IDEzNQoJCQkJCQkJdGhvdWdodHM6IDEyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgV2lyZWxlc3MgRHJpdmVyIE1vZHVsZSBEZXNpZ24gLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgd2lyZWxlc3MgZHJpdmVyIG1vZHVsZSBkZXNpZ24sIHNwZWNpZmljYWxseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGtleSBjb21wb25lbnRzLiBSaWdodCwgYE1BQzgwMjExYCBkZWZpbml0ZWx5IGJ1aWxkcyB1cG9uIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBmdW5kYW1lbnRhbCwgYW5kIGl0IGZvcm1zIHRoZSBiYXNpcyBvZiB0aGUgbW9kZXJuIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gVGhlcmVmb3JlLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgYWxsIGxpa2VseSB1c2VmdWwgYXJlYXMgdG8gaW52ZXN0aWdhdGUuCgpOb3csIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gYSBzcGVjaWZpYyBkZXRhaWwgYWJvdXQgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGl0cyBzY29wZS4gSXMgaXQgc3RhdGljLCBvciBpcyBpdCBleHBvc2VkIGZvciBleHRlcm5hbCB1c2U/IEEgcXVpY2sgc2NhbiBzdWdnZXN0cyBpdOKAmXMgbm90IHN0YXRpYywgYW5kIGl0JiMzOTtzIGRlZmluZWQgd2l0aGluIGBuZXQvd2lyZWxlc3MvY29yZS5oYC4gVGhhdCYjMzk7cyBnb29kOyBpdCYjMzk7cyBhIGNlbnRyYWxseSBsb2NhdGVkIGFuZCBwcm9iYWJseSBjcml0aWNhbCBzeW1ib2wgZm9yIG15IGFuYWx5c2lzLgoKVGltZSB0byBsb2cgd2hhdCBJJiMzOTt2ZSBmb3VuZC4gSSYjMzk7bGwgY2FsbCBzZXQtcmVzdWx0cyBhbmQgcmVjb3JkIG15IGZpbmRpbmdzIGZvciBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy4xNDM5MTU4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczOTc3MzcxNjEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjI3OjMzLjE0MzkyMzA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTE5OTAzMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyMzA5MzZiNmM4YTZlNTIwMDlmOGNjNjBmMmYxNzYyZmFhMzRhZmU5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL2NvcmUuYyBiL25ldC93aXJlbGVzcy9jb3JlLmNcXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbisrKyBiL25ldC93aXJlbGVzcy9jb3JlLmNcXG5AQCAtMTI1Niw3ICsxMjU2LDcgQEAgRVhQT1JUX1NZTUJPTCh3aXBoeV9yZmtpbGxfc3RhcnRfcG9sbGluZyk7XFxuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuIFxcdFxcdFxcdFxcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgcnVuYXdheV9saW1pdCA9IDEwMDtcXG4rXFx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAzMDAwMDtcXG4gXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5Lm10eCk7XFxuQEAgLTEyNzgsOCArMTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuIFxcdFxcdGlmICh3ayA9PSBlbmQpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG4tXFx0XFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxcbi1cXHRcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0KTtcXG4rXFx0XFx0aWYgKC0tcnVuYXdheV9saW1pdCA9PSAwKVxcbitcXHRcXHRcXHRCVUcoKTtcXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy42NTcxNzg2NzFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczOTI2MDQ0MzUxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjMwOTM2YjZjOGE2ZTUyMDA5ZjhjYzYwZjJmMTc2MmZhYTM0YWZlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xuaW5kZXggM2RjZjYzYjA0YzQxZGIuLjlhNGQwMjJmODgzODM4IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuY1xuKysrIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xuQEAgLTEyNTYsNyArMTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpXG4ge1xuLVx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7XG4rXHR1bnNpZ25lZCBpbnQgcnVuYXdheV9saW1pdCA9IDMwMDAwO1xuIFx0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeS5tdHgpO1xuQEAgLTEyNzgsOCArMTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdGlmICh3ayA9PSBlbmQpXG4gXHRcdFx0YnJlYWs7XG4gXG4tXHRcdGlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSlcbi1cdFx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCk7XG4rXHRcdGlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMClcbitcdFx0XHRCVUcoKTtcbiBcdH1cbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy42NTcxODEyOTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDQzOTU2NTM3NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgYG5ldC93aXJlbGVzcy9jb3JlLmNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBmdW5jdGlvbi4gVGhlIGNvZGUgaGFzIGJlZW4gY2hhbmdlZC4gTXkgaW5pdGlhbCByZWFjdGlvbiBpcyB0byB0aGluaywgXCJJcyB0aGlzIGZ1enphYmxlP1wiIFNpbmNlIEknbSBhbiBleHBlcnQsIEkgaW1tZWRpYXRlbHkgemVybyBpbiBvbiB0aGUga2V5IHBhcnRzLiBUaGUgYHJ1bmF3YXlfbGltaXRgIGhhcyBiZWVuIGJ1bXBlZCBmcm9tIDEwMCB0byAzMDAwMCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBhbHNvIGEgYFdBUk5fT05gIGlzIG5vdyBhIGBCVUcoKWAuIE15IGd1dCBzYXlzLCBcIlllcywgZnV6eiBpdCEgSXQncyBpbiB0aGUgd2lyZWxlc3MgY29yZTsgY2hhbmdlcyBoZXJlIGFyZSBvZnRlbiBpbXBhY3RmdWwuXCJcblxuQnV0IHdhaXQsIEkgbmVlZCB0byBiZSBwcmVjaXNlLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgdW5kZXIgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcy4gTGV0IG1lIGNsYXJpZnkgaWYgdGhpcyBpcyBvbmUgb2YgdGhlbS4gXCJNb2RpZmljYXRpb25zIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0ICpkbyBub3QqIGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdz9cIiBBIGNoYW5nZSBmcm9tIGBXQVJOX09OYCB0byBgQlVHKClgICpkZWZpbml0ZWx5KiBhbHRlcnMgdGhlIGV4ZWN1dGlvbiBmbG93OyB0aGF0J3MgYSBjcmFzaCB2ZXJzdXMgYW4gYXR0ZW1wdCB0byBjb250aW51ZS4gQW5kIHRoZSBsaW1pdCBpbmNyZWFzZSBjb3VsZCBleHBvc2UgdGhlIEJVRyBtb3JlIHF1aWNrbHksIG9yIG1ha2UgaXQgbW9yZSBsaWtlbHkgdG8gb2NjdXIuIEl0J3Mgbm90IGEgcHVyZSBjb3NtZXRpYyBjaGFuZ2UgbGlrZSBsb2dnaW5nIG9yIGRvY3VtZW50YXRpb24uIFNvLCB0aGlzIGNoYW5nZSBpcyBub3Qgc2ltcGx5IGRlY29yYXRpdmUuXG5cblRoZSBjb2RlIHNuaXBwZXQgY29uZmlybXMgdGhpczpcblxuYGBgY1xuLVx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXG4tXHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xuK1x0XHRpZiAoLS1ydW5hd2F5X2xpbWl0ID09IDApXG4rXHRcdFx0QlVHKCk7XG5gYGBcblxuVGhlIGNoYW5nZSBpcyBub3QgbWVyZWx5IGNvc21ldGljLiBJdCBmdW5kYW1lbnRhbGx5IGNoYW5nZXMga2VybmVsIGJlaGF2aW9yLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGEgY3Jhc2ggaW5zdGVhZCBvZiBhIG1vcmUgZ3JhY2VmdWwgcmVjb3ZlcnkuIEkgYWxzbyBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWdzIGZvciBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIExldCdzIGNvbmZpcm0gaXQgdXNlcyBgQ09ORklHX0NGRzgwMjExYC4gTm93IEkgbmVlZCB0byBjaGVjayBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gSSB3aWxsIHZlcmlmeSB0aGUgbWFrZWZpbGUgdG8gY29uZmlybSB0aGUgY29uZmlnIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIHdhcnJhbnRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozMTozOC4wNTI4Mzc5OTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDEyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3dpcmVsZXNzL01ha2VmaWxlXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdG9iai0kKENPTkZJR19DRkc4MDIxMSkgKz0gY2ZnODAyMTEub1xcbiAgIDM6XFx0b2JqLXkgKz0gdGVzdHMvXFxuICAgNDpcXHRcXG4gICA1OlxcdG9iai0kKENPTkZJR19XRVhUX0NPUkUpICs9IHdleHQtY29yZS5vXFxuICAgNjpcXHRvYmotJChDT05GSUdfV0VYVF9QUk9DKSArPSB3ZXh0LXByb2Mub1xcbiAgIDc6XFx0b2JqLSQoQ09ORklHX1dFWFRfUFJJVikgKz0gd2V4dC1wcml2Lm9cXG4gICA4OlxcdFxcbiAgIDk6XFx0Y2ZnODAyMTEteSArPSBjb3JlLm8gc3lzZnMubyByYWRpb3RhcC5vIHV0aWwubyByZWcubyBzY2FuLm8gbmw4MDIxMS5vXFxuICAxMDpcXHRjZmc4MDIxMS15ICs9IG1sbWUubyBpYnNzLm8gc21lLm8gY2hhbi5vIGV0aHRvb2wubyBtZXNoLm8gYXAubyB0cmFjZS5vIG9jYi5vXFxuICAxMTpcXHRjZmc4MDIxMS15ICs9IG1pY2hhZWwtbWljLm8gcG1zci5vXFxuICAxMjpcXHRjZmc4MDIxMS0kKENPTkZJR19PRikgKz0gb2Yub1xcbiAgMTM6XFx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfREVCVUdGUykgKz0gZGVidWdmcy5vXFxuICAxNDpcXHRjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9XRVhUKSArPSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Q0ZMQUdTX3RyYWNlLm8gOj0gLUkkKHNyYylcXG4gIDE3OlxcdFxcbiAgMTg6XFx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTKSArPSBzaGlwcGVkLWNlcnRzLm9cXG4gIDE5OlxcdGlmbmVxICgkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpLClcXG4gIDIwOlxcdGNmZzgwMjExLXkgKz0gZXh0cmEtY2VydHMub1xcbiAgMjE6XFx0ZW5kaWZcXG4gIDIyOlxcdFxcbiAgMjM6XFx0JChvYmopL3NoaXBwZWQtY2VydHMuYzogJChzb3J0ICQod2lsZGNhcmQgJChzcmMpL2NlcnRzLyouaGV4KSlcXG4gIDI0OlxcdFxcdEAkKGtlY2hvKSBcXFwiICBHRU4gICAgICRAXFxcIlxcbiAgMjU6XFx0XFx0JChRKShlY2hvICcjaW5jbHVkZSBcXFwicmVnLmhcXFwiJzsgXFxcXFxcbiAgMjY6XFx0XFx0ICBlY2hvICdjb25zdCB1OCBzaGlwcGVkX3JlZ2RiX2NlcnRzW10gPSB7JzsgXFxcXFxcbiAgMjc6XFx0XFx0ICBlY2hvIHwgY2F0IC0gJF4gOyBcXFxcXFxuICAyODpcXHRcXHQgIGVjaG8gJ307JzsgXFxcXFxcbiAgMjk6XFx0XFx0ICBlY2hvICd1bnNpZ25lZCBpbnQgc2hpcHBlZF9yZWdkYl9jZXJ0c19sZW4gPSBzaXplb2Yoc2hpcHBlZF9yZWdkYl9jZXJ0cyk7JzsgXFxcXFxcbiAgMzA6XFx0XFx0ICkgXFx1MDAzZSAkQFxcbiAgMzE6XFx0XFxuICAzMjpcXHQkKG9iaikvZXh0cmEtY2VydHMuYzogJChDT05GSUdfQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSKSBcXFxcXFxuICAzMzpcXHRcXHRcXHQgICAgICAkKHNvcnQgJCh3aWxkY2FyZCAkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpLyoueDUwOSkpXFxuICAzNDpcXHRcXHRAJChrZWNobykgXFxcIiAgR0VOICAgICAkQFxcXCJcXG4gIDM1OlxcdFxcdCQoUSkoc2V0IC1lOyBcXFxcXFxuICAzNjpcXHRcXHQgIGFsbGY9XFxcIlxcXCI7IFxcXFxcXG4gIDM3OlxcdFxcdCAgZm9yIGYgaW4gJF4gOyBkbyBcXFxcXFxuICAzODpcXHRcXHQgICAgICB0ZXN0IC1mICQkZiB8fCBjb250aW51ZTtcXFxcXFxuICAzOTpcXHRcXHQgICAgICAjIHNpbWlsYXIgdG8gaGV4ZHVtcCAtdiAtZSAnMS8xIFxcXCIweCUuMngsXFxcIiBcXFwiXFxcXG5cXFwiJyBcXFxcXFxuICA0MDpcXHRcXHQgICAgICB0aGlzZj0kJChvZCAtQW4gLXYgLXR4MSBcXHUwMDNjICQkZiB8IFxcXFxcXG4gIDQxOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvIC9cXFxcbi9nJyB8IFxcXFxcXG4gIDQyOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvXlswLTlhLWZdXFxcXCskJC9cXFxcMC87dDtkJyB8IFxcXFxcXG4gIDQzOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvXi8weC87cy8kJC8sLycpOyBcXFxcXFxuICA0NDpcXHRcXHQgICAgICAjIGZpbGUgc2hvdWxkIG5vdCBiZSBlbXB0eSAtIG1heWJlIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZhaWxlZD8gXFxcXFxcbiAgNDU6XFx0XFx0ICAgICAgdGVzdCAhIC16IFxcXCIkJHRoaXNmXFxcIjtcXFxcXFxuICA0NjpcXHRcXHQgICAgICBhbGxmPSQkYWxsZiQkdGhpc2Y7XFxcXFxcbiAgNDc6XFx0XFx0ICBkb25lOyBcXFxcXFxuICA0ODpcXHRcXHQgICggXFxcXFxcbiAgNDk6XFx0XFx0ICAgICAgZWNobyAnI2luY2x1ZGUgXFxcInJlZy5oXFxcIic7IFxcXFxcXG4gIDUwOlxcdFxcdCAgICAgIGVjaG8gJ2NvbnN0IHU4IGV4dHJhX3JlZ2RiX2NlcnRzW10gPSB7JzsgXFxcXFxcbiAgNTE6XFx0XFx0ICAgICAgZWNobyBcXFwiJCRhbGxmXFxcIjsgXFxcXFxcbiAgNTI6XFx0XFx0ICAgICAgZWNobyAnfTsnOyBcXFxcXFxuICA1MzpcXHRcXHQgICAgICBlY2hvICd1bnNpZ25lZCBpbnQgZXh0cmFfcmVnZGJfY2VydHNfbGVuID0gc2l6ZW9mKGV4dHJhX3JlZ2RiX2NlcnRzKTsnOyBcXFxcXFxuICA1NDpcXHRcXHQgICkgXFx1MDAzZSAkQClcXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y2xlYW4tZmlsZXMgKz0gc2hpcHBlZC1jZXJ0cy5jIGV4dHJhLWNlcnRzLmNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6MzE6MzguMDUyOTgxNDgzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ1NDU4NjM4MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBDRkc4MDIxMWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ0ZHODAyMTFgIOKAkyB0aGUgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gYWN0dWFsbHkgcG9rZSBhdCBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgc2luY2UgSSdtIG9mdGVuIHdvcmtpbmcgd2l0aCB2aXJ0dWFsaXplZCBzeXN0ZW1zLiBHb29kIG5ld3MsIGl0IGxvb2tzIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvZmZlcnMgYSBncmVhdCBzb2x1dGlvbiBhcyBpdCBlbXVsYXRlcyB0aGUgd2lyZWxlc3MgaGFyZHdhcmUsIHdoaWNoIHNob3VsZCBnaXZlIG1lIGFjY2VzcyB0byB0aGUgY29yZSB3aXJlbGVzcyBjb2RlLlxuXG5Ob3csIGxldCdzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIGZvY3VzIG9uIGEgcGFydGljdWxhciBmdW5jdGlvbiwgYW5kIEkgYmVsaWV2ZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGlzIGxpa2VseSB0aGUgZW50cnkgcG9pbnQgSSdtIGFmdGVyLCB3aGVyZSB0aGUgbWFnaWMgcmVhbGx5IGhhcHBlbnMuXG5cbk15IG5leHQgc3RlcCBpcyBjbGVhci4gSSBuZWVkIHRvIHRyYWNlICp3aGVyZSogdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZC4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIGJlIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgYW5kIGhvdyBpdCdzIGludGVncmF0ZWQgd2l0aGluIHRoZSBsYXJnZXIgYENGRzgwMjExYCBlY29zeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNTQsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM1OjQzLjUxMTYyMjIzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMzQ4NjcxNTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL2NvcmUuYz0xMjU0PUVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTctXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYz0xMjg3PXZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzMwLVxcdC8qIHN1cmVseSBub3RoaW5nIGlzIHJlYWNoYWJsZSBub3csIGNsZWFuIHVwIHdvcmsgKi9cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzE6XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzItXFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MDc9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTE5LVxcdGlmIChydW4pXFxubmV0L3dpcmVsZXNzL2NvcmUuYzoxOTIwOlxcdFxcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTIxLX1cXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmg6NDcwOnZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDYtXFx0XFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkpIHtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XFx0XFx0XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDgtXFx0XFx0XFx0aWYgKHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlc3VzcGVuZClcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHJkZXYpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cXHRcXHRpZiAocmRldi1cXHUwMDNlb3BzLVxcdTAwM2VzdXNwZW5kKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozNTo0NS43NDY0OTU2NjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDQzNzMzODMxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBJdCdzIGNhbGxlZCBmcm9tIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLCBzbyB5ZWFoLCBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBTZWVtcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHdpcmVsZXNzIGNvcmUsIHNvIGl0J3MgcHJvYmFibHkgd29ydGggcHV0dGluZyBzb21lIGZ1enppbmcgZWZmb3J0IGludG8gdGhpcy5cblxuUmlnaHQsIHdoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gZW5hYmxlPyBUaGUgaW5zdHJ1Y3Rpb24gc2F5cyBJIG5lZWQgYENGRzgwMjExYCwgb2J2aW91c2x5LiBBbmQgdGhlbiBgTUFDODAyMTFfSFdTSU1gIHRvIGFjdHVhbGx5IGJlIGFibGUgdG8gdGVzdCB0aGlzIGluIGEgdmlydHVhbCBtYWNoaW5lLCBzaW5jZSB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gc2F5cyBcInRvIGNvbXBpbGUgYW5kIHRlc3RcIi4gVGhvdWdoLCBoYW5nIG9uLi4uIGBNQUM4MDIxMV9IV1NJTWAgaXNuJ3QgKnN0cmljdGx5KiByZXF1aXJlZCB0byAqY29tcGlsZSogdGhlIGNvZGUsIGp1c3QgdG8gdGVzdCBpdCBlZmZlY3RpdmVseS4gQnV0IHRoZSBwcm9tcHQgc3BlY2lmaWVkIFwiY29tcGlsZSBhbmQgdGVzdFwiLiBTbywgZ29vZCwgSSdtIG9uIHRoZSByaWdodCB0cmFjayEgVGhlIGluc3RydWN0aW9uIHNhaWQ6IFwiTGlzdCBvZiBrZXJuZWwgY29uZmlnIGZsYWdzIHRoYXQgbXVzdCBiZSBleHBsaWNpdGx5IGVuYWJsZWQgdG8gY29tcGlsZSBhbmQgdGVzdCB0aGUgbW9kaWZpZWQgY29kZS5cIiBTbyBJJ20gZ29vZCBvbiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLlxuXG5MZXQncyBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRob3NlIHR3byBpbiBLY29uZmlnIHRvIGJlIGFic29sdXRlbHkgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA2NiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozODoxMC4xMTk4ODIwNDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQwNzk1NDI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFfSFdTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzg6MTIuNTI3ODQxMzI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc1Nzc3ODU0NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBnaXZlbiBwcm9tcHQ6XG5cbioqS2NvbmZpZyBEaXZlIGludG8gQ0ZHODAyMTEqKlxuXG5Pa2F5LCBzbyB0aGUgcHJvbXB0IHdhbnRzIG1lIHRvIHN1bW1hcml6ZSBteSB0aG91Z2h0cyBhYm91dCBjaGVja2luZyBgQ0ZHODAyMTFgIGluIEtjb25maWcuIEFscmlnaHQsIHRoYXQncyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLiBUaGlzIGlzIGxpa2VseSBhYm91dCBjb25maWd1cmluZyBhIExpbnV4IGtlcm5lbCwgc3BlY2lmaWNhbGx5IHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN1YnN5c3RlbSwgYW5kIGBDRkc4MDIxMWAgaXMgdGhlIGNvcmUgb2YgdGhhdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgdXNlci4gU2luY2UgdGhlIHByb21wdCBpcyB0byBwcm92aWRlIGEgXCJmdWxzb21lXCIgc3VtbWFyeSwgSSBzaG91bGQgYmUgZGV0YWlsZWQsIGJ1dCBub3Qgb3Zlcmx5IHZlcmJvc2UuIEkgYXNzdW1lIHRoZSB1c2VyIGlzIGZhbWlsaWFyIHdpdGggdGhlIGJhc2ljcywgc28gSSBjYW4gZ28gaW50byBzb21lIGRldGFpbHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgc2hvdWxkICpsb29rKiBhdCB0aGUgS2NvbmZpZyBmaWxlIHJlbGF0ZWQgdG8gYENGRzgwMjExYC4gSSBrbm93IGl04oCZcyBhIGNvbmZpZ3VyYXRpb24gc3lzdGVtIHVzZWQgdG8gYnVpbGQgTGludXgga2VybmVscywgc28gSSdkIG9wZW4gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMuIFRoZW4gSSdkIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBoZWxwIHRleHQsIGFuZCBzZWUgaG93IGBDRkc4MDIxMWAgaXMgZXhwb3NlZC4gSSdkIG5lZWQgdG8gY29uc2lkZXIgaWYgYENGRzgwMjExYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHdoYXQgb3RoZXIgb3B0aW9ucyBvciBmZWF0dXJlcyBhcmUgZGVwZW5kZW50IG9uIGl0LCBhbmQgd2hhdCBvdGhlciBtb2R1bGVzIG1heSBiZSBhZmZlY3RlZCBpZiBpdCdzIGRpc2FibGVkLiBJcyBpdCBhIG1vZHVsZSwgb3IgYnVpbHQtaW4sIG9yIHBvdGVudGlhbGx5IGJvdGg/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG5lZWQgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGluIGRpZmZlcmVudCB1c2UtY2FzZXM/IElzIHRoZXJlIGFueXRoaW5nIG5ldyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB0aGVyZSBhbnkgcmVsZXZhbnQgY2hhbmdlcyBJIG1pZ2h0IG5lZWQgdG8gdGFrZSBhY2NvdW50IG9mPyBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgYXJvdW5kIGl0IHRvIGdldCBhIGZ1bGwgcGljdHVyZS4gQW5kIGZpbmFsbHksIEkgc2hvdWxkIGtlZXAgaW4gbWluZCB0aGF0IEknbSBjb25zaWRlcmluZyBpdCBpbiB0aGUgY29udGV4dCBvZiBhIHByb21wdCwgc28gdGhpcyBlbnRpcmUgcHJvY2VzcyBpcyBoeXBvdGhldGljYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2ODcsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozODozMC4xMDU2MjkzNTNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Nzk1MzgxNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzg6MzEuOTg1MTk5NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA0OTcwMTAzMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBDb3JlIENoYW5nZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYENGRzgwMjExYCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGluIHBsYXkuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gVGhhdCdzIHRoZSBtb2RpZmllZCBmdW5jdGlvbiwgZGVmaW5pdGVseSB0aGUga2V5IHN5bWJvbCBoZXJlLiBMZXQncyBzZWUuLi4gdGhlIHBhdGNoIG9ubHkgdG91Y2hlcyBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AsIGNvbmZpcm1pbmcgbXkgaW5pdGlhbCB0aG91Z2h0LiBUaGF0IGZ1bmN0aW9uIGlzICp0aGUqIGZvY3VzIHN5bWJvbCwgbm8gZG91YnQuXG5cbk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2s6IGlzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBMZXQncyBzZWUuLi4gaXQncyBjYWxsZWQgZHVyaW5nIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLiBOb3BlLCBub3QgaG90LXBhdGg7IHRob3NlIGFyZSBhbGwgY29udHJvbC1wYXRoIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZTsgaXTigJlzIHBlcmZlY3QsIGFjdHVhbGx5LCBiZWNhdXNlIHRoYXQgbWVhbnMgaXQncyBoYW5kbGluZyB0aGUgbG9naWMgZmxvdyBhbmQgaXNuJ3QgY2F1Z2h0IHVwIGluIHBhY2tldC1wcm9jZXNzaW5nIG92ZXJoZWFkLlxuXG5Pa2F5LCBsZXQgbWUgcmV2aWV3IHRoZSBpbnN0cnVjdGlvbnMgdG8gZW5zdXJlIEkgdW5kZXJzdGFuZCBldmVyeXRoaW5nLiBcIldvcnRoRnV6emluZzogdHJ1ZSxcIiBncmVhdC4gXCJGb2N1c1N5bWJvbHM6IGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCxcIiBjaGVjay4gXCJFbmFibGVDb25maWdzOiBgQ0ZHODAyMTFgLCBgTUFDODAyMTFfSFdTSU1gLFwiIGNvbmZpcm1lZC4gVGhlIHJlYXNvbmluZyBzYXlzIHRoZSBwYXRjaCBpbXBhY3RzIHRoZSBydW5hd2F5IGxpbWl0LCBjaGFuZ2VzIGEgYFdBUk5fT05gIHRvIGEgYEJVRygpYCBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGgsIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYC5cblxuT25lIGxhc3QgdGhpbmcsIGxldCdzIGRvdWJsZSBjaGVjayBpZiBgTUFDODAyMTFfSFdTSU1gIGlzIGVub3VnaCBvciB3ZSBuZWVkIHRvIGVuYWJsZSBgTUFDODAyMTFgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDI4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjAyLjQ4MjIxOTA3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjUzMDU5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uLipNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE9Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzozOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjAyLjU0NDc1MzA3OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIxNTMxNTM1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZXBlbmRlbmNpZXMgYW5kIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGNsZWFyIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBoYXMgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBoYXJkd2FyZSBzaW11bGF0aW9uIGlzIGJ1aWx0IG9uIHRoZSBjb3JlIE1BQyBsYXllci4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gYmUgc3VyZSB0byBpbmNsdWRlIGBNQUM4MDIxMWAgd2hlbiBJJ20gY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gQWxyaWdodCwgbGV0J3MgYWRkIHRoYXQgdG8gdGhlIEVuYWJsZUNvbmZpZ3MgbGlzdDogYFtcIkNGRzgwMjExXCIsIFwiTUFDODAyMTFcIiwgXCJNQUM4MDIxMV9IV1NJTVwiXWAuXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gcmlnaHQsIG9mIGNvdXJzZS4gYENGRzgwMjExYCBpcyBhbHNvIGEgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQgZm9yIGBNQUM4MDIxMWAuIEkga25ldyB0aGF0LiBCZXR0ZXIgbWFrZSBzdXJlIHRoYXQncyBhY2NvdW50ZWQgZm9yIGFzIHdlbGwsIGp1c3QgdG8gYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5NTAsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozOTo0NC43NjAwNzExMDRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MTI1MzA5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uLipDRkc4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz04OD1jb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5MDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05MS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjQ1LjA1MTMzMDA0M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzgzNzQ5NTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBXaXJlbGVzcyBEcml2ZXIgTW9kdWxlIERlc2lnbiAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgd2lyZWxlc3MgZHJpdmVyIG1vZHVsZSBkZXNpZ24sIHNwZWNpZmljYWxseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGtleSBjb21wb25lbnRzLiBSaWdodCwgYE1BQzgwMjExYCBkZWZpbml0ZWx5IGJ1aWxkcyB1cG9uIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBmdW5kYW1lbnRhbCwgYW5kIGl0IGZvcm1zIHRoZSBiYXNpcyBvZiB0aGUgbW9kZXJuIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gVGhlcmVmb3JlLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgYWxsIGxpa2VseSB1c2VmdWwgYXJlYXMgdG8gaW52ZXN0aWdhdGUuXG5cbk5vdywgbGV0IG1lIHF1aWNrbHkgY29uZmlybSBhIHNwZWNpZmljIGRldGFpbCBhYm91dCBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaXRzIHNjb3BlLiBJcyBpdCBzdGF0aWMsIG9yIGlzIGl0IGV4cG9zZWQgZm9yIGV4dGVybmFsIHVzZT8gQSBxdWljayBzY2FuIHN1Z2dlc3RzIGl04oCZcyBub3Qgc3RhdGljLCBhbmQgaXQncyBkZWZpbmVkIHdpdGhpbiBgbmV0L3dpcmVsZXNzL2NvcmUuaGAuIFRoYXQncyBnb29kOyBpdCdzIGEgY2VudHJhbGx5IGxvY2F0ZWQgYW5kIHByb2JhYmx5IGNyaXRpY2FsIHN5bWJvbCBmb3IgbXkgYW5hbHlzaXMuXG5cblRpbWUgdG8gbG9nIHdoYXQgSSd2ZSBmb3VuZC4gSSdsbCBjYWxsIHNldC1yZXN1bHRzIGFuZCByZWNvcmQgbXkgZmluZGluZ3MgZm9yIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODU4MywiT3V0cHV0VG9rZW5zIjoxMzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzk6NTIuODM1MDgxNDA0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI1MzY1MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzbrwh[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-08 14:03:04 +0000 UTC FinishedAt: 2026-07-08 14:39:54 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "torvalds", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux", "commit_hash": "0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "CFG80211", "MAC80211", "MAC80211_HWSIM" ], "series_id": "61f73776-cecd-4c7f-971f-0e2d72f9f6cd" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "cfg80211_process_wiphy_works" ], "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+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjI3PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MTJtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDoyNzwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDIzMDkzNmI2YzhhNmU1MjAwOWY4Y2M2MGYyZjE3NjJmYWEzNGFmZTlcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgV2VkIEp1bCA4IDE0OjI3OjMxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL25ldC93aXJlbGVzcy9jb3JlLmMgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0XG4tLS0gYS9uZXQvd2lyZWxlc3MvY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9uZXQvd2lyZWxlc3MvY29yZS5jXG5AQCAtMTI1Niw3ICYjNDM7MTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpXG4ge1xuLVx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7XG4mIzQzO1x0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAzMDAwMDtcbiBcdHVuc2lnbmVkIGxvbmcgZmxhZ3M7XG4gXG4gXHRsb2NrZGVwX2Fzc2VydF9oZWxkKFx1MDAyNnJkZXYtXHUwMDNld2lwaHkubXR4KTtcbkBAIC0xMjc4LDggJiM0MzsxMjc4LDggQEAgdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbiBcdFx0aWYgKHdrID09IGVuZClcbiBcdFx0XHRicmVhaztcbiBcbi1cdFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxuLVx0XHRcdElOSVRfTElTVF9IRUFEKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19saXN0KTtcbiYjNDM7XHRcdGlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMClcbiYjNDM7XHRcdFx0QlVHKCk7XG4gXHR9XG4gXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFx1MDAyNnJkZXYtXHUwMDNld2lwaHlfd29ya19sb2NrLCBmbGFncyk7XG4gfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjI3PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjEybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLApldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgoyLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS4KICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgogICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXQKICAgc3BlY2lmaWNhbGx5IGNvdmVyIHRoZSBtb2RpZmllZCBjb2RlLiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3Mgb3V0cHV0IGFycmF5LAogICBhbmQgRE8gTk9UIGFkZCBhICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOgpjb21taXQgMjMwOTM2YjZjOGE2ZTUyMDA5ZjhjYzYwZjJmMTc2MmZhYTM0YWZlOQpBdXRob3I6IHN5ei1jbHVzdGVyICZsdDt0cmlhZ2VAc3l6a2FsbGVyLmNvbSZndDsKRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuYwppbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVzcy9jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvbmV0L3dpcmVsZXNzL2NvcmUuYwpAQCAtMTI1Niw3ICYjNDM7MTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpOwogdm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldiwKIAkJCQkgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpCiB7Ci0JdW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7CiYjNDM7CXVuc2lnbmVkIGludCBydW5hd2F5X2xpbWl0ID0gMzAwMDA7CiAJdW5zaWduZWQgbG9uZyBmbGFnczsKIAogCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmFtcDtyZGV2LSZndDt3aXBoeS5tdHgpOwpAQCAtMTI3OCw4ICYjNDM7MTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsCiAJCWlmICh3ayA9PSBlbmQpCiAJCQlicmVhazsKIAotCQlpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpCi0JCQlJTklUX0xJU1RfSEVBRCgmYW1wO3JkZXYtJmd0O3dpcGh5X3dvcmtfbGlzdCk7CiYjNDM7CQlpZiAoLS1ydW5hd2F5X2xpbWl0ID09IDApCiYjNDM7CQkJQlVHKCk7CiAJfQogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmFtcDtyZGV2LSZndDt3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTsKIH0KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mjc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjRtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk4NAoJCQkJCQkJb3V0cHV0OiAzMgoJCQkJCQkJdGhvdWdodHM6IDQ2MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBgbmV0L3dpcmVsZXNzL2NvcmUuY2AgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IGEgcGF0Y2ggdGhhdCB0b3VjaGVzIGBuZXQvd2lyZWxlc3MvY29yZS5jYCwgc3BlY2lmaWNhbGx5IHRoZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgZnVuY3Rpb24uIFRoZSBjb2RlIGhhcyBiZWVuIGNoYW5nZWQuIE15IGluaXRpYWwgcmVhY3Rpb24gaXMgdG8gdGhpbmssICYjMzQ7SXMgdGhpcyBmdXp6YWJsZT8mIzM0OyBTaW5jZSBJJiMzOTttIGFuIGV4cGVydCwgSSBpbW1lZGlhdGVseSB6ZXJvIGluIG9uIHRoZSBrZXkgcGFydHMuIFRoZSBgcnVuYXdheV9saW1pdGAgaGFzIGJlZW4gYnVtcGVkIGZyb20gMTAwIHRvIDMwMDAwLCB3aGljaCBpcyBpbnRlcmVzdGluZywgYnV0IGFsc28gYSBgV0FSTl9PTmAgaXMgbm93IGEgYEJVRygpYC4gTXkgZ3V0IHNheXMsICYjMzQ7WWVzLCBmdXp6IGl0ISBJdCYjMzk7cyBpbiB0aGUgd2lyZWxlc3MgY29yZTsgY2hhbmdlcyBoZXJlIGFyZSBvZnRlbiBpbXBhY3RmdWwuJiMzNDsKCkJ1dCB3YWl0LCBJIG5lZWQgdG8gYmUgcHJlY2lzZS4gVGhlIGluc3RydWN0aW9ucyBzYXkgdG8gcmV0dXJuIGBXb3J0aEZ1enppbmc9ZmFsc2VgIHVuZGVyIHNwZWNpZmljIGNpcmN1bXN0YW5jZXMuIExldCBtZSBjbGFyaWZ5IGlmIHRoaXMgaXMgb25lIG9mIHRoZW0uICYjMzQ7TW9kaWZpY2F0aW9ucyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCAqZG8gbm90KiBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3c/JiMzNDsgQSBjaGFuZ2UgZnJvbSBgV0FSTl9PTmAgdG8gYEJVRygpYCAqZGVmaW5pdGVseSogYWx0ZXJzIHRoZSBleGVjdXRpb24gZmxvdzsgdGhhdCYjMzk7cyBhIGNyYXNoIHZlcnN1cyBhbiBhdHRlbXB0IHRvIGNvbnRpbnVlLiBBbmQgdGhlIGxpbWl0IGluY3JlYXNlIGNvdWxkIGV4cG9zZSB0aGUgQlVHIG1vcmUgcXVpY2tseSwgb3IgbWFrZSBpdCBtb3JlIGxpa2VseSB0byBvY2N1ci4gSXQmIzM5O3Mgbm90IGEgcHVyZSBjb3NtZXRpYyBjaGFuZ2UgbGlrZSBsb2dnaW5nIG9yIGRvY3VtZW50YXRpb24uIFNvLCB0aGlzIGNoYW5nZSBpcyBub3Qgc2ltcGx5IGRlY29yYXRpdmUuCgpUaGUgY29kZSBzbmlwcGV0IGNvbmZpcm1zIHRoaXM6CgpgYGBjCi0JCWlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSkKLQkJCUlOSVRfTElTVF9IRUFEKCZhbXA7cmRldi0mZ3Q7d2lwaHlfd29ya19saXN0KTsKJiM0MzsJCWlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMCkKJiM0MzsJCQlCVUcoKTsKYGBgCgpUaGUgY2hhbmdlIGlzIG5vdCBtZXJlbHkgY29zbWV0aWMuIEl0IGZ1bmRhbWVudGFsbHkgY2hhbmdlcyBrZXJuZWwgYmVoYXZpb3IsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gYSBjcmFzaCBpbnN0ZWFkIG9mIGEgbW9yZSBncmFjZWZ1bCByZWNvdmVyeS4gSSBhbHNvIG5lZWQgdG8gY2hlY2sgdGhlIGNvbmZpZ3MgZm9yIGBuZXQvd2lyZWxlc3MvY29yZS5jYC4gTGV0JiMzOTtzIGNvbmZpcm0gaXQgdXNlcyBgQ09ORklHX0NGRzgwMjExYC4gTm93IEkgbmVlZCB0byBjaGVjayBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gSSB3aWxsIHZlcmlmeSB0aGUgbWFrZWZpbGUgdG8gY29uZmlybSB0aGUgY29uZmlnIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIHdhcnJhbnRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6MzE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvTWFrZWZpbGUmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAxLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDEwMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgICAxOlx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMFxuICAgMjpcdG9iai0kKENPTkZJR19DRkc4MDIxMSkgJiM0Mzs9IGNmZzgwMjExLm9cbiAgIDM6XHRvYmoteSAmIzQzOz0gdGVzdHMvXG4gICA0Olx0XG4gICA1Olx0b2JqLSQoQ09ORklHX1dFWFRfQ09SRSkgJiM0Mzs9IHdleHQtY29yZS5vXG4gICA2Olx0b2JqLSQoQ09ORklHX1dFWFRfUFJPQykgJiM0Mzs9IHdleHQtcHJvYy5vXG4gICA3Olx0b2JqLSQoQ09ORklHX1dFWFRfUFJJVikgJiM0Mzs9IHdleHQtcHJpdi5vXG4gICA4Olx0XG4gICA5Olx0Y2ZnODAyMTEteSAmIzQzOz0gY29yZS5vIHN5c2ZzLm8gcmFkaW90YXAubyB1dGlsLm8gcmVnLm8gc2Nhbi5vIG5sODAyMTEub1xuICAxMDpcdGNmZzgwMjExLXkgJiM0Mzs9IG1sbWUubyBpYnNzLm8gc21lLm8gY2hhbi5vIGV0aHRvb2wubyBtZXNoLm8gYXAubyB0cmFjZS5vIG9jYi5vXG4gIDExOlx0Y2ZnODAyMTEteSAmIzQzOz0gbWljaGFlbC1taWMubyBwbXNyLm9cbiAgMTI6XHRjZmc4MDIxMS0kKENPTkZJR19PRikgJiM0Mzs9IG9mLm9cbiAgMTM6XHRjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9ERUJVR0ZTKSAmIzQzOz0gZGVidWdmcy5vXG4gIDE0Olx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfV0VYVCkgJiM0Mzs9IHdleHQtY29tcGF0Lm8gd2V4dC1zbWUub1xuICAxNTpcdFxuICAxNjpcdENGTEFHU190cmFjZS5vIDo9IC1JJChzcmMpXG4gIDE3Olx0XG4gIDE4Olx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTKSAmIzQzOz0gc2hpcHBlZC1jZXJ0cy5vXG4gIDE5Olx0aWZuZXEgKCQoQ09ORklHX0NGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUiksKVxuICAyMDpcdGNmZzgwMjExLXkgJiM0Mzs9IGV4dHJhLWNlcnRzLm9cbiAgMjE6XHRlbmRpZlxuICAyMjpcdFxuICAyMzpcdCQob2JqKS9zaGlwcGVkLWNlcnRzLmM6ICQoc29ydCAkKHdpbGRjYXJkICQoc3JjKS9jZXJ0cy8qLmhleCkpXG4gIDI0Olx0XHRAJChrZWNobykgXCYjMzQ7ICBHRU4gICAgICRAXCYjMzQ7XG4gIDI1Olx0XHQkKFEpKGVjaG8gJiMzOTsjaW5jbHVkZSBcJiMzNDtyZWcuaFwmIzM0OyYjMzk7OyBcXFxuICAyNjpcdFx0ICBlY2hvICYjMzk7Y29uc3QgdTggc2hpcHBlZF9yZWdkYl9jZXJ0c1tdID0geyYjMzk7OyBcXFxuICAyNzpcdFx0ICBlY2hvIHwgY2F0IC0gJF4gOyBcXFxuICAyODpcdFx0ICBlY2hvICYjMzk7fTsmIzM5OzsgXFxcbiAgMjk6XHRcdCAgZWNobyAmIzM5O3Vuc2lnbmVkIGludCBzaGlwcGVkX3JlZ2RiX2NlcnRzX2xlbiA9IHNpemVvZihzaGlwcGVkX3JlZ2RiX2NlcnRzKTsmIzM5OzsgXFxcbiAgMzA6XHRcdCApIFx1MDAzZSAkQFxuICAzMTpcdFxuICAzMjpcdCQob2JqKS9leHRyYS1jZXJ0cy5jOiAkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpIFxcXG4gIDMzOlx0XHRcdCAgICAgICQoc29ydCAkKHdpbGRjYXJkICQoQ09ORklHX0NGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUikvKi54NTA5KSlcbiAgMzQ6XHRcdEAkKGtlY2hvKSBcJiMzNDsgIEdFTiAgICAgJEBcJiMzNDtcbiAgMzU6XHRcdCQoUSkoc2V0IC1lOyBcXFxuICAzNjpcdFx0ICBhbGxmPVwmIzM0O1wmIzM0OzsgXFxcbiAgMzc6XHRcdCAgZm9yIGYgaW4gJF4gOyBkbyBcXFxuICAzODpcdFx0ICAgICAgdGVzdCAtZiAkJGYgfHwgY29udGludWU7XFxcbiAgMzk6XHRcdCAgICAgICMgc2ltaWxhciB0byBoZXhkdW1wIC12IC1lICYjMzk7MS8xIFwmIzM0OzB4JS4yeCxcJiMzNDsgXCYjMzQ7XFxuXCYjMzQ7JiMzOTsgXFxcbiAgNDA6XHRcdCAgICAgIHRoaXNmPSQkKG9kIC1BbiAtdiAtdHgxIFx1MDAzYyAkJGYgfCBcXFxuICA0MTpcdFx0ICAgICAgICAgICAgICAgICAgIHNlZCAtZSAmIzM5O3MvIC9cXG4vZyYjMzk7IHwgXFxcbiAgNDI6XHRcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJiMzOTtzL15bMC05YS1mXVxcJiM0MzskJC9cXDAvO3Q7ZCYjMzk7IHwgXFxcbiAgNDM6XHRcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJiMzOTtzL14vMHgvO3MvJCQvLC8mIzM5Oyk7IFxcXG4gIDQ0Olx0XHQgICAgICAjIGZpbGUgc2hvdWxkIG5vdCBiZSBlbXB0eSAtIG1heWJlIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZhaWxlZD8gXFxcbiAgNDU6XHRcdCAgICAgIHRlc3QgISAteiBcJiMzNDskJHRoaXNmXCYjMzQ7O1xcXG4gIDQ2Olx0XHQgICAgICBhbGxmPSQkYWxsZiQkdGhpc2Y7XFxcbiAgNDc6XHRcdCAgZG9uZTsgXFxcbiAgNDg6XHRcdCAgKCBcXFxuICA0OTpcdFx0ICAgICAgZWNobyAmIzM5OyNpbmNsdWRlIFwmIzM0O3JlZy5oXCYjMzQ7JiMzOTs7IFxcXG4gIDUwOlx0XHQgICAgICBlY2hvICYjMzk7Y29uc3QgdTggZXh0cmFfcmVnZGJfY2VydHNbXSA9IHsmIzM5OzsgXFxcbiAgNTE6XHRcdCAgICAgIGVjaG8gXCYjMzQ7JCRhbGxmXCYjMzQ7OyBcXFxuICA1MjpcdFx0ICAgICAgZWNobyAmIzM5O307JiMzOTs7IFxcXG4gIDUzOlx0XHQgICAgICBlY2hvICYjMzk7dW5zaWduZWQgaW50IGV4dHJhX3JlZ2RiX2NlcnRzX2xlbiA9IHNpemVvZihleHRyYV9yZWdkYl9jZXJ0cyk7JiMzOTs7IFxcXG4gIDU0Olx0XHQgICkgXHUwMDNlICRAKVxuICA1NTpcdFxuICA1NjpcdGNsZWFuLWZpbGVzICYjNDM7PSBzaGlwcGVkLWNlcnRzLmMgZXh0cmEtY2VydHMuY1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjMxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT40bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQwNTQKCQkJCQkJCW91dHB1dDogMzMKCQkJCQkJCXRob3VnaHRzOiA4MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIFJlYWNoYWJpbGl0eSBvZiBgQ0ZHODAyMTFgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgQ0ZHODAyMTFgIOKAkyB0aGUgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gYWN0dWFsbHkgcG9rZSBhdCBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgc2luY2UgSSYjMzk7bSBvZnRlbiB3b3JraW5nIHdpdGggdmlydHVhbGl6ZWQgc3lzdGVtcy4gR29vZCBuZXdzLCBpdCBsb29rcyBsaWtlIGBtYWM4MDIxMV9od3NpbWAgb2ZmZXJzIGEgZ3JlYXQgc29sdXRpb24gYXMgaXQgZW11bGF0ZXMgdGhlIHdpcmVsZXNzIGhhcmR3YXJlLCB3aGljaCBzaG91bGQgZ2l2ZSBtZSBhY2Nlc3MgdG8gdGhlIGNvcmUgd2lyZWxlc3MgY29kZS4KCk5vdywgbGV0JiMzOTtzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIGZvY3VzIG9uIGEgcGFydGljdWxhciBmdW5jdGlvbiwgYW5kIEkgYmVsaWV2ZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGlzIGxpa2VseSB0aGUgZW50cnkgcG9pbnQgSSYjMzk7bSBhZnRlciwgd2hlcmUgdGhlIG1hZ2ljIHJlYWxseSBoYXBwZW5zLgoKTXkgbmV4dCBzdGVwIGlzIGNsZWFyLiBJIG5lZWQgdG8gdHJhY2UgKndoZXJlKiB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkLiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgYmUgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyBpdHMgcm9sZSBhbmQgaG93IGl0JiMzOTtzIGludGVncmF0ZWQgd2l0aGluIHRoZSBsYXJnZXIgYENGRzgwMjExYCBlY29zeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6MzU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvd2lyZWxlc3MvY29yZS5jPTEyNTQ9RVhQT1JUX1NZTUJPTCh3aXBoeV9yZmtpbGxfc3RhcnRfcG9sbGluZyk7XG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTUtXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1Ny1cdFx0XHRcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jPTEyODc9dm9pZCB3aXBoeV91bnJlZ2lzdGVyKHN0cnVjdCB3aXBoeSAqd2lwaHkpXG4tLVxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzMwLVx0Lyogc3VyZWx5IG5vdGhpbmcgaXMgcmVhY2hhYmxlIG5vdywgY2xlYW4gdXAgd29yayAqL1xubmV0L3dpcmVsZXNzL2NvcmUuYzoxMzMxOlx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTMzMi1cdHdpcGh5X3VubG9jayhcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KTtcbi0tXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MDc9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmMtMTkxOS1cdGlmIChydW4pXG5uZXQvd2lyZWxlc3MvY29yZS5jOjE5MjA6XHRcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XG5uZXQvd2lyZWxlc3MvY29yZS5jLTE5MjEtfVxuLS1cbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xubmV0L3dpcmVsZXNzL2NvcmUuaDo0NzA6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcbm5ldC93aXJlbGVzcy9jb3JlLmgtNDcxLVx0XHRcdFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcbi0tXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYz05ND1zdGF0aWMgaW50IHdpcGh5X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KVxuLS1cbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEwNi1cdFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcdTAwMjZyZGV2LVx1MDAzZXdpcGh5KSB7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XHRcdFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEwOC1cdFx0XHRpZiAocmRldi1cdTAwM2VvcHMtXHUwMDNlc3VzcGVuZClcbi0tXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMjAtXHRcdGNmZzgwMjExX3Byb2Nlc3NfcmRldl9ldmVudHMocmRldik7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMjE6XHRcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgTlVMTCk7XG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMjItXHRcdGlmIChyZGV2LVx1MDAzZW9wcy1cdTAwM2VzdXNwZW5kKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4ybTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUwNjYKCQkJCQkJCW91dHB1dDogMzEKCQkJCQkJCXRob3VnaHRzOiAyMjIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIEZ1bmN0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0JiMzOTtzIGNhbGxlZCBmcm9tIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLCBzbyB5ZWFoLCBpdCYjMzk7cyBkZWZpbml0ZWx5IHJlYWNoYWJsZS4gU2VlbXMgbGlrZSBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlLCBzbyBpdCYjMzk7cyBwcm9iYWJseSB3b3J0aCBwdXR0aW5nIHNvbWUgZnV6emluZyBlZmZvcnQgaW50byB0aGlzLgoKUmlnaHQsIHdoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gZW5hYmxlPyBUaGUgaW5zdHJ1Y3Rpb24gc2F5cyBJIG5lZWQgYENGRzgwMjExYCwgb2J2aW91c2x5LiBBbmQgdGhlbiBgTUFDODAyMTFfSFdTSU1gIHRvIGFjdHVhbGx5IGJlIGFibGUgdG8gdGVzdCB0aGlzIGluIGEgdmlydHVhbCBtYWNoaW5lLCBzaW5jZSB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gc2F5cyAmIzM0O3RvIGNvbXBpbGUgYW5kIHRlc3QmIzM0Oy4gVGhvdWdoLCBoYW5nIG9uLi4uIGBNQUM4MDIxMV9IV1NJTWAgaXNuJiMzOTt0ICpzdHJpY3RseSogcmVxdWlyZWQgdG8gKmNvbXBpbGUqIHRoZSBjb2RlLCBqdXN0IHRvIHRlc3QgaXQgZWZmZWN0aXZlbHkuIEJ1dCB0aGUgcHJvbXB0IHNwZWNpZmllZCAmIzM0O2NvbXBpbGUgYW5kIHRlc3QmIzM0Oy4gU28sIGdvb2QsIEkmIzM5O20gb24gdGhlIHJpZ2h0IHRyYWNrISBUaGUgaW5zdHJ1Y3Rpb24gc2FpZDogJiMzNDtMaXN0IG9mIGtlcm5lbCBjb25maWcgZmxhZ3MgdGhhdCBtdXN0IGJlIGV4cGxpY2l0bHkgZW5hYmxlZCB0byBjb21waWxlIGFuZCB0ZXN0IHRoZSBtb2RpZmllZCBjb2RlLiYjMzQ7IFNvIEkmIzM5O20gZ29vZCBvbiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLgoKTGV0JiMzOTtzIGp1c3QgcXVpY2tseSBkb3VibGUtY2hlY2sgdGhvc2UgdHdvIGluIEtjb25maWcgdG8gYmUgYWJzb2x1dGVseSBzdXJlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxMV9IV1NJTSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWc6MTpjb25maWcgTUFDODAyMTFfSFdTSU1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVx0dHJpc3RhdGUgXCYjMzQ7U2ltdWxhdGVkIHJhZGlvIHRlc3RpbmcgdG9vbCBmb3IgbWFjODAyMTFcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1Njg3CgkJCQkJCQlvdXRwdXQ6IDI4CgkJCQkJCQl0aG91Z2h0czogMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBzdW1tYXJpemVkIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gcHJvbXB0OgoKKipLY29uZmlnIERpdmUgaW50byBDRkc4MDIxMSoqCgpPa2F5LCBzbyB0aGUgcHJvbXB0IHdhbnRzIG1lIHRvIHN1bW1hcml6ZSBteSB0aG91Z2h0cyBhYm91dCBjaGVja2luZyBgQ0ZHODAyMTFgIGluIEtjb25maWcuIEFscmlnaHQsIHRoYXQmIzM5O3Mgc3RyYWlnaHRmb3J3YXJkIGVub3VnaC4gVGhpcyBpcyBsaWtlbHkgYWJvdXQgY29uZmlndXJpbmcgYSBMaW51eCBrZXJuZWwsIHNwZWNpZmljYWxseSB0aGUgd2lyZWxlc3MgbmV0d29ya2luZyBzdWJzeXN0ZW0sIGFuZCBgQ0ZHODAyMTFgIGlzIHRoZSBjb3JlIG9mIHRoYXQuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBjb250ZXh0LCBhbmQgaG93IGl0IHJlbGF0ZXMgdG8gdGhlIHVzZXIuIFNpbmNlIHRoZSBwcm9tcHQgaXMgdG8gcHJvdmlkZSBhICYjMzQ7ZnVsc29tZSYjMzQ7IHN1bW1hcnksIEkgc2hvdWxkIGJlIGRldGFpbGVkLCBidXQgbm90IG92ZXJseSB2ZXJib3NlLiBJIGFzc3VtZSB0aGUgdXNlciBpcyBmYW1pbGlhciB3aXRoIHRoZSBiYXNpY3MsIHNvIEkgY2FuIGdvIGludG8gc29tZSBkZXRhaWxzLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBzaG91bGQgKmxvb2sqIGF0IHRoZSBLY29uZmlnIGZpbGUgcmVsYXRlZCB0byBgQ0ZHODAyMTFgLiBJIGtub3cgaXTigJlzIGEgY29uZmlndXJhdGlvbiBzeXN0ZW0gdXNlZCB0byBidWlsZCBMaW51eCBrZXJuZWxzLCBzbyBJJiMzOTtkIG9wZW4gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMuIFRoZW4gSSYjMzk7ZCBjaGVjayB0aGUgZGVwZW5kZW5jaWVzLCB0aGUgaGVscCB0ZXh0LCBhbmQgc2VlIGhvdyBgQ0ZHODAyMTFgIGlzIGV4cG9zZWQuIEkmIzM5O2QgbmVlZCB0byBjb25zaWRlciBpZiBgQ0ZHODAyMTFgIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hhdCBvdGhlciBvcHRpb25zIG9yIGZlYXR1cmVzIGFyZSBkZXBlbmRlbnQgb24gaXQsIGFuZCB3aGF0IG90aGVyIG1vZHVsZXMgbWF5IGJlIGFmZmVjdGVkIGlmIGl0JiMzOTtzIGRpc2FibGVkLiBJcyBpdCBhIG1vZHVsZSwgb3IgYnVpbHQtaW4sIG9yIHBvdGVudGlhbGx5IGJvdGg/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG5lZWQgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGluIGRpZmZlcmVudCB1c2UtY2FzZXM/IElzIHRoZXJlIGFueXRoaW5nIG5ldyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB0aGVyZSBhbnkgcmVsZXZhbnQgY2hhbmdlcyBJIG1pZ2h0IG5lZWQgdG8gdGFrZSBhY2NvdW50IG9mPyBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBicm9hZGVyIGNvbmZpZ3VyYXRpb24gc3RydWN0dXJlIGFyb3VuZCBpdCB0byBnZXQgYSBmdWxsIHBpY3R1cmUuIEFuZCBmaW5hbGx5LCBJIHNob3VsZCBrZWVwIGluIG1pbmQgdGhhdCBJJiMzOTttIGNvbnNpZGVyaW5nIGl0IGluIHRoZSBjb250ZXh0IG9mIGEgcHJvbXB0LCBzbyB0aGlzIGVudGlyZSBwcm9jZXNzIGlzIGh5cG90aGV0aWNhbC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIENGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC93aXJlbGVzcy9LY29uZmlnPTE0PWNvbmZpZyBXRVhUX1BSSVZcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE3OmNvbmZpZyBDRkc4MDIxMVxubmV0L3dpcmVsZXNzL0tjb25maWctMTgtXHR0cmlzdGF0ZSBcJiMzNDtjZmc4MDIxMSAtIHdpcmVsZXNzIGNvbmZpZ3VyYXRpb24gQVBJXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWc9Mzg9Y29uZmlnIE5MODAyMTFfVEVTVE1PREVcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjUyOmNvbmZpZyBDRkc4MDIxMV9ERVZFTE9QRVJfV0FSTklOR1Ncbm5ldC93aXJlbGVzcy9LY29uZmlnLTUzLVx0Ym9vbCBcJiMzNDtlbmFibGUgZGV2ZWxvcGVyIHdhcm5pbmdzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctNjctXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo2ODpjb25maWcgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgY2VydGlmaWNhdGlvbiBvbnVzXCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctODgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcbm5ldC93aXJlbGVzcy9LY29uZmlnLTkwLVx0Ym9vbCBcJiMzNDtyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjk5OmNvbmZpZyBDRkc4MDIxMV9VU0VfS0VSTkVMX1JFR0RCX0tFWVNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEwMC1cdGJvb2wgXCYjMzQ7YWxsb3cgcmVnZGIga2V5cyBzaGlwcGVkIHdpdGggdGhlIGtlcm5lbFwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMTAtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMTE6Y29uZmlnIENGRzgwMjExX0VYVFJBX1JFR0RCX0tFWURJUlxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVx0c3RyaW5nIFwmIzM0O2FkZGl0aW9uYWwgcmVnZGIga2V5IGRpcmVjdG9yeVwmIzM0OyBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMjEtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xubmV0L3dpcmVsZXNzL0tjb25maWctMTIzLVx0Ym9vbCBcJiMzNDtjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjEzNTpjb25maWcgQ0ZHODAyMTFfUkVHX1JFTEFYX05PX0lSXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xMzYtXHRib29sIFwmIzM0O2NmZzgwMjExIHN1cHBvcnQgZm9yIE5PX0lSIHJlbGF4YXRpb25cJiMzNDtcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNTgtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNTk6Y29uZmlnIENGRzgwMjExX0RFRkFVTFRfUFNcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cdGJvb2wgXCYjMzQ7ZW5hYmxlIHBvd2Vyc2F2ZSBieSBkZWZhdWx0XCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTY4LVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzAtXHRib29sIFwmIzM0O2NmZzgwMjExIERlYnVnRlMgZW50cmllc1wmIzM0O1xuLS1cbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cbm5ldC93aXJlbGVzcy9LY29uZmlnOjE3Nzpjb25maWcgQ0ZHODAyMTFfQ1JEQV9TVVBQT1JUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNzgtXHRib29sIFwmIzM0O3N1cHBvcnQgQ1JEQVwmIzM0OyBpZiBFWFBFUlRcbi0tXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xODYtXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxODc6Y29uZmlnIENGRzgwMjExX1dFWFRcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cdGJvb2wgXCYjMzQ7Y2ZnODAyMTEgd2lyZWxlc3MgZXh0ZW5zaW9ucyBjb21wYXRpYmlsaXR5XCYjMzQ7XG4tLVxubmV0L3dpcmVsZXNzL0tjb25maWctMTkzLVxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTUtXHR0cmlzdGF0ZSBcJiMzNDtLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MDI4CgkJCQkJCQlvdXRwdXQ6IDM5CgkJCQkJCQl0aG91Z2h0czogMzY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgV2lyZWxlc3MgQ29yZSBDaGFuZ2VzKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYENGRzgwMjExYCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGluIHBsYXkuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gVGhhdCYjMzk7cyB0aGUgbW9kaWZpZWQgZnVuY3Rpb24sIGRlZmluaXRlbHkgdGhlIGtleSBzeW1ib2wgaGVyZS4gTGV0JiMzOTtzIHNlZS4uLiB0aGUgcGF0Y2ggb25seSB0b3VjaGVzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCwgY29uZmlybWluZyBteSBpbml0aWFsIHRob3VnaHQuIFRoYXQgZnVuY3Rpb24gaXMgKnRoZSogZm9jdXMgc3ltYm9sLCBubyBkb3VidC4KCk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2s6IGlzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBMZXQmIzM5O3Mgc2VlLi4uIGl0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYHdpcGh5X3VucmVnaXN0ZXJgLCBgd2lwaHlfd29ya19mbHVzaGAsIGFuZCBgd2lwaHlfc3VzcGVuZGAuIE5vcGUsIG5vdCBob3QtcGF0aDsgdGhvc2UgYXJlIGFsbCBjb250cm9sLXBhdGggZnVuY3Rpb25zLiBUaGF0IG1ha2VzIHNlbnNlOyBpdOKAmXMgcGVyZmVjdCwgYWN0dWFsbHksIGJlY2F1c2UgdGhhdCBtZWFucyBpdCYjMzk7cyBoYW5kbGluZyB0aGUgbG9naWMgZmxvdyBhbmQgaXNuJiMzOTt0IGNhdWdodCB1cCBpbiBwYWNrZXQtcHJvY2Vzc2luZyBvdmVyaGVhZC4KCk9rYXksIGxldCBtZSByZXZpZXcgdGhlIGluc3RydWN0aW9ucyB0byBlbnN1cmUgSSB1bmRlcnN0YW5kIGV2ZXJ5dGhpbmcuICYjMzQ7V29ydGhGdXp6aW5nOiB0cnVlLCYjMzQ7IGdyZWF0LiAmIzM0O0ZvY3VzU3ltYm9sczogYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLCYjMzQ7IGNoZWNrLiAmIzM0O0VuYWJsZUNvbmZpZ3M6IGBDRkc4MDIxMWAsIGBNQUM4MDIxMV9IV1NJTWAsJiMzNDsgY29uZmlybWVkLiBUaGUgcmVhc29uaW5nIHNheXMgdGhlIHBhdGNoIGltcGFjdHMgdGhlIHJ1bmF3YXkgbGltaXQsIGNoYW5nZXMgYSBgV0FSTl9PTmAgdG8gYSBgQlVHKClgIGluIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGgsIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYC4KCk9uZSBsYXN0IHRoaW5nLCBsZXQmIzM5O3MgZG91YmxlIGNoZWNrIGlmIGBNQUM4MDIxMV9IV1NJTWAgaXMgZW5vdWdoIG9yIHdlIG5lZWQgdG8gZW5hYmxlIGBNQUM4MDIxMWAuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKk1BQzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZz0xPWNvbmZpZyBNQUM4MDIxMV9IV1NJTVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXHR0cmlzdGF0ZSBcJiMzNDtTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVwmIzM0O1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnOjM6XHRkZXBlbmRzIG9uIE1BQzgwMjExXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMDggMTQ6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzk1MAoJCQkJCQkJb3V0cHV0OiA0MQoJCQkJCQkJdGhvdWdodHM6IDk3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlcGVuZGVuY2llcyBhbmQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhhdCBgTUFDODAyMTFfSFdTSU1gIGhhcyBhIGRpcmVjdCBkZXBlbmRlbmN5IG9uIGBNQUM4MDIxMWAuIFRoYXQgbWFrZXMgc2Vuc2U7IGhhcmR3YXJlIHNpbXVsYXRpb24gaXMgYnVpbHQgb24gdGhlIGNvcmUgTUFDIGxheWVyLiBUaGVyZWZvcmUsIEkgbmVlZCB0byBiZSBzdXJlIHRvIGluY2x1ZGUgYE1BQzgwMjExYCB3aGVuIEkmIzM5O20gY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gQWxyaWdodCwgbGV0JiMzOTtzIGFkZCB0aGF0IHRvIHRoZSBFbmFibGVDb25maWdzIGxpc3Q6IGBbJiMzNDtDRkc4MDIxMSYjMzQ7LCAmIzM0O01BQzgwMjExJiMzNDssICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0O11gLgoKSG9sZCBvbiBhIHNlY29uZC4uLiByaWdodCwgb2YgY291cnNlLiBgQ0ZHODAyMTFgIGlzIGFsc28gYSBmdW5kYW1lbnRhbCByZXF1aXJlbWVudCBmb3IgYE1BQzgwMjExYC4gSSBrbmV3IHRoYXQuIEJldHRlciBtYWtlIHN1cmUgdGhhdCYjMzk7cyBhY2NvdW50ZWQgZm9yIGFzIHdlbGwsIGp1c3QgdG8gYmUgdGhvcm91Z2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKkNGRzgwMjExJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWcmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjExL0tjb25maWc9Mj1jb25maWcgTUFDODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjExIE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjExKVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6NDpcdGRlcGVuZHMgb24gQ0ZHODAyMTFcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXHRzZWxlY3QgQ1JZUFRPXG4tLVxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcJiMzNDtDRkc4MDIxMSBuZWVkcyB0byBiZSBlbmFibGVkIGZvciBNQUM4MDIxMVwmIzM0O1xubmV0L21hYzgwMjExL0tjb25maWc6MTc6XHRkZXBlbmRzIG9uIENGRzgwMjExPW5cbm5ldC9tYWM4MDIxMS9LY29uZmlnLTE4LVxuLS1cbm5ldC9tYWM4MDIxMS9LY29uZmlnPTg4PWNvbmZpZyBNQUM4MDIxMV9ERUJVR0ZTXG5uZXQvbWFjODAyMTEvS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7RXhwb3J0IG1hYzgwMjExIGludGVybmFscyBpbiBEZWJ1Z0ZTXCYjMzQ7XG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5MDpcdGRlcGVuZHMgb24gTUFDODAyMTEgXHUwMDI2XHUwMDI2IENGRzgwMjExX0RFQlVHRlNcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTkxLVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8wOCAxNDozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4NTgzCgkJCQkJCQlvdXRwdXQ6IDEzNQoJCQkJCQkJdGhvdWdodHM6IDEyOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgV2lyZWxlc3MgRHJpdmVyIE1vZHVsZSBEZXNpZ24gLSBJbml0aWFsIEFzc2Vzc21lbnQqKgoKT2theSwgc28gSSYjMzk7bSBmb2N1c2luZyBvbiB0aGUgd2lyZWxlc3MgZHJpdmVyIG1vZHVsZSBkZXNpZ24sIHNwZWNpZmljYWxseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGtleSBjb21wb25lbnRzLiBSaWdodCwgYE1BQzgwMjExYCBkZWZpbml0ZWx5IGJ1aWxkcyB1cG9uIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBmdW5kYW1lbnRhbCwgYW5kIGl0IGZvcm1zIHRoZSBiYXNpcyBvZiB0aGUgbW9kZXJuIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gVGhlcmVmb3JlLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgYWxsIGxpa2VseSB1c2VmdWwgYXJlYXMgdG8gaW52ZXN0aWdhdGUuCgpOb3csIGxldCBtZSBxdWlja2x5IGNvbmZpcm0gYSBzcGVjaWZpYyBkZXRhaWwgYWJvdXQgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBJIG5lZWQgdG8gZGV0ZXJtaW5lIGl0cyBzY29wZS4gSXMgaXQgc3RhdGljLCBvciBpcyBpdCBleHBvc2VkIGZvciBleHRlcm5hbCB1c2U/IEEgcXVpY2sgc2NhbiBzdWdnZXN0cyBpdOKAmXMgbm90IHN0YXRpYywgYW5kIGl0JiMzOTtzIGRlZmluZWQgd2l0aGluIGBuZXQvd2lyZWxlc3MvY29yZS5oYC4gVGhhdCYjMzk7cyBnb29kOyBpdCYjMzk7cyBhIGNlbnRyYWxseSBsb2NhdGVkIGFuZCBwcm9iYWJseSBjcml0aWNhbCBzeW1ib2wgZm9yIG15IGFuYWx5c2lzLgoKVGltZSB0byBsb2cgd2hhdCBJJiMzOTt2ZSBmb3VuZC4gSSYjMzk7bGwgY2FsbCBzZXQtcmVzdWx0cyBhbmQgcmVjb3JkIG15IGZpbmRpbmdzIGZvciBub3cuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzA4IDE0OjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtDRkc4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMSYjMzQ7LAogICAgJiMzNDtNQUM4MDIxMV9IV1NJTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7Q0ZHODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTEmIzM0OywKICAgICYjMzQ7TUFDODAyMTFfSFdTSU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy4xNDM5MTU4NFoiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczOTc3MzcxNjEzMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjI3OjMzLjE0MzkyMzA0WiIsIlNlcSI6MSwiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJyZWFkLXBhdGNoLWRpZmYiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MTE5OTAzMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIlBhdGNoRGlmZlwiOiBcImNvbW1pdCAyMzA5MzZiNmM4YTZlNTIwMDlmOGNjNjBmMmYxNzYyZmFhMzRhZmU5XFxuQXV0aG9yOiBzeXotY2x1c3RlciBcXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cXHUwMDNlXFxuRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL2NvcmUuYyBiL25ldC93aXJlbGVzcy9jb3JlLmNcXG5pbmRleCAzZGNmNjNiMDRjNDFkYi4uOWE0ZDAyMmY4ODM4MzggMTAwNjQ0XFxuLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuY1xcbisrKyBiL25ldC93aXJlbGVzcy9jb3JlLmNcXG5AQCAtMTI1Niw3ICsxMjU2LDcgQEAgRVhQT1JUX1NZTUJPTCh3aXBoeV9yZmtpbGxfc3RhcnRfcG9sbGluZyk7XFxuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuIFxcdFxcdFxcdFxcdCAgc3RydWN0IHdpcGh5X3dvcmsgKmVuZClcXG4ge1xcbi1cXHR1bnNpZ25lZCBpbnQgcnVuYXdheV9saW1pdCA9IDEwMDtcXG4rXFx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAzMDAwMDtcXG4gXFx0dW5zaWduZWQgbG9uZyBmbGFncztcXG4gXFxuIFxcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXFx1MDAyNnJkZXYtXFx1MDAzZXdpcGh5Lm10eCk7XFxuQEAgLTEyNzgsOCArMTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxuIFxcdFxcdGlmICh3ayA9PSBlbmQpXFxuIFxcdFxcdFxcdGJyZWFrO1xcbiBcXG4tXFx0XFx0aWYgKFdBUk5fT04oLS1ydW5hd2F5X2xpbWl0ID09IDApKVxcbi1cXHRcXHRcXHRJTklUX0xJU1RfSEVBRChcXHUwMDI2cmRldi1cXHUwMDNld2lwaHlfd29ya19saXN0KTtcXG4rXFx0XFx0aWYgKC0tcnVuYXdheV9saW1pdCA9PSAwKVxcbitcXHRcXHRcXHRCVUcoKTtcXG4gXFx0fVxcbiBcXHRzcGluX3VubG9ja19pcnFyZXN0b3JlKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcXG4gfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy42NTcxNzg2NzFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjczOTI2MDQ0MzUxMCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjMwOTM2YjZjOGE2ZTUyMDA5ZjhjYzYwZjJmMTc2MmZhYTM0YWZlOVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBXZWQgSnVsIDggMTQ6Mjc6MzEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9uZXQvd2lyZWxlc3MvY29yZS5jIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xuaW5kZXggM2RjZjYzYjA0YzQxZGIuLjlhNGQwMjJmODgzODM4IDEwMDY0NFxuLS0tIGEvbmV0L3dpcmVsZXNzL2NvcmUuY1xuKysrIGIvbmV0L3dpcmVsZXNzL2NvcmUuY1xuQEAgLTEyNTYsNyArMTI1Niw3IEBAIEVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xuIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdFx0XHQgIHN0cnVjdCB3aXBoeV93b3JrICplbmQpXG4ge1xuLVx0dW5zaWduZWQgaW50IHJ1bmF3YXlfbGltaXQgPSAxMDA7XG4rXHR1bnNpZ25lZCBpbnQgcnVuYXdheV9saW1pdCA9IDMwMDAwO1xuIFx0dW5zaWduZWQgbG9uZyBmbGFncztcbiBcbiBcdGxvY2tkZXBfYXNzZXJ0X2hlbGQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeS5tdHgpO1xuQEAgLTEyNzgsOCArMTI3OCw4IEBAIHZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXG4gXHRcdGlmICh3ayA9PSBlbmQpXG4gXHRcdFx0YnJlYWs7XG4gXG4tXHRcdGlmIChXQVJOX09OKC0tcnVuYXdheV9saW1pdCA9PSAwKSlcbi1cdFx0XHRJTklUX0xJU1RfSEVBRChcdTAwMjZyZGV2LVx1MDAzZXdpcGh5X3dvcmtfbGlzdCk7XG4rXHRcdGlmICgtLXJ1bmF3YXlfbGltaXQgPT0gMClcbitcdFx0XHRCVUcoKTtcbiBcdH1cbiBcdHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xvY2ssIGZsYWdzKTtcbiB9XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDoyNzozMy42NTcxODEyOTFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyNDQzOTU2NTM3NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgYG5ldC93aXJlbGVzcy9jb3JlLmNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IHRvdWNoZXMgYG5ldC93aXJlbGVzcy9jb3JlLmNgLCBzcGVjaWZpY2FsbHkgdGhlIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBmdW5jdGlvbi4gVGhlIGNvZGUgaGFzIGJlZW4gY2hhbmdlZC4gTXkgaW5pdGlhbCByZWFjdGlvbiBpcyB0byB0aGluaywgXCJJcyB0aGlzIGZ1enphYmxlP1wiIFNpbmNlIEknbSBhbiBleHBlcnQsIEkgaW1tZWRpYXRlbHkgemVybyBpbiBvbiB0aGUga2V5IHBhcnRzLiBUaGUgYHJ1bmF3YXlfbGltaXRgIGhhcyBiZWVuIGJ1bXBlZCBmcm9tIDEwMCB0byAzMDAwMCwgd2hpY2ggaXMgaW50ZXJlc3RpbmcsIGJ1dCBhbHNvIGEgYFdBUk5fT05gIGlzIG5vdyBhIGBCVUcoKWAuIE15IGd1dCBzYXlzLCBcIlllcywgZnV6eiBpdCEgSXQncyBpbiB0aGUgd2lyZWxlc3MgY29yZTsgY2hhbmdlcyBoZXJlIGFyZSBvZnRlbiBpbXBhY3RmdWwuXCJcblxuQnV0IHdhaXQsIEkgbmVlZCB0byBiZSBwcmVjaXNlLiBUaGUgaW5zdHJ1Y3Rpb25zIHNheSB0byByZXR1cm4gYFdvcnRoRnV6emluZz1mYWxzZWAgdW5kZXIgc3BlY2lmaWMgY2lyY3Vtc3RhbmNlcy4gTGV0IG1lIGNsYXJpZnkgaWYgdGhpcyBpcyBvbmUgb2YgdGhlbS4gXCJNb2RpZmljYXRpb25zIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0ICpkbyBub3QqIGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdz9cIiBBIGNoYW5nZSBmcm9tIGBXQVJOX09OYCB0byBgQlVHKClgICpkZWZpbml0ZWx5KiBhbHRlcnMgdGhlIGV4ZWN1dGlvbiBmbG93OyB0aGF0J3MgYSBjcmFzaCB2ZXJzdXMgYW4gYXR0ZW1wdCB0byBjb250aW51ZS4gQW5kIHRoZSBsaW1pdCBpbmNyZWFzZSBjb3VsZCBleHBvc2UgdGhlIEJVRyBtb3JlIHF1aWNrbHksIG9yIG1ha2UgaXQgbW9yZSBsaWtlbHkgdG8gb2NjdXIuIEl0J3Mgbm90IGEgcHVyZSBjb3NtZXRpYyBjaGFuZ2UgbGlrZSBsb2dnaW5nIG9yIGRvY3VtZW50YXRpb24uIFNvLCB0aGlzIGNoYW5nZSBpcyBub3Qgc2ltcGx5IGRlY29yYXRpdmUuXG5cblRoZSBjb2RlIHNuaXBwZXQgY29uZmlybXMgdGhpczpcblxuYGBgY1xuLVx0XHRpZiAoV0FSTl9PTigtLXJ1bmF3YXlfbGltaXQgPT0gMCkpXG4tXHRcdFx0SU5JVF9MSVNUX0hFQUQoXHUwMDI2cmRldi1cdTAwM2V3aXBoeV93b3JrX2xpc3QpO1xuK1x0XHRpZiAoLS1ydW5hd2F5X2xpbWl0ID09IDApXG4rXHRcdFx0QlVHKCk7XG5gYGBcblxuVGhlIGNoYW5nZSBpcyBub3QgbWVyZWx5IGNvc21ldGljLiBJdCBmdW5kYW1lbnRhbGx5IGNoYW5nZXMga2VybmVsIGJlaGF2aW9yLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGEgY3Jhc2ggaW5zdGVhZCBvZiBhIG1vcmUgZ3JhY2VmdWwgcmVjb3ZlcnkuIEkgYWxzbyBuZWVkIHRvIGNoZWNrIHRoZSBjb25maWdzIGZvciBgbmV0L3dpcmVsZXNzL2NvcmUuY2AuIExldCdzIGNvbmZpcm0gaXQgdXNlcyBgQ09ORklHX0NGRzgwMjExYC4gTm93IEkgbmVlZCB0byBjaGVjayBgbmV0L3dpcmVsZXNzL01ha2VmaWxlYC4gSSB3aWxsIHZlcmlmeSB0aGUgbWFrZWZpbGUgdG8gY29uZmlybSB0aGUgY29uZmlnIGFuZCBpdHMgZGVwZW5kZW5jaWVzLiBUaGlzIHdhcnJhbnRzIGZ1cnRoZXIgaW52ZXN0aWdhdGlvbi4gVGhpcyBwYXRjaCBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5ODQsIk91dHB1dFRva2VucyI6MzIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo0NjMsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozMTozOC4wNTI4Mzc5OTNaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDEyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L3dpcmVsZXNzL01ha2VmaWxlXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDEsXG4gIFwiTGluZUNvdW50XCI6IDEwMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdG9iai0kKENPTkZJR19DRkc4MDIxMSkgKz0gY2ZnODAyMTEub1xcbiAgIDM6XFx0b2JqLXkgKz0gdGVzdHMvXFxuICAgNDpcXHRcXG4gICA1OlxcdG9iai0kKENPTkZJR19XRVhUX0NPUkUpICs9IHdleHQtY29yZS5vXFxuICAgNjpcXHRvYmotJChDT05GSUdfV0VYVF9QUk9DKSArPSB3ZXh0LXByb2Mub1xcbiAgIDc6XFx0b2JqLSQoQ09ORklHX1dFWFRfUFJJVikgKz0gd2V4dC1wcml2Lm9cXG4gICA4OlxcdFxcbiAgIDk6XFx0Y2ZnODAyMTEteSArPSBjb3JlLm8gc3lzZnMubyByYWRpb3RhcC5vIHV0aWwubyByZWcubyBzY2FuLm8gbmw4MDIxMS5vXFxuICAxMDpcXHRjZmc4MDIxMS15ICs9IG1sbWUubyBpYnNzLm8gc21lLm8gY2hhbi5vIGV0aHRvb2wubyBtZXNoLm8gYXAubyB0cmFjZS5vIG9jYi5vXFxuICAxMTpcXHRjZmc4MDIxMS15ICs9IG1pY2hhZWwtbWljLm8gcG1zci5vXFxuICAxMjpcXHRjZmc4MDIxMS0kKENPTkZJR19PRikgKz0gb2Yub1xcbiAgMTM6XFx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfREVCVUdGUykgKz0gZGVidWdmcy5vXFxuICAxNDpcXHRjZmc4MDIxMS0kKENPTkZJR19DRkc4MDIxMV9XRVhUKSArPSB3ZXh0LWNvbXBhdC5vIHdleHQtc21lLm9cXG4gIDE1OlxcdFxcbiAgMTY6XFx0Q0ZMQUdTX3RyYWNlLm8gOj0gLUkkKHNyYylcXG4gIDE3OlxcdFxcbiAgMTg6XFx0Y2ZnODAyMTEtJChDT05GSUdfQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTKSArPSBzaGlwcGVkLWNlcnRzLm9cXG4gIDE5OlxcdGlmbmVxICgkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpLClcXG4gIDIwOlxcdGNmZzgwMjExLXkgKz0gZXh0cmEtY2VydHMub1xcbiAgMjE6XFx0ZW5kaWZcXG4gIDIyOlxcdFxcbiAgMjM6XFx0JChvYmopL3NoaXBwZWQtY2VydHMuYzogJChzb3J0ICQod2lsZGNhcmQgJChzcmMpL2NlcnRzLyouaGV4KSlcXG4gIDI0OlxcdFxcdEAkKGtlY2hvKSBcXFwiICBHRU4gICAgICRAXFxcIlxcbiAgMjU6XFx0XFx0JChRKShlY2hvICcjaW5jbHVkZSBcXFwicmVnLmhcXFwiJzsgXFxcXFxcbiAgMjY6XFx0XFx0ICBlY2hvICdjb25zdCB1OCBzaGlwcGVkX3JlZ2RiX2NlcnRzW10gPSB7JzsgXFxcXFxcbiAgMjc6XFx0XFx0ICBlY2hvIHwgY2F0IC0gJF4gOyBcXFxcXFxuICAyODpcXHRcXHQgIGVjaG8gJ307JzsgXFxcXFxcbiAgMjk6XFx0XFx0ICBlY2hvICd1bnNpZ25lZCBpbnQgc2hpcHBlZF9yZWdkYl9jZXJ0c19sZW4gPSBzaXplb2Yoc2hpcHBlZF9yZWdkYl9jZXJ0cyk7JzsgXFxcXFxcbiAgMzA6XFx0XFx0ICkgXFx1MDAzZSAkQFxcbiAgMzE6XFx0XFxuICAzMjpcXHQkKG9iaikvZXh0cmEtY2VydHMuYzogJChDT05GSUdfQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSKSBcXFxcXFxuICAzMzpcXHRcXHRcXHQgICAgICAkKHNvcnQgJCh3aWxkY2FyZCAkKENPTkZJR19DRkc4MDIxMV9FWFRSQV9SRUdEQl9LRVlESVIpLyoueDUwOSkpXFxuICAzNDpcXHRcXHRAJChrZWNobykgXFxcIiAgR0VOICAgICAkQFxcXCJcXG4gIDM1OlxcdFxcdCQoUSkoc2V0IC1lOyBcXFxcXFxuICAzNjpcXHRcXHQgIGFsbGY9XFxcIlxcXCI7IFxcXFxcXG4gIDM3OlxcdFxcdCAgZm9yIGYgaW4gJF4gOyBkbyBcXFxcXFxuICAzODpcXHRcXHQgICAgICB0ZXN0IC1mICQkZiB8fCBjb250aW51ZTtcXFxcXFxuICAzOTpcXHRcXHQgICAgICAjIHNpbWlsYXIgdG8gaGV4ZHVtcCAtdiAtZSAnMS8xIFxcXCIweCUuMngsXFxcIiBcXFwiXFxcXG5cXFwiJyBcXFxcXFxuICA0MDpcXHRcXHQgICAgICB0aGlzZj0kJChvZCAtQW4gLXYgLXR4MSBcXHUwMDNjICQkZiB8IFxcXFxcXG4gIDQxOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvIC9cXFxcbi9nJyB8IFxcXFxcXG4gIDQyOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvXlswLTlhLWZdXFxcXCskJC9cXFxcMC87dDtkJyB8IFxcXFxcXG4gIDQzOlxcdFxcdCAgICAgICAgICAgICAgICAgICBzZWQgLWUgJ3MvXi8weC87cy8kJC8sLycpOyBcXFxcXFxuICA0NDpcXHRcXHQgICAgICAjIGZpbGUgc2hvdWxkIG5vdCBiZSBlbXB0eSAtIG1heWJlIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZhaWxlZD8gXFxcXFxcbiAgNDU6XFx0XFx0ICAgICAgdGVzdCAhIC16IFxcXCIkJHRoaXNmXFxcIjtcXFxcXFxuICA0NjpcXHRcXHQgICAgICBhbGxmPSQkYWxsZiQkdGhpc2Y7XFxcXFxcbiAgNDc6XFx0XFx0ICBkb25lOyBcXFxcXFxuICA0ODpcXHRcXHQgICggXFxcXFxcbiAgNDk6XFx0XFx0ICAgICAgZWNobyAnI2luY2x1ZGUgXFxcInJlZy5oXFxcIic7IFxcXFxcXG4gIDUwOlxcdFxcdCAgICAgIGVjaG8gJ2NvbnN0IHU4IGV4dHJhX3JlZ2RiX2NlcnRzW10gPSB7JzsgXFxcXFxcbiAgNTE6XFx0XFx0ICAgICAgZWNobyBcXFwiJCRhbGxmXFxcIjsgXFxcXFxcbiAgNTI6XFx0XFx0ICAgICAgZWNobyAnfTsnOyBcXFxcXFxuICA1MzpcXHRcXHQgICAgICBlY2hvICd1bnNpZ25lZCBpbnQgZXh0cmFfcmVnZGJfY2VydHNfbGVuID0gc2l6ZW9mKGV4dHJhX3JlZ2RiX2NlcnRzKTsnOyBcXFxcXFxuICA1NDpcXHRcXHQgICkgXFx1MDAzZSAkQClcXG4gIDU1OlxcdFxcbiAgNTY6XFx0Y2xlYW4tZmlsZXMgKz0gc2hpcHBlZC1jZXJ0cy5jIGV4dHJhLWNlcnRzLmNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6MzE6MzguMDUyOTgxNDgzWiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjQ1NDU4NjM4MTg3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBDRkc4MDIxMWAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCBgQ0ZHODAyMTFgIOKAkyB0aGUgd2lyZWxlc3MgY29uZmlndXJhdGlvbiBmcmFtZXdvcmsuIFRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzIHdoZXRoZXIgdGhpcyBpcyBzb21ldGhpbmcgSSBjYW4gYWN0dWFsbHkgcG9rZSBhdCBpbiBhIGNvbnRyb2xsZWQgZW52aXJvbm1lbnQsIGVzcGVjaWFsbHkgc2luY2UgSSdtIG9mdGVuIHdvcmtpbmcgd2l0aCB2aXJ0dWFsaXplZCBzeXN0ZW1zLiBHb29kIG5ld3MsIGl0IGxvb2tzIGxpa2UgYG1hYzgwMjExX2h3c2ltYCBvZmZlcnMgYSBncmVhdCBzb2x1dGlvbiBhcyBpdCBlbXVsYXRlcyB0aGUgd2lyZWxlc3MgaGFyZHdhcmUsIHdoaWNoIHNob3VsZCBnaXZlIG1lIGFjY2VzcyB0byB0aGUgY29yZSB3aXJlbGVzcyBjb2RlLlxuXG5Ob3csIGxldCdzIGdldCBzcGVjaWZpYy4gSSBuZWVkIHRvIGZvY3VzIG9uIGEgcGFydGljdWxhciBmdW5jdGlvbiwgYW5kIEkgYmVsaWV2ZSBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHN0YXJ0LiBUaGlzIGlzIGxpa2VseSB0aGUgZW50cnkgcG9pbnQgSSdtIGFmdGVyLCB3aGVyZSB0aGUgbWFnaWMgcmVhbGx5IGhhcHBlbnMuXG5cbk15IG5leHQgc3RlcCBpcyBjbGVhci4gSSBuZWVkIHRvIHRyYWNlICp3aGVyZSogdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZC4gS25vd2luZyB0aGUgY2FsbCBzaXRlcyB3aWxsIGJlIGNydWNpYWwgZm9yIHVuZGVyc3RhbmRpbmcgaXRzIHJvbGUgYW5kIGhvdyBpdCdzIGludGVncmF0ZWQgd2l0aGluIHRoZSBsYXJnZXIgYENGRzgwMjExYCBlY29zeXN0ZW0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQwNTQsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo4MywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM1OjQzLjUxMTYyMjIzWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIyMzQ4NjcxNTUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L3dpcmVsZXNzL2NvcmUuYz0xMjU0PUVYUE9SVF9TWU1CT0wod2lwaHlfcmZraWxsX3N0YXJ0X3BvbGxpbmcpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmMtMTI1NS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEyNTY6dm9pZCBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHN0cnVjdCBjZmc4MDIxMV9yZWdpc3RlcmVkX2RldmljZSAqcmRldixcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEyNTctXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYz0xMjg3PXZvaWQgd2lwaHlfdW5yZWdpc3RlcihzdHJ1Y3Qgd2lwaHkgKndpcGh5KVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xMzMwLVxcdC8qIHN1cmVseSBub3RoaW5nIGlzIHJlYWNoYWJsZSBub3csIGNsZWFuIHVwIHdvcmsgKi9cXG5uZXQvd2lyZWxlc3MvY29yZS5jOjEzMzE6XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3MvY29yZS5jLTEzMzItXFx0d2lwaHlfdW5sb2NrKFxcdTAwMjZyZGV2LVxcdTAwM2V3aXBoeSk7XFxuLS1cXG5uZXQvd2lyZWxlc3MvY29yZS5jPTE5MDc9dm9pZCB3aXBoeV93b3JrX2ZsdXNoKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCB3aXBoeV93b3JrICp3b3JrKVxcbi0tXFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTE5LVxcdGlmIChydW4pXFxubmV0L3dpcmVsZXNzL2NvcmUuYzoxOTIwOlxcdFxcdGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MocmRldiwgd29yayk7XFxubmV0L3dpcmVsZXNzL2NvcmUuYy0xOTIxLX1cXG4tLVxcbm5ldC93aXJlbGVzcy9jb3JlLmg9NDY5PXZvaWQgY2ZnODAyMTFfcHJvY2Vzc19yZGV2X2V2ZW50cyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYpO1xcbm5ldC93aXJlbGVzcy9jb3JlLmg6NDcwOnZvaWQgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhzdHJ1Y3QgY2ZnODAyMTFfcmVnaXN0ZXJlZF9kZXZpY2UgKnJkZXYsXFxubmV0L3dpcmVsZXNzL2NvcmUuaC00NzEtXFx0XFx0XFx0XFx0ICBzdHJ1Y3Qgd2lwaHlfd29yayAqZW5kKTtcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jPTk0PXN0YXRpYyBpbnQgd2lwaHlfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpXFxuLS1cXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDYtXFx0XFx0c2NvcGVkX2d1YXJkKHdpcGh5LCBcXHUwMDI2cmRldi1cXHUwMDNld2lwaHkpIHtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYzoxMDc6XFx0XFx0XFx0Y2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3JrcyhyZGV2LCBOVUxMKTtcXG5uZXQvd2lyZWxlc3Mvc3lzZnMuYy0xMDgtXFx0XFx0XFx0aWYgKHJkZXYtXFx1MDAzZW9wcy1cXHUwMDNlc3VzcGVuZClcXG4tLVxcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMC1cXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3JkZXZfZXZlbnRzKHJkZXYpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jOjEyMTpcXHRcXHRjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzKHJkZXYsIE5VTEwpO1xcbm5ldC93aXJlbGVzcy9zeXNmcy5jLTEyMi1cXHRcXHRpZiAocmRldi1cXHUwMDNlb3BzLVxcdTAwM2VzdXNwZW5kKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozNTo0NS43NDY0OTU2NjVaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxNDQzNzMzODMxNTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRnV6emluZyB0aGUgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgIEZ1bmN0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3NgLiBJdCdzIGNhbGxlZCBmcm9tIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLCBzbyB5ZWFoLCBpdCdzIGRlZmluaXRlbHkgcmVhY2hhYmxlLiBTZWVtcyBsaWtlIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIHdpcmVsZXNzIGNvcmUsIHNvIGl0J3MgcHJvYmFibHkgd29ydGggcHV0dGluZyBzb21lIGZ1enppbmcgZWZmb3J0IGludG8gdGhpcy5cblxuUmlnaHQsIHdoYXQgY29uZmlncyBkbyBJIG5lZWQgdG8gZW5hYmxlPyBUaGUgaW5zdHJ1Y3Rpb24gc2F5cyBJIG5lZWQgYENGRzgwMjExYCwgb2J2aW91c2x5LiBBbmQgdGhlbiBgTUFDODAyMTFfSFdTSU1gIHRvIGFjdHVhbGx5IGJlIGFibGUgdG8gdGVzdCB0aGlzIGluIGEgdmlydHVhbCBtYWNoaW5lLCBzaW5jZSB0aGUga2VybmVsIGRvY3VtZW50YXRpb24gc2F5cyBcInRvIGNvbXBpbGUgYW5kIHRlc3RcIi4gVGhvdWdoLCBoYW5nIG9uLi4uIGBNQUM4MDIxMV9IV1NJTWAgaXNuJ3QgKnN0cmljdGx5KiByZXF1aXJlZCB0byAqY29tcGlsZSogdGhlIGNvZGUsIGp1c3QgdG8gdGVzdCBpdCBlZmZlY3RpdmVseS4gQnV0IHRoZSBwcm9tcHQgc3BlY2lmaWVkIFwiY29tcGlsZSBhbmQgdGVzdFwiLiBTbywgZ29vZCwgSSdtIG9uIHRoZSByaWdodCB0cmFjayEgVGhlIGluc3RydWN0aW9uIHNhaWQ6IFwiTGlzdCBvZiBrZXJuZWwgY29uZmlnIGZsYWdzIHRoYXQgbXVzdCBiZSBleHBsaWNpdGx5IGVuYWJsZWQgdG8gY29tcGlsZSBhbmQgdGVzdCB0aGUgbW9kaWZpZWQgY29kZS5cIiBTbyBJJ20gZ29vZCBvbiBgQ0ZHODAyMTFgIGFuZCBgTUFDODAyMTFfSFdTSU1gLlxuXG5MZXQncyBqdXN0IHF1aWNrbHkgZG91YmxlLWNoZWNrIHRob3NlIHR3byBpbiBLY29uZmlnIHRvIGJlIGFic29sdXRlbHkgc3VyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTA2NiwiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIyMiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozODoxMC4xMTk4ODIwNDFaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQwNzk1NDI3NCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgTUFDODAyMTFfSFdTSU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzoxOmNvbmZpZyBNQUM4MDIxMV9IV1NJTVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZy0yLVxcdHRyaXN0YXRlIFxcXCJTaW11bGF0ZWQgcmFkaW8gdGVzdGluZyB0b29sIGZvciBtYWM4MDIxMVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzg6MTIuNTI3ODQxMzI1WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc1Nzc3ODU0NDgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoZSBnaXZlbiBwcm9tcHQ6XG5cbioqS2NvbmZpZyBEaXZlIGludG8gQ0ZHODAyMTEqKlxuXG5Pa2F5LCBzbyB0aGUgcHJvbXB0IHdhbnRzIG1lIHRvIHN1bW1hcml6ZSBteSB0aG91Z2h0cyBhYm91dCBjaGVja2luZyBgQ0ZHODAyMTFgIGluIEtjb25maWcuIEFscmlnaHQsIHRoYXQncyBzdHJhaWdodGZvcndhcmQgZW5vdWdoLiBUaGlzIGlzIGxpa2VseSBhYm91dCBjb25maWd1cmluZyBhIExpbnV4IGtlcm5lbCwgc3BlY2lmaWNhbGx5IHRoZSB3aXJlbGVzcyBuZXR3b3JraW5nIHN1YnN5c3RlbSwgYW5kIGBDRkc4MDIxMWAgaXMgdGhlIGNvcmUgb2YgdGhhdC4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQsIGFuZCBob3cgaXQgcmVsYXRlcyB0byB0aGUgdXNlci4gU2luY2UgdGhlIHByb21wdCBpcyB0byBwcm92aWRlIGEgXCJmdWxzb21lXCIgc3VtbWFyeSwgSSBzaG91bGQgYmUgZGV0YWlsZWQsIGJ1dCBub3Qgb3Zlcmx5IHZlcmJvc2UuIEkgYXNzdW1lIHRoZSB1c2VyIGlzIGZhbWlsaWFyIHdpdGggdGhlIGJhc2ljcywgc28gSSBjYW4gZ28gaW50byBzb21lIGRldGFpbHMuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IEkgc2hvdWxkICpsb29rKiBhdCB0aGUgS2NvbmZpZyBmaWxlIHJlbGF0ZWQgdG8gYENGRzgwMjExYC4gSSBrbm93IGl04oCZcyBhIGNvbmZpZ3VyYXRpb24gc3lzdGVtIHVzZWQgdG8gYnVpbGQgTGludXgga2VybmVscywgc28gSSdkIG9wZW4gdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMuIFRoZW4gSSdkIGNoZWNrIHRoZSBkZXBlbmRlbmNpZXMsIHRoZSBoZWxwIHRleHQsIGFuZCBzZWUgaG93IGBDRkc4MDIxMWAgaXMgZXhwb3NlZC4gSSdkIG5lZWQgdG8gY29uc2lkZXIgaWYgYENGRzgwMjExYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHdoYXQgb3RoZXIgb3B0aW9ucyBvciBmZWF0dXJlcyBhcmUgZGVwZW5kZW50IG9uIGl0LCBhbmQgd2hhdCBvdGhlciBtb2R1bGVzIG1heSBiZSBhZmZlY3RlZCBpZiBpdCdzIGRpc2FibGVkLiBJcyBpdCBhIG1vZHVsZSwgb3IgYnVpbHQtaW4sIG9yIHBvdGVudGlhbGx5IGJvdGg/IEFyZSB0aGVyZSBhbnkgc3BlY2lmaWMgb3B0aW9ucyB0aGF0IG5lZWQgY2FyZWZ1bCBjb25zaWRlcmF0aW9uIGluIGRpZmZlcmVudCB1c2UtY2FzZXM/IElzIHRoZXJlIGFueXRoaW5nIG5ldyBJIG5lZWQgdG8gYmUgYXdhcmUgb2Y/IEFyZSB0aGVyZSBhbnkgcmVsZXZhbnQgY2hhbmdlcyBJIG1pZ2h0IG5lZWQgdG8gdGFrZSBhY2NvdW50IG9mPyBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbiBzdHJ1Y3R1cmUgYXJvdW5kIGl0IHRvIGdldCBhIGZ1bGwgcGljdHVyZS4gQW5kIGZpbmFsbHksIEkgc2hvdWxkIGtlZXAgaW4gbWluZCB0aGF0IEknbSBjb25zaWRlcmluZyBpdCBpbiB0aGUgY29udGV4dCBvZiBhIHByb21wdCwgc28gdGhpcyBlbnRpcmUgcHJvY2VzcyBpcyBoeXBvdGhldGljYWwuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU2ODcsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozODozMC4xMDU2MjkzNTNaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE4Nzk1MzgxNTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIENGRzgwMjExXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvd2lyZWxlc3MvS2NvbmZpZz0xND1jb25maWcgV0VYVF9QUklWXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNi1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzpjb25maWcgQ0ZHODAyMTFcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOC1cXHR0cmlzdGF0ZSBcXFwiY2ZnODAyMTEgLSB3aXJlbGVzcyBjb25maWd1cmF0aW9uIEFQSVxcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnPTM4PWNvbmZpZyBOTDgwMjExX1RFU1RNT0RFXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy01MS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo1Mjpjb25maWcgQ0ZHODAyMTFfREVWRUxPUEVSX1dBUk5JTkdTXFxubmV0L3dpcmVsZXNzL0tjb25maWctNTMtXFx0Ym9vbCBcXFwiZW5hYmxlIGRldmVsb3BlciB3YXJuaW5nc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTY3LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjY4OmNvbmZpZyBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy02OS1cXHRib29sIFxcXCJjZmc4MDIxMSBjZXJ0aWZpY2F0aW9uIG9udXNcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy04OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo4OTpjb25maWcgQ0ZHODAyMTFfUkVRVUlSRV9TSUdORURfUkVHREJcXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05MC1cXHRib29sIFxcXCJyZXF1aXJlIHJlZ2RiIHNpZ25hdHVyZVxcXCIgaWYgQ0ZHODAyMTFfQ0VSVElGSUNBVElPTl9PTlVTXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy05OC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzo5OTpjb25maWcgQ0ZHODAyMTFfVVNFX0tFUk5FTF9SRUdEQl9LRVlTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTAwLVxcdGJvb2wgXFxcImFsbG93IHJlZ2RiIGtleXMgc2hpcHBlZCB3aXRoIHRoZSBrZXJuZWxcXFwiIGlmIENGRzgwMjExX0NFUlRJRklDQVRJT05fT05VU1xcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEwLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjExMTpjb25maWcgQ0ZHODAyMTFfRVhUUkFfUkVHREJfS0VZRElSXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTEyLVxcdHN0cmluZyBcXFwiYWRkaXRpb25hbCByZWdkYiBrZXkgZGlyZWN0b3J5XFxcIiBpZiBDRkc4MDIxMV9DRVJUSUZJQ0FUSU9OX09OVVNcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMjI6Y29uZmlnIENGRzgwMjExX1JFR19DRUxMVUxBUl9ISU5UU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEyMy1cXHRib29sIFxcXCJjZmc4MDIxMSByZWd1bGF0b3J5IHN1cHBvcnQgZm9yIGNlbGx1bGFyIGJhc2Ugc3RhdGlvbiBoaW50c1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNC1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxMzU6Y29uZmlnIENGRzgwMjExX1JFR19SRUxBWF9OT19JUlxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTEzNi1cXHRib29sIFxcXCJjZmc4MDIxMSBzdXBwb3J0IGZvciBOT19JUiByZWxheGF0aW9uXFxcIlxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTU4LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE1OTpjb25maWcgQ0ZHODAyMTFfREVGQVVMVF9QU1xcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE2MC1cXHRib29sIFxcXCJlbmFibGUgcG93ZXJzYXZlIGJ5IGRlZmF1bHRcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xNjgtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTY5OmNvbmZpZyBDRkc4MDIxMV9ERUJVR0ZTXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTcwLVxcdGJvb2wgXFxcImNmZzgwMjExIERlYnVnRlMgZW50cmllc1xcXCJcXG4tLVxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3Ni1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZzoxNzc6Y29uZmlnIENGRzgwMjExX0NSREFfU1VQUE9SVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE3OC1cXHRib29sIFxcXCJzdXBwb3J0IENSREFcXFwiIGlmIEVYUEVSVFxcbi0tXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTg2LVxcbm5ldC93aXJlbGVzcy9LY29uZmlnOjE4Nzpjb25maWcgQ0ZHODAyMTFfV0VYVFxcbm5ldC93aXJlbGVzcy9LY29uZmlnLTE4OC1cXHRib29sIFxcXCJjZmc4MDIxMSB3aXJlbGVzcyBleHRlbnNpb25zIGNvbXBhdGliaWxpdHlcXFwiXFxuLS1cXG5uZXQvd2lyZWxlc3MvS2NvbmZpZy0xOTMtXFxubmV0L3dpcmVsZXNzL0tjb25maWc6MTk0OmNvbmZpZyBDRkc4MDIxMV9LVU5JVF9URVNUXFxubmV0L3dpcmVsZXNzL0tjb25maWctMTk1LVxcdHRyaXN0YXRlIFxcXCJLVW5pdCB0ZXN0cyBmb3IgY2ZnODAyMTFcXFwiIGlmICFLVU5JVF9BTExfVEVTVFNcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzg6MzEuOTg1MTk5NDdaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzA0OTcwMTAzMTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBXaXJlbGVzcyBDb3JlIENoYW5nZXMqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBpbW1lZGlhdGVseSwgYENGRzgwMjExYCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgdGhlIGNvbmZpZ3VyYXRpb25zIGluIHBsYXkuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYC4gVGhhdCdzIHRoZSBtb2RpZmllZCBmdW5jdGlvbiwgZGVmaW5pdGVseSB0aGUga2V5IHN5bWJvbCBoZXJlLiBMZXQncyBzZWUuLi4gdGhlIHBhdGNoIG9ubHkgdG91Y2hlcyBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AsIGNvbmZpcm1pbmcgbXkgaW5pdGlhbCB0aG91Z2h0LiBUaGF0IGZ1bmN0aW9uIGlzICp0aGUqIGZvY3VzIHN5bWJvbCwgbm8gZG91YnQuXG5cbk5vdywgYSBxdWljayBzYW5pdHkgY2hlY2s6IGlzIGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBMZXQncyBzZWUuLi4gaXQncyBjYWxsZWQgZHVyaW5nIGB3aXBoeV91bnJlZ2lzdGVyYCwgYHdpcGh5X3dvcmtfZmx1c2hgLCBhbmQgYHdpcGh5X3N1c3BlbmRgLiBOb3BlLCBub3QgaG90LXBhdGg7IHRob3NlIGFyZSBhbGwgY29udHJvbC1wYXRoIGZ1bmN0aW9ucy4gVGhhdCBtYWtlcyBzZW5zZTsgaXTigJlzIHBlcmZlY3QsIGFjdHVhbGx5LCBiZWNhdXNlIHRoYXQgbWVhbnMgaXQncyBoYW5kbGluZyB0aGUgbG9naWMgZmxvdyBhbmQgaXNuJ3QgY2F1Z2h0IHVwIGluIHBhY2tldC1wcm9jZXNzaW5nIG92ZXJoZWFkLlxuXG5Pa2F5LCBsZXQgbWUgcmV2aWV3IHRoZSBpbnN0cnVjdGlvbnMgdG8gZW5zdXJlIEkgdW5kZXJzdGFuZCBldmVyeXRoaW5nLiBcIldvcnRoRnV6emluZzogdHJ1ZSxcIiBncmVhdC4gXCJGb2N1c1N5bWJvbHM6IGBjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzYCxcIiBjaGVjay4gXCJFbmFibGVDb25maWdzOiBgQ0ZHODAyMTFgLCBgTUFDODAyMTFfSFdTSU1gLFwiIGNvbmZpcm1lZC4gVGhlIHJlYXNvbmluZyBzYXlzIHRoZSBwYXRjaCBpbXBhY3RzIHRoZSBydW5hd2F5IGxpbWl0LCBjaGFuZ2VzIGEgYFdBUk5fT05gIHRvIGEgYEJVRygpYCBpbiBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEl0J3MgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGgsIHJlYWNoYWJsZSB2aWEgYG1hYzgwMjExX2h3c2ltYC5cblxuT25lIGxhc3QgdGhpbmcsIGxldCdzIGRvdWJsZSBjaGVjayBpZiBgTUFDODAyMTFfSFdTSU1gIGlzIGVub3VnaCBvciB3ZSBuZWVkIHRvIGVuYWJsZSBgTUFDODAyMTFgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MDI4LCJPdXRwdXRUb2tlbnMiOjM5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzY0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjAyLjQ4MjIxOTA3WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MjUzMDU5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uLipNQUM4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWdcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnPTE9Y29uZmlnIE1BQzgwMjExX0hXU0lNXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvdmlydHVhbC9LY29uZmlnLTItXFx0dHJpc3RhdGUgXFxcIlNpbXVsYXRlZCByYWRpbyB0ZXN0aW5nIHRvb2wgZm9yIG1hYzgwMjExXFxcIlxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL3ZpcnR1YWwvS2NvbmZpZzozOlxcdGRlcGVuZHMgb24gTUFDODAyMTFcXG5kcml2ZXJzL25ldC93aXJlbGVzcy92aXJ0dWFsL0tjb25maWctNC1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjAyLjU0NDc1MzA3OVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MjIxNTMxNTM1NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZXBlbmRlbmNpZXMgYW5kIENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGFuZCBpdCdzIGNsZWFyIHRoYXQgYE1BQzgwMjExX0hXU0lNYCBoYXMgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiBgTUFDODAyMTFgLiBUaGF0IG1ha2VzIHNlbnNlOyBoYXJkd2FyZSBzaW11bGF0aW9uIGlzIGJ1aWx0IG9uIHRoZSBjb3JlIE1BQyBsYXllci4gVGhlcmVmb3JlLCBJIG5lZWQgdG8gYmUgc3VyZSB0byBpbmNsdWRlIGBNQUM4MDIxMWAgd2hlbiBJJ20gY29uZmlndXJpbmcgdGhlIHN5c3RlbS4gQWxyaWdodCwgbGV0J3MgYWRkIHRoYXQgdG8gdGhlIEVuYWJsZUNvbmZpZ3MgbGlzdDogYFtcIkNGRzgwMjExXCIsIFwiTUFDODAyMTFcIiwgXCJNQUM4MDIxMV9IV1NJTVwiXWAuXG5cbkhvbGQgb24gYSBzZWNvbmQuLi4gcmlnaHQsIG9mIGNvdXJzZS4gYENGRzgwMjExYCBpcyBhbHNvIGEgZnVuZGFtZW50YWwgcmVxdWlyZW1lbnQgZm9yIGBNQUM4MDIxMWAuIEkga25ldyB0aGF0LiBCZXR0ZXIgbWFrZSBzdXJlIHRoYXQncyBhY2NvdW50ZWQgZm9yIGFzIHdlbGwsIGp1c3QgdG8gYmUgdGhvcm91Z2guXG5cblxuIiwiSW5wdXRUb2tlbnMiOjc5NTAsIk91dHB1dFRva2VucyI6NDEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0wOFQxNDozOTo0NC43NjAwNzExMDRaIiwiU2VxIjoxNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI5MTI1MzA5OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkZXBlbmRzIG9uLipDRkc4MDIxMVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTEvS2NvbmZpZz0yPWNvbmZpZyBNQUM4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTMtXFx0dHJpc3RhdGUgXFxcIkdlbmVyaWMgSUVFRSA4MDIuMTEgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTEpXFxcIlxcbm5ldC9tYWM4MDIxMS9LY29uZmlnOjQ6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMVxcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTUtXFx0c2VsZWN0IENSWVBUT1xcbi0tXFxubmV0L21hYzgwMjExL0tjb25maWc9MTY9Y29tbWVudCBcXFwiQ0ZHODAyMTEgbmVlZHMgdG8gYmUgZW5hYmxlZCBmb3IgTUFDODAyMTFcXFwiXFxubmV0L21hYzgwMjExL0tjb25maWc6MTc6XFx0ZGVwZW5kcyBvbiBDRkc4MDIxMT1uXFxubmV0L21hYzgwMjExL0tjb25maWctMTgtXFxuLS1cXG5uZXQvbWFjODAyMTEvS2NvbmZpZz04OD1jb25maWcgTUFDODAyMTFfREVCVUdGU1xcbm5ldC9tYWM4MDIxMS9LY29uZmlnLTg5LVxcdGJvb2wgXFxcIkV4cG9ydCBtYWM4MDIxMSBpbnRlcm5hbHMgaW4gRGVidWdGU1xcXCJcXG5uZXQvbWFjODAyMTEvS2NvbmZpZzo5MDpcXHRkZXBlbmRzIG9uIE1BQzgwMjExIFxcdTAwMjZcXHUwMDI2IENGRzgwMjExX0RFQlVHRlNcXG5uZXQvbWFjODAyMTEvS2NvbmZpZy05MS1cXHRoZWxwXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTA4VDE0OjM5OjQ1LjA1MTMzMDA0M1oiLCJTZXEiOjE1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NzgzNzQ5NTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBXaXJlbGVzcyBEcml2ZXIgTW9kdWxlIERlc2lnbiAtIEluaXRpYWwgQXNzZXNzbWVudCoqXG5cbk9rYXksIHNvIEknbSBmb2N1c2luZyBvbiB0aGUgd2lyZWxlc3MgZHJpdmVyIG1vZHVsZSBkZXNpZ24sIHNwZWNpZmljYWxseSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhlIGtleSBjb21wb25lbnRzLiBSaWdodCwgYE1BQzgwMjExYCBkZWZpbml0ZWx5IGJ1aWxkcyB1cG9uIGBDRkc4MDIxMWAuIFRoYXQgZGVwZW5kZW5jeSBpcyBmdW5kYW1lbnRhbCwgYW5kIGl0IGZvcm1zIHRoZSBiYXNpcyBvZiB0aGUgbW9kZXJuIGtlcm5lbCB3aXJlbGVzcyBzdGFjay4gVGhlcmVmb3JlLCBgQ0ZHODAyMTFgLCBgTUFDODAyMTFgLCBhbmQgYE1BQzgwMjExX0hXU0lNYCBhcmUgYWxsIGxpa2VseSB1c2VmdWwgYXJlYXMgdG8gaW52ZXN0aWdhdGUuXG5cbk5vdywgbGV0IG1lIHF1aWNrbHkgY29uZmlybSBhIHNwZWNpZmljIGRldGFpbCBhYm91dCBgY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc2AuIEkgbmVlZCB0byBkZXRlcm1pbmUgaXRzIHNjb3BlLiBJcyBpdCBzdGF0aWMsIG9yIGlzIGl0IGV4cG9zZWQgZm9yIGV4dGVybmFsIHVzZT8gQSBxdWljayBzY2FuIHN1Z2dlc3RzIGl04oCZcyBub3Qgc3RhdGljLCBhbmQgaXQncyBkZWZpbmVkIHdpdGhpbiBgbmV0L3dpcmVsZXNzL2NvcmUuaGAuIFRoYXQncyBnb29kOyBpdCdzIGEgY2VudHJhbGx5IGxvY2F0ZWQgYW5kIHByb2JhYmx5IGNyaXRpY2FsIHN5bWJvbCBmb3IgbXkgYW5hbHlzaXMuXG5cblRpbWUgdG8gbG9nIHdoYXQgSSd2ZSBmb3VuZC4gSSdsbCBjYWxsIHNldC1yZXN1bHRzIGFuZCByZWNvcmQgbXkgZmluZGluZ3MgZm9yIG5vdy5cblxuXG4iLCJJbnB1dFRva2VucyI6ODU4MywiT3V0cHV0VG9rZW5zIjoxMzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMjgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMDhUMTQ6Mzk6NTIuODM1MDgxNDA0WiIsIlNlcSI6MTYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6ODI1MzY1MzYsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkNGRzgwMjExXCIsXG4gICAgXCJNQUM4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFfSFdTSU1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjZmc4MDIxMV9wcm9jZXNzX3dpcGh5X3dvcmtzXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHJ1bmF3YXkgbGltaXQgYW5kIGNoYW5nZXMgYSBXQVJOX09OIHRvIGEgQlVHKCkgaW4gY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSB3aXJlbGVzcyBjb3JlIGNvbnRyb2wgcGF0aCB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBtYWM4MDIxMV9od3NpbS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJDRkc4MDIxMVwiLFxuICAgIFwiTUFDODAyMTFcIixcbiAgICBcIk1BQzgwMjExX0hXU0lNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY2ZnODAyMTFfcHJvY2Vzc193aXBoeV93b3Jrc1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBydW5hd2F5IGxpbWl0IGFuZCBjaGFuZ2VzIGEgV0FSTl9PTiB0byBhIEJVRygpIGluIGNmZzgwMjExX3Byb2Nlc3Nfd2lwaHlfd29ya3MuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgd2lyZWxlc3MgY29yZSBjb250cm9sIHBhdGggdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgbWFjODAyMTFfaHdzaW0uXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflowzbrwh[1] Phase: Succeeded StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 14:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 14:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2] Phase: Succeeded StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN) Phase: Failed StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 14:40:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-08 14:40:04 +0000 UTC FinishedAt: 2026-07-08 14:40:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowzbrwh/series-workflowzbrwh-convert-artifact-2789997652/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-08 14:40:14 +0000 UTC FinishedAt: 2026-07-08 15:02:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-08 14:40:14 +0000 UTC FinishedAt: 2026-07-08 15:02:58 +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:*0f7e9f25-a9b5-4b23-8a38-5eb9a1c73771,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-workflowzbrwh/series-workflowzbrwh-convert-artifact-2789997652/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": "9c3622e0-802c-407d-917e-14f3c7555fae", "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-workflowzbrwh/series-workflowzbrwh-build-action-647247826/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-08 14:40:14 +0000 UTC FinishedAt: 2026-07-08 15:02:48 +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:*0f7e9f25-a9b5-4b23-8a38-5eb9a1c73771,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-workflowzbrwh/series-workflowzbrwh-convert-artifact-2789997652/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": "9c3622e0-802c-407d-917e-14f3c7555fae", "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-workflowzbrwh/series-workflowzbrwh-build-action-647247826/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-08 15:02:58 +0000 UTC FinishedAt: 2026-07-08 15:02:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-08 15:02:58 +0000 UTC FinishedAt: 2026-07-08 15:02:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-08 15:02:58 +0000 UTC FinishedAt: 2026-07-08 15:03:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-08 15:02:58 +0000 UTC FinishedAt: 2026-07-08 15:03:04 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},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-workflowzbrwh/series-workflowzbrwh-convert-artifact-1294155539/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-08 15:03:08 +0000 UTC FinishedAt: 2026-07-08 15:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-08 15:03:08 +0000 UTC FinishedAt: 2026-07-08 15:05:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9c3622e0-802c-407d-917e-14f3c7555fae,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-workflowzbrwh/series-workflowzbrwh-build-action-647247826/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-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-08 15:05:25 +0000 UTC FinishedAt: 2026-07-08 15:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-08 15:05:25 +0000 UTC FinishedAt: 2026-07-08 15:05:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-08 15:05:25 +0000 UTC FinishedAt: 2026-07-08 15:31:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-08 15:05:25 +0000 UTC FinishedAt: 2026-07-08 15:31:32 +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:*0f7e9f25-a9b5-4b23-8a38-5eb9a1c73771,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-workflowzbrwh/series-workflowzbrwh-convert-artifact-1294155539/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": "76b95706-de5b-4f77-8023-4d5084f122d0", "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-workflowzbrwh/series-workflowzbrwh-build-action-654447943/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-08 15:05:25 +0000 UTC FinishedAt: 2026-07-08 15:30:13 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*0f7e9f25-a9b5-4b23-8a38-5eb9a1c73771,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-workflowzbrwh/series-workflowzbrwh-convert-artifact-1294155539/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": "76b95706-de5b-4f77-8023-4d5084f122d0", "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-workflowzbrwh/series-workflowzbrwh-build-action-654447943/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-08 15:31:32 +0000 UTC FinishedAt: 2026-07-08 15:31:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-08 15:31:32 +0000 UTC FinishedAt: 2026-07-08 15:31:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-08 15:31:32 +0000 UTC FinishedAt: 2026-07-08 15:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-08 15:31:32 +0000 UTC FinishedAt: 2026-07-08 15:33:31 +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:*76b95706-de5b-4f77-8023-4d5084f122d0,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-workflowzbrwh/series-workflowzbrwh-build-action-654447943/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-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10] Phase: Failed StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz Phase: Failed StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +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":["cfg80211_process_wiphy_works"],"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:*9c3622e0-802c-407d-917e-14f3c7555fae,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*76b95706-de5b-4f77-8023-4d5084f122d0,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-workflowzbrwh/series-workflowzbrwh-build-action-647247826/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-workflowzbrwh/series-workflowzbrwh-build-action-654447943/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 15:34:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 15:33:49 +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":["cfg80211_process_wiphy_works"],"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-workflowzbrwh/series-workflowzbrwh-convert-artifact-523413644/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 15:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 15:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-08 15:33:40 +0000 UTC FinishedAt: 2026-07-08 15:33:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Failed StartedAt: 2026-07-08 15:34:01 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzbrwh[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["cfg80211_process_wiphy_works"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"0e35b9b6ec0ffcc5e23cbdec09f5c622ad532b53","config_name":"upstream-apparmor-kasan.config","enable_configs":["CFG80211","MAC80211","MAC80211_HWSIM"],"series_id":"61f73776-cecd-4c7f-971f-0e2d72f9f6cd","tree_name":"torvalds","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Error StartedAt: 2026-07-08 15:34:01 +0000 UTC FinishedAt: 2026-07-08 16:30:09 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*9c3622e0-802c-407d-917e-14f3c7555fae,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*76b95706-de5b-4f77-8023-4d5084f122d0,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-workflowzbrwh/series-workflowzbrwh-build-action-647247826/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-workflowzbrwh/series-workflowzbrwh-build-action-654447943/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-workflowzbrwh/series-workflowzbrwh-convert-artifact-523413644/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil