Name: series-workflowt7dvs Phase: Succeeded StartedAt: 2026-07-28 00:55:48 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[0] Phase: Succeeded StartedAt: 2026-07-28 00:55:48 +0000 UTC FinishedAt: 2026-07-28 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[0].run-triage Phase: Succeeded StartedAt: 2026-07-28 00:55:48 +0000 UTC FinishedAt: 2026-07-28 01:14:20 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "e7975be7-c59d-45b9-8ecd-0fb8fca41d63" }, "track": "KASAN", "fuzz": { "focus": [ "fs", "io_uring" ], "focus_symbols": [ "anon_pipe_write", "pipe_poll" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YW5vbl9waXBlX3dyaXRlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBsb2dpYyBmb3IgcGlwZXMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGVwb2xsIHNlbWFudGljcyBhbmQgaG93IHBpcGUtXHUwMDNlcG9sbF91c2FnZSBpcyB1cGRhdGVkLiBUaGlzIGlzIGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBwaXBlIGFuZCBlcG9sbCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZlMTc3NTk2NzU3NWNjZTdlOWVhZmNjY2JkODA5NDVkNmEyM2ZmYjJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMToxMjoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li45OGIxZTIzODUxMDMwYyAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jXG5AQCAtNjg5LDcgJiM0Mzs2ODksNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG4gXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcbiBcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cbiBcdCAqL1xuLVx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpXG4mIzQzO1x0aWYgKHdhc19lbXB0eSB8fCBSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSlcbiBcdFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcdTAwMjZwaXBlLVx1MDAzZXJkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7XG4gXHRraWxsX2Zhc3luYyhcdTAwMjZwaXBlLVx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XG4gXHRpZiAod2FrZV9uZXh0X3dyaXRlcilcbkBAIC03NTIsNyAmIzQzOzc1Miw2IEBAIHN0YXRpYyBsb25nIHBpcGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0fVxuIH1cbiBcbi0vKiBObyBrZXJuZWwgbG9jayBoZWxkIC0gZmluZSAqL1xuIHN0YXRpYyBfX3BvbGxfdFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiB7XG5AQCAtNzYxLDcgJiM0Mzs3NjAsOSBAQCBwaXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpXG4gXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcbiBcbiBcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xuLVx0aWYgKHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSkpXG4mIzQzO1x0aWYgKChmaWxwLVx1MDAzZWZfbW9kZSBcdTAwMjYgRk1PREVfUkVBRCkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHdhaXQgXHUwMDI2XHUwMDI2ICh3YWl0LVx1MDAzZV9rZXkgXHUwMDI2IEVQT0xMRVQpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSkpKVxuIFx0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XG4gXG4gXHQvKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Fub25fcGlwZV93cml0ZSYjMzQ7LAogICAgJiMzNDtwaXBlX3BvbGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ZTE3NzU5Njc1NzVjY2U3ZTllYWZjY2NiZDgwOTQ1ZDZhMjNmZmIyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmMKaW5kZXggNDI5YjA3MTRlYzU3NTUuLjk4YjFlMjM4NTEwMzBjIDEwMDY0NAotLS0gYS9mcy9waXBlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jCkBAIC02ODksNyAmIzQzOzY4OSw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAkgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGUKIAkgKiB3YXMgYWxyZWFkeSBlbXB0eSBvciBub3QuCiAJICovCi0JaWYgKHdhc19lbXB0eSB8fCBwaXBlLSZndDtwb2xsX3VzYWdlKQomIzQzOwlpZiAod2FzX2VtcHR5IHx8IFJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbCgmYW1wO3BpcGUtJmd0O3JkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7CiAJa2lsbF9mYXN5bmMoJmFtcDtwaXBlLSZndDtmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pOwogCWlmICh3YWtlX25leHRfd3JpdGVyKQpAQCAtNzUyLDcgJiM0Mzs3NTIsNiBAQCBzdGF0aWMgbG9uZyBwaXBlX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAl9CiB9CiAKLS8qIE5vIGtlcm5lbCBsb2NrIGhlbGQgLSBmaW5lICovCiBzdGF0aWMgX19wb2xsX3QKIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdCkKIHsKQEAgLTc2MSw3ICYjNDM7NzYwLDkgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KQogCXVuaW9uIHBpcGVfaW5kZXggaWR4OwogCiAJLyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovCi0JaWYgKHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSkpKQomIzQzOwlpZiAoKGZpbHAtJmd0O2ZfbW9kZSAmYW1wOyBGTU9ERV9SRUFEKSAmYW1wOyZhbXA7CiYjNDM7CSAgICB3YWl0ICZhbXA7JmFtcDsgKHdhaXQtJmd0O19rZXkgJmFtcDsgRVBPTExFVCkgJmFtcDsmYW1wOwomIzQzOwkgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkpCiAJCVdSSVRFX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSwgdHJ1ZSk7CiAKIAkvKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzA0CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtlcm5lbCBQaXBlIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHBsYXlpbmcgd2l0aCBgZnMvcGlwZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBob3cgcGlwZXMgaW50ZXJhY3Qgd2l0aCBgZXBvbGxgLiBUaGUgcHJpbWFyeSBjaGFuZ2UgSSBzZWUgaXMgdXNpbmcgYFJFQURfT05DRWAgZm9yIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBpbiBgYW5vbl9waXBlX3dyaXRlYCBpbnN0ZWFkIG9mIGEgZGlyZWN0IHJlYWQuIFRoZW4sIGBwaXBlX3BvbGxgIG5vdyBzZXRzIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBvbmx5IHVuZGVyIGNlcnRhaW4gYGVwb2xsYCBhbmQgZmlsZSBtb2RlIGNvbmRpdGlvbnMsIHVzaW5nIGBSRUFEX09OQ0VgIHRvby4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGNoYW5nZSBpbXBhY3RpbmcgY29yZSBrZXJuZWwgbG9naWMgZm9yIHBpcGVzIGFuZCBlcG9sbCwgd2hpY2ggc2NyZWFtcyAmIzM0O2Z1enogdGhpcyEmIzM0Oy4KCkkgbmVlZCB0byBxdWlja2x5IHJlLWZhbWlsaWFyaXplIG15c2VsZiB3aXRoIHRoZSBjb250ZXh0LiBMZXQgbWUgcHVsbCB1cCBgZnMvcGlwZS5jYC4gUmlnaHQsIGBhbm9uX3BpcGVfd3JpdGVgIGlzIHRoZSB3cml0ZSBoYW5kbGVyIGZvciBhbm9ueW1vdXMgcGlwZXMsIGFuZCBgcGlwZV9wb2xsYCBpcyB0aGUgcG9sbGluZyBoYW5kbGVyLiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIGlmIGBhbm9uX3BpcGVfd3JpdGVgIGlzIHN0YXRpYy4uLiBsZXQgbWUgc2VlLi4uIGlzIGBhbm9uX3BpcGVfd3JpdGVgIHN0YXRpYyBpbiB0aGlzIGNvbnRleHQ/IEhtbSwgSSYjMzk7bSBzZWNvbmQtZ3Vlc3NpbmcgbXlzZWxmLiBXYWl0LCBsZXQgbWUgZ3JlcCBmb3IgdGhlIGRlZmluaXRpb24gYW5kIHVzYWdlIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuIEkmIzM5O20gZ29pbmcgdG8gZG91YmxlIGNoZWNrIGl0LCBhbmQgaXQmIzM5O3Mgbm90IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbm9uX3BpcGVfd3JpdGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9waXBlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvcGlwZS5jPTUyMj1zdGF0aWMgc3NpemVfdFxuZnMvcGlwZS5jOjUyMzphbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG5mcy9waXBlLmMtNTI0LXtcbi0tXG5mcy9waXBlLmM9NzAxPWZpZm9fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbmZzL3BpcGUuYy03MDIte1xuZnMvcGlwZS5jOjcwMzpcdGludCByZXQgPSBhbm9uX3BpcGVfd3JpdGUoaW9jYiwgZnJvbSk7XG5mcy9waXBlLmMtNzA0LVx0aWYgKHJldCBcdTAwM2UgMCkge1xuLS1cbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG4tLVxuZnMvcGlwZS5jLTEzNTgtXHQucmVhZF9pdGVyXHQ9IGFub25fcGlwZV9yZWFkLFxuZnMvcGlwZS5jOjEzNTk6XHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG5mcy9waXBlLmMtMTM2MC1cdC5wb2xsXHRcdD0gcGlwZV9wb2xsLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNDQKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgU3RhdGljbmVzcyBvZiBQaXBlIEZ1bmN0aW9ucyoqCgpBbHJpZ2h0LCBzbyBgYW5vbl9waXBlX3dyaXRlYCBpcyBkZWZpbml0ZWx5IGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0JiMzOTtzIGEga2V5IG9ic2VydmF0aW9uLiBOb3csIEkgbmVlZCB0byBjb25maXJtIHNvbWV0aGluZyBzaW1pbGFyIGFib3V0IGBwaXBlX3BvbGxgLiBJdCYjMzk7cyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHNjb3BlIGFuZCBhY2Nlc3MgcmVzdHJpY3Rpb25zIG9mIHRoZXNlIGludGVybmFsIHBpcGUgZnVuY3Rpb25zIHdpdGhpbiB0aGUgY29kZS4gTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgYHBpcGVfcG9sbGAgaXMgYWxzbyBkZWNsYXJlZCBhcyBzdGF0aWMuIFRoaXMgd2lsbCBoZWxwIHdpdGggYW5hbHl6aW5nIHRoZSBpc29sYXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGlwZV9wb2xsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvcGlwZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYz03NTU9c3RhdGljIF9fcG9sbF90XG5mcy9waXBlLmM6NzU2OnBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbmZzL3BpcGUuYy03NTcte1xuLS1cbmZzL3BpcGUuYz0xMzQ1PWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcGlwZWZpZm9fZm9wcyA9IHtcbi0tXG5mcy9waXBlLmMtMTM0OC1cdC53cml0ZV9pdGVyXHQ9IGZpZm9fcGlwZV93cml0ZSxcbmZzL3BpcGUuYzoxMzQ5Olx0LnBvbGxcdFx0PSBwaXBlX3BvbGwsXG5mcy9waXBlLmMtMTM1MC1cdC51bmxvY2tlZF9pb2N0bFx0PSBwaXBlX2lvY3RsLFxuLS1cbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG4tLVxuZnMvcGlwZS5jLTEzNTktXHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG5mcy9waXBlLmM6MTM2MDpcdC5wb2xsXHRcdD0gcGlwZV9wb2xsLFxuZnMvcGlwZS5jLTEzNjEtXHQudW5sb2NrZWRfaW9jdGxcdD0gcGlwZV9pb2N0bCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTkwCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNDg5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFJlYXNvbmluZyBvbiBTZWxlY3RpbmcgQVBJIEVudHJ5cG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGJlc3QgQVBJIGVudHJ5IHBvaW50cyBoZXJlLCBzcGVjaWZpY2FsbHksIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucy4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtCb3RoIG9mIHRoZSB0aGluZ3MgSSYjMzk7bSBsb29raW5nIGF0IGFyZSBzdGF0aWMuJiMzNDsgVGhhdCBpbW1lZGlhdGVseSBzdGVlcmVkIG1lIHRvd2FyZHMgY29uc2lkZXJpbmcgbm9uLXN0YXRpYyBhbHRlcm5hdGl2ZXMuIEFyZSB0aGVyZSBhbnkgZnVuY3Rpb25zLCBwZXJoYXBzLCB0aGF0ICphcmVuJiMzOTt0KiBzdGF0aWM/CgpJIHN0YXJ0ZWQgd2l0aCBzb21lIGJyb2FkZXIgY2FuZGlkYXRlcywgYHZmc193cml0ZWAsIGB2ZnNfd3JpdGV2YCwgYGRvX2Vwb2xsX2N0bGAsIGBlcF9wb2xsYCwgYW5kIGB2ZnNfcG9sbGAg4oCTIHRoZXNlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMuIEJ1dCwgaG9sZCBvbi4uLiBjYW4gSSBqdXN0IHNwZWNpZnkgYHZmc193cml0ZWAgb3IgYGRvX2Vwb2xsX2N0bGAgZGlyZWN0bHk/IFRoZW4gSSByZW1lbWJlcmVkOiBpZiB0aGV5JiMzOTtyZSBzdGF0aWMsIHRoZXkgbWlnaHQgYmUgaW5saW5lZCwgd2hpY2ggd291bGQgbWFrZSB0aGVtIHVzZWxlc3MgYXMgZm9jdXMgc3ltYm9scyBzaW5jZSB0aGV5JiMzOTtkIGxhY2sgZGlzdGluY3QgYWRkcmVzc2VzLgoKQWhhISBCdXQgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCB0aGV5ICphcmUqIHVzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMgd2l0aGluIGBmaWxlX29wZXJhdGlvbnNgLiBUaGF0IG1lYW5zIHRoZXkmIzM5O3JlICpub3QqIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyEgVGhleSBzaG91bGQgYmUgZ29vZCBjYW5kaWRhdGVzLgoKVGhlIHByb21wdCwgdGhvdWdoLCBzYXlzIHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucy4gU2luY2UgdGhlc2UgYXJlIHVzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMsIGV2ZW4gdGhvdWdoIHRoZXkmIzM5O3JlIHN0YXRpYywgdGhleSYjMzk7cmUgbm90IGlubGluZWQuIFRoYXQgKm1pZ2h0KiBtYWtlIHRoZW0gc3VpdGFibGUuCgpXYWl0LCBhcmUgdGhlcmUgbW9yZSBvYnZpb3VzIG5vbi1zdGF0aWMgZW50cnkgcG9pbnRzPyBZZXMsIGBzeXNfcGlwZTJgIGFuZCBgZG9fcGlwZTJgIGFyZSBub24tc3RhdGljIGFuZCBmb3IgcGlwZSBjcmVhdGlvbi4gQWxzbywgYGVwb2xsX2N0bGAgaXMgZm9yIGVwb2xsLiBJIHdhcyB0aGlua2luZyBvZiB1c2luZyBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgZWFybGllci4KCkFscmlnaHQsIGdvaW5nIGJhY2sgdG8gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLiBJIHRoaW5rIEkmIzM5O2xsIGdvIHdpdGggdGhlbS4gV2FpdCBhIG1pbnV0ZS4uLiBpZiB0aGV5ICphcmUqIHN0YXRpYywgdGhlcmUmIzM5O3MgYSBjaGFuY2Ugc3l6a2FsbGVyIHdvbiYjMzk7dCBiZSBhYmxlIHRvIHJlc29sdmUgdGhlbSBpZiB0aGUgc3ltYm9sIHRhYmxlIGRvZXNuJiMzOTt0IGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gSG93ZXZlciwga2FsbHN5bXMgKmRvZXMqIGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gU28sIHRoYXQmIzM5O3Mgbm90IGEgc2hvd3N0b3BwZXIuCgpJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBtb2RpZmllcyBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAsIHNvIEkgc2hvdWxkIGJlIGdvb2QuIE5vLCB0aGVyZSBpc24mIzM5O3QgYW55IHNwZWNpZmljIGNvbmZpZy4gUGlwZXMgYW5kIGVwb2xsIGFyZSBhbHdheXMgZW5hYmxlZC4gTGV0IG1lIHNlZSBpZiBgRVBPTExgIGlzIGNvbmZpZ3VyYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRVBPTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnPTE4NTk9Y29uZmlnIEZVVEVYX1JPQlVTVF9VTkxPQ0tcbi0tXG5pbml0L0tjb25maWctMTg2MS1cbmluaXQvS2NvbmZpZzoxODYyOmNvbmZpZyBFUE9MTFxuaW5pdC9LY29uZmlnLTE4NjMtXHRib29sIFwmIzM0O0VuYWJsZSBldmVudHBvbGwgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Njk0CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludGVncmF0aW9uIG9mIGBFUE9MTGAgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgYEVQT0xMYC4uLiBUaGF0JiMzOTtzIGEgY3J1Y2lhbCBjb25maWd1cmF0aW9uIHNldHRpbmcgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gaW5jbHVkZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBvdmVyYWxsIHNldHVwLiBJdCYjMzk7cyBub3QganVzdCBhIHN1Z2dlc3Rpb247IGl0JiMzOTtzIGEgY3JpdGljYWwgY29tcG9uZW50LiBXZSBjYW4mIzM5O3QgYWZmb3JkIHRvIG92ZXJsb29rIHRoaXMuIElnbm9yaW5nIGl0IHdvdWxkIG1lYW4gYSBub3RpY2VhYmxlIHBlcmZvcm1hbmNlIGhpdDsgcG90ZW50aWFsbHksIGEgc2lnbmlmaWNhbnQgb25lLiBUaGUgc3lzdGVtJiMzOTtzIHJlc3BvbnNpdmVuZXNzIGRlcGVuZHMgb24gZWZmaWNpZW50IGV2ZW50IGhhbmRsaW5nLCBhbmQgYEVQT0xMYCBpcyBhIGNvcm5lcnN0b25lIG9mIHRoYXQgZWZmaWNpZW5jeS4gR2l2ZW4gdGhlIHNjb3BlIG9mIHRoaXMgcHJvamVjdCwgaXRzIHBlcmZvcm1hbmNlIG5lZWRzIHRvIGJlIGRpYWxlZCBpbiBjb3JyZWN0bHkuIExldCYjMzk7cyBtYWtlIHN1cmUgaXTigJlzIHByb3Blcmx5IGludGVncmF0ZWQgZnJvbSB0aGUgb3V0c2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKkVQT0xMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkxMAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCByZW5kZXJlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBFUE9MTCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSYjMzk7cmUgb24gdGhlIHJpZ2h0IHRyYWNrIGFuZCBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgb2J2aW91cy4gSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGluaXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIGZvciBhbnl0aGluZyByZWxhdGVkIHRvIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGVzcGVjaWFsbHkgc29tZXRoaW5nIGFzIGZ1bmRhbWVudGFsIGFzIGBFUE9MTGAuIEkgbmVlZCB0byBjb25maXJtIGlmIGl0IGlzIGVuYWJsZWQgb3IgaGFzIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBleHBlY3QuIEl0JiMzOTtzIGEgcXVpY2sgd2F5IHRvIGVuc3VyZSBJJiMzOTttIG5vdCBjaGFzaW5nIGEgZ2hvc3QgYW5kIHRoYXQgdGhlIGdyb3VuZHdvcmsgaXMgcHJvcGVybHkgbGFpZCBvdXQuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyB0aGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4NjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg2MDpcdFx0ZGVmX2Jvb2wgRlVURVggXHUwMDI2XHUwMDI2IEhBVkVfR0VORVJJQ19WRFNPIFx1MDAyNlx1MDAyNiBHRU5FUklDX0lSUV9FTlRSWSBcdTAwMjZcdTAwMjYgUlNFUSBcdTAwMjZcdTAwMjYgSEFWRV9GVVRFWF9ST0JVU1RfVU5MT0NLXG4xODYxOlx0XG4xODYyOlx0Y29uZmlnIEVQT0xMXG4xODYzOlx0XHRib29sIFwmIzM0O0VuYWJsZSBldmVudHBvbGwgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbjE4NjQ6XHRcdGRlZmF1bHQgeVxuMTg2NTpcdFx0aGVscFxuMTg2NjpcdFx0ICBEaXNhYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBjYXVzZSB0aGUga2VybmVsIHRvIGJlIGJ1aWx0IHdpdGhvdXRcbjE4Njc6XHRcdCAgc3VwcG9ydCBmb3IgZXBvbGwgZmFtaWx5IG9mIHN5c3RlbSBjYWxscy5cbjE4Njg6XHRcbjE4Njk6XHRjb25maWcgU0lHTkFMRkRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI3NAoJCQkJCQkJb3V0cHV0OiA5MQoJCQkJCQkJdGhvdWdodHM6IDMzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBUaGlzIEtlcm5lbCBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgYEVQT0xMYCBjb25maWcgZGVmYXVsdHMgdG8gZW5hYmxlZCwgdGhhdCYjMzk7cyBnb29kLiBXZSBjYW4gZGVmaW5pdGVseSBpbmNsdWRlIHRoYXQgaW4gYEVuYWJsZUNvbmZpZ3NgLiBMZXQgbWUganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgb2J2aW91cyBjb25maWdzIHRvIGNvbnNpZGVyLiBOb3BlLCBwaXBlcyBzZWVtIHRvIGJlIGFsd2F5cyBlbmFibGVkLCBzbyB3ZSYjMzk7cmUgZ29vZCB0aGVyZS4KCk5vdywgbGV0JiMzOTtzIGdldCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBUaGUgZm9jdXMgaXMgb24gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCByaWdodD8gV2FpdCwgaG9sZCBvbi4uLiBgZmlmb19waXBlX3dyaXRlYCBjYWxscyBgYW5vbl9waXBlX3dyaXRlYCwgd2hpY2ggbWFrZXMgdGhpcyBldmVuIGNsZWFuZXIuIExldCYjMzk7cyBzdGljayB3aXRoIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBmb3Igbm93LgoKVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkLiBUaGUgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBiZWhhdmlvciBmb3IgYW5vbnltb3VzIHBpcGVzLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyBlcG9sbCBzZW1hbnRpY3MgYW5kIHRoYXQgY3J1Y2lhbCBgcGlwZS0mZ3Q7cG9sbF91c2FnZWAgdXBkYXRlLiBUaGlzIGlzIGZ1bmRhbWVudGFsIGtlcm5lbC1sZXZlbCBzdHVmZiwgZGlyZWN0bHkgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBmYW1pbGlhciBwaXBlIGFuZCBlcG9sbCBzeXN0ZW0gY2FsbHMuIEl0JiMzOTtzIGEga2V5IGFyZWEuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRob3NlIGZvY3VzIHN5bWJvbHMgb25lIGxhc3QgdGltZS4gWXVwLCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIHRoZSBleGFjdCBmdW5jdGlvbnMgYmVpbmcgbW9kaWZpZWQuIEFuZCB0aGV5JiMzOTtyZSBub3QgaW5saW5lZCwgd2hpY2ggaXMgY3J1Y2lhbCBiZWNhdXNlIHRoZXkmIzM5O3JlIHBhc3NlZCBhcyBmdW5jdGlvbiBwb2ludGVycyBpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCYjMzk7cyB3aGF0IHdlIHdhbnQuIEhtbSwgaXQgc2VlbXMgYHBpcGVfcG9sbGAgaXMgYWxzbyB1c2VkIGZvciBgcGlwZWZpZm9fZm9wc2AgdGhvdWdoLiBMZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsZXZhbnQgZnVuY3Rpb25zLiBQZXJoYXBzIGBkb19lcG9sbF9jdGxgIG1pZ2h0IGJlIHVzZWZ1bCwgYnV0IGl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSBpdCYjMzk7cyBtb2RpZmllZCBpbiB0aGUgcGF0Y2guCgpPa2F5LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBzZXQ6CgoqICAgYFdvcnRoRnV6emluZ2A6IGB0cnVlYCAoQWJzb2x1dGVseSwgdGhpcyBpcyB3b3J0aCBmdXp6aW5nISkKKiAgIGBGb2N1c1N5bWJvbHNgOiBgWyYjMzQ7YW5vbl9waXBlX3dyaXRlJiMzNDssICYjMzQ7cGlwZV9wb2xsJiMzNDtdYCAoVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBlbnRyeSBwb2ludHMpCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtFUE9MTCYjMzQ7XWAgKEJlY2F1c2Ugd2Uga25vdyB0aGlzIGlzIGEgZmFjdG9yKQoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwb2xsaW5nIGFuZCB3cml0aW5nIGxvZ2ljIGZvciBwaXBlcywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgZXBvbGwgc2VtYW50aWNzIGFuZCBob3cgYHBpcGUtJmd0O3BvbGxfdXNhZ2VgIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLiYjMzQ7IChTdW1tYXJpemVzIHRoZSBjb3JlIGlzc3VlIHN1Y2NpbmN0bHkgYW5kIGNsZWFybHkuKQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVBPTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbm9uX3BpcGVfd3JpdGUmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwb2xsaW5nIGFuZCB3cml0aW5nIGxvZ2ljIGZvciBwaXBlcywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgZXBvbGwgc2VtYW50aWNzIGFuZCBob3cgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Fub25fcGlwZV93cml0ZSYjMzQ7LAogICAgJiMzNDtwaXBlX3BvbGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjoyOS41NjEzMTQ5NTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDg5NDU3MzIyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjoyOS41NjEzMjA4NDVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNDQ5MDkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZlMTc3NTk2NzU3NWNjZTdlOWVhZmNjY2JkODA5NDVkNmEyM2ZmYjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jXFxuaW5kZXggNDI5YjA3MTRlYzU3NTUuLjk4YjFlMjM4NTEwMzBjIDEwMDY0NFxcbi0tLSBhL2ZzL3BpcGUuY1xcbisrKyBiL2ZzL3BpcGUuY1xcbkBAIC02ODksNyArNjg5LDcgQEAgYW5vbl9waXBlX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxcbiBcXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcXG4gXFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxcbiBcXHQgKi9cXG4tXFx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKVxcbitcXHRpZiAod2FzX2VtcHR5IHx8IFJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSlcXG4gXFx0XFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcXHUwMDI2cGlwZS1cXHUwMDNlcmRfd2FpdCwgRVBPTExJTiB8IEVQT0xMUkROT1JNKTtcXG4gXFx0a2lsbF9mYXN5bmMoXFx1MDAyNnBpcGUtXFx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XFxuIFxcdGlmICh3YWtlX25leHRfd3JpdGVyKVxcbkBAIC03NTIsNyArNzUyLDYgQEAgc3RhdGljIGxvbmcgcGlwZV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuIFxcdH1cXG4gfVxcbiBcXG4tLyogTm8ga2VybmVsIGxvY2sgaGVsZCAtIGZpbmUgKi9cXG4gc3RhdGljIF9fcG9sbF90XFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcXG4ge1xcbkBAIC03NjEsNyArNzYwLDkgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbiBcXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcXG4gXFxuIFxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbi1cXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuK1xcdGlmICgoZmlscC1cXHUwMDNlZl9tb2RlIFxcdTAwMjYgRk1PREVfUkVBRCkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHdhaXQgXFx1MDAyNlxcdTAwMjYgKHdhaXQtXFx1MDAzZV9rZXkgXFx1MDAyNiBFUE9MTEVUKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuIFxcdFxcdFdSSVRFX09OQ0UocGlwZS1cXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuIFxcbiBcXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozMC4wODY1MTE5OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozMDM2OTM2MTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZTE3NzU5Njc1NzVjY2U3ZTllYWZjY2NiZDgwOTQ1ZDZhMjNmZmIyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li45OGIxZTIzODUxMDMwYyAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuKysrIGIvZnMvcGlwZS5jXG5AQCAtNjg5LDcgKzY4OSw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbiBcdCAqIEVwb2xsIG5vbnNlbnNpY2FsbHkgd2FudHMgYSB3YWtldXAgd2hldGhlciB0aGUgcGlwZVxuIFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxuIFx0ICovXG4tXHRpZiAod2FzX2VtcHR5IHx8IHBpcGUtXHUwMDNlcG9sbF91c2FnZSlcbitcdGlmICh3YXNfZW1wdHkgfHwgUkVBRF9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSkpXG4gXHRcdHdha2VfdXBfaW50ZXJydXB0aWJsZV9zeW5jX3BvbGwoXHUwMDI2cGlwZS1cdTAwM2VyZF93YWl0LCBFUE9MTElOIHwgRVBPTExSRE5PUk0pO1xuIFx0a2lsbF9mYXN5bmMoXHUwMDI2cGlwZS1cdTAwM2VmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pO1xuIFx0aWYgKHdha2VfbmV4dF93cml0ZXIpXG5AQCAtNzUyLDcgKzc1Miw2IEBAIHN0YXRpYyBsb25nIHBpcGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0fVxuIH1cbiBcbi0vKiBObyBrZXJuZWwgbG9jayBoZWxkIC0gZmluZSAqL1xuIHN0YXRpYyBfX3BvbGxfdFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiB7XG5AQCAtNzYxLDcgKzc2MCw5IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbitcdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHdhaXQgXHUwMDI2XHUwMDI2ICh3YWl0LVx1MDAzZV9rZXkgXHUwMDI2IEVQT0xMRVQpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSkpXG4gXHRcdFdSSVRFX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlLCB0cnVlKTtcbiBcbiBcdC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozMC4wODY1MTMyMDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDE0NTM4Mjk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBQaXBlIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcGxheWluZyB3aXRoIGBmcy9waXBlLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGhvdyBwaXBlcyBpbnRlcmFjdCB3aXRoIGBlcG9sbGAuIFRoZSBwcmltYXJ5IGNoYW5nZSBJIHNlZSBpcyB1c2luZyBgUkVBRF9PTkNFYCBmb3IgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW5zdGVhZCBvZiBhIGRpcmVjdCByZWFkLiBUaGVuLCBgcGlwZV9wb2xsYCBub3cgc2V0cyBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCBvbmx5IHVuZGVyIGNlcnRhaW4gYGVwb2xsYCBhbmQgZmlsZSBtb2RlIGNvbmRpdGlvbnMsIHVzaW5nIGBSRUFEX09OQ0VgIHRvby4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGNoYW5nZSBpbXBhY3RpbmcgY29yZSBrZXJuZWwgbG9naWMgZm9yIHBpcGVzIGFuZCBlcG9sbCwgd2hpY2ggc2NyZWFtcyBcImZ1enogdGhpcyFcIi5cblxuSSBuZWVkIHRvIHF1aWNrbHkgcmUtZmFtaWxpYXJpemUgbXlzZWxmIHdpdGggdGhlIGNvbnRleHQuIExldCBtZSBwdWxsIHVwIGBmcy9waXBlLmNgLiBSaWdodCwgYGFub25fcGlwZV93cml0ZWAgaXMgdGhlIHdyaXRlIGhhbmRsZXIgZm9yIGFub255bW91cyBwaXBlcywgYW5kIGBwaXBlX3BvbGxgIGlzIHRoZSBwb2xsaW5nIGhhbmRsZXIuIEl0J3MgdGltZSB0byBjaGVjayBpZiBgYW5vbl9waXBlX3dyaXRlYCBpcyBzdGF0aWMuLi4gbGV0IG1lIHNlZS4uLiBpcyBgYW5vbl9waXBlX3dyaXRlYCBzdGF0aWMgaW4gdGhpcyBjb250ZXh0PyBIbW0sIEknbSBzZWNvbmQtZ3Vlc3NpbmcgbXlzZWxmLiBXYWl0LCBsZXQgbWUgZ3JlcCBmb3IgdGhlIGRlZmluaXRpb24gYW5kIHVzYWdlIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuIEknbSBnb2luZyB0byBkb3VibGUgY2hlY2sgaXQsIGFuZCBpdCdzIG5vdCBzdGF0aWMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNC41MDEwNTM2MDdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzMjY5MzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFub25fcGlwZV93cml0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9waXBlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvcGlwZS5jPTUyMj1zdGF0aWMgc3NpemVfdFxcbmZzL3BpcGUuYzo1MjM6YW5vbl9waXBlX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxcbmZzL3BpcGUuYy01MjQte1xcbi0tXFxuZnMvcGlwZS5jPTcwMT1maWZvX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXFxuZnMvcGlwZS5jLTcwMi17XFxuZnMvcGlwZS5jOjcwMzpcXHRpbnQgcmV0ID0gYW5vbl9waXBlX3dyaXRlKGlvY2IsIGZyb20pO1xcbmZzL3BpcGUuYy03MDQtXFx0aWYgKHJldCBcXHUwMDNlIDApIHtcXG4tLVxcbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XFxuLS1cXG5mcy9waXBlLmMtMTM1OC1cXHQucmVhZF9pdGVyXFx0PSBhbm9uX3BpcGVfcmVhZCxcXG5mcy9waXBlLmM6MTM1OTpcXHQud3JpdGVfaXRlclxcdD0gYW5vbl9waXBlX3dyaXRlLFxcbmZzL3BpcGUuYy0xMzYwLVxcdC5wb2xsXFx0XFx0PSBwaXBlX3BvbGwsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEyOjM0LjkzNDMyODE0NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2MDI1OTQwMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIFN0YXRpY25lc3Mgb2YgUGlwZSBGdW5jdGlvbnMqKlxuXG5BbHJpZ2h0LCBzbyBgYW5vbl9waXBlX3dyaXRlYCBpcyBkZWZpbml0ZWx5IGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0J3MgYSBrZXkgb2JzZXJ2YXRpb24uIE5vdywgSSBuZWVkIHRvIGNvbmZpcm0gc29tZXRoaW5nIHNpbWlsYXIgYWJvdXQgYHBpcGVfcG9sbGAuIEl0J3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBzY29wZSBhbmQgYWNjZXNzIHJlc3RyaWN0aW9ucyBvZiB0aGVzZSBpbnRlcm5hbCBwaXBlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGNvZGUuIExldCdzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgYHBpcGVfcG9sbGAgaXMgYWxzbyBkZWNsYXJlZCBhcyBzdGF0aWMuIFRoaXMgd2lsbCBoZWxwIHdpdGggYW5hbHl6aW5nIHRoZSBpc29sYXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNy41MzY5MjM5OTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njg0NTg2NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGlwZV9wb2xsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3BpcGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9waXBlLmM9NzU1PXN0YXRpYyBfX3BvbGxfdFxcbmZzL3BpcGUuYzo3NTY6cGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbmZzL3BpcGUuYy03NTcte1xcbi0tXFxuZnMvcGlwZS5jPTEzNDU9Y29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwaXBlZmlmb19mb3BzID0ge1xcbi0tXFxuZnMvcGlwZS5jLTEzNDgtXFx0LndyaXRlX2l0ZXJcXHQ9IGZpZm9fcGlwZV93cml0ZSxcXG5mcy9waXBlLmM6MTM0OTpcXHQucG9sbFxcdFxcdD0gcGlwZV9wb2xsLFxcbmZzL3BpcGUuYy0xMzUwLVxcdC51bmxvY2tlZF9pb2N0bFxcdD0gcGlwZV9pb2N0bCxcXG4tLVxcbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XFxuLS1cXG5mcy9waXBlLmMtMTM1OS1cXHQud3JpdGVfaXRlclxcdD0gYW5vbl9waXBlX3dyaXRlLFxcbmZzL3BpcGUuYzoxMzYwOlxcdC5wb2xsXFx0XFx0PSBwaXBlX3BvbGwsXFxuZnMvcGlwZS5jLTEzNjEtXFx0LnVubG9ja2VkX2lvY3RsXFx0PSBwaXBlX2lvY3RsLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNy42MDUzODc5MjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTM0MTU4OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFJlYXNvbmluZyBvbiBTZWxlY3RpbmcgQVBJIEVudHJ5cG9pbnRzKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBiZXN0IEFQSSBlbnRyeSBwb2ludHMgaGVyZSwgc3BlY2lmaWNhbGx5LCBub24tc3RhdGljLCBub24taW5saW5lZCBmdW5jdGlvbnMuIE15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQm90aCBvZiB0aGUgdGhpbmdzIEknbSBsb29raW5nIGF0IGFyZSBzdGF0aWMuXCIgVGhhdCBpbW1lZGlhdGVseSBzdGVlcmVkIG1lIHRvd2FyZHMgY29uc2lkZXJpbmcgbm9uLXN0YXRpYyBhbHRlcm5hdGl2ZXMuIEFyZSB0aGVyZSBhbnkgZnVuY3Rpb25zLCBwZXJoYXBzLCB0aGF0ICphcmVuJ3QqIHN0YXRpYz9cblxuSSBzdGFydGVkIHdpdGggc29tZSBicm9hZGVyIGNhbmRpZGF0ZXMsIGB2ZnNfd3JpdGVgLCBgdmZzX3dyaXRldmAsIGBkb19lcG9sbF9jdGxgLCBgZXBfcG9sbGAsIGFuZCBgdmZzX3BvbGxgIOKAkyB0aGVzZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLiBCdXQsIGhvbGQgb24uLi4gY2FuIEkganVzdCBzcGVjaWZ5IGB2ZnNfd3JpdGVgIG9yIGBkb19lcG9sbF9jdGxgIGRpcmVjdGx5PyBUaGVuIEkgcmVtZW1iZXJlZDogaWYgdGhleSdyZSBzdGF0aWMsIHRoZXkgbWlnaHQgYmUgaW5saW5lZCwgd2hpY2ggd291bGQgbWFrZSB0aGVtIHVzZWxlc3MgYXMgZm9jdXMgc3ltYm9scyBzaW5jZSB0aGV5J2QgbGFjayBkaXN0aW5jdCBhZGRyZXNzZXMuXG5cbkFoYSEgQnV0IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCwgdGhleSAqYXJlKiB1c2VkIGFzIGZ1bmN0aW9uIHBvaW50ZXJzIHdpdGhpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCBtZWFucyB0aGV5J3JlICpub3QqIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyEgVGhleSBzaG91bGQgYmUgZ29vZCBjYW5kaWRhdGVzLlxuXG5UaGUgcHJvbXB0LCB0aG91Z2gsIHNheXMgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBhcmUgdXNlZCBhcyBmdW5jdGlvbiBwb2ludGVycywgZXZlbiB0aG91Z2ggdGhleSdyZSBzdGF0aWMsIHRoZXkncmUgbm90IGlubGluZWQuIFRoYXQgKm1pZ2h0KiBtYWtlIHRoZW0gc3VpdGFibGUuXG5cbldhaXQsIGFyZSB0aGVyZSBtb3JlIG9idmlvdXMgbm9uLXN0YXRpYyBlbnRyeSBwb2ludHM/IFllcywgYHN5c19waXBlMmAgYW5kIGBkb19waXBlMmAgYXJlIG5vbi1zdGF0aWMgYW5kIGZvciBwaXBlIGNyZWF0aW9uLiBBbHNvLCBgZXBvbGxfY3RsYCBpcyBmb3IgZXBvbGwuIEkgd2FzIHRoaW5raW5nIG9mIHVzaW5nIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBlYXJsaWVyLlxuXG5BbHJpZ2h0LCBnb2luZyBiYWNrIHRvIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYC4gSSB0aGluayBJJ2xsIGdvIHdpdGggdGhlbS4gV2FpdCBhIG1pbnV0ZS4uLiBpZiB0aGV5ICphcmUqIHN0YXRpYywgdGhlcmUncyBhIGNoYW5jZSBzeXprYWxsZXIgd29uJ3QgYmUgYWJsZSB0byByZXNvbHZlIHRoZW0gaWYgdGhlIHN5bWJvbCB0YWJsZSBkb2Vzbid0IGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gSG93ZXZlciwga2FsbHN5bXMgKmRvZXMqIGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gU28sIHRoYXQncyBub3QgYSBzaG93c3RvcHBlci5cblxuSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggbW9kaWZpZXMgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCBzbyBJIHNob3VsZCBiZSBnb29kLiBObywgdGhlcmUgaXNuJ3QgYW55IHNwZWNpZmljIGNvbmZpZy4gUGlwZXMgYW5kIGVwb2xsIGFyZSBhbHdheXMgZW5hYmxlZC4gTGV0IG1lIHNlZSBpZiBgRVBPTExgIGlzIGNvbmZpZ3VyYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU5MCwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo0NS4xMzk1NDg2NjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3MDI1NTc2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRVBPTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluaXQvS2NvbmZpZz0xODU5PWNvbmZpZyBGVVRFWF9ST0JVU1RfVU5MT0NLXFxuLS1cXG5pbml0L0tjb25maWctMTg2MS1cXG5pbml0L0tjb25maWc6MTg2Mjpjb25maWcgRVBPTExcXG5pbml0L0tjb25maWctMTg2My1cXHRib29sIFxcXCJFbmFibGUgZXZlbnRwb2xsIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo0Ny4xMDk4MDg5MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDI1NDMxODMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW50ZWdyYXRpb24gb2YgYEVQT0xMYCBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIGBFUE9MTGAuLi4gVGhhdCdzIGEgY3J1Y2lhbCBjb25maWd1cmF0aW9uIHNldHRpbmcgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gaW5jbHVkZS4gSXQncyBhIGZ1bmRhbWVudGFsIHBhcnQgb2YgdGhlIG92ZXJhbGwgc2V0dXAuIEl0J3Mgbm90IGp1c3QgYSBzdWdnZXN0aW9uOyBpdCdzIGEgY3JpdGljYWwgY29tcG9uZW50LiBXZSBjYW4ndCBhZmZvcmQgdG8gb3Zlcmxvb2sgdGhpcy4gSWdub3JpbmcgaXQgd291bGQgbWVhbiBhIG5vdGljZWFibGUgcGVyZm9ybWFuY2UgaGl0OyBwb3RlbnRpYWxseSwgYSBzaWduaWZpY2FudCBvbmUuIFRoZSBzeXN0ZW0ncyByZXNwb25zaXZlbmVzcyBkZXBlbmRzIG9uIGVmZmljaWVudCBldmVudCBoYW5kbGluZywgYW5kIGBFUE9MTGAgaXMgYSBjb3JuZXJzdG9uZSBvZiB0aGF0IGVmZmljaWVuY3kuIEdpdmVuIHRoZSBzY29wZSBvZiB0aGlzIHByb2plY3QsIGl0cyBwZXJmb3JtYW5jZSBuZWVkcyB0byBiZSBkaWFsZWQgaW4gY29ycmVjdGx5LiBMZXQncyBtYWtlIHN1cmUgaXTigJlzIHByb3Blcmx5IGludGVncmF0ZWQgZnJvbSB0aGUgb3V0c2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk0LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDE6MTI6NTAuMTM1MjQzMzQzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjU1Mjg5NTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb24uKkVQT0xMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImluaXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDE6MTI6NTAuNTYwNzg0NDEyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3OTQ1ODQ4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCByZW5kZXJlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEVQT0xMIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB3ZSdyZSBvbiB0aGUgcmlnaHQgdHJhY2sgYW5kIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nIG9idmlvdXMuIEknbGwgcXVpY2tseSBjaGVjayB0aGUgYGluaXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHVzdWFsbHkgdGhlIGZpcnN0IHBsYWNlIHRvIGxvb2sgZm9yIGFueXRoaW5nIHJlbGF0ZWQgdG8ga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZXNwZWNpYWxseSBzb21ldGhpbmcgYXMgZnVuZGFtZW50YWwgYXMgYEVQT0xMYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgaXQgaXMgZW5hYmxlZCBvciBoYXMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBJIGV4cGVjdC4gSXQncyBhIHF1aWNrIHdheSB0byBlbnN1cmUgSSdtIG5vdCBjaGFzaW5nIGEgZ2hvc3QgYW5kIHRoYXQgdGhlIGdyb3VuZHdvcmsgaXMgcHJvcGVybHkgbGFpZCBvdXQuIExldCdzIHNlZSB3aGF0J3MgdGhlcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkxMCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEyOjUzLjM1NTM3MTY4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MDU2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJpbml0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTg2MCxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTg2MDpcXHRcXHRkZWZfYm9vbCBGVVRFWCBcXHUwMDI2XFx1MDAyNiBIQVZFX0dFTkVSSUNfVkRTTyBcXHUwMDI2XFx1MDAyNiBHRU5FUklDX0lSUV9FTlRSWSBcXHUwMDI2XFx1MDAyNiBSU0VRIFxcdTAwMjZcXHUwMDI2IEhBVkVfRlVURVhfUk9CVVNUX1VOTE9DS1xcbjE4NjE6XFx0XFxuMTg2MjpcXHRjb25maWcgRVBPTExcXG4xODYzOlxcdFxcdGJvb2wgXFxcIkVuYWJsZSBldmVudHBvbGwgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuMTg2NDpcXHRcXHRkZWZhdWx0IHlcXG4xODY1OlxcdFxcdGhlbHBcXG4xODY2OlxcdFxcdCAgRGlzYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCB0byBiZSBidWlsdCB3aXRob3V0XFxuMTg2NzpcXHRcXHQgIHN1cHBvcnQgZm9yIGVwb2xsIGZhbWlseSBvZiBzeXN0ZW0gY2FsbHMuXFxuMTg2ODpcXHRcXG4xODY5OlxcdGNvbmZpZyBTSUdOQUxGRFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo1My4zNTU1MTM4NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDIxNDg4MTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFRoaXMgS2VybmVsIFBhdGNoKipcblxuT2theSwgc28gdGhlIGBFUE9MTGAgY29uZmlnIGRlZmF1bHRzIHRvIGVuYWJsZWQsIHRoYXQncyBnb29kLiBXZSBjYW4gZGVmaW5pdGVseSBpbmNsdWRlIHRoYXQgaW4gYEVuYWJsZUNvbmZpZ3NgLiBMZXQgbWUganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBvYnZpb3VzIGNvbmZpZ3MgdG8gY29uc2lkZXIuIE5vcGUsIHBpcGVzIHNlZW0gdG8gYmUgYWx3YXlzIGVuYWJsZWQsIHNvIHdlJ3JlIGdvb2QgdGhlcmUuXG5cbk5vdywgbGV0J3MgZ2V0IGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIFRoZSBmb2N1cyBpcyBvbiBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAsIHJpZ2h0PyBXYWl0LCBob2xkIG9uLi4uIGBmaWZvX3BpcGVfd3JpdGVgIGNhbGxzIGBhbm9uX3BpcGVfd3JpdGVgLCB3aGljaCBtYWtlcyB0aGlzIGV2ZW4gY2xlYW5lci4gTGV0J3Mgc3RpY2sgd2l0aCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgZm9yIG5vdy5cblxuVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkLiBUaGUgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBiZWhhdmlvciBmb3IgYW5vbnltb3VzIHBpcGVzLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyBlcG9sbCBzZW1hbnRpY3MgYW5kIHRoYXQgY3J1Y2lhbCBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCB1cGRhdGUuIFRoaXMgaXMgZnVuZGFtZW50YWwga2VybmVsLWxldmVsIHN0dWZmLCBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggdGhlIGZhbWlsaWFyIHBpcGUgYW5kIGVwb2xsIHN5c3RlbSBjYWxscy4gSXQncyBhIGtleSBhcmVhLlxuXG5BbHJpZ2h0LCBsZXQncyBkb3VibGUtY2hlY2sgdGhvc2UgZm9jdXMgc3ltYm9scyBvbmUgbGFzdCB0aW1lLiBZdXAsIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgdGhlIGV4YWN0IGZ1bmN0aW9ucyBiZWluZyBtb2RpZmllZC4gQW5kIHRoZXkncmUgbm90IGlubGluZWQsIHdoaWNoIGlzIGNydWNpYWwgYmVjYXVzZSB0aGV5J3JlIHBhc3NlZCBhcyBmdW5jdGlvbiBwb2ludGVycyBpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCdzIHdoYXQgd2Ugd2FudC4gSG1tLCBpdCBzZWVtcyBgcGlwZV9wb2xsYCBpcyBhbHNvIHVzZWQgZm9yIGBwaXBlZmlmb19mb3BzYCB0aG91Z2guIExldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMuIFBlcmhhcHMgYGRvX2Vwb2xsX2N0bGAgbWlnaHQgYmUgdXNlZnVsLCBidXQgaXQgZG9lc24ndCBsb29rIGxpa2UgaXQncyBtb2RpZmllZCBpbiB0aGUgcGF0Y2guXG5cbk9rYXksIEknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdsbCBzZXQ6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIChBYnNvbHV0ZWx5LCB0aGlzIGlzIHdvcnRoIGZ1enppbmchKVxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW1wiYW5vbl9waXBlX3dyaXRlXCIsIFwicGlwZV9wb2xsXCJdYCAoVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBlbnRyeSBwb2ludHMpXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiRVBPTExcIl1gIChCZWNhdXNlIHdlIGtub3cgdGhpcyBpcyBhIGZhY3RvcilcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCBpcyB1cGRhdGVkLiBUaGlzIGlzIGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBwaXBlIGFuZCBlcG9sbCBzeXNjYWxscy5cIiAoU3VtbWFyaXplcyB0aGUgY29yZSBpc3N1ZSBzdWNjaW5jdGx5IGFuZCBjbGVhcmx5LilcblxuXG4iLCJJbnB1dFRva2VucyI6NTI3NCwiT3V0cHV0VG9rZW5zIjo5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEzOjAwLjM3NzAwNDg2OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4ODY1NzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW5vbl9waXBlX3dyaXRlXCIsXG4gICAgXCJwaXBlX3BvbGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBsb2dpYyBmb3IgcGlwZXMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGVwb2xsIHNlbWFudGljcyBhbmQgaG93IHBpcGUtXFx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-28 00:55:48 +0000 UTC FinishedAt: 2026-07-28 01:13:02 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "axboe", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git", "commit_hash": "923b1b5a3a5cc642172d8cf8c6097ad1169b6217", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "EPOLL" ], "series_id": "e7975be7-c59d-45b9-8ecd-0fb8fca41d63" }, "track": "KASAN", "fuzz": { "focus": [ "fs", "io_uring" ], "focus_symbols": [ "anon_pipe_write", "pipe_poll" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db", "https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0VQT0xMJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7YW5vbl9waXBlX3dyaXRlJiMzNDssCiAgICAmIzM0O3BpcGVfcG9sbCYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBsb2dpYyBmb3IgcGlwZXMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGVwb2xsIHNlbWFudGljcyBhbmQgaG93IHBpcGUtXHUwMDNlcG9sbF91c2FnZSBpcyB1cGRhdGVkLiBUaGlzIGlzIGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBwaXBlIGFuZCBlcG9sbCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IDZlMTc3NTk2NzU3NWNjZTdlOWVhZmNjY2JkODA5NDVkNmEyM2ZmYjJcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVHVlIEp1bCAyOCAwMToxMjoyOCAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li45OGIxZTIzODUxMDMwYyAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jXG5AQCAtNjg5LDcgJiM0Mzs2ODksNyBAQCBhbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG4gXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcbiBcdCAqIHdhcyBhbHJlYWR5IGVtcHR5IG9yIG5vdC5cbiBcdCAqL1xuLVx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpXG4mIzQzO1x0aWYgKHdhc19lbXB0eSB8fCBSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSlcbiBcdFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcdTAwMjZwaXBlLVx1MDAzZXJkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7XG4gXHRraWxsX2Zhc3luYyhcdTAwMjZwaXBlLVx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XG4gXHRpZiAod2FrZV9uZXh0X3dyaXRlcilcbkBAIC03NTIsNyAmIzQzOzc1Miw2IEBAIHN0YXRpYyBsb25nIHBpcGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0fVxuIH1cbiBcbi0vKiBObyBrZXJuZWwgbG9jayBoZWxkIC0gZmluZSAqL1xuIHN0YXRpYyBfX3BvbGxfdFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiB7XG5AQCAtNzYxLDcgJiM0Mzs3NjAsOSBAQCBwaXBlX3BvbGwoc3RydWN0IGZpbGUgKmZpbHAsIHBvbGxfdGFibGUgKndhaXQpXG4gXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcbiBcbiBcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xuLVx0aWYgKHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSkpXG4mIzQzO1x0aWYgKChmaWxwLVx1MDAzZWZfbW9kZSBcdTAwMjYgRk1PREVfUkVBRCkgXHUwMDI2XHUwMDI2XG4mIzQzO1x0ICAgIHdhaXQgXHUwMDI2XHUwMDI2ICh3YWl0LVx1MDAzZV9rZXkgXHUwMDI2IEVQT0xMRVQpIFx1MDAyNlx1MDAyNlxuJiM0MztcdCAgICB1bmxpa2VseSghUkVBRF9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSkpKVxuIFx0XHRXUklURV9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XG4gXG4gXHQvKlxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Fub25fcGlwZV93cml0ZSYjMzQ7LAogICAgJiMzNDtwaXBlX3BvbGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCA2ZTE3NzU5Njc1NzVjY2U3ZTllYWZjY2NiZDgwOTQ1ZDZhMjNmZmIyCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmMKaW5kZXggNDI5YjA3MTRlYzU3NTUuLjk4YjFlMjM4NTEwMzBjIDEwMDY0NAotLS0gYS9mcy9waXBlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZnMvcGlwZS5jCkBAIC02ODksNyAmIzQzOzY4OSw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSkKIAkgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGUKIAkgKiB3YXMgYWxyZWFkeSBlbXB0eSBvciBub3QuCiAJICovCi0JaWYgKHdhc19lbXB0eSB8fCBwaXBlLSZndDtwb2xsX3VzYWdlKQomIzQzOwlpZiAod2FzX2VtcHR5IHx8IFJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkKIAkJd2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbCgmYW1wO3BpcGUtJmd0O3JkX3dhaXQsIEVQT0xMSU4gfCBFUE9MTFJETk9STSk7CiAJa2lsbF9mYXN5bmMoJmFtcDtwaXBlLSZndDtmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pOwogCWlmICh3YWtlX25leHRfd3JpdGVyKQpAQCAtNzUyLDcgJiM0Mzs3NTIsNiBAQCBzdGF0aWMgbG9uZyBwaXBlX2lvY3RsKHN0cnVjdCBmaWxlICpmaWxwLCB1bnNpZ25lZCBpbnQgY21kLCB1bnNpZ25lZCBsb25nIGFyZykKIAl9CiB9CiAKLS8qIE5vIGtlcm5lbCBsb2NrIGhlbGQgLSBmaW5lICovCiBzdGF0aWMgX19wb2xsX3QKIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdCkKIHsKQEAgLTc2MSw3ICYjNDM7NzYwLDkgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KQogCXVuaW9uIHBpcGVfaW5kZXggaWR4OwogCiAJLyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovCi0JaWYgKHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSkpKQomIzQzOwlpZiAoKGZpbHAtJmd0O2ZfbW9kZSAmYW1wOyBGTU9ERV9SRUFEKSAmYW1wOyZhbXA7CiYjNDM7CSAgICB3YWl0ICZhbXA7JmFtcDsgKHdhaXQtJmd0O19rZXkgJmFtcDsgRVBPTExFVCkgJmFtcDsmYW1wOwomIzQzOwkgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLSZndDtwb2xsX3VzYWdlKSkpCiAJCVdSSVRFX09OQ0UocGlwZS0mZ3Q7cG9sbF91c2FnZSwgdHJ1ZSk7CiAKIAkvKgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMzA0CgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjg3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyBhIEtlcm5lbCBQaXBlIE1vZGlmaWNhdGlvbioqCgpPa2F5LCBzbyB0aGlzIHBhdGNoIGlzIHBsYXlpbmcgd2l0aCBgZnMvcGlwZS5jYCwgc3BlY2lmaWNhbGx5IGFyb3VuZCBob3cgcGlwZXMgaW50ZXJhY3Qgd2l0aCBgZXBvbGxgLiBUaGUgcHJpbWFyeSBjaGFuZ2UgSSBzZWUgaXMgdXNpbmcgYFJFQURfT05DRWAgZm9yIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBpbiBgYW5vbl9waXBlX3dyaXRlYCBpbnN0ZWFkIG9mIGEgZGlyZWN0IHJlYWQuIFRoZW4sIGBwaXBlX3BvbGxgIG5vdyBzZXRzIGBwaXBlLSZndDtwb2xsX3VzYWdlYCBvbmx5IHVuZGVyIGNlcnRhaW4gYGVwb2xsYCBhbmQgZmlsZSBtb2RlIGNvbmRpdGlvbnMsIHVzaW5nIGBSRUFEX09OQ0VgIHRvby4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGNoYW5nZSBpbXBhY3RpbmcgY29yZSBrZXJuZWwgbG9naWMgZm9yIHBpcGVzIGFuZCBlcG9sbCwgd2hpY2ggc2NyZWFtcyAmIzM0O2Z1enogdGhpcyEmIzM0Oy4KCkkgbmVlZCB0byBxdWlja2x5IHJlLWZhbWlsaWFyaXplIG15c2VsZiB3aXRoIHRoZSBjb250ZXh0LiBMZXQgbWUgcHVsbCB1cCBgZnMvcGlwZS5jYC4gUmlnaHQsIGBhbm9uX3BpcGVfd3JpdGVgIGlzIHRoZSB3cml0ZSBoYW5kbGVyIGZvciBhbm9ueW1vdXMgcGlwZXMsIGFuZCBgcGlwZV9wb2xsYCBpcyB0aGUgcG9sbGluZyBoYW5kbGVyLiBJdCYjMzk7cyB0aW1lIHRvIGNoZWNrIGlmIGBhbm9uX3BpcGVfd3JpdGVgIGlzIHN0YXRpYy4uLiBsZXQgbWUgc2VlLi4uIGlzIGBhbm9uX3BpcGVfd3JpdGVgIHN0YXRpYyBpbiB0aGlzIGNvbnRleHQ/IEhtbSwgSSYjMzk7bSBzZWNvbmQtZ3Vlc3NpbmcgbXlzZWxmLiBXYWl0LCBsZXQgbWUgZ3JlcCBmb3IgdGhlIGRlZmluaXRpb24gYW5kIHVzYWdlIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuIEkmIzM5O20gZ29pbmcgdG8gZG91YmxlIGNoZWNrIGl0LCBhbmQgaXQmIzM5O3Mgbm90IHN0YXRpYy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDthbm9uX3BpcGVfd3JpdGUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtmcy9waXBlLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZnMvcGlwZS5jPTUyMj1zdGF0aWMgc3NpemVfdFxuZnMvcGlwZS5jOjUyMzphbm9uX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXG5mcy9waXBlLmMtNTI0LXtcbi0tXG5mcy9waXBlLmM9NzAxPWZpZm9fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbmZzL3BpcGUuYy03MDIte1xuZnMvcGlwZS5jOjcwMzpcdGludCByZXQgPSBhbm9uX3BpcGVfd3JpdGUoaW9jYiwgZnJvbSk7XG5mcy9waXBlLmMtNzA0LVx0aWYgKHJldCBcdTAwM2UgMCkge1xuLS1cbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG4tLVxuZnMvcGlwZS5jLTEzNTgtXHQucmVhZF9pdGVyXHQ9IGFub25fcGlwZV9yZWFkLFxuZnMvcGlwZS5jOjEzNTk6XHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG5mcy9waXBlLmMtMTM2MC1cdC5wb2xsXHRcdD0gcGlwZV9wb2xsLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzI4IDAxOjEyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMxNDQKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAzMwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0JiMzOTtzIGludGVybmFsIG1vbm9sb2d1ZToKCioqQ2hlY2tpbmcgU3RhdGljbmVzcyBvZiBQaXBlIEZ1bmN0aW9ucyoqCgpBbHJpZ2h0LCBzbyBgYW5vbl9waXBlX3dyaXRlYCBpcyBkZWZpbml0ZWx5IGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0JiMzOTtzIGEga2V5IG9ic2VydmF0aW9uLiBOb3csIEkgbmVlZCB0byBjb25maXJtIHNvbWV0aGluZyBzaW1pbGFyIGFib3V0IGBwaXBlX3BvbGxgLiBJdCYjMzk7cyBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHNjb3BlIGFuZCBhY2Nlc3MgcmVzdHJpY3Rpb25zIG9mIHRoZXNlIGludGVybmFsIHBpcGUgZnVuY3Rpb25zIHdpdGhpbiB0aGUgY29kZS4gTGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgYHBpcGVfcG9sbGAgaXMgYWxzbyBkZWNsYXJlZCBhcyBzdGF0aWMuIFRoaXMgd2lsbCBoZWxwIHdpdGggYW5hbHl6aW5nIHRoZSBpc29sYXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb24uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGlwZV9wb2xsJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZnMvcGlwZS5jJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3BpcGUuYz03NTU9c3RhdGljIF9fcG9sbF90XG5mcy9waXBlLmM6NzU2OnBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbmZzL3BpcGUuYy03NTcte1xuLS1cbmZzL3BpcGUuYz0xMzQ1PWNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgcGlwZWZpZm9fZm9wcyA9IHtcbi0tXG5mcy9waXBlLmMtMTM0OC1cdC53cml0ZV9pdGVyXHQ9IGZpZm9fcGlwZV93cml0ZSxcbmZzL3BpcGUuYzoxMzQ5Olx0LnBvbGxcdFx0PSBwaXBlX3BvbGwsXG5mcy9waXBlLmMtMTM1MC1cdC51bmxvY2tlZF9pb2N0bFx0PSBwaXBlX2lvY3RsLFxuLS1cbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XG4tLVxuZnMvcGlwZS5jLTEzNTktXHQud3JpdGVfaXRlclx0PSBhbm9uX3BpcGVfd3JpdGUsXG5mcy9waXBlLmM6MTM2MDpcdC5wb2xsXHRcdD0gcGlwZV9wb2xsLFxuZnMvcGlwZS5jLTEzNjEtXHQudW5sb2NrZWRfaW9jdGxcdD0gcGlwZV9pb2N0bCxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTkwCgkJCQkJCQlvdXRwdXQ6IDIzCgkJCQkJCQl0aG91Z2h0czogNDg5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IFJlYXNvbmluZyBvbiBTZWxlY3RpbmcgQVBJIEVudHJ5cG9pbnRzKioKCk9rYXksIHNvIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIGJlc3QgQVBJIGVudHJ5IHBvaW50cyBoZXJlLCBzcGVjaWZpY2FsbHksIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIGZ1bmN0aW9ucy4gTXkgaW5pdGlhbCB0aG91Z2h0IHdhcywgJiMzNDtCb3RoIG9mIHRoZSB0aGluZ3MgSSYjMzk7bSBsb29raW5nIGF0IGFyZSBzdGF0aWMuJiMzNDsgVGhhdCBpbW1lZGlhdGVseSBzdGVlcmVkIG1lIHRvd2FyZHMgY29uc2lkZXJpbmcgbm9uLXN0YXRpYyBhbHRlcm5hdGl2ZXMuIEFyZSB0aGVyZSBhbnkgZnVuY3Rpb25zLCBwZXJoYXBzLCB0aGF0ICphcmVuJiMzOTt0KiBzdGF0aWM/CgpJIHN0YXJ0ZWQgd2l0aCBzb21lIGJyb2FkZXIgY2FuZGlkYXRlcywgYHZmc193cml0ZWAsIGB2ZnNfd3JpdGV2YCwgYGRvX2Vwb2xsX2N0bGAsIGBlcF9wb2xsYCwgYW5kIGB2ZnNfcG9sbGAg4oCTIHRoZXNlIGFyZSB0aGUgdXN1YWwgc3VzcGVjdHMuIEJ1dCwgaG9sZCBvbi4uLiBjYW4gSSBqdXN0IHNwZWNpZnkgYHZmc193cml0ZWAgb3IgYGRvX2Vwb2xsX2N0bGAgZGlyZWN0bHk/IFRoZW4gSSByZW1lbWJlcmVkOiBpZiB0aGV5JiMzOTtyZSBzdGF0aWMsIHRoZXkgbWlnaHQgYmUgaW5saW5lZCwgd2hpY2ggd291bGQgbWFrZSB0aGVtIHVzZWxlc3MgYXMgZm9jdXMgc3ltYm9scyBzaW5jZSB0aGV5JiMzOTtkIGxhY2sgZGlzdGluY3QgYWRkcmVzc2VzLgoKQWhhISBCdXQgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCB0aGV5ICphcmUqIHVzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMgd2l0aGluIGBmaWxlX29wZXJhdGlvbnNgLiBUaGF0IG1lYW5zIHRoZXkmIzM5O3JlICpub3QqIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyEgVGhleSBzaG91bGQgYmUgZ29vZCBjYW5kaWRhdGVzLgoKVGhlIHByb21wdCwgdGhvdWdoLCBzYXlzIHRvIHByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludHMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucy4gU2luY2UgdGhlc2UgYXJlIHVzZWQgYXMgZnVuY3Rpb24gcG9pbnRlcnMsIGV2ZW4gdGhvdWdoIHRoZXkmIzM5O3JlIHN0YXRpYywgdGhleSYjMzk7cmUgbm90IGlubGluZWQuIFRoYXQgKm1pZ2h0KiBtYWtlIHRoZW0gc3VpdGFibGUuCgpXYWl0LCBhcmUgdGhlcmUgbW9yZSBvYnZpb3VzIG5vbi1zdGF0aWMgZW50cnkgcG9pbnRzPyBZZXMsIGBzeXNfcGlwZTJgIGFuZCBgZG9fcGlwZTJgIGFyZSBub24tc3RhdGljIGFuZCBmb3IgcGlwZSBjcmVhdGlvbi4gQWxzbywgYGVwb2xsX2N0bGAgaXMgZm9yIGVwb2xsLiBJIHdhcyB0aGlua2luZyBvZiB1c2luZyBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgZWFybGllci4KCkFscmlnaHQsIGdvaW5nIGJhY2sgdG8gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLiBJIHRoaW5rIEkmIzM5O2xsIGdvIHdpdGggdGhlbS4gV2FpdCBhIG1pbnV0ZS4uLiBpZiB0aGV5ICphcmUqIHN0YXRpYywgdGhlcmUmIzM5O3MgYSBjaGFuY2Ugc3l6a2FsbGVyIHdvbiYjMzk7dCBiZSBhYmxlIHRvIHJlc29sdmUgdGhlbSBpZiB0aGUgc3ltYm9sIHRhYmxlIGRvZXNuJiMzOTt0IGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gSG93ZXZlciwga2FsbHN5bXMgKmRvZXMqIGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gU28sIHRoYXQmIzM5O3Mgbm90IGEgc2hvd3N0b3BwZXIuCgpJdCBsb29rcyBsaWtlIHRoZSBwYXRjaCBtb2RpZmllcyBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAsIHNvIEkgc2hvdWxkIGJlIGdvb2QuIE5vLCB0aGVyZSBpc24mIzM5O3QgYW55IHNwZWNpZmljIGNvbmZpZy4gUGlwZXMgYW5kIGVwb2xsIGFyZSBhbHdheXMgZW5hYmxlZC4gTGV0IG1lIHNlZSBpZiBgRVBPTExgIGlzIGNvbmZpZ3VyYWJsZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgRVBPTEwmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnPTE4NTk9Y29uZmlnIEZVVEVYX1JPQlVTVF9VTkxPQ0tcbi0tXG5pbml0L0tjb25maWctMTg2MS1cbmluaXQvS2NvbmZpZzoxODYyOmNvbmZpZyBFUE9MTFxuaW5pdC9LY29uZmlnLTE4NjMtXHRib29sIFwmIzM0O0VuYWJsZSBldmVudHBvbGwgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0Njk0CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogMTMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludGVncmF0aW9uIG9mIGBFUE9MTGAgQ29uZmlndXJhdGlvbioqCgpSaWdodCwgYEVQT0xMYC4uLiBUaGF0JiMzOTtzIGEgY3J1Y2lhbCBjb25maWd1cmF0aW9uIHNldHRpbmcgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gaW5jbHVkZS4gSXQmIzM5O3MgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIHRoZSBvdmVyYWxsIHNldHVwLiBJdCYjMzk7cyBub3QganVzdCBhIHN1Z2dlc3Rpb247IGl0JiMzOTtzIGEgY3JpdGljYWwgY29tcG9uZW50LiBXZSBjYW4mIzM5O3QgYWZmb3JkIHRvIG92ZXJsb29rIHRoaXMuIElnbm9yaW5nIGl0IHdvdWxkIG1lYW4gYSBub3RpY2VhYmxlIHBlcmZvcm1hbmNlIGhpdDsgcG90ZW50aWFsbHksIGEgc2lnbmlmaWNhbnQgb25lLiBUaGUgc3lzdGVtJiMzOTtzIHJlc3BvbnNpdmVuZXNzIGRlcGVuZHMgb24gZWZmaWNpZW50IGV2ZW50IGhhbmRsaW5nLCBhbmQgYEVQT0xMYCBpcyBhIGNvcm5lcnN0b25lIG9mIHRoYXQgZWZmaWNpZW5jeS4gR2l2ZW4gdGhlIHNjb3BlIG9mIHRoaXMgcHJvamVjdCwgaXRzIHBlcmZvcm1hbmNlIG5lZWRzIHRvIGJlIGRpYWxlZCBpbiBjb3JyZWN0bHkuIExldCYjMzk7cyBtYWtlIHN1cmUgaXTigJlzIHByb3Blcmx5IGludGVncmF0ZWQgZnJvbSB0aGUgb3V0c2V0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlcGVuZHMgb24uKkVQT0xMJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7aW5pdC9LY29uZmlnJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDkxMAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDE1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGludGVycHJldGF0aW9uIG9mIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBhc3N1bWluZyBJJiMzOTttIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCByZW5kZXJlZCBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBFUE9MTCBDb25maWd1cmF0aW9uKioKCkFscmlnaHQsIGJlZm9yZSBJIGRpdmUgdG9vIGRlZXAsIGxldCYjMzk7cyBqdXN0IG1ha2Ugc3VyZSB3ZSYjMzk7cmUgb24gdGhlIHJpZ2h0IHRyYWNrIGFuZCBoYXZlbiYjMzk7dCBtaXNzZWQgYW55dGhpbmcgb2J2aW91cy4gSSYjMzk7bGwgcXVpY2tseSBjaGVjayB0aGUgYGluaXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIGZvciBhbnl0aGluZyByZWxhdGVkIHRvIGtlcm5lbCBjb25maWd1cmF0aW9uIG9wdGlvbnMsIGVzcGVjaWFsbHkgc29tZXRoaW5nIGFzIGZ1bmRhbWVudGFsIGFzIGBFUE9MTGAuIEkgbmVlZCB0byBjb25maXJtIGlmIGl0IGlzIGVuYWJsZWQgb3IgaGFzIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgSSBleHBlY3QuIEl0JiMzOTtzIGEgcXVpY2sgd2F5IHRvIGVuc3VyZSBJJiMzOTttIG5vdCBjaGFzaW5nIGEgZ2hvc3QgYW5kIHRoYXQgdGhlIGdyb3VuZHdvcmsgaXMgcHJvcGVybHkgbGFpZCBvdXQuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyB0aGVyZS4uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDE4NjAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMTAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MTg2MDpcdFx0ZGVmX2Jvb2wgRlVURVggXHUwMDI2XHUwMDI2IEhBVkVfR0VORVJJQ19WRFNPIFx1MDAyNlx1MDAyNiBHRU5FUklDX0lSUV9FTlRSWSBcdTAwMjZcdTAwMjYgUlNFUSBcdTAwMjZcdTAwMjYgSEFWRV9GVVRFWF9ST0JVU1RfVU5MT0NLXG4xODYxOlx0XG4xODYyOlx0Y29uZmlnIEVQT0xMXG4xODYzOlx0XHRib29sIFwmIzM0O0VuYWJsZSBldmVudHBvbGwgc3VwcG9ydFwmIzM0OyBpZiBFWFBFUlRcbjE4NjQ6XHRcdGRlZmF1bHQgeVxuMTg2NTpcdFx0aGVscFxuMTg2NjpcdFx0ICBEaXNhYmxpbmcgdGhpcyBvcHRpb24gd2lsbCBjYXVzZSB0aGUga2VybmVsIHRvIGJlIGJ1aWx0IHdpdGhvdXRcbjE4Njc6XHRcdCAgc3VwcG9ydCBmb3IgZXBvbGwgZmFtaWx5IG9mIHN5c3RlbSBjYWxscy5cbjE4Njg6XHRcbjE4Njk6XHRjb25maWcgU0lHTkFMRkRcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMjggMDE6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTI3NAoJCQkJCQkJb3V0cHV0OiA5MQoJCQkJCQkJdGhvdWdodHM6IDMzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBbmFseXNpcyBvZiBUaGlzIEtlcm5lbCBQYXRjaCoqCgpPa2F5LCBzbyB0aGUgYEVQT0xMYCBjb25maWcgZGVmYXVsdHMgdG8gZW5hYmxlZCwgdGhhdCYjMzk7cyBnb29kLiBXZSBjYW4gZGVmaW5pdGVseSBpbmNsdWRlIHRoYXQgaW4gYEVuYWJsZUNvbmZpZ3NgLiBMZXQgbWUganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbiYjMzk7dCBhbnkgb3RoZXIgb2J2aW91cyBjb25maWdzIHRvIGNvbnNpZGVyLiBOb3BlLCBwaXBlcyBzZWVtIHRvIGJlIGFsd2F5cyBlbmFibGVkLCBzbyB3ZSYjMzk7cmUgZ29vZCB0aGVyZS4KCk5vdywgbGV0JiMzOTtzIGdldCBpbnRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBUaGUgZm9jdXMgaXMgb24gYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCByaWdodD8gV2FpdCwgaG9sZCBvbi4uLiBgZmlmb19waXBlX3dyaXRlYCBjYWxscyBgYW5vbl9waXBlX3dyaXRlYCwgd2hpY2ggbWFrZXMgdGhpcyBldmVuIGNsZWFuZXIuIExldCYjMzk7cyBzdGljayB3aXRoIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBmb3Igbm93LgoKVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkLiBUaGUgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBiZWhhdmlvciBmb3IgYW5vbnltb3VzIHBpcGVzLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyBlcG9sbCBzZW1hbnRpY3MgYW5kIHRoYXQgY3J1Y2lhbCBgcGlwZS0mZ3Q7cG9sbF91c2FnZWAgdXBkYXRlLiBUaGlzIGlzIGZ1bmRhbWVudGFsIGtlcm5lbC1sZXZlbCBzdHVmZiwgZGlyZWN0bHkgYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZSB0aHJvdWdoIHRoZSBmYW1pbGlhciBwaXBlIGFuZCBlcG9sbCBzeXN0ZW0gY2FsbHMuIEl0JiMzOTtzIGEga2V5IGFyZWEuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZG91YmxlLWNoZWNrIHRob3NlIGZvY3VzIHN5bWJvbHMgb25lIGxhc3QgdGltZS4gWXVwLCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgYXJlIHRoZSBleGFjdCBmdW5jdGlvbnMgYmVpbmcgbW9kaWZpZWQuIEFuZCB0aGV5JiMzOTtyZSBub3QgaW5saW5lZCwgd2hpY2ggaXMgY3J1Y2lhbCBiZWNhdXNlIHRoZXkmIzM5O3JlIHBhc3NlZCBhcyBmdW5jdGlvbiBwb2ludGVycyBpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCYjMzk7cyB3aGF0IHdlIHdhbnQuIEhtbSwgaXQgc2VlbXMgYHBpcGVfcG9sbGAgaXMgYWxzbyB1c2VkIGZvciBgcGlwZWZpZm9fZm9wc2AgdGhvdWdoLiBMZXQgbWUganVzdCBxdWlja2x5IGNoZWNrIGZvciBhbnkgb3RoZXIgcmVsZXZhbnQgZnVuY3Rpb25zLiBQZXJoYXBzIGBkb19lcG9sbF9jdGxgIG1pZ2h0IGJlIHVzZWZ1bCwgYnV0IGl0IGRvZXNuJiMzOTt0IGxvb2sgbGlrZSBpdCYjMzk7cyBtb2RpZmllZCBpbiB0aGUgcGF0Y2guCgpPa2F5LCBJJiMzOTttIGNvbmZpZGVudCBpbiBteSBhc3Nlc3NtZW50LiBJJiMzOTtsbCBzZXQ6CgoqICAgYFdvcnRoRnV6emluZ2A6IGB0cnVlYCAoQWJzb2x1dGVseSwgdGhpcyBpcyB3b3J0aCBmdXp6aW5nISkKKiAgIGBGb2N1c1N5bWJvbHNgOiBgWyYjMzQ7YW5vbl9waXBlX3dyaXRlJiMzNDssICYjMzQ7cGlwZV9wb2xsJiMzNDtdYCAoVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBlbnRyeSBwb2ludHMpCiogICBgRW5hYmxlQ29uZmlnc2A6IGBbJiMzNDtFUE9MTCYjMzQ7XWAgKEJlY2F1c2Ugd2Uga25vdyB0aGlzIGlzIGEgZmFjdG9yKQoqICAgYFJlYXNvbmluZ2A6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwb2xsaW5nIGFuZCB3cml0aW5nIGxvZ2ljIGZvciBwaXBlcywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgZXBvbGwgc2VtYW50aWNzIGFuZCBob3cgYHBpcGUtJmd0O3BvbGxfdXNhZ2VgIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLiYjMzQ7IChTdW1tYXJpemVzIHRoZSBjb3JlIGlzc3VlIHN1Y2NpbmN0bHkgYW5kIGNsZWFybHkuKQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8yOCAwMToxMzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7RVBPTEwmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDthbm9uX3BpcGVfd3JpdGUmIzM0OywKICAgICYjMzQ7cGlwZV9wb2xsJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBwb2xsaW5nIGFuZCB3cml0aW5nIGxvZ2ljIGZvciBwaXBlcywgc3BlY2lmaWNhbGx5IGFkZHJlc3NpbmcgZXBvbGwgc2VtYW50aWNzIGFuZCBob3cgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtFUE9MTCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2Fub25fcGlwZV93cml0ZSYjMzQ7LAogICAgJiMzNDtwaXBlX3BvbGwmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjoyOS41NjEzMTQ5NTRaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDg5NDU3MzIyMSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjoyOS41NjEzMjA4NDVaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUyNDQ5MDkyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDZlMTc3NTk2NzU3NWNjZTdlOWVhZmNjY2JkODA5NDVkNmEyM2ZmYjJcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZnMvcGlwZS5jIGIvZnMvcGlwZS5jXFxuaW5kZXggNDI5YjA3MTRlYzU3NTUuLjk4YjFlMjM4NTEwMzBjIDEwMDY0NFxcbi0tLSBhL2ZzL3BpcGUuY1xcbisrKyBiL2ZzL3BpcGUuY1xcbkBAIC02ODksNyArNjg5LDcgQEAgYW5vbl9waXBlX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxcbiBcXHQgKiBFcG9sbCBub25zZW5zaWNhbGx5IHdhbnRzIGEgd2FrZXVwIHdoZXRoZXIgdGhlIHBpcGVcXG4gXFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxcbiBcXHQgKi9cXG4tXFx0aWYgKHdhc19lbXB0eSB8fCBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKVxcbitcXHRpZiAod2FzX2VtcHR5IHx8IFJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSlcXG4gXFx0XFx0d2FrZV91cF9pbnRlcnJ1cHRpYmxlX3N5bmNfcG9sbChcXHUwMDI2cGlwZS1cXHUwMDNlcmRfd2FpdCwgRVBPTExJTiB8IEVQT0xMUkROT1JNKTtcXG4gXFx0a2lsbF9mYXN5bmMoXFx1MDAyNnBpcGUtXFx1MDAzZWZhc3luY19yZWFkZXJzLCBTSUdJTywgUE9MTF9JTik7XFxuIFxcdGlmICh3YWtlX25leHRfd3JpdGVyKVxcbkBAIC03NTIsNyArNzUyLDYgQEAgc3RhdGljIGxvbmcgcGlwZV9pb2N0bChzdHJ1Y3QgZmlsZSAqZmlscCwgdW5zaWduZWQgaW50IGNtZCwgdW5zaWduZWQgbG9uZyBhcmcpXFxuIFxcdH1cXG4gfVxcbiBcXG4tLyogTm8ga2VybmVsIGxvY2sgaGVsZCAtIGZpbmUgKi9cXG4gc3RhdGljIF9fcG9sbF90XFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcXG4ge1xcbkBAIC03NjEsNyArNzYwLDkgQEAgcGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbiBcXHR1bmlvbiBwaXBlX2luZGV4IGlkeDtcXG4gXFxuIFxcdC8qIEVwb2xsIGhhcyBzb21lIGhpc3RvcmljYWwgbmFzdHkgc2VtYW50aWNzLCB0aGlzIGVuYWJsZXMgdGhlbSAqL1xcbi1cXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuK1xcdGlmICgoZmlscC1cXHUwMDNlZl9tb2RlIFxcdTAwMjYgRk1PREVfUkVBRCkgXFx1MDAyNlxcdTAwMjZcXG4rXFx0ICAgIHdhaXQgXFx1MDAyNlxcdTAwMjYgKHdhaXQtXFx1MDAzZV9rZXkgXFx1MDAyNiBFUE9MTEVUKSBcXHUwMDI2XFx1MDAyNlxcbitcXHQgICAgdW5saWtlbHkoIVJFQURfT05DRShwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlKSkpXFxuIFxcdFxcdFdSSVRFX09OQ0UocGlwZS1cXHUwMDNlcG9sbF91c2FnZSwgdHJ1ZSk7XFxuIFxcbiBcXHQvKlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozMC4wODY1MTE5OTFaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJiZXN0LWV4cGVuc2l2ZSIsIkR1cmF0aW9uIjozMDM2OTM2MTMxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA2ZTE3NzU5Njc1NzVjY2U3ZTllYWZjY2NiZDgwOTQ1ZDZhMjNmZmIyXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBKdWwgMjggMDE6MTI6MjggMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9mcy9waXBlLmMgYi9mcy9waXBlLmNcbmluZGV4IDQyOWIwNzE0ZWM1NzU1Li45OGIxZTIzODUxMDMwYyAxMDA2NDRcbi0tLSBhL2ZzL3BpcGUuY1xuKysrIGIvZnMvcGlwZS5jXG5AQCAtNjg5LDcgKzY4OSw3IEBAIGFub25fcGlwZV93cml0ZShzdHJ1Y3Qga2lvY2IgKmlvY2IsIHN0cnVjdCBpb3ZfaXRlciAqZnJvbSlcbiBcdCAqIEVwb2xsIG5vbnNlbnNpY2FsbHkgd2FudHMgYSB3YWtldXAgd2hldGhlciB0aGUgcGlwZVxuIFx0ICogd2FzIGFscmVhZHkgZW1wdHkgb3Igbm90LlxuIFx0ICovXG4tXHRpZiAod2FzX2VtcHR5IHx8IHBpcGUtXHUwMDNlcG9sbF91c2FnZSlcbitcdGlmICh3YXNfZW1wdHkgfHwgUkVBRF9PTkNFKHBpcGUtXHUwMDNlcG9sbF91c2FnZSkpXG4gXHRcdHdha2VfdXBfaW50ZXJydXB0aWJsZV9zeW5jX3BvbGwoXHUwMDI2cGlwZS1cdTAwM2VyZF93YWl0LCBFUE9MTElOIHwgRVBPTExSRE5PUk0pO1xuIFx0a2lsbF9mYXN5bmMoXHUwMDI2cGlwZS1cdTAwM2VmYXN5bmNfcmVhZGVycywgU0lHSU8sIFBPTExfSU4pO1xuIFx0aWYgKHdha2VfbmV4dF93cml0ZXIpXG5AQCAtNzUyLDcgKzc1Miw2IEBAIHN0YXRpYyBsb25nIHBpcGVfaW9jdGwoc3RydWN0IGZpbGUgKmZpbHAsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnKVxuIFx0fVxuIH1cbiBcbi0vKiBObyBrZXJuZWwgbG9jayBoZWxkIC0gZmluZSAqL1xuIHN0YXRpYyBfX3BvbGxfdFxuIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiB7XG5AQCAtNzYxLDcgKzc2MCw5IEBAIHBpcGVfcG9sbChzdHJ1Y3QgZmlsZSAqZmlscCwgcG9sbF90YWJsZSAqd2FpdClcbiBcdHVuaW9uIHBpcGVfaW5kZXggaWR4O1xuIFxuIFx0LyogRXBvbGwgaGFzIHNvbWUgaGlzdG9yaWNhbCBuYXN0eSBzZW1hbnRpY3MsIHRoaXMgZW5hYmxlcyB0aGVtICovXG4tXHRpZiAodW5saWtlbHkoIVJFQURfT05DRShwaXBlLVx1MDAzZXBvbGxfdXNhZ2UpKSlcbitcdGlmICgoZmlscC1cdTAwM2VmX21vZGUgXHUwMDI2IEZNT0RFX1JFQUQpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHdhaXQgXHUwMDI2XHUwMDI2ICh3YWl0LVx1MDAzZV9rZXkgXHUwMDI2IEVQT0xMRVQpIFx1MDAyNlx1MDAyNlxuK1x0ICAgIHVubGlrZWx5KCFSRUFEX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlKSkpXG4gXHRcdFdSSVRFX09OQ0UocGlwZS1cdTAwM2Vwb2xsX3VzYWdlLCB0cnVlKTtcbiBcbiBcdC8qXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozMC4wODY1MTMyMDFaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0NDE0NTM4Mjk2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyBhIEtlcm5lbCBQaXBlIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIHRoaXMgcGF0Y2ggaXMgcGxheWluZyB3aXRoIGBmcy9waXBlLmNgLCBzcGVjaWZpY2FsbHkgYXJvdW5kIGhvdyBwaXBlcyBpbnRlcmFjdCB3aXRoIGBlcG9sbGAuIFRoZSBwcmltYXJ5IGNoYW5nZSBJIHNlZSBpcyB1c2luZyBgUkVBRF9PTkNFYCBmb3IgYHBpcGUtXHUwMDNlcG9sbF91c2FnZWAgaW4gYGFub25fcGlwZV93cml0ZWAgaW5zdGVhZCBvZiBhIGRpcmVjdCByZWFkLiBUaGVuLCBgcGlwZV9wb2xsYCBub3cgc2V0cyBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCBvbmx5IHVuZGVyIGNlcnRhaW4gYGVwb2xsYCBhbmQgZmlsZSBtb2RlIGNvbmRpdGlvbnMsIHVzaW5nIGBSRUFEX09OQ0VgIHRvby4gVGhpcyBpcyBhIHNvbGlkLCBmdW5jdGlvbmFsIGNoYW5nZSBpbXBhY3RpbmcgY29yZSBrZXJuZWwgbG9naWMgZm9yIHBpcGVzIGFuZCBlcG9sbCwgd2hpY2ggc2NyZWFtcyBcImZ1enogdGhpcyFcIi5cblxuSSBuZWVkIHRvIHF1aWNrbHkgcmUtZmFtaWxpYXJpemUgbXlzZWxmIHdpdGggdGhlIGNvbnRleHQuIExldCBtZSBwdWxsIHVwIGBmcy9waXBlLmNgLiBSaWdodCwgYGFub25fcGlwZV93cml0ZWAgaXMgdGhlIHdyaXRlIGhhbmRsZXIgZm9yIGFub255bW91cyBwaXBlcywgYW5kIGBwaXBlX3BvbGxgIGlzIHRoZSBwb2xsaW5nIGhhbmRsZXIuIEl0J3MgdGltZSB0byBjaGVjayBpZiBgYW5vbl9waXBlX3dyaXRlYCBpcyBzdGF0aWMuLi4gbGV0IG1lIHNlZS4uLiBpcyBgYW5vbl9waXBlX3dyaXRlYCBzdGF0aWMgaW4gdGhpcyBjb250ZXh0PyBIbW0sIEknbSBzZWNvbmQtZ3Vlc3NpbmcgbXlzZWxmLiBXYWl0LCBsZXQgbWUgZ3JlcCBmb3IgdGhlIGRlZmluaXRpb24gYW5kIHVzYWdlIGFnYWluLCBqdXN0IHRvIGJlIHN1cmUuIEknbSBnb2luZyB0byBkb3VibGUgY2hlY2sgaXQsIGFuZCBpdCdzIG5vdCBzdGF0aWMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIzMDQsIk91dHB1dFRva2VucyI6MzAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODcsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNC41MDEwNTM2MDdaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDMzMjY5MzM5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImFub25fcGlwZV93cml0ZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJmcy9waXBlLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZnMvcGlwZS5jPTUyMj1zdGF0aWMgc3NpemVfdFxcbmZzL3BpcGUuYzo1MjM6YW5vbl9waXBlX3dyaXRlKHN0cnVjdCBraW9jYiAqaW9jYiwgc3RydWN0IGlvdl9pdGVyICpmcm9tKVxcbmZzL3BpcGUuYy01MjQte1xcbi0tXFxuZnMvcGlwZS5jPTcwMT1maWZvX3BpcGVfd3JpdGUoc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3QgaW92X2l0ZXIgKmZyb20pXFxuZnMvcGlwZS5jLTcwMi17XFxuZnMvcGlwZS5jOjcwMzpcXHRpbnQgcmV0ID0gYW5vbl9waXBlX3dyaXRlKGlvY2IsIGZyb20pO1xcbmZzL3BpcGUuYy03MDQtXFx0aWYgKHJldCBcXHUwMDNlIDApIHtcXG4tLVxcbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XFxuLS1cXG5mcy9waXBlLmMtMTM1OC1cXHQucmVhZF9pdGVyXFx0PSBhbm9uX3BpcGVfcmVhZCxcXG5mcy9waXBlLmM6MTM1OTpcXHQud3JpdGVfaXRlclxcdD0gYW5vbl9waXBlX3dyaXRlLFxcbmZzL3BpcGUuYy0xMzYwLVxcdC5wb2xsXFx0XFx0PSBwaXBlX3BvbGwsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEyOjM0LjkzNDMyODE0NloiLCJTZXEiOjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI2MDI1OTQwMTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgYXMgYW4gZXhwZXJ0J3MgaW50ZXJuYWwgbW9ub2xvZ3VlOlxuXG4qKkNoZWNraW5nIFN0YXRpY25lc3Mgb2YgUGlwZSBGdW5jdGlvbnMqKlxuXG5BbHJpZ2h0LCBzbyBgYW5vbl9waXBlX3dyaXRlYCBpcyBkZWZpbml0ZWx5IGRlY2xhcmVkIGFzIGBzdGF0aWNgLiBUaGF0J3MgYSBrZXkgb2JzZXJ2YXRpb24uIE5vdywgSSBuZWVkIHRvIGNvbmZpcm0gc29tZXRoaW5nIHNpbWlsYXIgYWJvdXQgYHBpcGVfcG9sbGAuIEl0J3MgY3J1Y2lhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBzY29wZSBhbmQgYWNjZXNzIHJlc3RyaWN0aW9ucyBvZiB0aGVzZSBpbnRlcm5hbCBwaXBlIGZ1bmN0aW9ucyB3aXRoaW4gdGhlIGNvZGUuIExldCdzIHF1aWNrbHkgdmVyaWZ5IHRoYXQgYHBpcGVfcG9sbGAgaXMgYWxzbyBkZWNsYXJlZCBhcyBzdGF0aWMuIFRoaXMgd2lsbCBoZWxwIHdpdGggYW5hbHl6aW5nIHRoZSBpc29sYXRpb24gb2YgdGhlc2UgZnVuY3Rpb25zIHdpdGhpbiB0aGlzIHBhcnRpY3VsYXIgaW1wbGVtZW50YXRpb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjMxNDQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNy41MzY5MjM5OTlaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Njg0NTg2NjksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicGlwZV9wb2xsXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImZzL3BpcGUuY1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9waXBlLmM9NzU1PXN0YXRpYyBfX3BvbGxfdFxcbmZzL3BpcGUuYzo3NTY6cGlwZV9wb2xsKHN0cnVjdCBmaWxlICpmaWxwLCBwb2xsX3RhYmxlICp3YWl0KVxcbmZzL3BpcGUuYy03NTcte1xcbi0tXFxuZnMvcGlwZS5jPTEzNDU9Y29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyBwaXBlZmlmb19mb3BzID0ge1xcbi0tXFxuZnMvcGlwZS5jLTEzNDgtXFx0LndyaXRlX2l0ZXJcXHQ9IGZpZm9fcGlwZV93cml0ZSxcXG5mcy9waXBlLmM6MTM0OTpcXHQucG9sbFxcdFxcdD0gcGlwZV9wb2xsLFxcbmZzL3BpcGUuYy0xMzUwLVxcdC51bmxvY2tlZF9pb2N0bFxcdD0gcGlwZV9pb2N0bCxcXG4tLVxcbmZzL3BpcGUuYz0xMzU2PXN0YXRpYyBjb25zdCBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zIHBpcGVhbm9uX2ZvcHMgPSB7XFxuLS1cXG5mcy9waXBlLmMtMTM1OS1cXHQud3JpdGVfaXRlclxcdD0gYW5vbl9waXBlX3dyaXRlLFxcbmZzL3BpcGUuYzoxMzYwOlxcdC5wb2xsXFx0XFx0PSBwaXBlX3BvbGwsXFxuZnMvcGlwZS5jLTEzNjEtXFx0LnVubG9ja2VkX2lvY3RsXFx0PSBwaXBlX2lvY3RsLFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjozNy42MDUzODc5MjdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3NTM0MTU4OTE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IFJlYXNvbmluZyBvbiBTZWxlY3RpbmcgQVBJIEVudHJ5cG9pbnRzKipcblxuT2theSwgc28gSSdtIHRoaW5raW5nIGFib3V0IHRoZSBiZXN0IEFQSSBlbnRyeSBwb2ludHMgaGVyZSwgc3BlY2lmaWNhbGx5LCBub24tc3RhdGljLCBub24taW5saW5lZCBmdW5jdGlvbnMuIE15IGluaXRpYWwgdGhvdWdodCB3YXMsIFwiQm90aCBvZiB0aGUgdGhpbmdzIEknbSBsb29raW5nIGF0IGFyZSBzdGF0aWMuXCIgVGhhdCBpbW1lZGlhdGVseSBzdGVlcmVkIG1lIHRvd2FyZHMgY29uc2lkZXJpbmcgbm9uLXN0YXRpYyBhbHRlcm5hdGl2ZXMuIEFyZSB0aGVyZSBhbnkgZnVuY3Rpb25zLCBwZXJoYXBzLCB0aGF0ICphcmVuJ3QqIHN0YXRpYz9cblxuSSBzdGFydGVkIHdpdGggc29tZSBicm9hZGVyIGNhbmRpZGF0ZXMsIGB2ZnNfd3JpdGVgLCBgdmZzX3dyaXRldmAsIGBkb19lcG9sbF9jdGxgLCBgZXBfcG9sbGAsIGFuZCBgdmZzX3BvbGxgIOKAkyB0aGVzZSBhcmUgdGhlIHVzdWFsIHN1c3BlY3RzLiBCdXQsIGhvbGQgb24uLi4gY2FuIEkganVzdCBzcGVjaWZ5IGB2ZnNfd3JpdGVgIG9yIGBkb19lcG9sbF9jdGxgIGRpcmVjdGx5PyBUaGVuIEkgcmVtZW1iZXJlZDogaWYgdGhleSdyZSBzdGF0aWMsIHRoZXkgbWlnaHQgYmUgaW5saW5lZCwgd2hpY2ggd291bGQgbWFrZSB0aGVtIHVzZWxlc3MgYXMgZm9jdXMgc3ltYm9scyBzaW5jZSB0aGV5J2QgbGFjayBkaXN0aW5jdCBhZGRyZXNzZXMuXG5cbkFoYSEgQnV0IGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCwgdGhleSAqYXJlKiB1c2VkIGFzIGZ1bmN0aW9uIHBvaW50ZXJzIHdpdGhpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCBtZWFucyB0aGV5J3JlICpub3QqIGlubGluZWQgYW5kIGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcyEgVGhleSBzaG91bGQgYmUgZ29vZCBjYW5kaWRhdGVzLlxuXG5UaGUgcHJvbXB0LCB0aG91Z2gsIHNheXMgdG8gcHJlZmVyIG5vbi1zdGF0aWMsIG5vbi1pbmxpbmVkIEFQSSBlbnRyeXBvaW50cyBvdmVyIGludGVybmFsIHN0YXRpYyBoZWxwZXIgZnVuY3Rpb25zLiBTaW5jZSB0aGVzZSBhcmUgdXNlZCBhcyBmdW5jdGlvbiBwb2ludGVycywgZXZlbiB0aG91Z2ggdGhleSdyZSBzdGF0aWMsIHRoZXkncmUgbm90IGlubGluZWQuIFRoYXQgKm1pZ2h0KiBtYWtlIHRoZW0gc3VpdGFibGUuXG5cbldhaXQsIGFyZSB0aGVyZSBtb3JlIG9idmlvdXMgbm9uLXN0YXRpYyBlbnRyeSBwb2ludHM/IFllcywgYHN5c19waXBlMmAgYW5kIGBkb19waXBlMmAgYXJlIG5vbi1zdGF0aWMgYW5kIGZvciBwaXBlIGNyZWF0aW9uLiBBbHNvLCBgZXBvbGxfY3RsYCBpcyBmb3IgZXBvbGwuIEkgd2FzIHRoaW5raW5nIG9mIHVzaW5nIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBlYXJsaWVyLlxuXG5BbHJpZ2h0LCBnb2luZyBiYWNrIHRvIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYC4gSSB0aGluayBJJ2xsIGdvIHdpdGggdGhlbS4gV2FpdCBhIG1pbnV0ZS4uLiBpZiB0aGV5ICphcmUqIHN0YXRpYywgdGhlcmUncyBhIGNoYW5jZSBzeXprYWxsZXIgd29uJ3QgYmUgYWJsZSB0byByZXNvbHZlIHRoZW0gaWYgdGhlIHN5bWJvbCB0YWJsZSBkb2Vzbid0IGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gSG93ZXZlciwga2FsbHN5bXMgKmRvZXMqIGluY2x1ZGUgc3RhdGljIGZ1bmN0aW9ucy4gU28sIHRoYXQncyBub3QgYSBzaG93c3RvcHBlci5cblxuSXQgbG9va3MgbGlrZSB0aGUgcGF0Y2ggbW9kaWZpZXMgYGFub25fcGlwZV93cml0ZWAgYW5kIGBwaXBlX3BvbGxgLCBzbyBJIHNob3VsZCBiZSBnb29kLiBObywgdGhlcmUgaXNuJ3QgYW55IHNwZWNpZmljIGNvbmZpZy4gUGlwZXMgYW5kIGVwb2xsIGFyZSBhbHdheXMgZW5hYmxlZC4gTGV0IG1lIHNlZSBpZiBgRVBPTExgIGlzIGNvbmZpZ3VyYWJsZS5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU5MCwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo0NS4xMzk1NDg2NjJaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTk3MDI1NTc2OSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgRVBPTExcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluaXQvS2NvbmZpZz0xODU5PWNvbmZpZyBGVVRFWF9ST0JVU1RfVU5MT0NLXFxuLS1cXG5pbml0L0tjb25maWctMTg2MS1cXG5pbml0L0tjb25maWc6MTg2Mjpjb25maWcgRVBPTExcXG5pbml0L0tjb25maWctMTg2My1cXHRib29sIFxcXCJFbmFibGUgZXZlbnRwb2xsIHN1cHBvcnRcXFwiIGlmIEVYUEVSVFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo0Ny4xMDk4MDg5MTFaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMDI1NDMxODMyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZSwgcHJlc2VudGVkIGluIHRoZSBmaXJzdCBwZXJzb246XG5cbioqSW50ZWdyYXRpb24gb2YgYEVQT0xMYCBDb25maWd1cmF0aW9uKipcblxuUmlnaHQsIGBFUE9MTGAuLi4gVGhhdCdzIGEgY3J1Y2lhbCBjb25maWd1cmF0aW9uIHNldHRpbmcgd2UgKmFic29sdXRlbHkqIG5lZWQgdG8gaW5jbHVkZS4gSXQncyBhIGZ1bmRhbWVudGFsIHBhcnQgb2YgdGhlIG92ZXJhbGwgc2V0dXAuIEl0J3Mgbm90IGp1c3QgYSBzdWdnZXN0aW9uOyBpdCdzIGEgY3JpdGljYWwgY29tcG9uZW50LiBXZSBjYW4ndCBhZmZvcmQgdG8gb3Zlcmxvb2sgdGhpcy4gSWdub3JpbmcgaXQgd291bGQgbWVhbiBhIG5vdGljZWFibGUgcGVyZm9ybWFuY2UgaGl0OyBwb3RlbnRpYWxseSwgYSBzaWduaWZpY2FudCBvbmUuIFRoZSBzeXN0ZW0ncyByZXNwb25zaXZlbmVzcyBkZXBlbmRzIG9uIGVmZmljaWVudCBldmVudCBoYW5kbGluZywgYW5kIGBFUE9MTGAgaXMgYSBjb3JuZXJzdG9uZSBvZiB0aGF0IGVmZmljaWVuY3kuIEdpdmVuIHRoZSBzY29wZSBvZiB0aGlzIHByb2plY3QsIGl0cyBwZXJmb3JtYW5jZSBuZWVkcyB0byBiZSBkaWFsZWQgaW4gY29ycmVjdGx5LiBMZXQncyBtYWtlIHN1cmUgaXTigJlzIHByb3Blcmx5IGludGVncmF0ZWQgZnJvbSB0aGUgb3V0c2V0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Njk0LCJPdXRwdXRUb2tlbnMiOjI5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDE6MTI6NTAuMTM1MjQzMzQzWiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MjU1Mjg5NTksIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImRlcGVuZHMgb24uKkVQT0xMXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImluaXQvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMjhUMDE6MTI6NTAuNTYwNzg0NDEyWiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3OTQ1ODQ4ODgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBpbnRlcnByZXRhdGlvbiBvZiB0aGF0IHRob3VnaHQgcHJvY2VzcywgYXNzdW1pbmcgSSdtIGFuIGV4cGVydCBpbiB0aGlzIGZpZWxkLCByZW5kZXJlZCBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIEVQT0xMIENvbmZpZ3VyYXRpb24qKlxuXG5BbHJpZ2h0LCBiZWZvcmUgSSBkaXZlIHRvbyBkZWVwLCBsZXQncyBqdXN0IG1ha2Ugc3VyZSB3ZSdyZSBvbiB0aGUgcmlnaHQgdHJhY2sgYW5kIGhhdmVuJ3QgbWlzc2VkIGFueXRoaW5nIG9idmlvdXMuIEknbGwgcXVpY2tseSBjaGVjayB0aGUgYGluaXQvS2NvbmZpZ2AgZmlsZS4gVGhhdCdzIHVzdWFsbHkgdGhlIGZpcnN0IHBsYWNlIHRvIGxvb2sgZm9yIGFueXRoaW5nIHJlbGF0ZWQgdG8ga2VybmVsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucywgZXNwZWNpYWxseSBzb21ldGhpbmcgYXMgZnVuZGFtZW50YWwgYXMgYEVQT0xMYC4gSSBuZWVkIHRvIGNvbmZpcm0gaWYgaXQgaXMgZW5hYmxlZCBvciBoYXMgdGhlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBJIGV4cGVjdC4gSXQncyBhIHF1aWNrIHdheSB0byBlbnN1cmUgSSdtIG5vdCBjaGFzaW5nIGEgZ2hvc3QgYW5kIHRoYXQgdGhlIGdyb3VuZHdvcmsgaXMgcHJvcGVybHkgbGFpZCBvdXQuIExldCdzIHNlZSB3aGF0J3MgdGhlcmUuLi5cblxuXG4iLCJJbnB1dFRva2VucyI6NDkxMCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE1LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEyOjUzLjM1NTM3MTY4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjE0MDU2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJpbml0L0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTg2MCxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTg2MDpcXHRcXHRkZWZfYm9vbCBGVVRFWCBcXHUwMDI2XFx1MDAyNiBIQVZFX0dFTkVSSUNfVkRTTyBcXHUwMDI2XFx1MDAyNiBHRU5FUklDX0lSUV9FTlRSWSBcXHUwMDI2XFx1MDAyNiBSU0VRIFxcdTAwMjZcXHUwMDI2IEhBVkVfRlVURVhfUk9CVVNUX1VOTE9DS1xcbjE4NjE6XFx0XFxuMTg2MjpcXHRjb25maWcgRVBPTExcXG4xODYzOlxcdFxcdGJvb2wgXFxcIkVuYWJsZSBldmVudHBvbGwgc3VwcG9ydFxcXCIgaWYgRVhQRVJUXFxuMTg2NDpcXHRcXHRkZWZhdWx0IHlcXG4xODY1OlxcdFxcdGhlbHBcXG4xODY2OlxcdFxcdCAgRGlzYWJsaW5nIHRoaXMgb3B0aW9uIHdpbGwgY2F1c2UgdGhlIGtlcm5lbCB0byBiZSBidWlsdCB3aXRob3V0XFxuMTg2NzpcXHRcXHQgIHN1cHBvcnQgZm9yIGVwb2xsIGZhbWlseSBvZiBzeXN0ZW0gY2FsbHMuXFxuMTg2ODpcXHRcXG4xODY5OlxcdGNvbmZpZyBTSUdOQUxGRFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0yOFQwMToxMjo1My4zNTU1MTM4NVoiLCJTZXEiOjEzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDIxNDg4MTc4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFuYWx5c2lzIG9mIFRoaXMgS2VybmVsIFBhdGNoKipcblxuT2theSwgc28gdGhlIGBFUE9MTGAgY29uZmlnIGRlZmF1bHRzIHRvIGVuYWJsZWQsIHRoYXQncyBnb29kLiBXZSBjYW4gZGVmaW5pdGVseSBpbmNsdWRlIHRoYXQgaW4gYEVuYWJsZUNvbmZpZ3NgLiBMZXQgbWUganVzdCBtYWtlIHN1cmUgdGhlcmUgYXJlbid0IGFueSBvdGhlciBvYnZpb3VzIGNvbmZpZ3MgdG8gY29uc2lkZXIuIE5vcGUsIHBpcGVzIHNlZW0gdG8gYmUgYWx3YXlzIGVuYWJsZWQsIHNvIHdlJ3JlIGdvb2QgdGhlcmUuXG5cbk5vdywgbGV0J3MgZ2V0IGludG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIFRoZSBmb2N1cyBpcyBvbiBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAsIHJpZ2h0PyBXYWl0LCBob2xkIG9uLi4uIGBmaWZvX3BpcGVfd3JpdGVgIGNhbGxzIGBhbm9uX3BpcGVfd3JpdGVgLCB3aGljaCBtYWtlcyB0aGlzIGV2ZW4gY2xlYW5lci4gTGV0J3Mgc3RpY2sgd2l0aCBgYW5vbl9waXBlX3dyaXRlYCBhbmQgYHBpcGVfcG9sbGAgZm9yIG5vdy5cblxuVGhlIHJlYXNvbmluZyBoZXJlIGlzIHNvbGlkLiBUaGUgcGF0Y2ggZGlyZWN0bHkgdG91Y2hlcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBiZWhhdmlvciBmb3IgYW5vbnltb3VzIHBpcGVzLCBzcGVjaWZpY2FsbHkgY29uY2VybmluZyBlcG9sbCBzZW1hbnRpY3MgYW5kIHRoYXQgY3J1Y2lhbCBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCB1cGRhdGUuIFRoaXMgaXMgZnVuZGFtZW50YWwga2VybmVsLWxldmVsIHN0dWZmLCBkaXJlY3RseSBhY2Nlc3NpYmxlIGZyb20gdXNlcnNwYWNlIHRocm91Z2ggdGhlIGZhbWlsaWFyIHBpcGUgYW5kIGVwb2xsIHN5c3RlbSBjYWxscy4gSXQncyBhIGtleSBhcmVhLlxuXG5BbHJpZ2h0LCBsZXQncyBkb3VibGUtY2hlY2sgdGhvc2UgZm9jdXMgc3ltYm9scyBvbmUgbGFzdCB0aW1lLiBZdXAsIGBhbm9uX3BpcGVfd3JpdGVgIGFuZCBgcGlwZV9wb2xsYCBhcmUgdGhlIGV4YWN0IGZ1bmN0aW9ucyBiZWluZyBtb2RpZmllZC4gQW5kIHRoZXkncmUgbm90IGlubGluZWQsIHdoaWNoIGlzIGNydWNpYWwgYmVjYXVzZSB0aGV5J3JlIHBhc3NlZCBhcyBmdW5jdGlvbiBwb2ludGVycyBpbiBgZmlsZV9vcGVyYXRpb25zYC4gVGhhdCdzIHdoYXQgd2Ugd2FudC4gSG1tLCBpdCBzZWVtcyBgcGlwZV9wb2xsYCBpcyBhbHNvIHVzZWQgZm9yIGBwaXBlZmlmb19mb3BzYCB0aG91Z2guIExldCBtZSBqdXN0IHF1aWNrbHkgY2hlY2sgZm9yIGFueSBvdGhlciByZWxldmFudCBmdW5jdGlvbnMuIFBlcmhhcHMgYGRvX2Vwb2xsX2N0bGAgbWlnaHQgYmUgdXNlZnVsLCBidXQgaXQgZG9lc24ndCBsb29rIGxpa2UgaXQncyBtb2RpZmllZCBpbiB0aGUgcGF0Y2guXG5cbk9rYXksIEknbSBjb25maWRlbnQgaW4gbXkgYXNzZXNzbWVudC4gSSdsbCBzZXQ6XG5cbiogICBgV29ydGhGdXp6aW5nYDogYHRydWVgIChBYnNvbHV0ZWx5LCB0aGlzIGlzIHdvcnRoIGZ1enppbmchKVxuKiAgIGBGb2N1c1N5bWJvbHNgOiBgW1wiYW5vbl9waXBlX3dyaXRlXCIsIFwicGlwZV9wb2xsXCJdYCAoVGhlc2UgYXJlIHRoZSBjcml0aWNhbCBlbnRyeSBwb2ludHMpXG4qICAgYEVuYWJsZUNvbmZpZ3NgOiBgW1wiRVBPTExcIl1gIChCZWNhdXNlIHdlIGtub3cgdGhpcyBpcyBhIGZhY3RvcilcbiogICBgUmVhc29uaW5nYDogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBgcGlwZS1cdTAwM2Vwb2xsX3VzYWdlYCBpcyB1cGRhdGVkLiBUaGlzIGlzIGNvcmUga2VybmVsIGZ1bmN0aW9uYWxpdHkgcmVhY2hhYmxlIGZyb20gdXNlcnNwYWNlIHZpYSBwaXBlIGFuZCBlcG9sbCBzeXNjYWxscy5cIiAoU3VtbWFyaXplcyB0aGUgY29yZSBpc3N1ZSBzdWNjaW5jdGx5IGFuZCBjbGVhcmx5LilcblxuXG4iLCJJbnB1dFRva2VucyI6NTI3NCwiT3V0cHV0VG9rZW5zIjo5MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMzNSwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTI4VDAxOjEzOjAwLjM3NzAwNDg2OFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc4ODY1NzA4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJFUE9MTFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImFub25fcGlwZV93cml0ZVwiLFxuICAgIFwicGlwZV9wb2xsXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIHBvbGxpbmcgYW5kIHdyaXRpbmcgbG9naWMgZm9yIHBpcGVzLCBzcGVjaWZpY2FsbHkgYWRkcmVzc2luZyBlcG9sbCBzZW1hbnRpY3MgYW5kIGhvdyBwaXBlLVxcdTAwM2Vwb2xsX3VzYWdlIGlzIHVwZGF0ZWQuIFRoaXMgaXMgY29yZSBrZXJuZWwgZnVuY3Rpb25hbGl0eSByZWFjaGFibGUgZnJvbSB1c2Vyc3BhY2UgdmlhIHBpcGUgYW5kIGVwb2xsIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkVQT0xMXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiYW5vbl9waXBlX3dyaXRlXCIsXG4gICAgXCJwaXBlX3BvbGxcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgcG9sbGluZyBhbmQgd3JpdGluZyBsb2dpYyBmb3IgcGlwZXMsIHNwZWNpZmljYWxseSBhZGRyZXNzaW5nIGVwb2xsIHNlbWFudGljcyBhbmQgaG93IHBpcGUtXFx1MDAzZXBvbGxfdXNhZ2UgaXMgdXBkYXRlZC4gVGhpcyBpcyBjb3JlIGtlcm5lbCBmdW5jdGlvbmFsaXR5IHJlYWNoYWJsZSBmcm9tIHVzZXJzcGFjZSB2aWEgcGlwZSBhbmQgZXBvbGwgc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[1] Phase: Succeeded StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 01:14:20 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2] Phase: Succeeded StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 01:14:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-28 01:14:20 +0000 UTC FinishedAt: 2026-07-28 01:14:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3032221683/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-28 01:14:45 +0000 UTC FinishedAt: 2026-07-28 02:13:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-28 01:14:45 +0000 UTC FinishedAt: 2026-07-28 02:13:25 +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:*25e254b2-1238-4286-973b-8562df53c0a4,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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3032221683/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": "280e53c9-1aba-4045-bdc5-2c37d117aff2", "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-workflowt7dvs/series-workflowt7dvs-build-action-3948309153/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-28 01:14:45 +0000 UTC FinishedAt: 2026-07-28 02:13:15 +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:*25e254b2-1238-4286-973b-8562df53c0a4,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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3032221683/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": "280e53c9-1aba-4045-bdc5-2c37d117aff2", "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-workflowt7dvs/series-workflowt7dvs-build-action-3948309153/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-28 02:13:25 +0000 UTC FinishedAt: 2026-07-28 02:13:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-28 02:13:25 +0000 UTC FinishedAt: 2026-07-28 02:13:25 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-28 02:13:25 +0000 UTC FinishedAt: 2026-07-28 02:13:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-28 02:13:25 +0000 UTC FinishedAt: 2026-07-28 02:13:38 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3354710506/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-28 02:13:56 +0000 UTC FinishedAt: 2026-07-28 02:16:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-28 02:13:56 +0000 UTC FinishedAt: 2026-07-28 02:16:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*280e53c9-1aba-4045-bdc5-2c37d117aff2,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-workflowt7dvs/series-workflowt7dvs-build-action-3948309153/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-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-28 02:16:18 +0000 UTC FinishedAt: 2026-07-28 02:16:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-28 02:16:18 +0000 UTC FinishedAt: 2026-07-28 02:16:18 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-28 02:16:18 +0000 UTC FinishedAt: 2026-07-28 03:06:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-28 02:16:18 +0000 UTC FinishedAt: 2026-07-28 03:06:19 +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:*25e254b2-1238-4286-973b-8562df53c0a4,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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3354710506/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": "d999d923-5107-4a2a-a5c8-47b7fa9cbda2", "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-workflowt7dvs/series-workflowt7dvs-build-action-981270030/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-28 02:16:18 +0000 UTC FinishedAt: 2026-07-28 03:06:09 +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:*25e254b2-1238-4286-973b-8562df53c0a4,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-workflowt7dvs/series-workflowt7dvs-convert-artifact-3354710506/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": "d999d923-5107-4a2a-a5c8-47b7fa9cbda2", "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-workflowt7dvs/series-workflowt7dvs-build-action-981270030/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-28 03:06:19 +0000 UTC FinishedAt: 2026-07-28 03:06:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-28 03:06:19 +0000 UTC FinishedAt: 2026-07-28 03:06:19 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-28 03:06:19 +0000 UTC FinishedAt: 2026-07-28 03:08:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-28 03:06:19 +0000 UTC FinishedAt: 2026-07-28 03:08:20 +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:*d999d923-5107-4a2a-a5c8-47b7fa9cbda2,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-workflowt7dvs/series-workflowt7dvs-build-action-981270030/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-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +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-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"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:*280e53c9-1aba-4045-bdc5-2c37d117aff2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d999d923-5107-4a2a-a5c8-47b7fa9cbda2,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-workflowt7dvs/series-workflowt7dvs-build-action-3948309153/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-workflowt7dvs/series-workflowt7dvs-build-action-981270030/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 03:08:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 03:08:36 +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-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"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-workflowt7dvs/series-workflowt7dvs-convert-artifact-2545959039/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 03:08:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 03:08:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-28 03:08:30 +0000 UTC FinishedAt: 2026-07-28 03:08:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-28 03:08:40 +0000 UTC FinishedAt: 2026-07-28 06:10:38 +0000 UTC Input: nil Output: nil --------- Name: series-workflowt7dvs[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db","https://storage.googleapis.com/syzkaller/corpus/ci2-upstream-fs-corpus.db"],"focus":["fs","io_uring"],"focus_symbols":["anon_pipe_write","pipe_poll"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"923b1b5a3a5cc642172d8cf8c6097ad1169b6217","config_name":"upstream-apparmor-kasan.config","enable_configs":["EPOLL"],"series_id":"e7975be7-c59d-45b9-8ecd-0fb8fca41d63","tree_name":"axboe","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/axboe/linux.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-28 03:08:40 +0000 UTC FinishedAt: 2026-07-28 06:10:28 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*280e53c9-1aba-4045-bdc5-2c37d117aff2,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d999d923-5107-4a2a-a5c8-47b7fa9cbda2,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-workflowt7dvs/series-workflowt7dvs-build-action-3948309153/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-workflowt7dvs/series-workflowt7dvs-build-action-981270030/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-workflowt7dvs/series-workflowt7dvs-convert-artifact-2545959039/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,}