Name: series-workflowzzj8j Phase: Succeeded StartedAt: 2026-07-16 23:20:05 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[0] Phase: Succeeded StartedAt: 2026-07-16 23:20:05 +0000 UTC FinishedAt: 2026-07-17 00:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[0].run-triage Phase: Succeeded StartedAt: 2026-07-16 23:20:05 +0000 UTC FinishedAt: 2026-07-17 00:00:14 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC802154", "IEEE802154", "IEEE802154_HWSIM", "IEEE802154_FAKELB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC802154", "IEEE802154", "IEEE802154_HWSIM", "IEEE802154_FAKELB" ], "series_id": "743379dd-7824-4e38-b7a0-dda7065bd1d1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "llsec_do_decrypt_auth", "mac802154_llsec_decrypt", "llsec_do_decrypt" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0JiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NF9GQUtFTEImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsbHNlY19kb19kZWNyeXB0X2F1dGgmIzM0OywKICAgICYjMzQ7bWFjODAyMTU0X2xsc2VjX2RlY3J5cHQmIzM0OywKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA3MjQ1ZWEwODJhODE0ODIwODA2MGM0Nzk3MDc5YjIwZGNhZDQ3YTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjM6NTY6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXG5pbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTU0L2xsc2VjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xuQEAgLTg5MSw2ICYjNDM7ODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4gXHRkYXRhID0gc2tiX21hY19oZWFkZXIoc2tiKSAmIzQzOyBza2ItXHUwMDNlbWFjX2xlbjtcbiBcdGRhdGFsZW4gPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLSBkYXRhO1xuIFxuJiM0MztcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4mIzQzO1x0XHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcbiYjNDM7XHRcdHJldHVybiAtRUJBRE1TRztcbiYjNDM7XHR9XG4mIzQzO1xuIFx0c2dfaW5pdF9vbmUoXHUwMDI2c2csIHNrYl9tYWNfaGVhZGVyKHNrYiksIGFzc29jbGVuICYjNDM7IGRhdGFsZW4pO1xuIFxuIFx0aWYgKCEoaGRyLVx1MDAzZXNlYy5sZXZlbCBcdTAwMjYgSUVFRTgwMjE1NF9TQ0ZfU0VDTEVWRUxfRU5DKSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0JiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NF9GQUtFTEImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsbHNlY19kb19kZWNyeXB0X2F1dGgmIzM0OywKICAgICYjMzQ7bWFjODAyMTU0X2xsc2VjX2RlY3J5cHQmIzM0OywKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDcyNDVlYTA4MmE4MTQ4MjA4MDYwYzQ3OTcwNzliMjBkY2FkNDdhMTgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMzo1NjozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxNTQvbGxzZWMuYyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuYwppbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxNTQvbGxzZWMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTU0L2xsc2VjLmMKQEAgLTg5MSw2ICYjNDM7ODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsCiAJZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgJiM0Mzsgc2tiLSZndDttYWNfbGVuOwogCWRhdGFsZW4gPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLSBkYXRhOwogCiYjNDM7CWlmIChkYXRhbGVuICZsdDsgYXV0aGxlbikgewomIzQzOwkJa2ZyZWVfc2Vuc2l0aXZlKHJlcSk7CiYjNDM7CQlyZXR1cm4gLUVCQURNU0c7CiYjNDM7CX0KJiM0MzsKIAlzZ19pbml0X29uZSgmYW1wO3NnLCBza2JfbWFjX2hlYWRlcihza2IpLCBhc3NvY2xlbiAmIzQzOyBkYXRhbGVuKTsKIAogCWlmICghKGhkci0mZ3Q7c2VjLmxldmVsICZhbXA7IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNYWM4MDIxNTQgU2VjdXJpdHkgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIHNlZW1zIGxpa2UgaXTigJlzIHR3ZWFraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuIFRoZSBtZWF0IG9mIGl0IGlzIGEgY2hlY2s6IGBpZiAoZGF0YWxlbiAmbHQ7IGF1dGhsZW4pYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgc2NyZWFtcyBwb3RlbnRpYWwgYnVmZmVyIG92ZXItcmVhZCBwcm90ZWN0aW9uLCB3aGljaCBpcyBhbHdheXMgYSBnb29kIHRoaW5nIHRvIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgYWRkcmVzc2luZyBzb21lIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBhdXRoZW50aWNhdGlvbiBsZW5ndGguCgpOb3csIGxldCYjMzk7cyBkaXZlIGRlZXBlci4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBjb25maWcgb3B0aW9ucyBpbnZvbHZlZCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgaW50ZXJhY3RzIHdpdGggYW55IHBhcnRpY3VsYXIgc2VjdXJpdHkgc2V0dGluZ3MgaW4gdGhlIDgwMi4xNS40IHN0YWNrLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgaXMga2V5IGhlcmUuCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGZ1bmN0aW9uIGl0c2VsZiDigJMgaXRzIHB1cnBvc2UsIGl0cyBpbnB1dHMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc2VjdXJpdHkgZnJhbWV3b3JrLiBJJiMzOTtsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hlY2sgaXMgY29ycmVjdGx5IHBsYWNlZCBhbmQgYWRkcmVzc2VzIHRoZSByb290IG9mIHRoZSBwcm9ibGVtIHdpdGhvdXQgaW50cm9kdWNpbmcgYW55IG5ldyByZWdyZXNzaW9ucyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4KClRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYmlnZ2VyIHBpY3R1cmUsIEnigJlsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCBpcyBjYWxsZWQuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcGAgYW5kIHNlZSB3aGF0IG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNpbmcgaXQuIEtub3dpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCByZWFsbHkgaGVscCBtZSBhc3Nlc3MgdGhlIGltcGFjdCBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODcyOmxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVx0XHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE5PWxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxuLS1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzItXHRlbHNlXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlx0XHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkOgoKKipEZWNvZGluZyB0aGUgRGVjcnlwdGlvbiBDYWxsKioKClJpZ2h0LCBzbyB0aGlzIGBsbHNlY19kb19kZWNyeXB0YCBmdW5jdGlvbi4uLiBpdCBzZWVtcyBjcml0aWNhbC4gVGhlIHRleHQgaW5kaWNhdGVzIHRoYXQgaXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGRlY3J5cHRpb24gcHJvY2Vzcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBsaWtlbHkgcGFydCBvZiBhIHJlY2VpdmUgcGF0aC4gUHJvYmFibHkgdGhlIG5ldHdvcmsgc3RhY2ssIG9yIG1heWJlIHNvbWUgbG93ZXItbGV2ZWwgZGF0YSBoYW5kbGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLgoKTXkgbmV4dCBtb3ZlPyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgdXRpbGl6ZSBgZ3JlcGAgZm9yIGBsbHNlY19kb19kZWNyeXB0YC4gVGhhdCYjMzk7bGwgYmUgdGhlIHF1aWNrZXN0IHdheSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEZyb20gdGhlcmUgSSYjMzk7bGwgYmUgYWJsZSB0byBiZXR0ZXIgdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoIGFuZCBpZGVudGlmeSBob3cgdGhpcyBzcGVjaWZpYyBkZWNyeXB0aW9uIGNhbGwgaXMgdHJpZ2dlcmVkLiBUaGF0IHNob3VsZCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYW5kIHRoZSBvdmVyYWxsIGRhdGEgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtsbHNlY19kb19kZWNyeXB0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTg0ND1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODQ1Omxsc2VjX2RvX2RlY3J5cHRfdW5hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy04NDYtXHRcdFx0Y29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODcyOmxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVx0XHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE4PXN0YXRpYyBpbnRcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo5MTk6bGxzZWNfZG9fZGVjcnlwdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTIwLVx0XHQgY29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzMC1cdGlmIChoZHItXHUwMDNlc2VjLmxldmVsID09IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQylcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo5MzE6XHRcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X3VuYXV0aChza2IsIHNlYywgaGRyLCBrZXksIGRldl9hZGRyKTtcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzItXHRlbHNlXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlx0XHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTEwMDU9aW50IG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTA3MC1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzoxMDcxOlx0ZXJyID0gbGxzZWNfZG9fZGVjcnlwdChza2IsIHNlYywgXHUwMDI2aGRyLCBrZXksIGRldl9hZGRyKTtcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy0xMDcyLVx0bGxzZWNfa2V5X3B1dChrZXkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1OTYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIERlY3J5cHRpb24gRnVuY3Rpb24qKgoKQWxyaWdodCwgc28gdGhlIGNhbGwgSSYjMzk7bSBsb29raW5nIGF0IG9yaWdpbmF0ZXMgZnJvbSBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgLiBSaWdodC4gVGhhdCBuYW1lIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggbG93ZXItbGF5ZXIgc2VjdXJpdHkgd2l0aGluIHRoZSA4MDIuMTUuNCBNQUMuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCBub3cuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSBzZWN1cml0eSBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgaG93IGl0IGRlY3J5cHRzIGZyYW1lcy4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBkZXRhaWxzIG9uIGtleSBkZXJpdmF0aW9uLCBjaXBoZXIgaW1wbGVtZW50YXRpb24sIGhvdyBpdCBoYW5kbGVzIHRoZSBzZWN1cml0eSBoZWFkZXIsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbnRlZ3JpdHkgY2hlY2tzLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhlIGV4cGVjdGVkIGJlaGF2aW9yIGFuZCB2ZXJpZnkgdGhhdCBpdCBhZGhlcmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBzdGFuZGFyZHMuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTk2OD1sbHNlY191cGRhdGVfZGV2a2V5X2luZm8oc3RydWN0IG1hYzgwMjE1NF9sbHNlY19kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNC1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzoxMDA1OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNi17XG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5oPTk2PWludCBtYWM4MDIxNTRfbGxzZWNfZW5jcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5oOjk3OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5oLTk4LVxuLS1cbm5ldC9tYWM4MDIxNTQvcnguYz0xMzI9aWVlZTgwMjE1NF9zdWJpZl9mcmFtZShzdHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjE1NC9yeC5jLTIwMC1cdCAqL1xubmV0L21hYzgwMjE1NC9yeC5jOjIwMTpcdHJjID0gbWFjODAyMTU0X2xsc2VjX2RlY3J5cHQoXHUwMDI2c2RhdGEtXHUwMDNlc2VjLCBza2IpO1xubmV0L21hYzgwMjE1NC9yeC5jLTIwMi1cdGlmIChyYykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyOTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGFuIElFRUUgODAyLjE1LjQgUmVjZWl2ZSBQYXRoIEJ1ZyBGaXgqKgoKT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCB0YXJnZXRzIGBpZWVlODAyMTU0X3N1YmlmX2ZyYW1lYCBpbiBgbmV0L21hYzgwMjE1NC9yeC5jYC4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSByZWNlaXZlIHBhdGggZm9yIElFRUUgODAyLjE1LjQgZnJhbWVzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBvbmUgdGhhdCBoYW5kbGVzIGluY29taW5nIHBhY2tldHMuIFRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgYnVnIGZpeCByZWxhdGVkIHRvIGxpbmstbGF5ZXIgc2VjdXJpdHksIHNwZWNpZmljYWxseSB3aGVuIGEgcGFja2V0IGNvbWVzIGluIHdpdGggYXV0aGVudGljYXRpb24gZW5hYmxlZC4gVGhhdCYjMzk7cyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyDigJMgZGVmaW5pdGVseSB3b3J0aCBhIGRlZXBlciBsb29rIGFuZCBmdXp6aW5nLiBJIGNhbiBhbHJlYWR5IHNlZSBhIHBvdGVudGlhbCBmb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIGhlcmUuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXQgcGxheS4gU2luY2UgdGhpcyBpbnZvbHZlcyBsaW5rLWxheWVyIHNlY3VyaXR5LCBJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyBgbmV0L21hYzgwMjE1NC9sbHNlYy5jYC4gVGhlbiwgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIGJ1aWxkLXRpbWUgZGVwZW5kZW5jaWVzLCBzbyBJIHNob3VsZCB0YWtlIGEgcGVlayBhdCBgbmV0L21hYzgwMjE1NC9NYWtlZmlsZWAgdG8gc2VlIGhvdyBldmVyeXRoaW5nIGlzIHRpZWQgdG9nZXRoZXIgYW5kIGZpbmQgYW55IHJlbGV2YW50IGNvbmZpZyBmbGFncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTU0L01ha2VmaWxlJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdG9iai0kKENPTkZJR19NQUM4MDIxNTQpXHQmIzQzOz0gbWFjODAyMTU0Lm9cbiAgIDM6XHRtYWM4MDIxNTQtb2Jqc1x0XHQ6PSBtYWluLm8gcngubyB0eC5vIG1hY19jbWQubyBtaWIubyBcXFxuICAgNDpcdFx0XHRcdCAgIGlmYWNlLm8gbGxzZWMubyB1dGlsLm8gY2ZnLm8gc2Nhbi5vIHRyYWNlLm9cbiAgIDU6XHRcbiAgIDY6XHRDRkxBR1NfdHJhY2UubyA6PSAtSSQoc3JjKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODU2CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogOTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgQ09ORklHX01BQzgwMjE1NGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IHJlbGF0ZWQgb3IgbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmbG9hdGluZyBhcm91bmQuIEkmIzM5O20gZXNwZWNpYWxseSBjdXJpb3VzIGFib3V0IExMU0VDLCBnaXZlbiBpdHMgaW1wb3J0YW5jZSBpbiBzZWN1cmUgODAyLjE1LjQgZGVwbG95bWVudHMuIElzIHRoZXJlIHNvbWV0aGluZyBsaWtlIGBDT05GSUdfTUFDODAyMTU0X0xMU0VDYD8gTm9wZSwgbm90IGRpcmVjdGx5LiBUaGF0JiMzOTtzIGZpbmUsIGl0IGNvdWxkIGJlIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgdW5kZXIgdGhlIG1haW4gY29uZmlnLiBXYWl0LCBsZXQgbWUganVzdCBkb3VibGUgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMgaW4gdGhlIHNvdXJjZSB0cmVlLiBMZXQgbWUgY2hlY2sgYG5ldC9tYWM4MDIxNTQvS2NvbmZpZ2AgYW5kIGBuZXQvaWVlZTgwMjE1NC9LY29uZmlnYCB0byBjb25maXJtIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoYXQgbW9kdWxlLiBKdXN0IHdhbnQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhIG1vcmUgc3BlY2lmaWMgZmxhZyBvciBpbmFkdmVydGVudGx5IGVuYWJsaW5nIExMU0VDIHdoZW4gaXQmIzM5O3Mgbm90IGRlc2lyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxNTQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxubmV0L21hYzgwMjE1NC9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjE1NFxubmV0L21hYzgwMjE1NC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjE1LjQgU29mdCBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxNTQpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyOTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRpdmluZyBpbnRvIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSBjb3JlIG9mIHRoaXMuIFRoZSBmaXJzdCB0aGluZyBJJiMzOTttIGdvaW5nIHRvIGRvIGlzIGRpZyBpbnRvIHRoZSBgbmV0L21hYzgwMjE1NC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHBhcnRpY3VsYXIgODAyLjE1LjQgaW1wbGVtZW50YXRpb24gaXMgY29uZmlndXJlZCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhlIEtjb25maWcgc3lzdGVtIGlzIHRoZSBiYWNrYm9uZSBvZiB0aGUga2VybmVsJiMzOTtzIGJ1aWxkIGNvbmZpZ3VyYXRpb24sIHNvIHRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgZmlndXJpbmcgb3V0IGFsbCB0aGUgYXZhaWxhYmxlIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgYW5kIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgTUFDIGxheWVyLiBJJiMzOTttIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIGxpa2Ugc3VwcG9ydGVkIFBIWXMsIHNlY3VyaXR5IGZlYXR1cmVzLCBhZGRyZXNzaW5nIG1vZGVzLCBhbmQgcGVyaGFwcyBldmVuIHNvbWUgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMgZm9yIGRpZmZlcmVudCByYWRpbyBjaGlwcy4gSG9wZWZ1bGx5LCBJJiMzOTtsbCBmaW5kIGhpbnRzIHRoZXJlIHRoYXQgd2lsbCBoZWxwIG1lIHdpdGggbXkgZGVidWdnaW5nL2RldmVsb3BtZW50IHRhc2tzLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBoaWdoLWxldmVsIHZpZXcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBpbiBwbGF5IGJlZm9yZSBsb29raW5nIGF0IHRoZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBNQUM4MDIxNTRcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTUuNCBTb2Z0IE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjE1NClcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSUVFRTgwMjE1NFxuICAgNTpcdFx0c2VsZWN0IENSQ19DQ0lUVFxuICAgNjpcdFx0c2VsZWN0IENSWVBUT1xuICAgNzpcdFx0c2VsZWN0IENSWVBUT19BVVRIRU5DXG4gICA4Olx0XHRzZWxlY3QgQ1JZUFRPX0NDTVxuICAgOTpcdFx0c2VsZWN0IENSWVBUT19DVFJcbiAgMTA6XHRcdHNlbGVjdCBDUllQVE9fQUVTXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGhhcmR3YXJlIGluZGVwZW5kZW50IElFRUUgODAyLjE1LjRcbiAgMTM6XHRcdCAgbmV0d29ya2luZyBzdGFjayBmb3IgU29mdE1BQyBkZXZpY2VzICh0aGUgb25lcyBpbXBsZW1lbnRpbmdcbiAgMTQ6XHRcdCAgb25seSBQSFkgbGV2ZWwgb2YgSUVFRSA4MDIuMTUuNCBzdGFuZGFyZCkuXG4gIDE1Olx0XG4gIDE2Olx0XHQgIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgbmVpdGhlciBjZXJ0aWZpZWQsIG5vciBmZWF0dXJlXG4gIDE3Olx0XHQgIGNvbXBsZXRlISBDb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgaW1wbGVtZW50YXRpb25zIGhhc24mIzM5O3RcbiAgMTg6XHRcdCAgYmVlbiB0ZXN0ZWQgeWV0IVxuICAxOTpcdFxuICAyMDpcdFx0ICBJZiB5b3UgcGxhbiB0byB1c2UgSGFyZE1BQyBJRUVFIDgwMi4xNS40IGRldmljZXMsIHlvdSBjYW5cbiAgMjE6XHRcdCAgc2F5IE4gaGVyZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHNheSBNIHRvIGNvbXBpbGUgaXQgYXNcbiAgMjI6XHRcdCAgbW9kdWxlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTE1CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgSUVFRSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJRUVFIDgwMi4xNS40IGNvbmZpZ3VyYXRpb24uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgYE1BQzgwMjE1NGAgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSwgYW5kLCBvZiBjb3Vyc2UsIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBgSUVFRTgwMjE1NGAgaXRzZWxmLiBUbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCB0aGluZ3MgYXJlIHNldCB1cCBjb3JyZWN0bHksIEkgc2hvdWxkIGVuYWJsZSBib3RoIGBNQUM4MDIxNTRgIGFuZCBgSUVFRTgwMjE1NGAgZHVyaW5nIHRlc3RpbmcuIEl0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBpZiBJJiMzOTttIGdvaW5nIHRvIGJlIGluamVjdGluZyBwYWNrZXRzLCB3aGljaCBJIHN1c3BlY3Qgd2lsbCBiZSBuZWNlc3NhcnkgZm9yIGEgdGhvcm91Z2ggZXZhbHVhdGlvbiwgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdmlydHVhbCBkcml2ZXIgaXMgYXBwcm9wcmlhdGUuIGBJRUVFODAyMTU0X0ZBS0VMQmAgb3IgcGVyaGFwcyBgTUFDODAyMTU0X0hXU0lNYCBzZWVtIGxpa2UgdGhlIGxpa2VseSBjYW5kaWRhdGVzIGZvciB0aGUga2luZCBvZiBzaW11bGF0aW9uIG9yIHBhY2tldCBtYW5pcHVsYXRpb24gSSYjMzk7bSBhaW1pbmcgZm9yLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBkcml2ZXJzLCBwcm9iYWJseSBpbiBgZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnYCBvciBzb21ldGhpbmcgc2ltaWxhciwgdG8gc2VlIHRoZSBleGFjdCBkZXRhaWxzIGFuZCBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qODAyMTU0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjI6bWVudWNvbmZpZyBJRUVFODAyMTU0X0RSSVZFUlNcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7SUVFRSA4MDIuMTUuNCBkcml2ZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjE0OmNvbmZpZyBJRUVFODAyMTU0X0ZBS0VMQlxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE1LVx0ZGVwZW5kcyBvbiBJRUVFODAyMTU0X0RSSVZFUlMgXHUwMDI2XHUwMDI2IE1BQzgwMjE1NFxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoyNDpjb25maWcgSUVFRTgwMjE1NF9BVDg2UkYyMzBcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yNS1cdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFx1MDAyNlx1MDAyNiBNQUM4MDIxNTRcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMzUtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MzY6Y29uZmlnIElFRUU4MDIxNTRfTVJGMjRKNDBcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O01pY3JvY2hpcCBNUkYyNEo0MCB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNDctXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6NDg6Y29uZmlnIElFRUU4MDIxNTRfQ0MyNTIwXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNDktXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcdTAwMjZcdTAwMjYgTUFDODAyMTU0XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTU4LVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjU5OmNvbmZpZyBJRUVFODAyMTU0X0FUVVNCXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNjAtXHR0cmlzdGF0ZSBcJiMzNDtBVFVTQiB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNjgtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6Njk6Y29uZmlnIElFRUU4MDIxNTRfQURGNzI0MlxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTcwLVx0dHJpc3RhdGUgXCYjMzQ7QURGNzI0MiB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNzktXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6ODA6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtDYXNjb2RhIENBODIxMCB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctOTEtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6OTI6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwX0RFQlVHRlNcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7Q0E4MjEwIGRlYnVnZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTEwMS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMDI6Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTAzLVx0dHJpc3RhdGUgXCYjMzQ7TUNSMjBBIHRyYW5zY2VpdmVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMTMtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTE0OmNvbmZpZyBJRUVFODAyMTU0X0hXU0lNXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTE1LVx0ZGVwZW5kcyBvbiBJRUVFODAyMTU0X0RSSVZFUlMgXHUwMDI2XHUwMDI2IE1BQzgwMjE1NFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzY1CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IFJlZmluZW1lbnQqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgODAyLjE1LjQgY29kZSwgYW5kIGBJRUVFODAyMTU0X0hXU0lNYCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCBhcmUgZGVmaW5pdGVseSBzdHJvbmcgY29udGVuZGVycyBmb3IgaW5pdGlhbCB0YXJnZXRzLiBJJiMzOTttIGdvaW5nIHRvIGluY2x1ZGUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCB0byBlbnN1cmUgYSBicm9hZCBzY29wZSBmb3IgY292ZXJhZ2UgaW5pdGlhbGx5LgoKSGFuZyBvbiBhIHNlY29uZC4uLiB0aGUgcGF0Y2ggSSYjMzk7bSBpbnRlcmVzdGVkIGluIGlzIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBSaWdodCwgYW5kIHRoZSBrZXkgZnVuY3Rpb24gdGhlcmUgaXMgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuIExldCYjMzk7cyBqdXN0IGRvdWJsZSBjaGVjayAtIGlzIHRoZXJlICphbnl0aGluZyogZWxzZSByZWxldmFudCBpbiB0aGF0IGZpbGU/IE5vcGUsIGp1c3QgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcmVmb2N1cy4gQmV5b25kIHRoYXQgb25lIGZ1bmN0aW9uLCBjYW4gSSBpZGVudGlmeSBhbnkgb3RoZXIgc3ltYm9scyB0aGF0IG1pZ2h0IGJlIHdvcnRoIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8/IFllcywgSSYjMzk7bSBnb2luZyB0byBhZGQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCB0byBteSBsaXN0LiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGlzIGFzIHdlbGwuIEFsc28sIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIG9mIGludGVyZXN0IGlzIHN0aWxsIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHNvIHRoYXQgZ29lcyBvbiB0aGUgbGlzdCBhcyB3ZWxsLgoKSSYjMzk7bSBub3cgZ29pbmcgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxNTQvbGxzZWMuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg3MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODcwOlx0XG4gODcxOlx0c3RhdGljIGludFxuIDg3MjpcdGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4gODczOlx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTU0X2hkciAqaGRyLFxuIDg3NDpcdFx0XHQgICAgICBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjX2tleSAqa2V5LCBfX2xlNjQgZGV2X2FkZHIpXG4gODc1Olx0e1xuIDg3NjpcdFx0dTggaXZbMTZdO1xuIDg3NzpcdFx0dW5zaWduZWQgY2hhciAqZGF0YTtcbiA4Nzg6XHRcdGludCBhdXRobGVuLCBkYXRhbGVuLCBhc3NvY2xlbiwgcmM7XG4gODc5Olx0XHRzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7XG4gODgwOlx0XHRzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXE7XG4gODgxOlx0XG4gODgyOlx0XHRhdXRobGVuID0gaWVlZTgwMjE1NF9zZWNoZHJfYXV0aHRhZ19sZW4oXHUwMDI2aGRyLVx1MDAzZXNlYyk7XG4gODgzOlx0XHRsbHNlY19nZW5pdihpdiwgZGV2X2FkZHIsIFx1MDAyNmhkci1cdTAwM2VzZWMpO1xuIDg4NDpcdFxuIDg4NTpcdFx0cmVxID0gYWVhZF9yZXF1ZXN0X2FsbG9jKGxsc2VjX3RmbV9ieV9sZW4oa2V5LCBhdXRobGVuKSwgR0ZQX0FUT01JQyk7XG4gODg2Olx0XHRpZiAoIXJlcSlcbiA4ODc6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gODg4Olx0XG4gODg5Olx0XHRhc3NvY2xlbiA9IHNrYi1cdTAwM2VtYWNfbGVuO1xuIDg5MDpcdFxuIDg5MTpcdFx0ZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgJiM0Mzsgc2tiLVx1MDAzZW1hY19sZW47XG4gODkyOlx0XHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcbiA4OTM6XHRcbiA4OTQ6XHRcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4gODk1Olx0XHRcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xuIDg5NjpcdFx0XHRyZXR1cm4gLUVCQURNU0c7XG4gODk3Olx0XHR9XG4gODk4Olx0XG4gODk5Olx0XHRzZ19pbml0X29uZShcdTAwMjZzZywgc2tiX21hY19oZWFkZXIoc2tiKSwgYXNzb2NsZW4gJiM0MzsgZGF0YWxlbik7XG4gOTAwOlx0XG4gOTAxOlx0XHRpZiAoIShoZHItXHUwMDNlc2VjLmxldmVsIFx1MDAyNiBJRUVFODAyMTU0X1NDRl9TRUNMRVZFTF9FTkMpKSB7XG4gOTAyOlx0XHRcdGFzc29jbGVuICYjNDM7PSBkYXRhbGVuIC0gYXV0aGxlbjtcbiA5MDM6XHRcdFx0ZGF0YWxlbiA9IGF1dGhsZW47XG4gOTA0Olx0XHR9XG4gOTA1Olx0XG4gOTA2Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgMCwgTlVMTCwgTlVMTCk7XG4gOTA3Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgXHUwMDI2c2csIFx1MDAyNnNnLCBkYXRhbGVuLCBpdik7XG4gOTA4Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2FkKHJlcSwgYXNzb2NsZW4pO1xuIDkwOTpcdFxuIDkxMDpcdFx0cmMgPSBjcnlwdG9fYWVhZF9kZWNyeXB0KHJlcSk7XG4gOTExOlx0XG4gOTEyOlx0XHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcbiA5MTM6XHRcdHNrYl90cmltKHNrYiwgc2tiLVx1MDAzZWxlbiAtIGF1dGhsZW4pO1xuIDkxNDpcdFxuIDkxNTpcdFx0cmV0dXJuIHJjO1xuIDkxNjpcdH1cbiA5MTc6XHRcbiA5MTg6XHRzdGF0aWMgaW50XG4gOTE5Olx0bGxzZWNfZG9fZGVjcnlwdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3ODQKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgU2VjdXJpdHkgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY3J1Y2lhbCBjaGVjazogYGlmIChkYXRhbGVuICZsdDsgYXV0aGxlbikgeyAuLi4gfWAuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSAqdmVyeSogZ29vZCB0aGluZy4gSXQmIzM5O3MgZGVzaWduZWQgdG8gcHJldmVudCBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgb3IgdW5kZXJmbG93IGlzc3VlLCBzcGVjaWZpY2FsbHkgd2hlbiBjYWxjdWxhdGluZyBgZGF0YWxlbiAtIGF1dGhsZW5gLiBUaGlzIGtpbmQgb2YgY2hlY2sgaXMgYWx3YXlzIHdlbGNvbWVkLiBJdCBsb29rcyBsaWtlIGl0IGlzIHJlYWNoYWJsZSB0aHJvdWdoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuCgpNeSBpbnN0aW5jdCB0ZWxscyBtZSB0aGF0IHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogYm90aCBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgIGFuZCwgZm9yIGNvbXBsZXRlbmVzcywgYWxzbyBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gVGhhdCBzaG91bGQgYmUgdGhlIGZpcnN0IGFjdGlvbiBhZnRlciByZXZpZXdpbmcgdGhlIGNvZGUuCgpOb3csIGxldCYjMzk7cyBzZWUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBiZSByZWxldmFudCBoZXJlLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBwb3NzaWJpbGl0aWVzLCBwYXJ0aWN1bGFybHkgc2luY2Ugd2UgaGF2ZSBgTUFDODAyMTU0YCwgYElFRUU4MDIxNTRgLCBgSUVFRTgwMjE1NF9IV1NJTWAsIGFuZCBgSUVFRTgwMjE1NF9GQUtFTEJgLgoKSSYjMzk7bGwgcXVpY2tseSBjaGVjayBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSBpZiBgSUVFRTgwMjE1NGAgaXMgdGhlIGNvcnJlY3QsIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIHN5bWJvbC4gVGhpcyB3aWxsIGhlbHAgd2l0aCBwcm9wZXJseSB0YXJnZXRpbmcgdGhlIHJlbGV2YW50IGJ1aWxkIHRhcmdldHMgYW5kIGZ1enppbmcgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJRUVFODAyMTU0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaWVlZTgwMjE1NC82bG93cGFuL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZzoyOmNvbmZpZyBJRUVFODAyMTU0XzZMT1dQQU5cbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7Nmxvd3BhbiBzdXBwb3J0IG92ZXIgSUVFRSA4MDIuMTUuNFwmIzM0O1xuLS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MjptZW51Y29uZmlnIElFRUU4MDIxNTRcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0lFRUUgU3RkIDgwMi4xNS40IExvdy1SYXRlIFdpcmVsZXNzIFBlcnNvbmFsIEFyZWEgTmV0d29ya3Mgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWc9MTQ9aWYgSUVFRTgwMjE1NFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MTY6Y29uZmlnIElFRUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE3LVx0Ym9vbCBcJiMzNDtJRUVFIDgwMi4xNS40IGV4cGVyaW1lbnRhbCBuZXRsaW5rIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTIwLVxubmV0L2llZWU4MDIxNTQvS2NvbmZpZzoyMTpjb25maWcgSUVFRTgwMjE1NF9TT0NLRVRcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtJRUVFIDgwMi4xNS40IHNvY2tldCBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc0MAoJCQkJCQkJb3V0cHV0OiAxOTEKCQkJCQkJCXRob3VnaHRzOiAyODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIDgwMi4xNS40IFNlY3VyaXR5IFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaGVyZSByZXZvbHZlcyBhcm91bmQgYElFRUU4MDIxNTRgLCB0aGF0JiMzOTtzIHRoZSBtYWluIHN0YW5kYXJkLiBXZSYjMzk7cmUgYWxzbyBkZWFsaW5nIHdpdGggYE1BQzgwMjE1NGAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSB0aGUgc29mdG1hYyBpbXBsZW1lbnRhdGlvbi4gVGhlbiwgd2UgaGF2ZSB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgYElFRUU4MDIxNTRfSFdTSU1gIGFuZCB0aGUgZmFrZSBsb3dlci1ib3VuZCBkcml2ZXIgYElFRUU4MDIxNTRfRkFLRUxCYC4KCk5vdywgdGhlIHBhdGNoJiMzOTtzIGxvZ2ljIGZsb3cgc3RhcnRzIHdpdGggdGhlc2UgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgYENSWVBUT19DQ01gIGFuZCBgQ1JZUFRPX0FFU2AgYXJlIGVuYWJsZWQuIEdvb2QsIGBNQUM4MDIxNTRgIHNlbGVjdHMgdGhvc2UsIHNvIHdlJiMzOTtyZSBnb29kIHRoZXJlLiBUaGVyZWZvcmUsIHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gaXMgZ29pbmcgdG8gYmUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYC4KClRoZSBpbXBvcnRhbnQgc3ltYm9scyBoZXJlLCB0aGUgb25lcyB0aGF0IGFyZSBsaWtlbHkgYWZmZWN0ZWQgYnkgdGhpcyBjaGFuZ2UsIGFyZSBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCwgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCwgYW5kIGBsbHNlY19kb19kZWNyeXB0YC4KClRoaXMgcGF0Y2ggaXMgYWRkaW5nIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5LiBUaGUgbWFpbiBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gcHJldmVudCB0aGUgZGVjcnlwdGlvbiBvZiBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBzaG9ydGVyIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4gSXQmIzM5O3MgYSBzZWN1cml0eSBpbXByb3ZlbWVudCB0byBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IGlzbiYjMzk7dCBwcm9jZXNzZWQgaWYgdGhlIGRhdGEgaXMgaW52YWxpZC4gVGhpcyBhZmZlY3RzIGVuY3J5cHRlZC9hdXRoZW50aWNhdGVkIHBhY2tldHMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgYGh3c2ltYCBvciBgZmFrZWxiYCwgd2hpY2ggYXJlIGZyZXF1ZW50bHkgdXNlZCBpbiBvdXIgdGVzdCBlbnZpcm9ubWVudHMuCgpTbywgSSYjMzk7bSBjb25maWRlbnQgd2UgaGF2ZSBhIGNvcnJlY3Qgc2V0IG9mIGNvbmZpZ3VyYXRpb25zIG5vdy4gTGV0JiMzOTtzIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxNTQmIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfRkFLRUxCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgICAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgICAmIzM0O2xsc2VjX2RvX2RlY3J5cHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxNTQmIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfRkFLRUxCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgICAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgICAmIzM0O2xsc2VjX2RvX2RlY3J5cHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTY6MzguOTE0MDkwODg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA0MDI0Njc0MDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NjozOC45MTQwOTY1NzZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NjA1NzA5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDcyNDVlYTA4MmE4MTQ4MjA4MDYwYzQ3OTcwNzliMjBkY2FkNDdhMThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjM6NTY6MzcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXFxuaW5kZXggNWU3Y2MxMWZhYjNhNDMuLjg1NDUyZWY5YTU4YzY5IDEwMDY0NFxcbi0tLSBhL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xcbisrKyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xcbkBAIC04OTEsNiArODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxuIFxcdGRhdGEgPSBza2JfbWFjX2hlYWRlcihza2IpICsgc2tiLVxcdTAwM2VtYWNfbGVuO1xcbiBcXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcXG4gXFxuK1xcdGlmIChkYXRhbGVuIFxcdTAwM2MgYXV0aGxlbikge1xcbitcXHRcXHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcXG4rXFx0XFx0cmV0dXJuIC1FQkFETVNHO1xcbitcXHR9XFxuK1xcbiBcXHRzZ19pbml0X29uZShcXHUwMDI2c2csIHNrYl9tYWNfaGVhZGVyKHNrYiksIGFzc29jbGVuICsgZGF0YWxlbik7XFxuIFxcbiBcXHRpZiAoIShoZHItXFx1MDAzZXNlYy5sZXZlbCBcXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTY6MzkuNDAxMDc3Nzg3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDM1Mzc2NzU5OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTU0XCIsXG4gICAgXCJJRUVFODAyMTU0XCIsXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCIsXG4gICAgXCJJRUVFODAyMTU0X0ZBS0VMQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImxsc2VjX2RvX2RlY3J5cHRfYXV0aFwiLFxuICAgIFwibWFjODAyMTU0X2xsc2VjX2RlY3J5cHRcIixcbiAgICBcImxsc2VjX2RvX2RlY3J5cHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzI0NWVhMDgyYTgxNDgyMDgwNjBjNDc5NzA3OWIyMGRjYWQ0N2ExOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIzOjU2OjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXG5pbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTU0L2xsc2VjLmNcbisrKyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xuQEAgLTg5MSw2ICs4OTEsMTEgQEAgbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcbiBcdGRhdGEgPSBza2JfbWFjX2hlYWRlcihza2IpICsgc2tiLVx1MDAzZW1hY19sZW47XG4gXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcbiBcbitcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4rXHRcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xuK1x0XHRyZXR1cm4gLUVCQURNU0c7XG4rXHR9XG4rXG4gXHRzZ19pbml0X29uZShcdTAwMjZzZywgc2tiX21hY19oZWFkZXIoc2tiKSwgYXNzb2NsZW4gKyBkYXRhbGVuKTtcbiBcbiBcdGlmICghKGhkci1cdTAwM2VzZWMubGV2ZWwgXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU2OjM5LjQwMTA3OTcxN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDgyNTYxNjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1hYzgwMjE1NCBTZWN1cml0eSBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gg4oCTIHNlZW1zIGxpa2UgaXTigJlzIHR3ZWFraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBpbiBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gVGhlIG1lYXQgb2YgaXQgaXMgYSBjaGVjazogYGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKWAuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGF0IHNjcmVhbXMgcG90ZW50aWFsIGJ1ZmZlciBvdmVyLXJlYWQgcHJvdGVjdGlvbiwgd2hpY2ggaXMgYWx3YXlzIGEgZ29vZCB0aGluZyB0byBzZWUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGFkZHJlc3Npbmcgc29tZSB2dWxuZXJhYmlsaXR5IHJlbGF0ZWQgdG8gYXV0aGVudGljYXRpb24gbGVuZ3RoLlxuXG5Ob3csIGxldCdzIGRpdmUgZGVlcGVyLiBJJ20gZ29pbmcgdG8gbG9vayBhdCB0aGUgY29uZmlnIG9wdGlvbnMgaW52b2x2ZWQgdG8gc2VlIGlmIHRoaXMgY2hhbmdlIGludGVyYWN0cyB3aXRoIGFueSBwYXJ0aWN1bGFyIHNlY3VyaXR5IHNldHRpbmdzIGluIHRoZSA4MDIuMTUuNCBzdGFjay4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGtleSBoZXJlLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGZ1bmN0aW9uIGl0c2VsZiDigJMgaXRzIHB1cnBvc2UsIGl0cyBpbnB1dHMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc2VjdXJpdHkgZnJhbWV3b3JrLiBJJ2xsIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBjaGVjayBpcyBjb3JyZWN0bHkgcGxhY2VkIGFuZCBhZGRyZXNzZXMgdGhlIHJvb3Qgb2YgdGhlIHByb2JsZW0gd2l0aG91dCBpbnRyb2R1Y2luZyBhbnkgbmV3IHJlZ3Jlc3Npb25zIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLlxuXG5UbyBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLCBJ4oCZbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAgaXMgY2FsbGVkLiBUaW1lIHRvIGZpcmUgdXAgYGdyZXBgIGFuZCBzZWUgd2hhdCBvdGhlciBmdW5jdGlvbnMgYXJlIHVzaW5nIGl0LiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgcmVhbGx5IGhlbHAgbWUgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTE3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MTQuODgzNjQzNjIzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzY2MDU4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjE1NC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjg3MjpsbHNlY19kb19kZWNyeXB0X2F1dGgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy04NzMtXFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE5PWxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzMi1cXHRlbHNlXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjkzMzpcXHRcXHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzQtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzoxNS4wOTczMTE1NTFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTAxODIwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZDpcblxuKipEZWNvZGluZyB0aGUgRGVjcnlwdGlvbiBDYWxsKipcblxuUmlnaHQsIHNvIHRoaXMgYGxsc2VjX2RvX2RlY3J5cHRgIGZ1bmN0aW9uLi4uIGl0IHNlZW1zIGNyaXRpY2FsLiBUaGUgdGV4dCBpbmRpY2F0ZXMgdGhhdCBpdCdzIHRoZSBjb3JlIG9mIHRoZSBkZWNyeXB0aW9uIHByb2Nlc3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgaXQncyBsaWtlbHkgcGFydCBvZiBhIHJlY2VpdmUgcGF0aC4gUHJvYmFibHkgdGhlIG5ldHdvcmsgc3RhY2ssIG9yIG1heWJlIHNvbWUgbG93ZXItbGV2ZWwgZGF0YSBoYW5kbGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLlxuXG5NeSBuZXh0IG1vdmU/IEknbSBnb2luZyB0byBxdWlja2x5IHV0aWxpemUgYGdyZXBgIGZvciBgbGxzZWNfZG9fZGVjcnlwdGAuIFRoYXQnbGwgYmUgdGhlIHF1aWNrZXN0IHdheSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEZyb20gdGhlcmUgSSdsbCBiZSBhYmxlIHRvIGJldHRlciB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGggYW5kIGlkZW50aWZ5IGhvdyB0aGlzIHNwZWNpZmljIGRlY3J5cHRpb24gY2FsbCBpcyB0cmlnZ2VyZWQuIFRoYXQgc2hvdWxkIGhlbHAgbWUgdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgdGhlIG92ZXJhbGwgZGF0YSBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjU1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MTguMTk5MTM0MjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4MjAyMTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxsc2VjX2RvX2RlY3J5cHRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjE1NC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jPTg0ND1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjg0NTpsbHNlY19kb19kZWNyeXB0X3VuYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTg0Ni1cXHRcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4tLVxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYz04NzE9c3RhdGljIGludFxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo4NzI6bGxzZWNfZG9fZGVjcnlwdF9hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTU0X2hkciAqaGRyLFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTkxOD1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjkxOTpsbHNlY19kb19kZWNyeXB0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTIwLVxcdFxcdCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4tLVxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzAtXFx0aWYgKGhkci1cXHUwMDNlc2VjLmxldmVsID09IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQylcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMxOlxcdFxcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X3VuYXV0aChza2IsIHNlYywgaGRyLCBrZXksIGRldl9hZGRyKTtcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTMyLVxcdGVsc2VcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlxcdFxcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X2F1dGgoc2tiLCBzZWMsIGhkciwga2V5LCBkZXZfYWRkcik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9MTAwNT1pbnQgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHQoc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwNzAtXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjEwNzE6XFx0ZXJyID0gbGxzZWNfZG9fZGVjcnlwdChza2IsIHNlYywgXFx1MDAyNmhkciwga2V5LCBkZXZfYWRkcik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwNzItXFx0bGxzZWNfa2V5X3B1dChrZXkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzoxOC4zMzczNDI4MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU5Mzk1MzczNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEZWNyeXB0aW9uIEZ1bmN0aW9uKipcblxuQWxyaWdodCwgc28gdGhlIGNhbGwgSSdtIGxvb2tpbmcgYXQgb3JpZ2luYXRlcyBmcm9tIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuIFJpZ2h0LiBUaGF0IG5hbWUgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGxvd2VyLWxheWVyIHNlY3VyaXR5IHdpdGhpbiB0aGUgODAyLjE1LjQgTUFDLiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAgbm93LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSBpbiB0aGUgc2VjdXJpdHkgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGhvdyBpdCBkZWNyeXB0cyBmcmFtZXMuIEknbSBnb2luZyB0byBsb29rIGZvciBkZXRhaWxzIG9uIGtleSBkZXJpdmF0aW9uLCBjaXBoZXIgaW1wbGVtZW50YXRpb24sIGhvdyBpdCBoYW5kbGVzIHRoZSBzZWN1cml0eSBoZWFkZXIsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbnRlZ3JpdHkgY2hlY2tzLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIHZlcmlmeSB0aGF0IGl0IGFkaGVyZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHN0YW5kYXJkcy4gTGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTk2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MzEuOTMxMzAwNTk4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjUyMTcyMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTU0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTU0L2xsc2VjLmM9OTY4PWxsc2VjX3VwZGF0ZV9kZXZrZXlfaW5mbyhzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjX2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwMDQtXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjEwMDU6aW50IG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNi17XFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmg9OTY9aW50IG1hYzgwMjE1NF9sbHNlY19lbmNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5oOjk3OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9tYWM4MDIxNTQvbGxzZWMuaC05OC1cXG4tLVxcbm5ldC9tYWM4MDIxNTQvcnguYz0xMzI9aWVlZTgwMjE1NF9zdWJpZl9mcmFtZShzdHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTU0L3J4LmMtMjAwLVxcdCAqL1xcbm5ldC9tYWM4MDIxNTQvcnguYzoyMDE6XFx0cmMgPSBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChcXHUwMDI2c2RhdGEtXFx1MDAzZXNlYywgc2tiKTtcXG5uZXQvbWFjODAyMTU0L3J4LmMtMjAyLVxcdGlmIChyYykge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzozMi4wNzc4MjczMjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODQ0NzA5NjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhbiBJRUVFIDgwMi4xNS40IFJlY2VpdmUgUGF0aCBCdWcgRml4KipcblxuT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCB0YXJnZXRzIGBpZWVlODAyMTU0X3N1YmlmX2ZyYW1lYCBpbiBgbmV0L21hYzgwMjE1NC9yeC5jYC4gVGhhdCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHJlY2VpdmUgcGF0aCBmb3IgSUVFRSA4MDIuMTUuNCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSwgdGhlIG9uZSB0aGF0IGhhbmRsZXMgaW5jb21pbmcgcGFja2V0cy4gVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBidWcgZml4IHJlbGF0ZWQgdG8gbGluay1sYXllciBzZWN1cml0eSwgc3BlY2lmaWNhbGx5IHdoZW4gYSBwYWNrZXQgY29tZXMgaW4gd2l0aCBhdXRoZW50aWNhdGlvbiBlbmFibGVkLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3Rpbmcg4oCTIGRlZmluaXRlbHkgd29ydGggYSBkZWVwZXIgbG9vayBhbmQgZnV6emluZy4gSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgZm9yIHNlY3VyaXR5IGltcGxpY2F0aW9ucyBoZXJlLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXQgcGxheS4gU2luY2UgdGhpcyBpbnZvbHZlcyBsaW5rLWxheWVyIHNlY3VyaXR5LCBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBUaGVuLCBJJ2xsIG5lZWQgdG8gY29uZmlybSBidWlsZC10aW1lIGRlcGVuZGVuY2llcywgc28gSSBzaG91bGQgdGFrZSBhIHBlZWsgYXQgYG5ldC9tYWM4MDIxNTQvTWFrZWZpbGVgIHRvIHNlZSBob3cgZXZlcnl0aGluZyBpcyB0aWVkIHRvZ2V0aGVyIGFuZCBmaW5kIGFueSByZWxldmFudCBjb25maWcgZmxhZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyOTIsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6NDEuOTIyNTM5MDg0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxNTQvTWFrZWZpbGVcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRvYmotJChDT05GSUdfTUFDODAyMTU0KVxcdCs9IG1hYzgwMjE1NC5vXFxuICAgMzpcXHRtYWM4MDIxNTQtb2Jqc1xcdFxcdDo9IG1haW4ubyByeC5vIHR4Lm8gbWFjX2NtZC5vIG1pYi5vIFxcXFxcXG4gICA0OlxcdFxcdFxcdFxcdCAgIGlmYWNlLm8gbGxzZWMubyB1dGlsLm8gY2ZnLm8gc2Nhbi5vIHRyYWNlLm9cXG4gICA1OlxcdFxcbiAgIDY6XFx0Q0ZMQUdTX3RyYWNlLm8gOj0gLUkkKHNyYylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6NDEuOTIyNjExODg0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzNjExNDAzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgODAyLjE1LjQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgQ09ORklHX01BQzgwMjE1NGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IHJlbGF0ZWQgb3IgbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmbG9hdGluZyBhcm91bmQuIEknbSBlc3BlY2lhbGx5IGN1cmlvdXMgYWJvdXQgTExTRUMsIGdpdmVuIGl0cyBpbXBvcnRhbmNlIGluIHNlY3VyZSA4MDIuMTUuNCBkZXBsb3ltZW50cy4gSXMgdGhlcmUgc29tZXRoaW5nIGxpa2UgYENPTkZJR19NQUM4MDIxNTRfTExTRUNgPyBOb3BlLCBub3QgZGlyZWN0bHkuIFRoYXQncyBmaW5lLCBpdCBjb3VsZCBiZSBjb25kaXRpb25hbGx5IGNvbXBpbGVkIHVuZGVyIHRoZSBtYWluIGNvbmZpZy4gV2FpdCwgbGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGVzIGluIHRoZSBzb3VyY2UgdHJlZS4gTGV0IG1lIGNoZWNrIGBuZXQvbWFjODAyMTU0L0tjb25maWdgIGFuZCBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGF0IG1vZHVsZS4gSnVzdCB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIEknbSBub3QgbWlzc2luZyBhIG1vcmUgc3BlY2lmaWMgZmxhZyBvciBpbmFkdmVydGVudGx5IGVuYWJsaW5nIExMU0VDIHdoZW4gaXQncyBub3QgZGVzaXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTg6MDUuNTM0MDE3ODY0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDYyNTIxMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjE1NFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxNTQvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxNTRcXG5uZXQvbWFjODAyMTU0L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xNS40IFNvZnQgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTU0KVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTg6MDYuMDgwMzM4MzMyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI1MjY0OTY0Mzg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhpcy4gVGhlIGZpcnN0IHRoaW5nIEknbSBnb2luZyB0byBkbyBpcyBkaWcgaW50byB0aGUgYG5ldC9tYWM4MDIxNTQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHBhcnRpY3VsYXIgODAyLjE1LjQgaW1wbGVtZW50YXRpb24gaXMgY29uZmlndXJlZCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhlIEtjb25maWcgc3lzdGVtIGlzIHRoZSBiYWNrYm9uZSBvZiB0aGUga2VybmVsJ3MgYnVpbGQgY29uZmlndXJhdGlvbiwgc28gdGhpcyBmaWxlIGlzIGNyaXRpY2FsIGZvciBmaWd1cmluZyBvdXQgYWxsIHRoZSBhdmFpbGFibGUgb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhpcyBNQUMgbGF5ZXIuIEknbSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIHN1cHBvcnRlZCBQSFlzLCBzZWN1cml0eSBmZWF0dXJlcywgYWRkcmVzc2luZyBtb2RlcywgYW5kIHBlcmhhcHMgZXZlbiBzb21lIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIGZvciBkaWZmZXJlbnQgcmFkaW8gY2hpcHMuIEhvcGVmdWxseSwgSSdsbCBmaW5kIGhpbnRzIHRoZXJlIHRoYXQgd2lsbCBoZWxwIG1lIHdpdGggbXkgZGVidWdnaW5nL2RldmVsb3BtZW50IHRhc2tzLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBoaWdoLWxldmVsIHZpZXcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGluIHBsYXkgYmVmb3JlIGxvb2tpbmcgYXQgdGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU4OjMxLjM0NTMwNTUyNloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDIyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTU0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTUFDODAyMTU0XFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xNS40IFNvZnQgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTU0KVxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NFxcbiAgIDU6XFx0XFx0c2VsZWN0IENSQ19DQ0lUVFxcbiAgIDY6XFx0XFx0c2VsZWN0IENSWVBUT1xcbiAgIDc6XFx0XFx0c2VsZWN0IENSWVBUT19BVVRIRU5DXFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPX0NDTVxcbiAgIDk6XFx0XFx0c2VsZWN0IENSWVBUT19DVFJcXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fQUVTXFxuICAxMTpcXHRcXHRoZWxwXFxuICAxMjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGhhcmR3YXJlIGluZGVwZW5kZW50IElFRUUgODAyLjE1LjRcXG4gIDEzOlxcdFxcdCAgbmV0d29ya2luZyBzdGFjayBmb3IgU29mdE1BQyBkZXZpY2VzICh0aGUgb25lcyBpbXBsZW1lbnRpbmdcXG4gIDE0OlxcdFxcdCAgb25seSBQSFkgbGV2ZWwgb2YgSUVFRSA4MDIuMTUuNCBzdGFuZGFyZCkuXFxuICAxNTpcXHRcXG4gIDE2OlxcdFxcdCAgTm90ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBuZWl0aGVyIGNlcnRpZmllZCwgbm9yIGZlYXR1cmVcXG4gIDE3OlxcdFxcdCAgY29tcGxldGUhIENvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMgaGFzbid0XFxuICAxODpcXHRcXHQgIGJlZW4gdGVzdGVkIHlldCFcXG4gIDE5OlxcdFxcbiAgMjA6XFx0XFx0ICBJZiB5b3UgcGxhbiB0byB1c2UgSGFyZE1BQyBJRUVFIDgwMi4xNS40IGRldmljZXMsIHlvdSBjYW5cXG4gIDIxOlxcdFxcdCAgc2F5IE4gaGVyZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHNheSBNIHRvIGNvbXBpbGUgaXQgYXNcXG4gIDIyOlxcdFxcdCAgbW9kdWxlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1ODozMS4zNDUzOTIxMDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA5NzA5ODA3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBJRUVFIDgwMi4xNS40IENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBJRUVFIDgwMi4xNS40IGNvbmZpZ3VyYXRpb24uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgYE1BQzgwMjE1NGAgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSwgYW5kLCBvZiBjb3Vyc2UsIGl0J3MgZGVwZW5kZW50IG9uIGBJRUVFODAyMTU0YCBpdHNlbGYuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IHRoaW5ncyBhcmUgc2V0IHVwIGNvcnJlY3RseSwgSSBzaG91bGQgZW5hYmxlIGJvdGggYE1BQzgwMjE1NGAgYW5kIGBJRUVFODAyMTU0YCBkdXJpbmcgdGVzdGluZy4gSXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludC5cblxuTm93LCBpZiBJJ20gZ29pbmcgdG8gYmUgaW5qZWN0aW5nIHBhY2tldHMsIHdoaWNoIEkgc3VzcGVjdCB3aWxsIGJlIG5lY2Vzc2FyeSBmb3IgYSB0aG9yb3VnaCBldmFsdWF0aW9uLCBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHZpcnR1YWwgZHJpdmVyIGlzIGFwcHJvcHJpYXRlLiBgSUVFRTgwMjE1NF9GQUtFTEJgIG9yIHBlcmhhcHMgYE1BQzgwMjE1NF9IV1NJTWAgc2VlbSBsaWtlIHRoZSBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgdGhlIGtpbmQgb2Ygc2ltdWxhdGlvbiBvciBwYWNrZXQgbWFuaXB1bGF0aW9uIEknbSBhaW1pbmcgZm9yLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGRyaXZlcnMsIHByb2JhYmx5IGluIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWdgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCB0byBzZWUgdGhlIGV4YWN0IGRldGFpbHMgYW5kIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTkxNSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU5OjEyLjMxNjM3NTIyMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI0ODQ1NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZy4qODAyMTU0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MjptZW51Y29uZmlnIElFRUU4MDIxNTRfRFJJVkVSU1xcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJJRUVFIDgwMi4xNS40IGRyaXZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjE0OmNvbmZpZyBJRUVFODAyMTU0X0ZBS0VMQlxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxNTRcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MjQ6Y29uZmlnIElFRUU4MDIxNTRfQVQ4NlJGMjMwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTI1LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzozNjpjb25maWcgSUVFRTgwMjE1NF9NUkYyNEo0MFxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiTWljcm9jaGlwIE1SRjI0SjQwIHRyYW5zY2VpdmVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy00Ny1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6NDg6Y29uZmlnIElFRUU4MDIxNTRfQ0MyNTIwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTQ5LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTU4LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzo1OTpjb25maWcgSUVFRTgwMjE1NF9BVFVTQlxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy02MC1cXHR0cmlzdGF0ZSBcXFwiQVRVU0IgdHJhbnNjZWl2ZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTY4LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzo2OTpjb25maWcgSUVFRTgwMjE1NF9BREY3MjQyXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJBREY3MjQyIHRyYW5zY2VpdmVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy03OS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6ODA6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJDYXNjb2RhIENBODIxMCB0cmFuc2NlaXZlciBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctOTEtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjkyOmNvbmZpZyBJRUVFODAyMTU0X0NBODIxMF9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkNBODIxMCBkZWJ1Z2ZzIGludGVyZmFjZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMDEtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjEwMjpjb25maWcgSUVFRTgwMjE1NF9NQ1IyMEFcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTAzLVxcdHRyaXN0YXRlIFxcXCJNQ1IyMEEgdHJhbnNjZWl2ZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTE0OmNvbmZpZyBJRUVFODAyMTU0X0hXU0lNXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExNS1cXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxNTRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTk6MTMuMjQxMjI2MTM4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4NDQ3NDQzOTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IFJlZmluZW1lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIDgwMi4xNS40IGNvZGUsIGFuZCBgSUVFRTgwMjE1NF9IV1NJTWAgYW5kIGBJRUVFODAyMTU0X0ZBS0VMQmAgYXJlIGRlZmluaXRlbHkgc3Ryb25nIGNvbnRlbmRlcnMgZm9yIGluaXRpYWwgdGFyZ2V0cy4gSSdtIGdvaW5nIHRvIGluY2x1ZGUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCB0byBlbnN1cmUgYSBicm9hZCBzY29wZSBmb3IgY292ZXJhZ2UgaW5pdGlhbGx5LlxuXG5IYW5nIG9uIGEgc2Vjb25kLi4uIHRoZSBwYXRjaCBJJ20gaW50ZXJlc3RlZCBpbiBpcyBpbiBgbmV0L21hYzgwMjE1NC9sbHNlYy5jYC4gUmlnaHQsIGFuZCB0aGUga2V5IGZ1bmN0aW9uIHRoZXJlIGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBMZXQncyBqdXN0IGRvdWJsZSBjaGVjayAtIGlzIHRoZXJlICphbnl0aGluZyogZWxzZSByZWxldmFudCBpbiB0aGF0IGZpbGU/IE5vcGUsIGp1c3QgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuXG5cbkFscmlnaHQsIGxldCdzIHJlZm9jdXMuIEJleW9uZCB0aGF0IG9uZSBmdW5jdGlvbiwgY2FuIEkgaWRlbnRpZnkgYW55IG90aGVyIHN5bWJvbHMgdGhhdCBtaWdodCBiZSB3b3J0aCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvPyBZZXMsIEknbSBnb2luZyB0byBhZGQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCB0byBteSBsaXN0LiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgYXMgd2VsbC4gQWxzbywgdGhlIHByaW1hcnkgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaXMgc3RpbGwgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAgc28gdGhhdCBnb2VzIG9uIHRoZSBsaXN0IGFzIHdlbGwuXG5cbkknbSBub3cgZ29pbmcgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzY1LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU5OjMxLjY4ODY3MjM3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDg3MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDg3MDpcXHRcXG4gODcxOlxcdHN0YXRpYyBpbnRcXG4gODcyOlxcdGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxuIDg3MzpcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4gODc0OlxcdFxcdFxcdCAgICAgIHN0cnVjdCBtYWM4MDIxNTRfbGxzZWNfa2V5ICprZXksIF9fbGU2NCBkZXZfYWRkcilcXG4gODc1OlxcdHtcXG4gODc2OlxcdFxcdHU4IGl2WzE2XTtcXG4gODc3OlxcdFxcdHVuc2lnbmVkIGNoYXIgKmRhdGE7XFxuIDg3ODpcXHRcXHRpbnQgYXV0aGxlbiwgZGF0YWxlbiwgYXNzb2NsZW4sIHJjO1xcbiA4Nzk6XFx0XFx0c3RydWN0IHNjYXR0ZXJsaXN0IHNnO1xcbiA4ODA6XFx0XFx0c3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxO1xcbiA4ODE6XFx0XFxuIDg4MjpcXHRcXHRhdXRobGVuID0gaWVlZTgwMjE1NF9zZWNoZHJfYXV0aHRhZ19sZW4oXFx1MDAyNmhkci1cXHUwMDNlc2VjKTtcXG4gODgzOlxcdFxcdGxsc2VjX2dlbml2KGl2LCBkZXZfYWRkciwgXFx1MDAyNmhkci1cXHUwMDNlc2VjKTtcXG4gODg0OlxcdFxcbiA4ODU6XFx0XFx0cmVxID0gYWVhZF9yZXF1ZXN0X2FsbG9jKGxsc2VjX3RmbV9ieV9sZW4oa2V5LCBhdXRobGVuKSwgR0ZQX0FUT01JQyk7XFxuIDg4NjpcXHRcXHRpZiAoIXJlcSlcXG4gODg3OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiA4ODg6XFx0XFxuIDg4OTpcXHRcXHRhc3NvY2xlbiA9IHNrYi1cXHUwMDNlbWFjX2xlbjtcXG4gODkwOlxcdFxcbiA4OTE6XFx0XFx0ZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgKyBza2ItXFx1MDAzZW1hY19sZW47XFxuIDg5MjpcXHRcXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcXG4gODkzOlxcdFxcbiA4OTQ6XFx0XFx0aWYgKGRhdGFsZW4gXFx1MDAzYyBhdXRobGVuKSB7XFxuIDg5NTpcXHRcXHRcXHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcXG4gODk2OlxcdFxcdFxcdHJldHVybiAtRUJBRE1TRztcXG4gODk3OlxcdFxcdH1cXG4gODk4OlxcdFxcbiA4OTk6XFx0XFx0c2dfaW5pdF9vbmUoXFx1MDAyNnNnLCBza2JfbWFjX2hlYWRlcihza2IpLCBhc3NvY2xlbiArIGRhdGFsZW4pO1xcbiA5MDA6XFx0XFxuIDkwMTpcXHRcXHRpZiAoIShoZHItXFx1MDAzZXNlYy5sZXZlbCBcXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcXG4gOTAyOlxcdFxcdFxcdGFzc29jbGVuICs9IGRhdGFsZW4gLSBhdXRobGVuO1xcbiA5MDM6XFx0XFx0XFx0ZGF0YWxlbiA9IGF1dGhsZW47XFxuIDkwNDpcXHRcXHR9XFxuIDkwNTpcXHRcXG4gOTA2OlxcdFxcdGFlYWRfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCAwLCBOVUxMLCBOVUxMKTtcXG4gOTA3OlxcdFxcdGFlYWRfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCBcXHUwMDI2c2csIFxcdTAwMjZzZywgZGF0YWxlbiwgaXYpO1xcbiA5MDg6XFx0XFx0YWVhZF9yZXF1ZXN0X3NldF9hZChyZXEsIGFzc29jbGVuKTtcXG4gOTA5OlxcdFxcbiA5MTA6XFx0XFx0cmMgPSBjcnlwdG9fYWVhZF9kZWNyeXB0KHJlcSk7XFxuIDkxMTpcXHRcXG4gOTEyOlxcdFxcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xcbiA5MTM6XFx0XFx0c2tiX3RyaW0oc2tiLCBza2ItXFx1MDAzZWxlbiAtIGF1dGhsZW4pO1xcbiA5MTQ6XFx0XFxuIDkxNTpcXHRcXHRyZXR1cm4gcmM7XFxuIDkxNjpcXHR9XFxuIDkxNzpcXHRcXG4gOTE4OlxcdHN0YXRpYyBpbnRcXG4gOTE5OlxcdGxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTozMS42ODg4MTQ1ODlaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE3NDk0MDgyMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2VjdXJpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjcnVjaWFsIGNoZWNrOiBgaWYgKGRhdGFsZW4gXHUwMDNjIGF1dGhsZW4pIHsgLi4uIH1gLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGlzIGEgKnZlcnkqIGdvb2QgdGhpbmcuIEl0J3MgZGVzaWduZWQgdG8gcHJldmVudCBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgb3IgdW5kZXJmbG93IGlzc3VlLCBzcGVjaWZpY2FsbHkgd2hlbiBjYWxjdWxhdGluZyBgZGF0YWxlbiAtIGF1dGhsZW5gLiBUaGlzIGtpbmQgb2YgY2hlY2sgaXMgYWx3YXlzIHdlbGNvbWVkLiBJdCBsb29rcyBsaWtlIGl0IGlzIHJlYWNoYWJsZSB0aHJvdWdoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuXG5cbk15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gZnV6eiBib3RoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAgYW5kLCBmb3IgY29tcGxldGVuZXNzLCBhbHNvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBUaGF0IHNob3VsZCBiZSB0aGUgZmlyc3QgYWN0aW9uIGFmdGVyIHJldmlld2luZyB0aGUgY29kZS5cblxuTm93LCBsZXQncyBzZWUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBiZSByZWxldmFudCBoZXJlLiBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHBvc3NpYmlsaXRpZXMsIHBhcnRpY3VsYXJseSBzaW5jZSB3ZSBoYXZlIGBNQUM4MDIxNTRgLCBgSUVFRTgwMjE1NGAsIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIGBJRUVFODAyMTU0X0ZBS0VMQmAuXG5cbkknbGwgcXVpY2tseSBjaGVjayBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSBpZiBgSUVFRTgwMjE1NGAgaXMgdGhlIGNvcnJlY3QsIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIHN5bWJvbC4gVGhpcyB3aWxsIGhlbHAgd2l0aCBwcm9wZXJseSB0YXJnZXRpbmcgdGhlIHJlbGV2YW50IGJ1aWxkIHRhcmdldHMgYW5kIGZ1enppbmcgY29uZmlndXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3ODQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTo0My40MzgyMjUyN1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNTAzNjM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSUVFRTgwMjE1NFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZzoyOmNvbmZpZyBJRUVFODAyMTU0XzZMT1dQQU5cXG5uZXQvaWVlZTgwMjE1NC82bG93cGFuL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiNmxvd3BhbiBzdXBwb3J0IG92ZXIgSUVFRSA4MDIuMTUuNFxcXCJcXG4tLVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjI6bWVudWNvbmZpZyBJRUVFODAyMTU0XFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJJRUVFIFN0ZCA4MDIuMTUuNCBMb3ctUmF0ZSBXaXJlbGVzcyBQZXJzb25hbCBBcmVhIE5ldHdvcmtzIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnPTE0PWlmIElFRUU4MDIxNTRcXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE1LVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MTY6Y29uZmlnIElFRUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMXFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNy1cXHRib29sIFxcXCJJRUVFIDgwMi4xNS40IGV4cGVyaW1lbnRhbCBuZXRsaW5rIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTIwLVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MjE6Y29uZmlnIElFRUU4MDIxNTRfU09DS0VUXFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiSUVFRSA4MDIuMTUuNCBzb2NrZXQgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTo0NC45NzMzMjE5NDlaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc3Mjk2NDQ2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIDgwMi4xNS40IFNlY3VyaXR5IFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvcmUgY29uZmlndXJhdGlvbiBoZXJlIHJldm9sdmVzIGFyb3VuZCBgSUVFRTgwMjE1NGAsIHRoYXQncyB0aGUgbWFpbiBzdGFuZGFyZC4gV2UncmUgYWxzbyBkZWFsaW5nIHdpdGggYE1BQzgwMjE1NGAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSB0aGUgc29mdG1hYyBpbXBsZW1lbnRhdGlvbi4gVGhlbiwgd2UgaGF2ZSB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgYElFRUU4MDIxNTRfSFdTSU1gIGFuZCB0aGUgZmFrZSBsb3dlci1ib3VuZCBkcml2ZXIgYElFRUU4MDIxNTRfRkFLRUxCYC5cblxuTm93LCB0aGUgcGF0Y2gncyBsb2dpYyBmbG93IHN0YXJ0cyB3aXRoIHRoZXNlIGNvbmZpZ3VyYXRpb25zLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBDUllQVE9fQ0NNYCBhbmQgYENSWVBUT19BRVNgIGFyZSBlbmFibGVkLiBHb29kLCBgTUFDODAyMTU0YCBzZWxlY3RzIHRob3NlLCBzbyB3ZSdyZSBnb29kIHRoZXJlLiBUaGVyZWZvcmUsIHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gaXMgZ29pbmcgdG8gYmUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYC5cblxuVGhlIGltcG9ydGFudCBzeW1ib2xzIGhlcmUsIHRoZSBvbmVzIHRoYXQgYXJlIGxpa2VseSBhZmZlY3RlZCBieSB0aGlzIGNoYW5nZSwgYXJlIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLCBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgLCBhbmQgYGxsc2VjX2RvX2RlY3J5cHRgLlxuXG5UaGlzIHBhdGNoIGlzIGFkZGluZyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5LiBUaGUgbWFpbiBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gcHJldmVudCB0aGUgZGVjcnlwdGlvbiBvZiBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBzaG9ydGVyIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4gSXQncyBhIHNlY3VyaXR5IGltcHJvdmVtZW50IHRvIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgaXNuJ3QgcHJvY2Vzc2VkIGlmIHRoZSBkYXRhIGlzIGludmFsaWQuIFRoaXMgYWZmZWN0cyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIGFuZCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgZHJpdmVycyBsaWtlIGBod3NpbWAgb3IgYGZha2VsYmAsIHdoaWNoIGFyZSBmcmVxdWVudGx5IHVzZWQgaW4gb3VyIHRlc3QgZW52aXJvbm1lbnRzLlxuXG5TbywgSSdtIGNvbmZpZGVudCB3ZSBoYXZlIGEgY29ycmVjdCBzZXQgb2YgY29uZmlndXJhdGlvbnMgbm93LiBMZXQncyBjYWxsIHNldC1yZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzQwLCJPdXRwdXRUb2tlbnMiOjE5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMDowMDowMi43MDI5Njg5MDNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU3NzkyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-16 23:20:05 +0000 UTC FinishedAt: 2026-07-17 00:00:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC802154", "IEEE802154", "IEEE802154_HWSIM", "IEEE802154_FAKELB" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "net", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git", "commit_hash": "3f1f755366687d051174739fb99f7d560202f60b", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "MAC802154", "IEEE802154", "IEEE802154_HWSIM", "IEEE802154_FAKELB" ], "series_id": "743379dd-7824-4e38-b7a0-dda7065bd1d1" }, "track": "KASAN", "fuzz": { "focus": [ "net" ], "focus_symbols": [ "llsec_do_decrypt_auth", "mac802154_llsec_decrypt", "llsec_do_decrypt" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0JiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NF9GQUtFTEImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsbHNlY19kb19kZWNyeXB0X2F1dGgmIzM0OywKICAgICYjMzQ7bWFjODAyMTU0X2xsc2VjX2RlY3J5cHQmIzM0OywKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTY8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA3MjQ1ZWEwODJhODE0ODIwODA2MGM0Nzk3MDc5YjIwZGNhZDQ3YTE4XG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFRodSBKdWwgMTYgMjM6NTY6MzcgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXG5pbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTU0L2xsc2VjLmNcbiYjNDM7JiM0MzsmIzQzOyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xuQEAgLTg5MSw2ICYjNDM7ODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4gXHRkYXRhID0gc2tiX21hY19oZWFkZXIoc2tiKSAmIzQzOyBza2ItXHUwMDNlbWFjX2xlbjtcbiBcdGRhdGFsZW4gPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLSBkYXRhO1xuIFxuJiM0MztcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4mIzQzO1x0XHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcbiYjNDM7XHRcdHJldHVybiAtRUJBRE1TRztcbiYjNDM7XHR9XG4mIzQzO1xuIFx0c2dfaW5pdF9vbmUoXHUwMDI2c2csIHNrYl9tYWNfaGVhZGVyKHNrYiksIGFzc29jbGVuICYjNDM7IGRhdGFsZW4pO1xuIFxuIFx0aWYgKCEoaGRyLVx1MDAzZXNlYy5sZXZlbCBcdTAwMjYgSUVFRTgwMjE1NF9TQ0ZfU0VDTEVWRUxfRU5DKSkge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjNtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O01BQzgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0JiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfSFdTSU0mIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NF9GQUtFTEImIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtsbHNlY19kb19kZWNyeXB0X2F1dGgmIzM0OywKICAgICYjMzQ7bWFjODAyMTU0X2xsc2VjX2RlY3J5cHQmIzM0OywKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDcyNDVlYTA4MmE4MTQ4MjA4MDYwYzQ3OTcwNzliMjBkY2FkNDdhMTgKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVGh1IEp1bCAxNiAyMzo1NjozNyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxNTQvbGxzZWMuYyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuYwppbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxNTQvbGxzZWMuYwomIzQzOyYjNDM7JiM0MzsgYi9uZXQvbWFjODAyMTU0L2xsc2VjLmMKQEAgLTg5MSw2ICYjNDM7ODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsCiAJZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgJiM0Mzsgc2tiLSZndDttYWNfbGVuOwogCWRhdGFsZW4gPSBza2JfdGFpbF9wb2ludGVyKHNrYikgLSBkYXRhOwogCiYjNDM7CWlmIChkYXRhbGVuICZsdDsgYXV0aGxlbikgewomIzQzOwkJa2ZyZWVfc2Vuc2l0aXZlKHJlcSk7CiYjNDM7CQlyZXR1cm4gLUVCQURNU0c7CiYjNDM7CX0KJiM0MzsKIAlzZ19pbml0X29uZSgmYW1wO3NnLCBza2JfbWFjX2hlYWRlcihza2IpLCBhc3NvY2xlbiAmIzQzOyBkYXRhbGVuKTsKIAogCWlmICghKGhkci0mZ3Q7c2VjLmxldmVsICZhbXA7IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkxNwoJCQkJCQkJb3V0cHV0OiAzOAoJCQkJCQkJdGhvdWdodHM6IDEzNAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBNYWM4MDIxNTQgU2VjdXJpdHkgUGF0Y2gqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IHRoaXMgcGF0Y2gg4oCTIHNlZW1zIGxpa2UgaXTigJlzIHR3ZWFraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBzcGVjaWZpY2FsbHkgaW4gYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuIFRoZSBtZWF0IG9mIGl0IGlzIGEgY2hlY2s6IGBpZiAoZGF0YWxlbiAmbHQ7IGF1dGhsZW4pYC4gUmlnaHQgb2ZmIHRoZSBiYXQsIHRoYXQgc2NyZWFtcyBwb3RlbnRpYWwgYnVmZmVyIG92ZXItcmVhZCBwcm90ZWN0aW9uLCB3aGljaCBpcyBhbHdheXMgYSBnb29kIHRoaW5nIHRvIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoaXMgaXMgYWRkcmVzc2luZyBzb21lIHZ1bG5lcmFiaWxpdHkgcmVsYXRlZCB0byBhdXRoZW50aWNhdGlvbiBsZW5ndGguCgpOb3csIGxldCYjMzk7cyBkaXZlIGRlZXBlci4gSSYjMzk7bSBnb2luZyB0byBsb29rIGF0IHRoZSBjb25maWcgb3B0aW9ucyBpbnZvbHZlZCB0byBzZWUgaWYgdGhpcyBjaGFuZ2UgaW50ZXJhY3RzIHdpdGggYW55IHBhcnRpY3VsYXIgc2VjdXJpdHkgc2V0dGluZ3MgaW4gdGhlIDgwMi4xNS40IHN0YWNrLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgaXMga2V5IGhlcmUuCgpOZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGZ1bmN0aW9uIGl0c2VsZiDigJMgaXRzIHB1cnBvc2UsIGl0cyBpbnB1dHMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc2VjdXJpdHkgZnJhbWV3b3JrLiBJJiMzOTtsbCBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgY2hlY2sgaXMgY29ycmVjdGx5IHBsYWNlZCBhbmQgYWRkcmVzc2VzIHRoZSByb290IG9mIHRoZSBwcm9ibGVtIHdpdGhvdXQgaW50cm9kdWNpbmcgYW55IG5ldyByZWdyZXNzaW9ucyBvciBwZXJmb3JtYW5jZSBib3R0bGVuZWNrcy4KClRvIGdldCBhIGhhbmRsZSBvbiB0aGUgYmlnZ2VyIHBpY3R1cmUsIEnigJlsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCBpcyBjYWxsZWQuIFRpbWUgdG8gZmlyZSB1cCBgZ3JlcGAgYW5kIHNlZSB3aGF0IG90aGVyIGZ1bmN0aW9ucyBhcmUgdXNpbmcgaXQuIEtub3dpbmcgdGhlIGNhbGwgc2l0ZXMgd2lsbCByZWFsbHkgaGVscCBtZSBhc3Nlc3MgdGhlIGltcGFjdCBhbmQgaW1wbGljYXRpb25zIG9mIHRoaXMgcGF0Y2guCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODcyOmxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVx0XHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE5PWxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxuLS1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzItXHRlbHNlXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlx0XHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY1NQoJCQkJCQkJb3V0cHV0OiAzNgoJCQkJCQkJdGhvdWdodHM6IDM2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkOgoKKipEZWNvZGluZyB0aGUgRGVjcnlwdGlvbiBDYWxsKioKClJpZ2h0LCBzbyB0aGlzIGBsbHNlY19kb19kZWNyeXB0YCBmdW5jdGlvbi4uLiBpdCBzZWVtcyBjcml0aWNhbC4gVGhlIHRleHQgaW5kaWNhdGVzIHRoYXQgaXQmIzM5O3MgdGhlIGNvcmUgb2YgdGhlIGRlY3J5cHRpb24gcHJvY2Vzcy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdGhhdCBpdCYjMzk7cyBsaWtlbHkgcGFydCBvZiBhIHJlY2VpdmUgcGF0aC4gUHJvYmFibHkgdGhlIG5ldHdvcmsgc3RhY2ssIG9yIG1heWJlIHNvbWUgbG93ZXItbGV2ZWwgZGF0YSBoYW5kbGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLgoKTXkgbmV4dCBtb3ZlPyBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgdXRpbGl6ZSBgZ3JlcGAgZm9yIGBsbHNlY19kb19kZWNyeXB0YC4gVGhhdCYjMzk7bGwgYmUgdGhlIHF1aWNrZXN0IHdheSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEZyb20gdGhlcmUgSSYjMzk7bGwgYmUgYWJsZSB0byBiZXR0ZXIgdHJhY2UgdGhlIGV4ZWN1dGlvbiBwYXRoIGFuZCBpZGVudGlmeSBob3cgdGhpcyBzcGVjaWZpYyBkZWNyeXB0aW9uIGNhbGwgaXMgdHJpZ2dlcmVkLiBUaGF0IHNob3VsZCBoZWxwIG1lIHVuZGVyc3RhbmQgdGhlIGNvbnRleHQgYW5kIHRoZSBvdmVyYWxsIGRhdGEgZmxvdy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD42LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtsbHNlY19kb19kZWNyeXB0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTg0ND1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODQ1Omxsc2VjX2RvX2RlY3J5cHRfdW5hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy04NDYtXHRcdFx0Y29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6ODcyOmxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVx0XHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE4PXN0YXRpYyBpbnRcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo5MTk6bGxzZWNfZG9fZGVjcnlwdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTIwLVx0XHQgY29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzMC1cdGlmIChoZHItXHUwMDNlc2VjLmxldmVsID09IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQylcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo5MzE6XHRcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X3VuYXV0aChza2IsIHNlYywgaGRyLCBrZXksIGRldl9hZGRyKTtcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzItXHRlbHNlXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlx0XHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTEwMDU9aW50IG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTA3MC1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzoxMDcxOlx0ZXJyID0gbGxzZWNfZG9fZGVjcnlwdChza2IsIHNlYywgXHUwMDI2aGRyLCBrZXksIGRldl9hZGRyKTtcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy0xMDcyLVx0bGxzZWNfa2V5X3B1dChrZXkpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1OTYKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAzOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIERlY3J5cHRpb24gRnVuY3Rpb24qKgoKQWxyaWdodCwgc28gdGhlIGNhbGwgSSYjMzk7bSBsb29raW5nIGF0IG9yaWdpbmF0ZXMgZnJvbSBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgLiBSaWdodC4gVGhhdCBuYW1lIGltbWVkaWF0ZWx5IHRlbGxzIG1lIHdlJiMzOTtyZSBkZWFsaW5nIHdpdGggbG93ZXItbGF5ZXIgc2VjdXJpdHkgd2l0aGluIHRoZSA4MDIuMTUuNCBNQUMuIEkgbmVlZCB0byB0YWtlIGEgY2xvc2VyIGxvb2sgYXQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCBub3cuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyByb2xlIGluIHRoZSBzZWN1cml0eSBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgaG93IGl0IGRlY3J5cHRzIGZyYW1lcy4gSSYjMzk7bSBnb2luZyB0byBsb29rIGZvciBkZXRhaWxzIG9uIGtleSBkZXJpdmF0aW9uLCBjaXBoZXIgaW1wbGVtZW50YXRpb24sIGhvdyBpdCBoYW5kbGVzIHRoZSBzZWN1cml0eSBoZWFkZXIsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbnRlZ3JpdHkgY2hlY2tzLiBJJiMzOTtsbCBuZWVkIHRvIGNvbmZpcm0gdGhlIGV4cGVjdGVkIGJlaGF2aW9yIGFuZCB2ZXJpZnkgdGhhdCBpdCBhZGhlcmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBzdGFuZGFyZHMuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9sbHNlYy5jPTk2OD1sbHNlY191cGRhdGVfZGV2a2V5X2luZm8oc3RydWN0IG1hYzgwMjE1NF9sbHNlY19kZXZpY2UgKmRldixcbi0tXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNC1cbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzoxMDA1OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNi17XG4tLVxubmV0L21hYzgwMjE1NC9sbHNlYy5oPTk2PWludCBtYWM4MDIxNTRfbGxzZWNfZW5jcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5oOjk3OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xubmV0L21hYzgwMjE1NC9sbHNlYy5oLTk4LVxuLS1cbm5ldC9tYWM4MDIxNTQvcnguYz0xMzI9aWVlZTgwMjE1NF9zdWJpZl9mcmFtZShzdHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEsXG4tLVxubmV0L21hYzgwMjE1NC9yeC5jLTIwMC1cdCAqL1xubmV0L21hYzgwMjE1NC9yeC5jOjIwMTpcdHJjID0gbWFjODAyMTU0X2xsc2VjX2RlY3J5cHQoXHUwMDI2c2RhdGEtXHUwMDNlc2VjLCBza2IpO1xubmV0L21hYzgwMjE1NC9yeC5jLTIwMi1cdGlmIChyYykge1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU3PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyOTIKCQkJCQkJCW91dHB1dDogMzgKCQkJCQkJCXRob3VnaHRzOiAxNTIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGFuIElFRUUgODAyLjE1LjQgUmVjZWl2ZSBQYXRoIEJ1ZyBGaXgqKgoKT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCB0YXJnZXRzIGBpZWVlODAyMTU0X3N1YmlmX2ZyYW1lYCBpbiBgbmV0L21hYzgwMjE1NC9yeC5jYC4gVGhhdCBtZWFucyB3ZSYjMzk7cmUgZGVhbGluZyB3aXRoIHRoZSByZWNlaXZlIHBhdGggZm9yIElFRUUgODAyLjE1LjQgZnJhbWVzIOKAkyBzcGVjaWZpY2FsbHksIHRoZSBvbmUgdGhhdCBoYW5kbGVzIGluY29taW5nIHBhY2tldHMuIFRoaXMgbG9va3MgbGlrZSBhIGZ1bmN0aW9uYWwgYnVnIGZpeCByZWxhdGVkIHRvIGxpbmstbGF5ZXIgc2VjdXJpdHksIHNwZWNpZmljYWxseSB3aGVuIGEgcGFja2V0IGNvbWVzIGluIHdpdGggYXV0aGVudGljYXRpb24gZW5hYmxlZC4gVGhhdCYjMzk7cyBpbW1lZGlhdGVseSBpbnRlcmVzdGluZyDigJMgZGVmaW5pdGVseSB3b3J0aCBhIGRlZXBlciBsb29rIGFuZCBmdXp6aW5nLiBJIGNhbiBhbHJlYWR5IHNlZSBhIHBvdGVudGlhbCBmb3Igc2VjdXJpdHkgaW1wbGljYXRpb25zIGhlcmUuCgpOb3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXQgcGxheS4gU2luY2UgdGhpcyBpbnZvbHZlcyBsaW5rLWxheWVyIHNlY3VyaXR5LCBJJiMzOTtsbCBzdGFydCBieSBjaGVja2luZyBgbmV0L21hYzgwMjE1NC9sbHNlYy5jYC4gVGhlbiwgSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIGJ1aWxkLXRpbWUgZGVwZW5kZW5jaWVzLCBzbyBJIHNob3VsZCB0YWtlIGEgcGVlayBhdCBgbmV0L21hYzgwMjE1NC9NYWtlZmlsZWAgdG8gc2VlIGhvdyBldmVyeXRoaW5nIGlzIHRpZWQgdG9nZXRoZXIgYW5kIGZpbmQgYW55IHJlbGV2YW50IGNvbmZpZyBmbGFncy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtuZXQvbWFjODAyMTU0L01ha2VmaWxlJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdG9iai0kKENPTkZJR19NQUM4MDIxNTQpXHQmIzQzOz0gbWFjODAyMTU0Lm9cbiAgIDM6XHRtYWM4MDIxNTQtb2Jqc1x0XHQ6PSBtYWluLm8gcngubyB0eC5vIG1hY19jbWQubyBtaWIubyBcXFxuICAgNDpcdFx0XHRcdCAgIGlmYWNlLm8gbGxzZWMubyB1dGlsLm8gY2ZnLm8gc2Nhbi5vIHRyYWNlLm9cbiAgIDU6XHRcbiAgIDY6XHRDRkxBR1NfdHJhY2UubyA6PSAtSSQoc3JjKVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0ODU2CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogOTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRXhhbWluaW5nIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgQ09ORklHX01BQzgwMjE1NGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IHJlbGF0ZWQgb3IgbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmbG9hdGluZyBhcm91bmQuIEkmIzM5O20gZXNwZWNpYWxseSBjdXJpb3VzIGFib3V0IExMU0VDLCBnaXZlbiBpdHMgaW1wb3J0YW5jZSBpbiBzZWN1cmUgODAyLjE1LjQgZGVwbG95bWVudHMuIElzIHRoZXJlIHNvbWV0aGluZyBsaWtlIGBDT05GSUdfTUFDODAyMTU0X0xMU0VDYD8gTm9wZSwgbm90IGRpcmVjdGx5LiBUaGF0JiMzOTtzIGZpbmUsIGl0IGNvdWxkIGJlIGNvbmRpdGlvbmFsbHkgY29tcGlsZWQgdW5kZXIgdGhlIG1haW4gY29uZmlnLiBXYWl0LCBsZXQgbWUganVzdCBkb3VibGUgY2hlY2sgdGhlIHJlbGV2YW50IEtjb25maWcgZmlsZXMgaW4gdGhlIHNvdXJjZSB0cmVlLiBMZXQgbWUgY2hlY2sgYG5ldC9tYWM4MDIxNTQvS2NvbmZpZ2AgYW5kIGBuZXQvaWVlZTgwMjE1NC9LY29uZmlnYCB0byBjb25maXJtIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoYXQgbW9kdWxlLiBKdXN0IHdhbnQgdG8gbWFrZSBhYnNvbHV0ZWx5IHN1cmUgSSYjMzk7bSBub3QgbWlzc2luZyBhIG1vcmUgc3BlY2lmaWMgZmxhZyBvciBpbmFkdmVydGVudGx5IGVuYWJsaW5nIExMU0VDIHdoZW4gaXQmIzM5O3Mgbm90IGRlc2lyZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBNQUM4MDIxNTQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtuZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxubmV0L21hYzgwMjE1NC9LY29uZmlnOjI6Y29uZmlnIE1BQzgwMjE1NFxubmV0L21hYzgwMjE1NC9LY29uZmlnLTMtXHR0cmlzdGF0ZSBcJiMzNDtHZW5lcmljIElFRUUgODAyLjE1LjQgU29mdCBOZXR3b3JraW5nIFN0YWNrIChtYWM4MDIxNTQpXCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUyOTMKCQkJCQkJCW91dHB1dDogMzkKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgYW5kIHByZXNlbnRlZCBhcyBpZiBpdCB3ZXJlIG15IG93biBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkRpdmluZyBpbnRvIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIHRpbWUgdG8gZ2V0IHRvIHRoZSBjb3JlIG9mIHRoaXMuIFRoZSBmaXJzdCB0aGluZyBJJiMzOTttIGdvaW5nIHRvIGRvIGlzIGRpZyBpbnRvIHRoZSBgbmV0L21hYzgwMjE1NC9LY29uZmlnYCBmaWxlLiBUaGF0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHBhcnRpY3VsYXIgODAyLjE1LjQgaW1wbGVtZW50YXRpb24gaXMgY29uZmlndXJlZCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhlIEtjb25maWcgc3lzdGVtIGlzIHRoZSBiYWNrYm9uZSBvZiB0aGUga2VybmVsJiMzOTtzIGJ1aWxkIGNvbmZpZ3VyYXRpb24sIHNvIHRoaXMgZmlsZSBpcyBjcml0aWNhbCBmb3IgZmlndXJpbmcgb3V0IGFsbCB0aGUgYXZhaWxhYmxlIG9wdGlvbnMsIGRlcGVuZGVuY2llcywgYW5kIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgTUFDIGxheWVyLiBJJiMzOTttIGV4cGVjdGluZyB0byBzZWUgdGhpbmdzIGxpa2Ugc3VwcG9ydGVkIFBIWXMsIHNlY3VyaXR5IGZlYXR1cmVzLCBhZGRyZXNzaW5nIG1vZGVzLCBhbmQgcGVyaGFwcyBldmVuIHNvbWUgc3BlY2lmaWMgaGFyZHdhcmUgY29uZmlndXJhdGlvbnMgZm9yIGRpZmZlcmVudCByYWRpbyBjaGlwcy4gSG9wZWZ1bGx5LCBJJiMzOTtsbCBmaW5kIGhpbnRzIHRoZXJlIHRoYXQgd2lsbCBoZWxwIG1lIHdpdGggbXkgZGVidWdnaW5nL2RldmVsb3BtZW50IHRhc2tzLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBoaWdoLWxldmVsIHZpZXcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCYjMzk7cyBpbiBwbGF5IGJlZm9yZSBsb29raW5nIGF0IHRoZSBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7bmV0L21hYzgwMjE1NC9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMDAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuICAgMjpcdGNvbmZpZyBNQUM4MDIxNTRcbiAgIDM6XHRcdHRyaXN0YXRlIFwmIzM0O0dlbmVyaWMgSUVFRSA4MDIuMTUuNCBTb2Z0IE5ldHdvcmtpbmcgU3RhY2sgKG1hYzgwMjE1NClcJiMzNDtcbiAgIDQ6XHRcdGRlcGVuZHMgb24gSUVFRTgwMjE1NFxuICAgNTpcdFx0c2VsZWN0IENSQ19DQ0lUVFxuICAgNjpcdFx0c2VsZWN0IENSWVBUT1xuICAgNzpcdFx0c2VsZWN0IENSWVBUT19BVVRIRU5DXG4gICA4Olx0XHRzZWxlY3QgQ1JZUFRPX0NDTVxuICAgOTpcdFx0c2VsZWN0IENSWVBUT19DVFJcbiAgMTA6XHRcdHNlbGVjdCBDUllQVE9fQUVTXG4gIDExOlx0XHRoZWxwXG4gIDEyOlx0XHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGhhcmR3YXJlIGluZGVwZW5kZW50IElFRUUgODAyLjE1LjRcbiAgMTM6XHRcdCAgbmV0d29ya2luZyBzdGFjayBmb3IgU29mdE1BQyBkZXZpY2VzICh0aGUgb25lcyBpbXBsZW1lbnRpbmdcbiAgMTQ6XHRcdCAgb25seSBQSFkgbGV2ZWwgb2YgSUVFRSA4MDIuMTUuNCBzdGFuZGFyZCkuXG4gIDE1Olx0XG4gIDE2Olx0XHQgIE5vdGU6IHRoaXMgaW1wbGVtZW50YXRpb24gaXMgbmVpdGhlciBjZXJ0aWZpZWQsIG5vciBmZWF0dXJlXG4gIDE3Olx0XHQgIGNvbXBsZXRlISBDb21wYXRpYmlsaXR5IHdpdGggb3RoZXIgaW1wbGVtZW50YXRpb25zIGhhc24mIzM5O3RcbiAgMTg6XHRcdCAgYmVlbiB0ZXN0ZWQgeWV0IVxuICAxOTpcdFxuICAyMDpcdFx0ICBJZiB5b3UgcGxhbiB0byB1c2UgSGFyZE1BQyBJRUVFIDgwMi4xNS40IGRldmljZXMsIHlvdSBjYW5cbiAgMjE6XHRcdCAgc2F5IE4gaGVyZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHNheSBNIHRvIGNvbXBpbGUgaXQgYXNcbiAgMjI6XHRcdCAgbW9kdWxlLlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1ODwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTE1CgkJCQkJCQlvdXRwdXQ6IDMyCgkJCQkJCQl0aG91Z2h0czogMTIxCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyB0aGUgSUVFRSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gZGl2aW5nIGludG8gdGhpcyBJRUVFIDgwMi4xNS40IGNvbmZpZ3VyYXRpb24uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgYE1BQzgwMjE1NGAgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSwgYW5kLCBvZiBjb3Vyc2UsIGl0JiMzOTtzIGRlcGVuZGVudCBvbiBgSUVFRTgwMjE1NGAgaXRzZWxmLiBUbyBiZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCB0aGluZ3MgYXJlIHNldCB1cCBjb3JyZWN0bHksIEkgc2hvdWxkIGVuYWJsZSBib3RoIGBNQUM4MDIxNTRgIGFuZCBgSUVFRTgwMjE1NGAgZHVyaW5nIHRlc3RpbmcuIEl0JiMzOTtzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50LgoKTm93LCBpZiBJJiMzOTttIGdvaW5nIHRvIGJlIGluamVjdGluZyBwYWNrZXRzLCB3aGljaCBJIHN1c3BlY3Qgd2lsbCBiZSBuZWNlc3NhcnkgZm9yIGEgdGhvcm91Z2ggZXZhbHVhdGlvbiwgSSYjMzk7bGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoYXQgdmlydHVhbCBkcml2ZXIgaXMgYXBwcm9wcmlhdGUuIGBJRUVFODAyMTU0X0ZBS0VMQmAgb3IgcGVyaGFwcyBgTUFDODAyMTU0X0hXU0lNYCBzZWVtIGxpa2UgdGhlIGxpa2VseSBjYW5kaWRhdGVzIGZvciB0aGUga2luZCBvZiBzaW11bGF0aW9uIG9yIHBhY2tldCBtYW5pcHVsYXRpb24gSSYjMzk7bSBhaW1pbmcgZm9yLiBJJiMzOTtsbCBuZWVkIHRvIGNoZWNrIHRoZSBLY29uZmlnIGZpbGUgZm9yIHRoZSBkcml2ZXJzLCBwcm9iYWJseSBpbiBgZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnYCBvciBzb21ldGhpbmcgc2ltaWxhciwgdG8gc2VlIHRoZSBleGFjdCBkZXRhaWxzIGFuZCBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZy4qODAyMTU0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjI6bWVudWNvbmZpZyBJRUVFODAyMTU0X0RSSVZFUlNcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7SUVFRSA4MDIuMTUuNCBkcml2ZXJzXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTEzLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjE0OmNvbmZpZyBJRUVFODAyMTU0X0ZBS0VMQlxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE1LVx0ZGVwZW5kcyBvbiBJRUVFODAyMTU0X0RSSVZFUlMgXHUwMDI2XHUwMDI2IE1BQzgwMjE1NFxuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMy1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoyNDpjb25maWcgSUVFRTgwMjE1NF9BVDg2UkYyMzBcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yNS1cdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFx1MDAyNlx1MDAyNiBNQUM4MDIxNTRcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMzUtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MzY6Y29uZmlnIElFRUU4MDIxNTRfTVJGMjRKNDBcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zNy1cdHRyaXN0YXRlIFwmIzM0O01pY3JvY2hpcCBNUkYyNEo0MCB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNDctXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6NDg6Y29uZmlnIElFRUU4MDIxNTRfQ0MyNTIwXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNDktXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcdTAwMjZcdTAwMjYgTUFDODAyMTU0XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTU4LVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjU5OmNvbmZpZyBJRUVFODAyMTU0X0FUVVNCXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNjAtXHR0cmlzdGF0ZSBcJiMzNDtBVFVTQiB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNjgtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6Njk6Y29uZmlnIElFRUU4MDIxNTRfQURGNzI0MlxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTcwLVx0dHJpc3RhdGUgXCYjMzQ7QURGNzI0MiB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctNzktXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6ODA6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctODEtXHR0cmlzdGF0ZSBcJiMzNDtDYXNjb2RhIENBODIxMCB0cmFuc2NlaXZlciBkcml2ZXJcJiMzNDtcbi0tXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctOTEtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6OTI6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwX0RFQlVHRlNcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy05My1cdGJvb2wgXCYjMzQ7Q0E4MjEwIGRlYnVnZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTEwMS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzoxMDI6Y29uZmlnIElFRUU4MDIxNTRfTUNSMjBBXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTAzLVx0dHJpc3RhdGUgXCYjMzQ7TUNSMjBBIHRyYW5zY2VpdmVyIGRyaXZlclwmIzM0O1xuLS1cbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMTMtXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTE0OmNvbmZpZyBJRUVFODAyMTU0X0hXU0lNXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTE1LVx0ZGVwZW5kcyBvbiBJRUVFODAyMTU0X0RSSVZFUlMgXHUwMDI2XHUwMDI2IE1BQzgwMjE1NFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzY1CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogMjIzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZ1enppbmcgVGFyZ2V0IFJlZmluZW1lbnQqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBmdXp6aW5nIHRoaXMgODAyLjE1LjQgY29kZSwgYW5kIGBJRUVFODAyMTU0X0hXU0lNYCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCBhcmUgZGVmaW5pdGVseSBzdHJvbmcgY29udGVuZGVycyBmb3IgaW5pdGlhbCB0YXJnZXRzLiBJJiMzOTttIGdvaW5nIHRvIGluY2x1ZGUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCB0byBlbnN1cmUgYSBicm9hZCBzY29wZSBmb3IgY292ZXJhZ2UgaW5pdGlhbGx5LgoKSGFuZyBvbiBhIHNlY29uZC4uLiB0aGUgcGF0Y2ggSSYjMzk7bSBpbnRlcmVzdGVkIGluIGlzIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBSaWdodCwgYW5kIHRoZSBrZXkgZnVuY3Rpb24gdGhlcmUgaXMgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuIExldCYjMzk7cyBqdXN0IGRvdWJsZSBjaGVjayAtIGlzIHRoZXJlICphbnl0aGluZyogZWxzZSByZWxldmFudCBpbiB0aGF0IGZpbGU/IE5vcGUsIGp1c3QgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgcmVmb2N1cy4gQmV5b25kIHRoYXQgb25lIGZ1bmN0aW9uLCBjYW4gSSBpZGVudGlmeSBhbnkgb3RoZXIgc3ltYm9scyB0aGF0IG1pZ2h0IGJlIHdvcnRoIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8/IFllcywgSSYjMzk7bSBnb2luZyB0byBhZGQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCB0byBteSBsaXN0LiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZS1jaGVjayB0aGlzIGFzIHdlbGwuIEFsc28sIHRoZSBwcmltYXJ5IGZ1bmN0aW9uIG9mIGludGVyZXN0IGlzIHN0aWxsIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHNvIHRoYXQgZ29lcyBvbiB0aGUgbGlzdCBhcyB3ZWxsLgoKSSYjMzk7bSBub3cgZ29pbmcgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xNiAyMzo1OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O25ldC9tYWM4MDIxNTQvbGxzZWMuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg3MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA1MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODcwOlx0XG4gODcxOlx0c3RhdGljIGludFxuIDg3MjpcdGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4gODczOlx0XHRcdCAgICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTU0X2hkciAqaGRyLFxuIDg3NDpcdFx0XHQgICAgICBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjX2tleSAqa2V5LCBfX2xlNjQgZGV2X2FkZHIpXG4gODc1Olx0e1xuIDg3NjpcdFx0dTggaXZbMTZdO1xuIDg3NzpcdFx0dW5zaWduZWQgY2hhciAqZGF0YTtcbiA4Nzg6XHRcdGludCBhdXRobGVuLCBkYXRhbGVuLCBhc3NvY2xlbiwgcmM7XG4gODc5Olx0XHRzdHJ1Y3Qgc2NhdHRlcmxpc3Qgc2c7XG4gODgwOlx0XHRzdHJ1Y3QgYWVhZF9yZXF1ZXN0ICpyZXE7XG4gODgxOlx0XG4gODgyOlx0XHRhdXRobGVuID0gaWVlZTgwMjE1NF9zZWNoZHJfYXV0aHRhZ19sZW4oXHUwMDI2aGRyLVx1MDAzZXNlYyk7XG4gODgzOlx0XHRsbHNlY19nZW5pdihpdiwgZGV2X2FkZHIsIFx1MDAyNmhkci1cdTAwM2VzZWMpO1xuIDg4NDpcdFxuIDg4NTpcdFx0cmVxID0gYWVhZF9yZXF1ZXN0X2FsbG9jKGxsc2VjX3RmbV9ieV9sZW4oa2V5LCBhdXRobGVuKSwgR0ZQX0FUT01JQyk7XG4gODg2Olx0XHRpZiAoIXJlcSlcbiA4ODc6XHRcdFx0cmV0dXJuIC1FTk9NRU07XG4gODg4Olx0XG4gODg5Olx0XHRhc3NvY2xlbiA9IHNrYi1cdTAwM2VtYWNfbGVuO1xuIDg5MDpcdFxuIDg5MTpcdFx0ZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgJiM0Mzsgc2tiLVx1MDAzZW1hY19sZW47XG4gODkyOlx0XHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcbiA4OTM6XHRcbiA4OTQ6XHRcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4gODk1Olx0XHRcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xuIDg5NjpcdFx0XHRyZXR1cm4gLUVCQURNU0c7XG4gODk3Olx0XHR9XG4gODk4Olx0XG4gODk5Olx0XHRzZ19pbml0X29uZShcdTAwMjZzZywgc2tiX21hY19oZWFkZXIoc2tiKSwgYXNzb2NsZW4gJiM0MzsgZGF0YWxlbik7XG4gOTAwOlx0XG4gOTAxOlx0XHRpZiAoIShoZHItXHUwMDNlc2VjLmxldmVsIFx1MDAyNiBJRUVFODAyMTU0X1NDRl9TRUNMRVZFTF9FTkMpKSB7XG4gOTAyOlx0XHRcdGFzc29jbGVuICYjNDM7PSBkYXRhbGVuIC0gYXV0aGxlbjtcbiA5MDM6XHRcdFx0ZGF0YWxlbiA9IGF1dGhsZW47XG4gOTA0Olx0XHR9XG4gOTA1Olx0XG4gOTA2Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2NhbGxiYWNrKHJlcSwgMCwgTlVMTCwgTlVMTCk7XG4gOTA3Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2NyeXB0KHJlcSwgXHUwMDI2c2csIFx1MDAyNnNnLCBkYXRhbGVuLCBpdik7XG4gOTA4Olx0XHRhZWFkX3JlcXVlc3Rfc2V0X2FkKHJlcSwgYXNzb2NsZW4pO1xuIDkwOTpcdFxuIDkxMDpcdFx0cmMgPSBjcnlwdG9fYWVhZF9kZWNyeXB0KHJlcSk7XG4gOTExOlx0XG4gOTEyOlx0XHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcbiA5MTM6XHRcdHNrYl90cmltKHNrYiwgc2tiLVx1MDAzZWxlbiAtIGF1dGhsZW4pO1xuIDkxNDpcdFxuIDkxNTpcdFx0cmV0dXJuIHJjO1xuIDkxNjpcdH1cbiA5MTc6XHRcbiA5MTg6XHRzdGF0aWMgaW50XG4gOTE5Olx0bGxzZWNfZG9fZGVjcnlwdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg3ODQKCQkJCQkJCW91dHB1dDogMzAKCQkJCQkJCXRob3VnaHRzOiAyMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgU2VjdXJpdHkgUGF0Y2gqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY3J1Y2lhbCBjaGVjazogYGlmIChkYXRhbGVuICZsdDsgYXV0aGxlbikgeyAuLi4gfWAuIE15IGluaXRpYWwgYXNzZXNzbWVudCBpcyB0aGF0IHRoaXMgaXMgYSAqdmVyeSogZ29vZCB0aGluZy4gSXQmIzM5O3MgZGVzaWduZWQgdG8gcHJldmVudCBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgb3IgdW5kZXJmbG93IGlzc3VlLCBzcGVjaWZpY2FsbHkgd2hlbiBjYWxjdWxhdGluZyBgZGF0YWxlbiAtIGF1dGhsZW5gLiBUaGlzIGtpbmQgb2YgY2hlY2sgaXMgYWx3YXlzIHdlbGNvbWVkLiBJdCBsb29rcyBsaWtlIGl0IGlzIHJlYWNoYWJsZSB0aHJvdWdoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuCgpNeSBpbnN0aW5jdCB0ZWxscyBtZSB0aGF0IHdlICphYnNvbHV0ZWx5KiBuZWVkIHRvIGZ1enogYm90aCBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgIGFuZCwgZm9yIGNvbXBsZXRlbmVzcywgYWxzbyBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gVGhhdCBzaG91bGQgYmUgdGhlIGZpcnN0IGFjdGlvbiBhZnRlciByZXZpZXdpbmcgdGhlIGNvZGUuCgpOb3csIGxldCYjMzk7cyBzZWUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBiZSByZWxldmFudCBoZXJlLiBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBwb3NzaWJpbGl0aWVzLCBwYXJ0aWN1bGFybHkgc2luY2Ugd2UgaGF2ZSBgTUFDODAyMTU0YCwgYElFRUU4MDIxNTRgLCBgSUVFRTgwMjE1NF9IV1NJTWAsIGFuZCBgSUVFRTgwMjE1NF9GQUtFTEJgLgoKSSYjMzk7bGwgcXVpY2tseSBjaGVjayBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSBpZiBgSUVFRTgwMjE1NGAgaXMgdGhlIGNvcnJlY3QsIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIHN5bWJvbC4gVGhpcyB3aWxsIGhlbHAgd2l0aCBwcm9wZXJseSB0YXJnZXRpbmcgdGhlIHJlbGV2YW50IGJ1aWxkIHRhcmdldHMgYW5kIGZ1enppbmcgY29uZmlndXJhdGlvbnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE2IDIzOjU5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBJRUVFODAyMTU0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bmV0LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtuZXQvaWVlZTgwMjE1NC82bG93cGFuL0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZzoyOmNvbmZpZyBJRUVFODAyMTU0XzZMT1dQQU5cbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZy0zLVx0dHJpc3RhdGUgXCYjMzQ7Nmxvd3BhbiBzdXBwb3J0IG92ZXIgSUVFRSA4MDIuMTUuNFwmIzM0O1xuLS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MjptZW51Y29uZmlnIElFRUU4MDIxNTRcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMy1cdHRyaXN0YXRlIFwmIzM0O0lFRUUgU3RkIDgwMi4xNS40IExvdy1SYXRlIFdpcmVsZXNzIFBlcnNvbmFsIEFyZWEgTmV0d29ya3Mgc3VwcG9ydFwmIzM0O1xuLS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWc9MTQ9aWYgSUVFRTgwMjE1NFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNS1cbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MTY6Y29uZmlnIElFRUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE3LVx0Ym9vbCBcJiMzNDtJRUVFIDgwMi4xNS40IGV4cGVyaW1lbnRhbCBuZXRsaW5rIHN1cHBvcnRcJiMzNDtcbi0tXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTIwLVxubmV0L2llZWU4MDIxNTQvS2NvbmZpZzoyMTpjb25maWcgSUVFRTgwMjE1NF9TT0NLRVRcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMjItXHR0cmlzdGF0ZSBcJiMzNDtJRUVFIDgwMi4xNS40IHNvY2tldCBpbnRlcmZhY2VcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTYgMjM6NTk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTc0MAoJCQkJCQkJb3V0cHV0OiAxOTEKCQkJCQkJCXRob3VnaHRzOiAyODEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQW5hbHlzaXMgb2YgdGhlIDgwMi4xNS40IFNlY3VyaXR5IFBhdGNoKioKCk9rYXksIHNvIHRoZSBjb3JlIGNvbmZpZ3VyYXRpb24gaGVyZSByZXZvbHZlcyBhcm91bmQgYElFRUU4MDIxNTRgLCB0aGF0JiMzOTtzIHRoZSBtYWluIHN0YW5kYXJkLiBXZSYjMzk7cmUgYWxzbyBkZWFsaW5nIHdpdGggYE1BQzgwMjE1NGAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSB0aGUgc29mdG1hYyBpbXBsZW1lbnRhdGlvbi4gVGhlbiwgd2UgaGF2ZSB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgYElFRUU4MDIxNTRfSFdTSU1gIGFuZCB0aGUgZmFrZSBsb3dlci1ib3VuZCBkcml2ZXIgYElFRUU4MDIxNTRfRkFLRUxCYC4KCk5vdywgdGhlIHBhdGNoJiMzOTtzIGxvZ2ljIGZsb3cgc3RhcnRzIHdpdGggdGhlc2UgY29uZmlndXJhdGlvbnMuIEkgbmVlZCB0byBtYWtlIHN1cmUgYENSWVBUT19DQ01gIGFuZCBgQ1JZUFRPX0FFU2AgYXJlIGVuYWJsZWQuIEdvb2QsIGBNQUM4MDIxNTRgIHNlbGVjdHMgdGhvc2UsIHNvIHdlJiMzOTtyZSBnb29kIHRoZXJlLiBUaGVyZWZvcmUsIHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gaXMgZ29pbmcgdG8gYmUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYC4KClRoZSBpbXBvcnRhbnQgc3ltYm9scyBoZXJlLCB0aGUgb25lcyB0aGF0IGFyZSBsaWtlbHkgYWZmZWN0ZWQgYnkgdGhpcyBjaGFuZ2UsIGFyZSBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCwgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCwgYW5kIGBsbHNlY19kb19kZWNyeXB0YC4KClRoaXMgcGF0Y2ggaXMgYWRkaW5nIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBJdCYjMzk7cyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5LiBUaGUgbWFpbiBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gcHJldmVudCB0aGUgZGVjcnlwdGlvbiBvZiBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBzaG9ydGVyIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4gSXQmIzM5O3MgYSBzZWN1cml0eSBpbXByb3ZlbWVudCB0byBlbnN1cmUgdGhhdCB0aGUgcGFja2V0IGlzbiYjMzk7dCBwcm9jZXNzZWQgaWYgdGhlIGRhdGEgaXMgaW52YWxpZC4gVGhpcyBhZmZlY3RzIGVuY3J5cHRlZC9hdXRoZW50aWNhdGVkIHBhY2tldHMgYW5kIGlzIHJlYWNoYWJsZSB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgYGh3c2ltYCBvciBgZmFrZWxiYCwgd2hpY2ggYXJlIGZyZXF1ZW50bHkgdXNlZCBpbiBvdXIgdGVzdCBlbnZpcm9ubWVudHMuCgpTbywgSSYjMzk7bSBjb25maWRlbnQgd2UgaGF2ZSBhIGNvcnJlY3Qgc2V0IG9mIGNvbmZpZ3VyYXRpb25zIG5vdy4gTGV0JiMzOTtzIGNhbGwgc2V0LXJlc3VsdHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE3IDAwOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+c2V0LXJlc3VsdHM8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxNTQmIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfRkFLRUxCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgICAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgICAmIzM0O2xsc2VjX2RvX2RlY3J5cHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtNQUM4MDIxNTQmIzM0OywKICAgICYjMzQ7SUVFRTgwMjE1NCYjMzQ7LAogICAgJiMzNDtJRUVFODAyMTU0X0hXU0lNJiMzNDssCiAgICAmIzM0O0lFRUU4MDIxNTRfRkFLRUxCJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7bGxzZWNfZG9fZGVjcnlwdF9hdXRoJiMzNDssCiAgICAmIzM0O21hYzgwMjE1NF9sbHNlY19kZWNyeXB0JiMzNDssCiAgICAmIzM0O2xsc2VjX2RvX2RlY3J5cHQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTY6MzguOTE0MDkwODg2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjA0MDI0Njc0MDI0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NjozOC45MTQwOTY1NzZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NjA1NzA5MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDcyNDVlYTA4MmE4MTQ4MjA4MDYwYzQ3OTcwNzliMjBkY2FkNDdhMThcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFRodSBKdWwgMTYgMjM6NTY6MzcgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXFxuaW5kZXggNWU3Y2MxMWZhYjNhNDMuLjg1NDUyZWY5YTU4YzY5IDEwMDY0NFxcbi0tLSBhL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xcbisrKyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xcbkBAIC04OTEsNiArODkxLDExIEBAIGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxuIFxcdGRhdGEgPSBza2JfbWFjX2hlYWRlcihza2IpICsgc2tiLVxcdTAwM2VtYWNfbGVuO1xcbiBcXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcXG4gXFxuK1xcdGlmIChkYXRhbGVuIFxcdTAwM2MgYXV0aGxlbikge1xcbitcXHRcXHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcXG4rXFx0XFx0cmV0dXJuIC1FQkFETVNHO1xcbitcXHR9XFxuK1xcbiBcXHRzZ19pbml0X29uZShcXHUwMDI2c2csIHNrYl9tYWNfaGVhZGVyKHNrYiksIGFzc29jbGVuICsgZGF0YWxlbik7XFxuIFxcbiBcXHRpZiAoIShoZHItXFx1MDAzZXNlYy5sZXZlbCBcXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTY6MzkuNDAxMDc3Nzg3WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyMDM1Mzc2NzU5OTMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiTUFDODAyMTU0XCIsXG4gICAgXCJJRUVFODAyMTU0XCIsXG4gICAgXCJJRUVFODAyMTU0X0hXU0lNXCIsXG4gICAgXCJJRUVFODAyMTU0X0ZBS0VMQlwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImxsc2VjX2RvX2RlY3J5cHRfYXV0aFwiLFxuICAgIFwibWFjODAyMTU0X2xsc2VjX2RlY3J5cHRcIixcbiAgICBcImxsc2VjX2RvX2RlY3J5cHRcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBhZGRzIGEgYm91bmRzIGNoZWNrIHRvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIHRvIHByZXZlbnQgcHJvY2Vzc2luZyBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBsZXNzIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZyBsZW5ndGguIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgSUVFRSA4MDIuMTUuNCBNQUMgbGF5ZXIgc2VjdXJpdHkgKGxsc2VjKSByZWNlaXZlIHBhdGguIEl0IGlzIHJlYWNoYWJsZSB3aGVuIHJlY2VpdmluZyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIHZpYSB2aXJ0dWFsIGRyaXZlcnMgbGlrZSBod3NpbSBvciBmYWtlbGIuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgNzI0NWVhMDgyYTgxNDgyMDgwNjBjNDc5NzA3OWIyMGRjYWQ0N2ExOFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgSnVsIDE2IDIzOjU2OjM3IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjE1NC9sbHNlYy5jIGIvbmV0L21hYzgwMjE1NC9sbHNlYy5jXG5pbmRleCA1ZTdjYzExZmFiM2E0My4uODU0NTJlZjlhNThjNjkgMTAwNjQ0XG4tLS0gYS9uZXQvbWFjODAyMTU0L2xsc2VjLmNcbisrKyBiL25ldC9tYWM4MDIxNTQvbGxzZWMuY1xuQEAgLTg5MSw2ICs4OTEsMTEgQEAgbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcbiBcdGRhdGEgPSBza2JfbWFjX2hlYWRlcihza2IpICsgc2tiLVx1MDAzZW1hY19sZW47XG4gXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcbiBcbitcdGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKSB7XG4rXHRcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xuK1x0XHRyZXR1cm4gLUVCQURNU0c7XG4rXHR9XG4rXG4gXHRzZ19pbml0X29uZShcdTAwMjZzZywgc2tiX21hY19oZWFkZXIoc2tiKSwgYXNzb2NsZW4gKyBkYXRhbGVuKTtcbiBcbiBcdGlmICghKGhkci1cdTAwM2VzZWMubGV2ZWwgXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcbiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU2OjM5LjQwMTA3OTcxN1oiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM1NDgyNTYxNjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIE1hYzgwMjE1NCBTZWN1cml0eSBQYXRjaCoqXG5cbk9rYXksIHNvIEkndmUgZ290IHRoaXMgcGF0Y2gg4oCTIHNlZW1zIGxpa2UgaXTigJlzIHR3ZWFraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIHNwZWNpZmljYWxseSBpbiBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gVGhlIG1lYXQgb2YgaXQgaXMgYSBjaGVjazogYGlmIChkYXRhbGVuIFx1MDAzYyBhdXRobGVuKWAuIFJpZ2h0IG9mZiB0aGUgYmF0LCB0aGF0IHNjcmVhbXMgcG90ZW50aWFsIGJ1ZmZlciBvdmVyLXJlYWQgcHJvdGVjdGlvbiwgd2hpY2ggaXMgYWx3YXlzIGEgZ29vZCB0aGluZyB0byBzZWUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0aGlzIGlzIGFkZHJlc3Npbmcgc29tZSB2dWxuZXJhYmlsaXR5IHJlbGF0ZWQgdG8gYXV0aGVudGljYXRpb24gbGVuZ3RoLlxuXG5Ob3csIGxldCdzIGRpdmUgZGVlcGVyLiBJJ20gZ29pbmcgdG8gbG9vayBhdCB0aGUgY29uZmlnIG9wdGlvbnMgaW52b2x2ZWQgdG8gc2VlIGlmIHRoaXMgY2hhbmdlIGludGVyYWN0cyB3aXRoIGFueSBwYXJ0aWN1bGFyIHNlY3VyaXR5IHNldHRpbmdzIGluIHRoZSA4MDIuMTUuNCBzdGFjay4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGlzIGtleSBoZXJlLlxuXG5OZXh0LCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGZ1bmN0aW9uIGl0c2VsZiDigJMgaXRzIHB1cnBvc2UsIGl0cyBpbnB1dHMsIGFuZCBob3cgaXQgaW50ZXJhY3RzIHdpdGggdGhlIGJyb2FkZXIgc2VjdXJpdHkgZnJhbWV3b3JrLiBJJ2xsIG5lZWQgdG8gdmVyaWZ5IHRoYXQgdGhpcyBjaGVjayBpcyBjb3JyZWN0bHkgcGxhY2VkIGFuZCBhZGRyZXNzZXMgdGhlIHJvb3Qgb2YgdGhlIHByb2JsZW0gd2l0aG91dCBpbnRyb2R1Y2luZyBhbnkgbmV3IHJlZ3Jlc3Npb25zIG9yIHBlcmZvcm1hbmNlIGJvdHRsZW5lY2tzLlxuXG5UbyBnZXQgYSBoYW5kbGUgb24gdGhlIGJpZ2dlciBwaWN0dXJlLCBJ4oCZbGwgbmVlZCB0byBmaWd1cmUgb3V0IHdoZXJlIGFuZCBob3cgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAgaXMgY2FsbGVkLiBUaW1lIHRvIGZpcmUgdXAgYGdyZXBgIGFuZCBzZWUgd2hhdCBvdGhlciBmdW5jdGlvbnMgYXJlIHVzaW5nIGl0LiBLbm93aW5nIHRoZSBjYWxsIHNpdGVzIHdpbGwgcmVhbGx5IGhlbHAgbWUgYXNzZXNzIHRoZSBpbXBhY3QgYW5kIGltcGxpY2F0aW9ucyBvZiB0aGlzIHBhdGNoLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTE3LCJPdXRwdXRUb2tlbnMiOjM4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTM0LCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MTQuODgzNjQzNjIzWiIsIlNlcSI6NCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIxMzY2MDU4NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjE1NC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jPTg3MT1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjg3MjpsbHNlY19kb19kZWNyeXB0X2F1dGgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy04NzMtXFx0XFx0ICAgICAgY29uc3Qgc3RydWN0IGllZWU4MDIxNTRfaGRyICpoZHIsXFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9OTE5PWxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzMi1cXHRlbHNlXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjkzMzpcXHRcXHRyZXR1cm4gbGxzZWNfZG9fZGVjcnlwdF9hdXRoKHNrYiwgc2VjLCBoZHIsIGtleSwgZGV2X2FkZHIpO1xcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzQtfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzoxNS4wOTczMTE1NTFaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMTAxODIwMjM5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIGFzc3VtaW5nIEknbSBhbiBleHBlcnQgaW4gdGhpcyBmaWVsZDpcblxuKipEZWNvZGluZyB0aGUgRGVjcnlwdGlvbiBDYWxsKipcblxuUmlnaHQsIHNvIHRoaXMgYGxsc2VjX2RvX2RlY3J5cHRgIGZ1bmN0aW9uLi4uIGl0IHNlZW1zIGNyaXRpY2FsLiBUaGUgdGV4dCBpbmRpY2F0ZXMgdGhhdCBpdCdzIHRoZSBjb3JlIG9mIHRoZSBkZWNyeXB0aW9uIHByb2Nlc3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRoYXQgaXQncyBsaWtlbHkgcGFydCBvZiBhIHJlY2VpdmUgcGF0aC4gUHJvYmFibHkgdGhlIG5ldHdvcmsgc3RhY2ssIG9yIG1heWJlIHNvbWUgbG93ZXItbGV2ZWwgZGF0YSBoYW5kbGluZy4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBmaXRzIGludG8gdGhlIGJpZ2dlciBwaWN0dXJlLlxuXG5NeSBuZXh0IG1vdmU/IEknbSBnb2luZyB0byBxdWlja2x5IHV0aWxpemUgYGdyZXBgIGZvciBgbGxzZWNfZG9fZGVjcnlwdGAuIFRoYXQnbGwgYmUgdGhlIHF1aWNrZXN0IHdheSB0byBpZGVudGlmeSBhbGwgdGhlIGNhbGwgc2l0ZXMgYW5kIHNlZSB3aGljaCBvdGhlciBmdW5jdGlvbnMgYXJlIGNhbGxpbmcgaXQuIEZyb20gdGhlcmUgSSdsbCBiZSBhYmxlIHRvIGJldHRlciB0cmFjZSB0aGUgZXhlY3V0aW9uIHBhdGggYW5kIGlkZW50aWZ5IGhvdyB0aGlzIHNwZWNpZmljIGRlY3J5cHRpb24gY2FsbCBpcyB0cmlnZ2VyZWQuIFRoYXQgc2hvdWxkIGhlbHAgbWUgdW5kZXJzdGFuZCB0aGUgY29udGV4dCBhbmQgdGhlIG92ZXJhbGwgZGF0YSBmbG93LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNjU1LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MTguMTk5MTM0MjJaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM4MjAyMTUyLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImxsc2VjX2RvX2RlY3J5cHRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwibmV0L21hYzgwMjE1NC9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jPTg0ND1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjg0NTpsbHNlY19kb19kZWNyeXB0X3VuYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTg0Ni1cXHRcXHRcXHRjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4tLVxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYz04NzE9c3RhdGljIGludFxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYzo4NzI6bGxzZWNfZG9fZGVjcnlwdF9hdXRoKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtODczLVxcdFxcdCAgICAgIGNvbnN0IHN0cnVjdCBpZWVlODAyMTU0X2hkciAqaGRyLFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jPTkxOD1zdGF0aWMgaW50XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjkxOTpsbHNlY19kb19kZWNyeXB0KHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYyxcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTIwLVxcdFxcdCBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4tLVxcbm5ldC9tYWM4MDIxNTQvbGxzZWMuYy05MzAtXFx0aWYgKGhkci1cXHUwMDNlc2VjLmxldmVsID09IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQylcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMxOlxcdFxcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X3VuYXV0aChza2IsIHNlYywgaGRyLCBrZXksIGRldl9hZGRyKTtcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtOTMyLVxcdGVsc2VcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM6OTMzOlxcdFxcdHJldHVybiBsbHNlY19kb19kZWNyeXB0X2F1dGgoc2tiLCBzZWMsIGhkciwga2V5LCBkZXZfYWRkcik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTkzNC19XFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmM9MTAwNT1pbnQgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHQoc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKVxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwNzAtXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjEwNzE6XFx0ZXJyID0gbGxzZWNfZG9fZGVjcnlwdChza2IsIHNlYywgXFx1MDAyNmhkciwga2V5LCBkZXZfYWRkcik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwNzItXFx0bGxzZWNfa2V5X3B1dChrZXkpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzoxOC4zMzczNDI4MzJaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzU5Mzk1MzczNiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBEZWNyeXB0aW9uIEZ1bmN0aW9uKipcblxuQWxyaWdodCwgc28gdGhlIGNhbGwgSSdtIGxvb2tpbmcgYXQgb3JpZ2luYXRlcyBmcm9tIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuIFJpZ2h0LiBUaGF0IG5hbWUgaW1tZWRpYXRlbHkgdGVsbHMgbWUgd2UncmUgZGVhbGluZyB3aXRoIGxvd2VyLWxheWVyIHNlY3VyaXR5IHdpdGhpbiB0aGUgODAyLjE1LjQgTUFDLiBJIG5lZWQgdG8gdGFrZSBhIGNsb3NlciBsb29rIGF0IGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAgbm93LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgcm9sZSBpbiB0aGUgc2VjdXJpdHkgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGhvdyBpdCBkZWNyeXB0cyBmcmFtZXMuIEknbSBnb2luZyB0byBsb29rIGZvciBkZXRhaWxzIG9uIGtleSBkZXJpdmF0aW9uLCBjaXBoZXIgaW1wbGVtZW50YXRpb24sIGhvdyBpdCBoYW5kbGVzIHRoZSBzZWN1cml0eSBoZWFkZXIsIGFuZCBhbnkgYXNzb2NpYXRlZCBpbnRlZ3JpdHkgY2hlY2tzLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IgYW5kIHZlcmlmeSB0aGF0IGl0IGFkaGVyZXMgdG8gdGhlIGFwcHJvcHJpYXRlIHN0YW5kYXJkcy4gTGV0J3Mgc2VlIHdoYXQgd2UndmUgZ290LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTk2LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6MzEuOTMxMzAwNTk4WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0NjUyMTcyMSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvbWFjODAyMTU0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJuZXQvbWFjODAyMTU0L2xsc2VjLmM9OTY4PWxsc2VjX3VwZGF0ZV9kZXZrZXlfaW5mbyhzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjX2RldmljZSAqZGV2LFxcbi0tXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jLTEwMDQtXFxubmV0L21hYzgwMjE1NC9sbHNlYy5jOjEwMDU6aW50IG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYilcXG5uZXQvbWFjODAyMTU0L2xsc2VjLmMtMTAwNi17XFxuLS1cXG5uZXQvbWFjODAyMTU0L2xsc2VjLmg9OTY9aW50IG1hYzgwMjE1NF9sbHNlY19lbmNyeXB0KHN0cnVjdCBtYWM4MDIxNTRfbGxzZWMgKnNlYywgc3RydWN0IHNrX2J1ZmYgKnNrYik7XFxubmV0L21hYzgwMjE1NC9sbHNlYy5oOjk3OmludCBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsIHN0cnVjdCBza19idWZmICpza2IpO1xcbm5ldC9tYWM4MDIxNTQvbGxzZWMuaC05OC1cXG4tLVxcbm5ldC9tYWM4MDIxNTQvcnguYz0xMzI9aWVlZTgwMjE1NF9zdWJpZl9mcmFtZShzdHJ1Y3QgaWVlZTgwMjE1NF9zdWJfaWZfZGF0YSAqc2RhdGEsXFxuLS1cXG5uZXQvbWFjODAyMTU0L3J4LmMtMjAwLVxcdCAqL1xcbm5ldC9tYWM4MDIxNTQvcnguYzoyMDE6XFx0cmMgPSBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdChcXHUwMDI2c2RhdGEtXFx1MDAzZXNlYywgc2tiKTtcXG5uZXQvbWFjODAyMTU0L3J4LmMtMjAyLVxcdGlmIChyYykge1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1NzozMi4wNzc4MjczMjlaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo5ODQ0NzA5NjM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhbiBJRUVFIDgwMi4xNS40IFJlY2VpdmUgUGF0aCBCdWcgRml4KipcblxuT2theSwgc28gSSBzZWUgdGhpcyBwYXRjaCB0YXJnZXRzIGBpZWVlODAyMTU0X3N1YmlmX2ZyYW1lYCBpbiBgbmV0L21hYzgwMjE1NC9yeC5jYC4gVGhhdCBtZWFucyB3ZSdyZSBkZWFsaW5nIHdpdGggdGhlIHJlY2VpdmUgcGF0aCBmb3IgSUVFRSA4MDIuMTUuNCBmcmFtZXMg4oCTIHNwZWNpZmljYWxseSwgdGhlIG9uZSB0aGF0IGhhbmRsZXMgaW5jb21pbmcgcGFja2V0cy4gVGhpcyBsb29rcyBsaWtlIGEgZnVuY3Rpb25hbCBidWcgZml4IHJlbGF0ZWQgdG8gbGluay1sYXllciBzZWN1cml0eSwgc3BlY2lmaWNhbGx5IHdoZW4gYSBwYWNrZXQgY29tZXMgaW4gd2l0aCBhdXRoZW50aWNhdGlvbiBlbmFibGVkLiBUaGF0J3MgaW1tZWRpYXRlbHkgaW50ZXJlc3Rpbmcg4oCTIGRlZmluaXRlbHkgd29ydGggYSBkZWVwZXIgbG9vayBhbmQgZnV6emluZy4gSSBjYW4gYWxyZWFkeSBzZWUgYSBwb3RlbnRpYWwgZm9yIHNlY3VyaXR5IGltcGxpY2F0aW9ucyBoZXJlLlxuXG5Ob3csIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXQgcGxheS4gU2luY2UgdGhpcyBpbnZvbHZlcyBsaW5rLWxheWVyIHNlY3VyaXR5LCBJJ2xsIHN0YXJ0IGJ5IGNoZWNraW5nIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLiBUaGVuLCBJJ2xsIG5lZWQgdG8gY29uZmlybSBidWlsZC10aW1lIGRlcGVuZGVuY2llcywgc28gSSBzaG91bGQgdGFrZSBhIHBlZWsgYXQgYG5ldC9tYWM4MDIxNTQvTWFrZWZpbGVgIHRvIHNlZSBob3cgZXZlcnl0aGluZyBpcyB0aWVkIHRvZ2V0aGVyIGFuZCBmaW5kIGFueSByZWxldmFudCBjb25maWcgZmxhZ3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyOTIsIk91dHB1dFRva2VucyI6MzgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6NDEuOTIyNTM5MDg0WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjcwOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcIm5ldC9tYWM4MDIxNTQvTWFrZWZpbGVcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRvYmotJChDT05GSUdfTUFDODAyMTU0KVxcdCs9IG1hYzgwMjE1NC5vXFxuICAgMzpcXHRtYWM4MDIxNTQtb2Jqc1xcdFxcdDo9IG1haW4ubyByeC5vIHR4Lm8gbWFjX2NtZC5vIG1pYi5vIFxcXFxcXG4gICA0OlxcdFxcdFxcdFxcdCAgIGlmYWNlLm8gbGxzZWMubyB1dGlsLm8gY2ZnLm8gc2Nhbi5vIHRyYWNlLm9cXG4gICA1OlxcdFxcbiAgIDY6XFx0Q0ZMQUdTX3RyYWNlLm8gOj0gLUkkKHNyYylcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTc6NDEuOTIyNjExODg0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjIzNjExNDAzOTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkV4YW1pbmluZyB0aGUgODAyLjE1LjQgQ29uZmlndXJhdGlvbioqXG5cbk9rYXksIHNvIHRoZSBiYXNlIGNvbmZpZ3VyYXRpb24gaGVyZSBpcyBgQ09ORklHX01BQzgwMjE1NGAuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzIHRvIHNlZSBpZiB0aGVyZSBhcmUgYW55IHJlbGF0ZWQgb3IgbW9yZSBzcGVjaWZpYyBjb25maWd1cmF0aW9ucyBmbG9hdGluZyBhcm91bmQuIEknbSBlc3BlY2lhbGx5IGN1cmlvdXMgYWJvdXQgTExTRUMsIGdpdmVuIGl0cyBpbXBvcnRhbmNlIGluIHNlY3VyZSA4MDIuMTUuNCBkZXBsb3ltZW50cy4gSXMgdGhlcmUgc29tZXRoaW5nIGxpa2UgYENPTkZJR19NQUM4MDIxNTRfTExTRUNgPyBOb3BlLCBub3QgZGlyZWN0bHkuIFRoYXQncyBmaW5lLCBpdCBjb3VsZCBiZSBjb25kaXRpb25hbGx5IGNvbXBpbGVkIHVuZGVyIHRoZSBtYWluIGNvbmZpZy4gV2FpdCwgbGV0IG1lIGp1c3QgZG91YmxlIGNoZWNrIHRoZSByZWxldmFudCBLY29uZmlnIGZpbGVzIGluIHRoZSBzb3VyY2UgdHJlZS4gTGV0IG1lIGNoZWNrIGBuZXQvbWFjODAyMTU0L0tjb25maWdgIGFuZCBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGF0IG1vZHVsZS4gSnVzdCB3YW50IHRvIG1ha2UgYWJzb2x1dGVseSBzdXJlIEknbSBub3QgbWlzc2luZyBhIG1vcmUgc3BlY2lmaWMgZmxhZyBvciBpbmFkdmVydGVudGx5IGVuYWJsaW5nIExMU0VDIHdoZW4gaXQncyBub3QgZGVzaXJlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDg1NiwiT3V0cHV0VG9rZW5zIjozMCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjk1LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTg6MDUuNTM0MDE3ODY0WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NDYyNTIxMTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIE1BQzgwMjE1NFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9tYWM4MDIxNTQvS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9tYWM4MDIxNTQvS2NvbmZpZzoyOmNvbmZpZyBNQUM4MDIxNTRcXG5uZXQvbWFjODAyMTU0L0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xNS40IFNvZnQgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTU0KVxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTg6MDYuMDgwMzM4MzMyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI1MjY0OTY0Mzg0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgaW50ZXJwcmV0YXRpb24gb2YgdGhhdCB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UsIGFuZCBwcmVzZW50ZWQgYXMgaWYgaXQgd2VyZSBteSBvd24gaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkRpdmluZyBpbnRvIHRoZSA4MDIuMTUuNCBDb25maWd1cmF0aW9uKipcblxuQWxyaWdodCwgdGltZSB0byBnZXQgdG8gdGhlIGNvcmUgb2YgdGhpcy4gVGhlIGZpcnN0IHRoaW5nIEknbSBnb2luZyB0byBkbyBpcyBkaWcgaW50byB0aGUgYG5ldC9tYWM4MDIxNTQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHRoZSBsb2dpY2FsIHN0YXJ0aW5nIHBvaW50IGZvciB1bmRlcnN0YW5kaW5nIGhvdyB0aGlzIHBhcnRpY3VsYXIgODAyLjE1LjQgaW1wbGVtZW50YXRpb24gaXMgY29uZmlndXJlZCBhbmQgY3VzdG9taXplZCB3aXRoaW4gdGhlIHdpZGVyIHN5c3RlbS4gVGhlIEtjb25maWcgc3lzdGVtIGlzIHRoZSBiYWNrYm9uZSBvZiB0aGUga2VybmVsJ3MgYnVpbGQgY29uZmlndXJhdGlvbiwgc28gdGhpcyBmaWxlIGlzIGNyaXRpY2FsIGZvciBmaWd1cmluZyBvdXQgYWxsIHRoZSBhdmFpbGFibGUgb3B0aW9ucywgZGVwZW5kZW5jaWVzLCBhbmQgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhpcyBNQUMgbGF5ZXIuIEknbSBleHBlY3RpbmcgdG8gc2VlIHRoaW5ncyBsaWtlIHN1cHBvcnRlZCBQSFlzLCBzZWN1cml0eSBmZWF0dXJlcywgYWRkcmVzc2luZyBtb2RlcywgYW5kIHBlcmhhcHMgZXZlbiBzb21lIHNwZWNpZmljIGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zIGZvciBkaWZmZXJlbnQgcmFkaW8gY2hpcHMuIEhvcGVmdWxseSwgSSdsbCBmaW5kIGhpbnRzIHRoZXJlIHRoYXQgd2lsbCBoZWxwIG1lIHdpdGggbXkgZGVidWdnaW5nL2RldmVsb3BtZW50IHRhc2tzLiBUaGlzIHNob3VsZCBwcm92aWRlIHRoZSBoaWdoLWxldmVsIHZpZXcgSSBuZWVkIHRvIHVuZGVyc3RhbmQgd2hhdCdzIGluIHBsYXkgYmVmb3JlIGxvb2tpbmcgYXQgdGhlIHNwZWNpZmljIGltcGxlbWVudGF0aW9ucy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTI5MywiT3V0cHV0VG9rZW5zIjozOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU4OjMxLjM0NTMwNTUyNloiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo4NDIyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJuZXQvbWFjODAyMTU0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMSxcbiAgXCJMaW5lQ291bnRcIjogMTAwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiAgIDE6XFx0IyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vbmx5XFxuICAgMjpcXHRjb25maWcgTUFDODAyMTU0XFxuICAgMzpcXHRcXHR0cmlzdGF0ZSBcXFwiR2VuZXJpYyBJRUVFIDgwMi4xNS40IFNvZnQgTmV0d29ya2luZyBTdGFjayAobWFjODAyMTU0KVxcXCJcXG4gICA0OlxcdFxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NFxcbiAgIDU6XFx0XFx0c2VsZWN0IENSQ19DQ0lUVFxcbiAgIDY6XFx0XFx0c2VsZWN0IENSWVBUT1xcbiAgIDc6XFx0XFx0c2VsZWN0IENSWVBUT19BVVRIRU5DXFxuICAgODpcXHRcXHRzZWxlY3QgQ1JZUFRPX0NDTVxcbiAgIDk6XFx0XFx0c2VsZWN0IENSWVBUT19DVFJcXG4gIDEwOlxcdFxcdHNlbGVjdCBDUllQVE9fQUVTXFxuICAxMTpcXHRcXHRoZWxwXFxuICAxMjpcXHRcXHQgIFRoaXMgb3B0aW9uIGVuYWJsZXMgdGhlIGhhcmR3YXJlIGluZGVwZW5kZW50IElFRUUgODAyLjE1LjRcXG4gIDEzOlxcdFxcdCAgbmV0d29ya2luZyBzdGFjayBmb3IgU29mdE1BQyBkZXZpY2VzICh0aGUgb25lcyBpbXBsZW1lbnRpbmdcXG4gIDE0OlxcdFxcdCAgb25seSBQSFkgbGV2ZWwgb2YgSUVFRSA4MDIuMTUuNCBzdGFuZGFyZCkuXFxuICAxNTpcXHRcXG4gIDE2OlxcdFxcdCAgTm90ZTogdGhpcyBpbXBsZW1lbnRhdGlvbiBpcyBuZWl0aGVyIGNlcnRpZmllZCwgbm9yIGZlYXR1cmVcXG4gIDE3OlxcdFxcdCAgY29tcGxldGUhIENvbXBhdGliaWxpdHkgd2l0aCBvdGhlciBpbXBsZW1lbnRhdGlvbnMgaGFzbid0XFxuICAxODpcXHRcXHQgIGJlZW4gdGVzdGVkIHlldCFcXG4gIDE5OlxcdFxcbiAgMjA6XFx0XFx0ICBJZiB5b3UgcGxhbiB0byB1c2UgSGFyZE1BQyBJRUVFIDgwMi4xNS40IGRldmljZXMsIHlvdSBjYW5cXG4gIDIxOlxcdFxcdCAgc2F5IE4gaGVyZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIHNheSBNIHRvIGNvbXBpbGUgaXQgYXNcXG4gIDIyOlxcdFxcdCAgbW9kdWxlLlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1ODozMS4zNDUzOTIxMDZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDA5NzA5ODA3MDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIHRoZSBJRUVFIDgwMi4xNS40IENvbmZpZ3VyYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gZGl2aW5nIGludG8gdGhpcyBJRUVFIDgwMi4xNS40IGNvbmZpZ3VyYXRpb24uIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB0aGUgYE1BQzgwMjE1NGAgaXMgdGhlIHByaW1hcnkgY29uZmlndXJhdGlvbiBvcHRpb24gaGVyZSwgYW5kLCBvZiBjb3Vyc2UsIGl0J3MgZGVwZW5kZW50IG9uIGBJRUVFODAyMTU0YCBpdHNlbGYuIFRvIGJlIGFic29sdXRlbHkgY2VydGFpbiB0aGF0IHRoaW5ncyBhcmUgc2V0IHVwIGNvcnJlY3RseSwgSSBzaG91bGQgZW5hYmxlIGJvdGggYE1BQzgwMjE1NGAgYW5kIGBJRUVFODAyMTU0YCBkdXJpbmcgdGVzdGluZy4gSXQncyB0aGUgbG9naWNhbCBzdGFydGluZyBwb2ludC5cblxuTm93LCBpZiBJJ20gZ29pbmcgdG8gYmUgaW5qZWN0aW5nIHBhY2tldHMsIHdoaWNoIEkgc3VzcGVjdCB3aWxsIGJlIG5lY2Vzc2FyeSBmb3IgYSB0aG9yb3VnaCBldmFsdWF0aW9uLCBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0IHZpcnR1YWwgZHJpdmVyIGlzIGFwcHJvcHJpYXRlLiBgSUVFRTgwMjE1NF9GQUtFTEJgIG9yIHBlcmhhcHMgYE1BQzgwMjE1NF9IV1NJTWAgc2VlbSBsaWtlIHRoZSBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgdGhlIGtpbmQgb2Ygc2ltdWxhdGlvbiBvciBwYWNrZXQgbWFuaXB1bGF0aW9uIEknbSBhaW1pbmcgZm9yLiBJJ2xsIG5lZWQgdG8gY2hlY2sgdGhlIEtjb25maWcgZmlsZSBmb3IgdGhlIGRyaXZlcnMsIHByb2JhYmx5IGluIGBkcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWdgIG9yIHNvbWV0aGluZyBzaW1pbGFyLCB0byBzZWUgdGhlIGV4YWN0IGRldGFpbHMgYW5kIGRlcGVuZGVuY2llcy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTkxNSwiT3V0cHV0VG9rZW5zIjozMiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEyMSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU5OjEyLjMxNjM3NTIyMVoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6OTI0ODQ1NTg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZy4qODAyMTU0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MjptZW51Y29uZmlnIElFRUU4MDIxNTRfRFJJVkVSU1xcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJJRUVFIDgwMi4xNS40IGRyaXZlcnNcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTMtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjE0OmNvbmZpZyBJRUVFODAyMTU0X0ZBS0VMQlxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNS1cXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxNTRcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMy1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MjQ6Y29uZmlnIElFRUU4MDIxNTRfQVQ4NlJGMjMwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTI1LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTM1LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzozNjpjb25maWcgSUVFRTgwMjE1NF9NUkYyNEo0MFxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zNy1cXHR0cmlzdGF0ZSBcXFwiTWljcm9jaGlwIE1SRjI0SjQwIHRyYW5zY2VpdmVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy00Ny1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6NDg6Y29uZmlnIElFRUU4MDIxNTRfQ0MyNTIwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTQ5LVxcdGRlcGVuZHMgb24gSUVFRTgwMjE1NF9EUklWRVJTIFxcdTAwMjZcXHUwMDI2IE1BQzgwMjE1NFxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTU4LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzo1OTpjb25maWcgSUVFRTgwMjE1NF9BVFVTQlxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy02MC1cXHR0cmlzdGF0ZSBcXFwiQVRVU0IgdHJhbnNjZWl2ZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTY4LVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZzo2OTpjb25maWcgSUVFRTgwMjE1NF9BREY3MjQyXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTcwLVxcdHRyaXN0YXRlIFxcXCJBREY3MjQyIHRyYW5zY2VpdmVyIGRyaXZlclxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy03OS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6ODA6Y29uZmlnIElFRUU4MDIxNTRfQ0E4MjEwXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTgxLVxcdHRyaXN0YXRlIFxcXCJDYXNjb2RhIENBODIxMCB0cmFuc2NlaXZlciBkcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctOTEtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjkyOmNvbmZpZyBJRUVFODAyMTU0X0NBODIxMF9ERUJVR0ZTXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTkzLVxcdGJvb2wgXFxcIkNBODIxMCBkZWJ1Z2ZzIGludGVyZmFjZVxcXCJcXG4tLVxcbmRyaXZlcnMvbmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xMDEtXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjEwMjpjb25maWcgSUVFRTgwMjE1NF9NQ1IyMEFcXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWctMTAzLVxcdHRyaXN0YXRlIFxcXCJNQ1IyMEEgdHJhbnNjZWl2ZXIgZHJpdmVyXFxcIlxcbi0tXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExMy1cXG5kcml2ZXJzL25ldC9pZWVlODAyMTU0L0tjb25maWc6MTE0OmNvbmZpZyBJRUVFODAyMTU0X0hXU0lNXFxuZHJpdmVycy9uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTExNS1cXHRkZXBlbmRzIG9uIElFRUU4MDIxNTRfRFJJVkVSUyBcXHUwMDI2XFx1MDAyNiBNQUM4MDIxNTRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTZUMjM6NTk6MTMuMjQxMjI2MTM4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjE4NDQ3NDQzOTcxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IFJlZmluZW1lbnQqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgZnV6emluZyB0aGlzIDgwMi4xNS40IGNvZGUsIGFuZCBgSUVFRTgwMjE1NF9IV1NJTWAgYW5kIGBJRUVFODAyMTU0X0ZBS0VMQmAgYXJlIGRlZmluaXRlbHkgc3Ryb25nIGNvbnRlbmRlcnMgZm9yIGluaXRpYWwgdGFyZ2V0cy4gSSdtIGdvaW5nIHRvIGluY2x1ZGUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYCB0byBlbnN1cmUgYSBicm9hZCBzY29wZSBmb3IgY292ZXJhZ2UgaW5pdGlhbGx5LlxuXG5IYW5nIG9uIGEgc2Vjb25kLi4uIHRoZSBwYXRjaCBJJ20gaW50ZXJlc3RlZCBpbiBpcyBpbiBgbmV0L21hYzgwMjE1NC9sbHNlYy5jYC4gUmlnaHQsIGFuZCB0aGUga2V5IGZ1bmN0aW9uIHRoZXJlIGlzIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBMZXQncyBqdXN0IGRvdWJsZSBjaGVjayAtIGlzIHRoZXJlICphbnl0aGluZyogZWxzZSByZWxldmFudCBpbiB0aGF0IGZpbGU/IE5vcGUsIGp1c3QgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAuXG5cbkFscmlnaHQsIGxldCdzIHJlZm9jdXMuIEJleW9uZCB0aGF0IG9uZSBmdW5jdGlvbiwgY2FuIEkgaWRlbnRpZnkgYW55IG90aGVyIHN5bWJvbHMgdGhhdCBtaWdodCBiZSB3b3J0aCBwYXlpbmcgY2xvc2UgYXR0ZW50aW9uIHRvPyBZZXMsIEknbSBnb2luZyB0byBhZGQgYG1hYzgwMjE1NF9sbHNlY19kZWNyeXB0YCB0byBteSBsaXN0LiBJJ2xsIG5lZWQgdG8gZG91YmxlLWNoZWNrIHRoaXMgYXMgd2VsbC4gQWxzbywgdGhlIHByaW1hcnkgZnVuY3Rpb24gb2YgaW50ZXJlc3QgaXMgc3RpbGwgYGxsc2VjX2RvX2RlY3J5cHRfYXV0aGAgc28gdGhhdCBnb2VzIG9uIHRoZSBsaXN0IGFzIHdlbGwuXG5cbkknbSBub3cgZ29pbmcgdG8gZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgIGluIGBuZXQvbWFjODAyMTU0L2xsc2VjLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3MzY1LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE2VDIzOjU5OjMxLjY4ODY3MjM3OVoiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzk0NDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwibmV0L21hYzgwMjE1NC9sbHNlYy5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDg3MCxcbiAgXCJMaW5lQ291bnRcIjogNTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDg3MDpcXHRcXG4gODcxOlxcdHN0YXRpYyBpbnRcXG4gODcyOlxcdGxsc2VjX2RvX2RlY3J5cHRfYXV0aChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBjb25zdCBzdHJ1Y3QgbWFjODAyMTU0X2xsc2VjICpzZWMsXFxuIDg3MzpcXHRcXHRcXHQgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjE1NF9oZHIgKmhkcixcXG4gODc0OlxcdFxcdFxcdCAgICAgIHN0cnVjdCBtYWM4MDIxNTRfbGxzZWNfa2V5ICprZXksIF9fbGU2NCBkZXZfYWRkcilcXG4gODc1OlxcdHtcXG4gODc2OlxcdFxcdHU4IGl2WzE2XTtcXG4gODc3OlxcdFxcdHVuc2lnbmVkIGNoYXIgKmRhdGE7XFxuIDg3ODpcXHRcXHRpbnQgYXV0aGxlbiwgZGF0YWxlbiwgYXNzb2NsZW4sIHJjO1xcbiA4Nzk6XFx0XFx0c3RydWN0IHNjYXR0ZXJsaXN0IHNnO1xcbiA4ODA6XFx0XFx0c3RydWN0IGFlYWRfcmVxdWVzdCAqcmVxO1xcbiA4ODE6XFx0XFxuIDg4MjpcXHRcXHRhdXRobGVuID0gaWVlZTgwMjE1NF9zZWNoZHJfYXV0aHRhZ19sZW4oXFx1MDAyNmhkci1cXHUwMDNlc2VjKTtcXG4gODgzOlxcdFxcdGxsc2VjX2dlbml2KGl2LCBkZXZfYWRkciwgXFx1MDAyNmhkci1cXHUwMDNlc2VjKTtcXG4gODg0OlxcdFxcbiA4ODU6XFx0XFx0cmVxID0gYWVhZF9yZXF1ZXN0X2FsbG9jKGxsc2VjX3RmbV9ieV9sZW4oa2V5LCBhdXRobGVuKSwgR0ZQX0FUT01JQyk7XFxuIDg4NjpcXHRcXHRpZiAoIXJlcSlcXG4gODg3OlxcdFxcdFxcdHJldHVybiAtRU5PTUVNO1xcbiA4ODg6XFx0XFxuIDg4OTpcXHRcXHRhc3NvY2xlbiA9IHNrYi1cXHUwMDNlbWFjX2xlbjtcXG4gODkwOlxcdFxcbiA4OTE6XFx0XFx0ZGF0YSA9IHNrYl9tYWNfaGVhZGVyKHNrYikgKyBza2ItXFx1MDAzZW1hY19sZW47XFxuIDg5MjpcXHRcXHRkYXRhbGVuID0gc2tiX3RhaWxfcG9pbnRlcihza2IpIC0gZGF0YTtcXG4gODkzOlxcdFxcbiA4OTQ6XFx0XFx0aWYgKGRhdGFsZW4gXFx1MDAzYyBhdXRobGVuKSB7XFxuIDg5NTpcXHRcXHRcXHRrZnJlZV9zZW5zaXRpdmUocmVxKTtcXG4gODk2OlxcdFxcdFxcdHJldHVybiAtRUJBRE1TRztcXG4gODk3OlxcdFxcdH1cXG4gODk4OlxcdFxcbiA4OTk6XFx0XFx0c2dfaW5pdF9vbmUoXFx1MDAyNnNnLCBza2JfbWFjX2hlYWRlcihza2IpLCBhc3NvY2xlbiArIGRhdGFsZW4pO1xcbiA5MDA6XFx0XFxuIDkwMTpcXHRcXHRpZiAoIShoZHItXFx1MDAzZXNlYy5sZXZlbCBcXHUwMDI2IElFRUU4MDIxNTRfU0NGX1NFQ0xFVkVMX0VOQykpIHtcXG4gOTAyOlxcdFxcdFxcdGFzc29jbGVuICs9IGRhdGFsZW4gLSBhdXRobGVuO1xcbiA5MDM6XFx0XFx0XFx0ZGF0YWxlbiA9IGF1dGhsZW47XFxuIDkwNDpcXHRcXHR9XFxuIDkwNTpcXHRcXG4gOTA2OlxcdFxcdGFlYWRfcmVxdWVzdF9zZXRfY2FsbGJhY2socmVxLCAwLCBOVUxMLCBOVUxMKTtcXG4gOTA3OlxcdFxcdGFlYWRfcmVxdWVzdF9zZXRfY3J5cHQocmVxLCBcXHUwMDI2c2csIFxcdTAwMjZzZywgZGF0YWxlbiwgaXYpO1xcbiA5MDg6XFx0XFx0YWVhZF9yZXF1ZXN0X3NldF9hZChyZXEsIGFzc29jbGVuKTtcXG4gOTA5OlxcdFxcbiA5MTA6XFx0XFx0cmMgPSBjcnlwdG9fYWVhZF9kZWNyeXB0KHJlcSk7XFxuIDkxMTpcXHRcXG4gOTEyOlxcdFxcdGtmcmVlX3NlbnNpdGl2ZShyZXEpO1xcbiA5MTM6XFx0XFx0c2tiX3RyaW0oc2tiLCBza2ItXFx1MDAzZWxlbiAtIGF1dGhsZW4pO1xcbiA5MTQ6XFx0XFxuIDkxNTpcXHRcXHRyZXR1cm4gcmM7XFxuIDkxNjpcXHR9XFxuIDkxNzpcXHRcXG4gOTE4OlxcdHN0YXRpYyBpbnRcXG4gOTE5OlxcdGxsc2VjX2RvX2RlY3J5cHQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG1hYzgwMjE1NF9sbHNlYyAqc2VjLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTozMS42ODg4MTQ1ODlaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTE3NDk0MDgyMzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgU2VjdXJpdHkgUGF0Y2gqKlxuXG5Pa2F5LCBzbyB0aGlzIHBhdGNoIGludHJvZHVjZXMgYSBjcnVjaWFsIGNoZWNrOiBgaWYgKGRhdGFsZW4gXHUwMDNjIGF1dGhsZW4pIHsgLi4uIH1gLiBNeSBpbml0aWFsIGFzc2Vzc21lbnQgaXMgdGhhdCB0aGlzIGlzIGEgKnZlcnkqIGdvb2QgdGhpbmcuIEl0J3MgZGVzaWduZWQgdG8gcHJldmVudCBhIHBvdGVudGlhbCBvdXQtb2YtYm91bmRzIHJlYWQgb3IgdW5kZXJmbG93IGlzc3VlLCBzcGVjaWZpY2FsbHkgd2hlbiBjYWxjdWxhdGluZyBgZGF0YWxlbiAtIGF1dGhsZW5gLiBUaGlzIGtpbmQgb2YgY2hlY2sgaXMgYWx3YXlzIHdlbGNvbWVkLiBJdCBsb29rcyBsaWtlIGl0IGlzIHJlYWNoYWJsZSB0aHJvdWdoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAuXG5cbk15IGluc3RpbmN0IHRlbGxzIG1lIHRoYXQgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gZnV6eiBib3RoIGBtYWM4MDIxNTRfbGxzZWNfZGVjcnlwdGAgYW5kLCBmb3IgY29tcGxldGVuZXNzLCBhbHNvIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLiBUaGF0IHNob3VsZCBiZSB0aGUgZmlyc3QgYWN0aW9uIGFmdGVyIHJldmlld2luZyB0aGUgY29kZS5cblxuTm93LCBsZXQncyBzZWUgd2hhdCBvdGhlciBjb25maWd1cmF0aW9ucyBtaWdodCBiZSByZWxldmFudCBoZXJlLiBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIHBvc3NpYmlsaXRpZXMsIHBhcnRpY3VsYXJseSBzaW5jZSB3ZSBoYXZlIGBNQUM4MDIxNTRgLCBgSUVFRTgwMjE1NGAsIGBJRUVFODAyMTU0X0hXU0lNYCwgYW5kIGBJRUVFODAyMTU0X0ZBS0VMQmAuXG5cbkknbGwgcXVpY2tseSBjaGVjayBgbmV0L2llZWU4MDIxNTQvS2NvbmZpZ2AgdG8gY29uZmlybSBpZiBgSUVFRTgwMjE1NGAgaXMgdGhlIGNvcnJlY3QsIHRvcC1sZXZlbCBjb25maWd1cmF0aW9uIHN5bWJvbC4gVGhpcyB3aWxsIGhlbHAgd2l0aCBwcm9wZXJseSB0YXJnZXRpbmcgdGhlIHJlbGV2YW50IGJ1aWxkIHRhcmdldHMgYW5kIGZ1enppbmcgY29uZmlndXJhdGlvbnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjg3ODQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTo0My40MzgyMjUyN1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTUzNTAzNjM1MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgSUVFRTgwMjE1NFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJuZXQvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZy0xLSMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seVxcbm5ldC9pZWVlODAyMTU0LzZsb3dwYW4vS2NvbmZpZzoyOmNvbmZpZyBJRUVFODAyMTU0XzZMT1dQQU5cXG5uZXQvaWVlZTgwMjE1NC82bG93cGFuL0tjb25maWctMy1cXHR0cmlzdGF0ZSBcXFwiNmxvd3BhbiBzdXBwb3J0IG92ZXIgSUVFRSA4MDIuMTUuNFxcXCJcXG4tLVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWctMS0jIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wLW9ubHlcXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnOjI6bWVudWNvbmZpZyBJRUVFODAyMTU0XFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0zLVxcdHRyaXN0YXRlIFxcXCJJRUVFIFN0ZCA4MDIuMTUuNCBMb3ctUmF0ZSBXaXJlbGVzcyBQZXJzb25hbCBBcmVhIE5ldHdvcmtzIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnPTE0PWlmIElFRUU4MDIxNTRcXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTE1LVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MTY6Y29uZmlnIElFRUU4MDIxNTRfTkw4MDIxNTRfRVhQRVJJTUVOVEFMXFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0xNy1cXHRib29sIFxcXCJJRUVFIDgwMi4xNS40IGV4cGVyaW1lbnRhbCBuZXRsaW5rIHN1cHBvcnRcXFwiXFxuLS1cXG5uZXQvaWVlZTgwMjE1NC9LY29uZmlnLTIwLVxcbm5ldC9pZWVlODAyMTU0L0tjb25maWc6MjE6Y29uZmlnIElFRUU4MDIxNTRfU09DS0VUXFxubmV0L2llZWU4MDIxNTQvS2NvbmZpZy0yMi1cXHR0cmlzdGF0ZSBcXFwiSUVFRSA4MDIuMTUuNCBzb2NrZXQgaW50ZXJmYWNlXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xNlQyMzo1OTo0NC45NzMzMjE5NDlaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTc3Mjk2NDQ2MjMsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQW5hbHlzaXMgb2YgdGhlIDgwMi4xNS40IFNlY3VyaXR5IFBhdGNoKipcblxuT2theSwgc28gdGhlIGNvcmUgY29uZmlndXJhdGlvbiBoZXJlIHJldm9sdmVzIGFyb3VuZCBgSUVFRTgwMjE1NGAsIHRoYXQncyB0aGUgbWFpbiBzdGFuZGFyZC4gV2UncmUgYWxzbyBkZWFsaW5nIHdpdGggYE1BQzgwMjE1NGAsIHdoaWNoIGlzIHNwZWNpZmljYWxseSB0aGUgc29mdG1hYyBpbXBsZW1lbnRhdGlvbi4gVGhlbiwgd2UgaGF2ZSB0aGUgaGFyZHdhcmUgc2ltdWxhdGlvbiBkcml2ZXIgYElFRUU4MDIxNTRfSFdTSU1gIGFuZCB0aGUgZmFrZSBsb3dlci1ib3VuZCBkcml2ZXIgYElFRUU4MDIxNTRfRkFLRUxCYC5cblxuTm93LCB0aGUgcGF0Y2gncyBsb2dpYyBmbG93IHN0YXJ0cyB3aXRoIHRoZXNlIGNvbmZpZ3VyYXRpb25zLiBJIG5lZWQgdG8gbWFrZSBzdXJlIGBDUllQVE9fQ0NNYCBhbmQgYENSWVBUT19BRVNgIGFyZSBlbmFibGVkLiBHb29kLCBgTUFDODAyMTU0YCBzZWxlY3RzIHRob3NlLCBzbyB3ZSdyZSBnb29kIHRoZXJlLiBUaGVyZWZvcmUsIHRoZSBtaW5pbWFsIGNvbmZpZ3VyYXRpb24gaXMgZ29pbmcgdG8gYmUgYE1BQzgwMjE1NGAsIGBJRUVFODAyMTU0YCwgYElFRUU4MDIxNTRfSFdTSU1gLCBhbmQgYElFRUU4MDIxNTRfRkFLRUxCYC5cblxuVGhlIGltcG9ydGFudCBzeW1ib2xzIGhlcmUsIHRoZSBvbmVzIHRoYXQgYXJlIGxpa2VseSBhZmZlY3RlZCBieSB0aGlzIGNoYW5nZSwgYXJlIGBsbHNlY19kb19kZWNyeXB0X2F1dGhgLCBgbWFjODAyMTU0X2xsc2VjX2RlY3J5cHRgLCBhbmQgYGxsc2VjX2RvX2RlY3J5cHRgLlxuXG5UaGlzIHBhdGNoIGlzIGFkZGluZyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYC4gSXQncyBhIGZ1bmN0aW9uYWwgY2hhbmdlIHJlbGF0ZWQgdG8gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5LiBUaGUgbWFpbiBpbXBhY3Qgb2YgdGhpcyBjaGFuZ2UgaXMgdG8gcHJldmVudCB0aGUgZGVjcnlwdGlvbiBvZiBwYWNrZXRzIHdoZXJlIHRoZSBkYXRhIGxlbmd0aCBpcyBzaG9ydGVyIHRoYW4gdGhlIGF1dGhlbnRpY2F0aW9uIHRhZy4gSXQncyBhIHNlY3VyaXR5IGltcHJvdmVtZW50IHRvIGVuc3VyZSB0aGF0IHRoZSBwYWNrZXQgaXNuJ3QgcHJvY2Vzc2VkIGlmIHRoZSBkYXRhIGlzIGludmFsaWQuIFRoaXMgYWZmZWN0cyBlbmNyeXB0ZWQvYXV0aGVudGljYXRlZCBwYWNrZXRzIGFuZCBpcyByZWFjaGFibGUgdmlhIHZpcnR1YWwgZHJpdmVycyBsaWtlIGBod3NpbWAgb3IgYGZha2VsYmAsIHdoaWNoIGFyZSBmcmVxdWVudGx5IHVzZWQgaW4gb3VyIHRlc3QgZW52aXJvbm1lbnRzLlxuXG5TbywgSSdtIGNvbmZpZGVudCB3ZSBoYXZlIGEgY29ycmVjdCBzZXQgb2YgY29uZmlndXJhdGlvbnMgbm93LiBMZXQncyBjYWxsIHNldC1yZXN1bHRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo5NzQwLCJPdXRwdXRUb2tlbnMiOjE5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI4MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0xN1QwMDowMDowMi43MDI5Njg5MDNaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMzU3NzkyNDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIk1BQzgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NFwiLFxuICAgIFwiSUVFRTgwMjE1NF9IV1NJTVwiLFxuICAgIFwiSUVFRTgwMjE1NF9GQUtFTEJcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJsbHNlY19kb19kZWNyeXB0X2F1dGhcIixcbiAgICBcIm1hYzgwMjE1NF9sbHNlY19kZWNyeXB0XCIsXG4gICAgXCJsbHNlY19kb19kZWNyeXB0XCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggYWRkcyBhIGJvdW5kcyBjaGVjayB0byBgbGxzZWNfZG9fZGVjcnlwdF9hdXRoYCB0byBwcmV2ZW50IHByb2Nlc3NpbmcgcGFja2V0cyB3aGVyZSB0aGUgZGF0YSBsZW5ndGggaXMgbGVzcyB0aGFuIHRoZSBhdXRoZW50aWNhdGlvbiB0YWcgbGVuZ3RoLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIElFRUUgODAyLjE1LjQgTUFDIGxheWVyIHNlY3VyaXR5IChsbHNlYykgcmVjZWl2ZSBwYXRoLiBJdCBpcyByZWFjaGFibGUgd2hlbiByZWNlaXZpbmcgZW5jcnlwdGVkL2F1dGhlbnRpY2F0ZWQgcGFja2V0cyB2aWEgdmlydHVhbCBkcml2ZXJzIGxpa2UgaHdzaW0gb3IgZmFrZWxiLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[1] Phase: Succeeded StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 00:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 00:00:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2] Phase: Succeeded StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 00:00:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-17 00:00:14 +0000 UTC FinishedAt: 2026-07-17 00:00:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowzzj8j/series-workflowzzj8j-convert-artifact-1609050118/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-17 00:00:24 +0000 UTC FinishedAt: 2026-07-17 00:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-17 00:00:24 +0000 UTC FinishedAt: 2026-07-17 00:43:32 +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:*8e21dcc1-3baf-4a46-aca8-e614fa7ea978,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-workflowzzj8j/series-workflowzzj8j-convert-artifact-1609050118/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": "34de8921-f3c1-4166-8911-a92b8537e27d", "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-workflowzzj8j/series-workflowzzj8j-build-action-2082927705/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Failed StartedAt: 2026-07-17 00:00:24 +0000 UTC FinishedAt: 2026-07-17 00:03:30 +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:*8e21dcc1-3baf-4a46-aca8-e614fa7ea978,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-workflowzzj8j/series-workflowzzj8j-convert-artifact-1609050118/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[1].base-build(1) Phase: Succeeded StartedAt: 2026-07-17 00:08:36 +0000 UTC FinishedAt: 2026-07-17 00:43:22 +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:*8e21dcc1-3baf-4a46-aca8-e614fa7ea978,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-workflowzzj8j/series-workflowzzj8j-convert-artifact-1609050118/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": "34de8921-f3c1-4166-8911-a92b8537e27d", "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-workflowzzj8j/series-workflowzzj8j-build-action-2082927705/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-17 00:43:32 +0000 UTC FinishedAt: 2026-07-17 00:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-17 00:43:32 +0000 UTC FinishedAt: 2026-07-17 00:43:32 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-17 00:43:32 +0000 UTC FinishedAt: 2026-07-17 00:43:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-17 00:43:32 +0000 UTC FinishedAt: 2026-07-17 00:43:40 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowzzj8j/series-workflowzzj8j-convert-artifact-1444136537/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-17 00:43:42 +0000 UTC FinishedAt: 2026-07-17 00:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-17 00:43:42 +0000 UTC FinishedAt: 2026-07-17 00:45:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*34de8921-f3c1-4166-8911-a92b8537e27d,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-workflowzzj8j/series-workflowzzj8j-build-action-2082927705/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-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-17 00:45:55 +0000 UTC FinishedAt: 2026-07-17 00:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-17 00:45:55 +0000 UTC FinishedAt: 2026-07-17 00:45:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-17 00:45:55 +0000 UTC FinishedAt: 2026-07-17 01:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-17 00:45:55 +0000 UTC FinishedAt: 2026-07-17 01:33:01 +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:*8e21dcc1-3baf-4a46-aca8-e614fa7ea978,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-workflowzzj8j/series-workflowzzj8j-convert-artifact-1444136537/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": "d469ab93-733a-46bc-8042-1fd6c1d03733", "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-workflowzzj8j/series-workflowzzj8j-build-action-3807046325/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-17 00:45:55 +0000 UTC FinishedAt: 2026-07-17 01:32:51 +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:*8e21dcc1-3baf-4a46-aca8-e614fa7ea978,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-workflowzzj8j/series-workflowzzj8j-convert-artifact-1444136537/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": "d469ab93-733a-46bc-8042-1fd6c1d03733", "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-workflowzzj8j/series-workflowzzj8j-build-action-3807046325/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-17 01:33:01 +0000 UTC FinishedAt: 2026-07-17 01:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-17 01:33:01 +0000 UTC FinishedAt: 2026-07-17 01:33:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-17 01:33:01 +0000 UTC FinishedAt: 2026-07-17 01:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-17 01:33:01 +0000 UTC FinishedAt: 2026-07-17 01:35:04 +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:*d469ab93-733a-46bc-8042-1fd6c1d03733,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-workflowzzj8j/series-workflowzzj8j-build-action-3807046325/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-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +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":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"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:*34de8921-f3c1-4166-8911-a92b8537e27d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d469ab93-733a-46bc-8042-1fd6c1d03733,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-workflowzzj8j/series-workflowzzj8j-build-action-2082927705/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-workflowzzj8j/series-workflowzzj8j-build-action-3807046325/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 01:35:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 01:35:22 +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":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"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-workflowzzj8j/series-workflowzzj8j-convert-artifact-2737493070/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 01:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 01:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-17 01:35:14 +0000 UTC FinishedAt: 2026-07-17 01:35:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-17 01:35:24 +0000 UTC FinishedAt: 2026-07-17 04:38:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowzzj8j[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-net-kasan-gce-corpus.db"],"focus":["net"],"focus_symbols":["llsec_do_decrypt_auth","mac802154_llsec_decrypt","llsec_do_decrypt"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"3f1f755366687d051174739fb99f7d560202f60b","config_name":"upstream-apparmor-kasan.config","enable_configs":["MAC802154","IEEE802154","IEEE802154_HWSIM","IEEE802154_FAKELB"],"series_id":"743379dd-7824-4e38-b7a0-dda7065bd1d1","tree_name":"net","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/netdev/net.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-17 01:35:24 +0000 UTC FinishedAt: 2026-07-17 04:38:15 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*34de8921-f3c1-4166-8911-a92b8537e27d,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d469ab93-733a-46bc-8042-1fd6c1d03733,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-workflowzzj8j/series-workflowzzj8j-build-action-2082927705/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-workflowzzj8j/series-workflowzzj8j-build-action-3807046325/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-workflowzzj8j/series-workflowzzj8j-convert-artifact-2737493070/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,}