Name: series-workflowc5j94 Phase: Succeeded StartedAt: 2026-06-27 22:52:24 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[0] Phase: Succeeded StartedAt: 2026-06-27 22:52:24 +0000 UTC FinishedAt: 2026-06-27 23:00:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[0].run-triage Phase: Succeeded StartedAt: 2026-06-27 22:52:24 +0000 UTC FinishedAt: 2026-06-27 23:00:58 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SHMEM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SHMEM" ], "series_id": "c150f9d7-10be-41d2-bb09-3288783771bd" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "shmem_fallocate", "shmem_falloc_wait" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NITUVNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2htZW1fZmFsbG9jYXRlJiMzNDssCiAgICAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpbiBgc2htZW1fZmF1bHRgIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gY2FjaGluZyB0aGUgdmFsdWUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBoYW5nIHdoZW4gcmFjaW5nIHdpdGggYHNobWVtX2ZhbGxvY2F0ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgYSBjb25jdXJyZW5jeSBidWcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZWViMDNjZmFlNjY2Zjg4Yzk5ZjRiMDEwZTMwYTAyNzhiOGQ5ODhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMjM6MDA6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmNcbmluZGV4IGI1MWY4M2M5NzBiYjM3Li45N2IzOTEzMTQ0YWQzNyAxMDA2NDRcbi0tLSBhL21tL3NobWVtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3NobWVtLmNcbkBAIC0yNjkzLDcgJiM0MzsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4gXHQgKiBUcmluaXR5IGZpbmRzIHRoYXQgcHJvYmluZyBhIGhvbGUgd2hpY2ggdG1wZnMgaXMgcHVuY2hpbmcgY2FuXG4gXHQgKiBwcmV2ZW50IHRoZSBob2xlLXB1bmNoIGZyb20gZXZlciBjb21wbGV0aW5nOiBub3RlZCBpbiBpX3ByaXZhdGUuXG4gXHQgKi9cbi1cdGlmICh1bmxpa2VseShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSB7XG4mIzQzO1x0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSkge1xuIFx0XHRyZXQgPSBzaG1lbV9mYWxsb2Nfd2FpdCh2bWYsIGlub2RlKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NITUVNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2htZW1fZmFsbG9jYXRlJiMzNDssCiAgICAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpbiBgc2htZW1fZmF1bHRgIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gY2FjaGluZyB0aGUgdmFsdWUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBoYW5nIHdoZW4gcmFjaW5nIHdpdGggYHNobWVtX2ZhbGxvY2F0ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgYSBjb25jdXJyZW5jeSBidWcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyNyAyMzowMDoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jCmluZGV4IGI1MWY4M2M5NzBiYjM3Li45N2IzOTEzMTQ0YWQzNyAxMDA2NDQKLS0tIGEvbW0vc2htZW0uYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zaG1lbS5jCkBAIC0yNjkzLDcgJiM0MzsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJICogVHJpbml0eSBmaW5kcyB0aGF0IHByb2JpbmcgYSBob2xlIHdoaWNoIHRtcGZzIGlzIHB1bmNoaW5nIGNhbgogCSAqIHByZXZlbnQgdGhlIGhvbGUtcHVuY2ggZnJvbSBldmVyIGNvbXBsZXRpbmc6IG5vdGVkIGluIGlfcHJpdmF0ZS4KIAkgKi8KLQlpZiAodW5saWtlbHkoaW5vZGUtJmd0O2lfcHJpdmF0ZSkpIHsKJiM0MzsJaWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS0mZ3Q7aV9wcml2YXRlKSkpIHsKIAkJcmV0ID0gc2htZW1fZmFsbG9jX3dhaXQodm1mLCBpbm9kZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODQzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG1tL3NobWVtLmNgIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9zaG1lbS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBpcyBhZGRpbmcgYFJFQURfT05DRWAgYXJvdW5kIHRoZSBjaGVjayBmb3IgYGlub2RlLSZndDtpX3ByaXZhdGVgOgoKYGBgYwotCWlmICh1bmxpa2VseShpbm9kZS0mZ3Q7aV9wcml2YXRlKSkgewomIzQzOwlpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLSZndDtpX3ByaXZhdGUpKSkgewpgYGAKCk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gQWRkaW5nIGBSRUFEX09OQ0VgIGhlcmUgaXMgYWJvdXQgcHJldmVudGluZyB0aGUgY29tcGlsZXIgZnJvbSBnZXR0aW5nIHRvbyBjbGV2ZXIsIHNwZWNpZmljYWxseSBieSBhdm9pZGluZyBvcHRpbWl6YXRpb25zIGxpa2UgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLSZndDtpX3ByaXZhdGVgIGluIGEgcmVnaXN0ZXIuIFNvLCBlc3NlbnRpYWxseSwgaXTigJlzIGEgY29tcGlsZXIgYmFycmllci4gSSBjb25maXJtIHRoYXQgYFJFQURfT05DRWAgKmlzKiBhIGNvbXBpbGVyIGJhcnJpZXIuCgpEb2VzIHRoaXMgYWN0dWFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgaW4gYSAqZnVuY3Rpb25hbCogd2F5PyBBYnNvbHV0ZWx5LiBXaGlsZSB0aGUgY29kZSBtaWdodCAqYXBwZWFyKiBmdW5jdGlvbmFsbHkgdGhlIHNhbWUgdG8gc29tZW9uZSBub3QgdW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBtZWNoYW5pY3MsIGl0IGFjdHVhbGx5IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBjb25jdXJyZW5jeSBidWcgb3IsIG1vcmUgc3BlY2lmaWNhbGx5LCBhIGNvbXBpbGVyIG9wdGltaXphdGlvbiBpc3N1ZS4gVGhpcyBjb3VsZCBwcmV2ZW50IGEgc2l0dWF0aW9uIHdoZXJlIHRoZSBjYWNoZWQgdmFsdWUgbGVhZHMgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBvdGhlciB1bmV4cGVjdGVkIGJlaGF2aW9yLgoKTm93LCBJJiMzOTttIHJlbWluZGVkIG9mIHRoZSBwcm9tcHQsIHdoaWNoIHNwZWNpZmljYWxseSBmbGFncyBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGNvbmRpdGlvbiBpZiBpdCAqb25seSogY29udGFpbnMgY2hhbmdlcyB0byBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgKmRvbiYjMzk7dCogYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEluIHRoaXMgY2FzZSwgYWRkaW5nIGBSRUFEX09OQ0VgICpkb2VzKiBmdW5jdGlvbmFsbHkgY2hhbmdlIGV4ZWN1dGlvbiwgYmVjYXVzZSBpdCBmaXhlcyBhIGNvbmN1cnJlbmN5IGJ1ZyB0aGF0IGNvdWxkIGFyaXNlIGZyb20gdGhlIGNvbXBpbGVyJiMzOTtzIG9wdGltaXphdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgY291bGQgZml4IGEgYnVnIHRoYXQgd2UgbWlnaHQgZXhwb3NlIHdpdGggZnV6emluZy4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIHJlYWxseSBjaGVjayB0aGUgc3Vycm91bmRpbmcgY29kZSBpbiBgbW0vc2htZW0uY2AsIHN0YXJ0aW5nIHdpdGggYHNobWVtX2ZhdWx0YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaG1lbV9mYXVsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL3NobWVtLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc2htZW0uYz00Nj1zdGF0aWMgc3RydWN0IHZmc21vdW50ICpzaG1fbW50IF9fcm9fYWZ0ZXJfaW5pdDtcbi0tXG5tbS9zaG1lbS5jLTEwMC0vKlxubW0vc2htZW0uYzoxMDE6ICogc2htZW1fZmFsbG9jYXRlIGNvbW11bmljYXRlcyB3aXRoIHNobWVtX2ZhdWx0IG9yIHNobWVtX3dyaXRlb3V0IHZpYVxubW0vc2htZW0uYy0xMDItICogaW5vZGUtXHUwMDNlaV9wcml2YXRlICh3aXRoIGlfcndzZW0gbWFraW5nIHN1cmUgdGhhdCBpdCBoYXMgb25seSBvbmUgdXNlciBhdFxuLS1cbm1tL3NobWVtLmM9MjIyOD1zdGF0aWMgaW50IHNobWVtX3N3YXBpbl9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LFxuLS1cbm1tL3NobWVtLmMtMjM5OS0gKlxubW0vc2htZW0uYzoyNDAwOiAqIHZtZiBhbmQgZmF1bHRfdHlwZSBhcmUgb25seSBzdXBwbGllZCBieSBzaG1lbV9mYXVsdDogb3RoZXJ3aXNlIHRoZXkgYXJlIE5VTEwuXG5tbS9zaG1lbS5jLTI0MDEtICovXG4tLVxubW0vc2htZW0uYz0yNjQzPXN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbm1tL3NobWVtLmMtMjY1NS1cdFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcbm1tL3NobWVtLmM6MjY1NjpcdFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcbm1tL3NobWVtLmMtMjY1Ny1cbi0tXG5tbS9zaG1lbS5jLTI2NjAtXHRcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cdTAwM2V3YWl0cTtcbm1tL3NobWVtLmM6MjY2MTpcdFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCxcbm1tL3NobWVtLmMtMjY2Mi1cdFx0XHRcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcbi0tXG5tbS9zaG1lbS5jLTI2NzMtXHRcdHNwaW5fbG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xubW0vc2htZW0uYzoyNjc0Olx0XHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xubW0vc2htZW0uYy0yNjc1LVx0fVxuLS1cbm1tL3NobWVtLmMtMjY4My1cbm1tL3NobWVtLmM6MjY4NDpzdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcbm1tL3NobWVtLmMtMjY4NS17XG4tLVxubW0vc2htZW0uYz01MjIyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fdm1fb3BzID0ge1xubW0vc2htZW0uYzo1MjIzOlx0LmZhdWx0XHRcdD0gc2htZW1fZmF1bHQsXG5tbS9zaG1lbS5jLTUyMjQtXHQubWFwX3BhZ2VzXHQ9IGZpbGVtYXBfbWFwX3BhZ2VzLFxuLS1cbm1tL3NobWVtLmM9NTIzND1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX2Fub25fdm1fb3BzID0ge1xubW0vc2htZW0uYzo1MjM1Olx0LmZhdWx0XHRcdD0gc2htZW1fZmF1bHQsXG5tbS9zaG1lbS5jLTUyMzYtXHQubWFwX3BhZ2VzXHQ9IGZpbGVtYXBfbWFwX3BhZ2VzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMjEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgU2htZW0gRmF1bHQgSGFuZGxlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYHNobWVtX2ZhdWx0YCBmdW5jdGlvbiwgd2hpY2gsIGFzIGEgY29yZSBtbS9zaG1lbSBmdW5jdGlvbiwgaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uLiBUaGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogYSBgUkVBRF9PTkNFYCBvcGVyYXRpb24gaXMgYmVpbmcgYWRkZWQgdG8gYGlub2RlLSZndDtpX3ByaXZhdGVgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbGlrZWx5IGFkZHJlc3Npbmcgc29tZSBzdWJ0bGUgY29uY3VycmVuY3kgaXNzdWUgd2l0aGluIHRoZSBzaG1lbS90bXBmcyBpbXBsZW1lbnRhdGlvbi4gVGhlc2Uga2luZHMgb2YgZml4ZXMgYXJlIGNyaXRpY2FsLCBlc3BlY2lhbGx5IGluIHNoYXJlZCBtZW1vcnkgc3Vic3lzdGVtcy4KClRoZSByZWFsIHF1ZXN0aW9uLCB0aG91Z2gsIGlzIHdoZXRoZXIgdGhpcyBkZXNlcnZlcyBhIGRlZGljYXRlZCBmdXp6aW5nIGNhbXBhaWduLiBHaXZlbiBpdHMgcm9sZSBhcyBhIGNvcmUgZnVuY3Rpb24sIGhhbmRsaW5nIG1lbW9yeSBmYXVsdHMsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gQW55IHN0YWJpbGl0eSBpc3N1ZXMgaW4gdGhpcyBhcmVhIGNvdWxkIGhhdmUgd2lkZXNwcmVhZCBjb25zZXF1ZW5jZXMuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgc2htZW1fZmF1bHRgIHN5bWJvbCBpdHNlbGYuCgpBcyBhIHF1aWNrIGNoZWNrLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBVc3VhbGx5LCBgQ09ORklHX1NITUVNYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHdoaWNoIG1lYW5zIGBUTVBGU2AgaXMgYWxzbyBhY3RpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGNhc2UgaGVyZSwgYXMgaXQmIzM5O3Mgc29tZXRoaW5nIHRvIGtlZXAgaW4gbWluZCwgYnV0IEkmIzM5O20gZ29pbmcgdG8gcHJvY2VlZCBhc3N1bWluZyBpdCYjMzk7cyBhY3RpdmF0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNITUVNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xODg3PWNvbmZpZyBFVkVOVEZEXG4tLVxuaW5pdC9LY29uZmlnLTE4OTUtXG5pbml0L0tjb25maWc6MTg5Njpjb25maWcgU0hNRU1cbmluaXQvS2NvbmZpZy0xODk3LVx0Ym9vbCBcJiMzNDtVc2UgZnVsbCBzaG1lbSBmaWxlc3lzdGVtXCYjMzQ7IGlmIEVYUEVSVFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2ODEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIENvbmZpZ3VyYXRpb24gU3BhY2UqKgoKT2theSwgc28gd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYENPTkZJR19TSE1FTWAuIFRoYXQmIzM5O3Mgb3VyIHN0YXJ0aW5nIHBvaW50LiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWxhdGVkIG9yIGFkamFjZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgd2Ugc2hvdWxkIGJlIGF3YXJlIG9mLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IGBDT05GSUdfU0hNRU1gIGluIGlzb2xhdGlvbjsgaXQmIzM5O3MgYWJvdXQgdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUgYW5kIGhvdyB0aGlzIHBpZWNlIGZpdHMgaW50byB0aGUgbGFyZ2VyIHB1enpsZS4gSXQmIzM5O3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucy4gTGV0JiMzOTtzIHNlZSB3aGF0IGVsc2UgaXMgaW4gcGxheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaG1lbV9mYXVsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9zaG1lbS5jPTQ2PXN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKnNobV9tbnQgX19yb19hZnRlcl9pbml0O1xuLS1cbm1tL3NobWVtLmMtMTAwLS8qXG5tbS9zaG1lbS5jOjEwMTogKiBzaG1lbV9mYWxsb2NhdGUgY29tbXVuaWNhdGVzIHdpdGggc2htZW1fZmF1bHQgb3Igc2htZW1fd3JpdGVvdXQgdmlhXG5tbS9zaG1lbS5jLTEwMi0gKiBpbm9kZS1cdTAwM2VpX3ByaXZhdGUgKHdpdGggaV9yd3NlbSBtYWtpbmcgc3VyZSB0aGF0IGl0IGhhcyBvbmx5IG9uZSB1c2VyIGF0XG4tLVxubW0vc2htZW0uYz0yMjI4PXN0YXRpYyBpbnQgc2htZW1fc3dhcGluX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHBnb2ZmX3QgaW5kZXgsXG4tLVxubW0vc2htZW0uYy0yMzk5LSAqXG5tbS9zaG1lbS5jOjI0MDA6ICogdm1mIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OiBvdGhlcndpc2UgdGhleSBhcmUgTlVMTC5cbm1tL3NobWVtLmMtMjQwMS0gKi9cbi0tXG5tbS9zaG1lbS5jPTI2NDM9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxubW0vc2htZW0uYy0yNjU1LVx0XHR3YWl0X3F1ZXVlX2hlYWRfdCAqc2htZW1fZmFsbG9jX3dhaXRxO1xubW0vc2htZW0uYzoyNjU2Olx0XHRERUZJTkVfV0FJVF9GVU5DKHNobWVtX2ZhdWx0X3dhaXQsIHN5bmNocm9ub3VzX3dha2VfZnVuY3Rpb24pO1xubW0vc2htZW0uYy0yNjU3LVxuLS1cbm1tL3NobWVtLmMtMjY2MC1cdFx0c2htZW1fZmFsbG9jX3dhaXRxID0gc2htZW1fZmFsbG9jLVx1MDAzZXdhaXRxO1xubW0vc2htZW0uYzoyNjYxOlx0XHRwcmVwYXJlX3RvX3dhaXQoc2htZW1fZmFsbG9jX3dhaXRxLCBcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxubW0vc2htZW0uYy0yNjYyLVx0XHRcdFx0VEFTS19VTklOVEVSUlVQVElCTEUpO1xuLS1cbm1tL3NobWVtLmMtMjY3My1cdFx0c3Bpbl9sb2NrKFx1MDAyNmlub2RlLVx1MDAzZWlfbG9jayk7XG5tbS9zaG1lbS5jOjI2NzQ6XHRcdGZpbmlzaF93YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCk7XG5tbS9zaG1lbS5jLTI2NzUtXHR9XG4tLVxubW0vc2htZW0uYy0yNjgzLVxubW0vc2htZW0uYzoyNjg0OnN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxubW0vc2htZW0uYy0yNjg1LXtcbi0tXG5tbS9zaG1lbS5jPTUyMjI9c3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBzaG1lbV92bV9vcHMgPSB7XG5tbS9zaG1lbS5jOjUyMjM6XHQuZmF1bHRcdFx0PSBzaG1lbV9mYXVsdCxcbm1tL3NobWVtLmMtNTIyNC1cdC5tYXBfcGFnZXNcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXG4tLVxubW0vc2htZW0uYz01MjM0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fYW5vbl92bV9vcHMgPSB7XG5tbS9zaG1lbS5jOjUyMzU6XHQuZmF1bHRcdFx0PSBzaG1lbV9mYXVsdCxcbm1tL3NobWVtLmMtNTIzNi1cdC5tYXBfcGFnZXNcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4MAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDE2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiB0aGUgUGF0Y2ggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBSRUFEX09OQ0VgIHRvIGBpbm9kZS0mZ3Q7aV9wcml2YXRlYCB3aXRoaW4gYHNobWVtX2ZhdWx0YC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4LCBhZGRyZXNzaW5nIGEgZGF0YSByYWNlIG9yIGEgcG90ZW50aWFsIGNvbXBpbGVyIG9wdGltaXphdGlvbiBwcm9ibGVtLCBJIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB0aGUgZml4IGlzIHNvbGlkIGJ5IGZ1enppbmcgaXQuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIHRydWx5IHJlc29sdmVzIHRoZSByYWNlIGNvbmRpdGlvbiB3aXRob3V0IGludHJvZHVjaW5nIGFueSBuZXcgaXNzdWVzLgoKV2FpdCBhIHNlY29uZOKApiBpcyBgc2htZW1fZmF1bHRgIGEgaG90LXBhdGggZnVuY3Rpb24/IFllcywgb2YgY291cnNlIGl0IGlzOyBpdCYjMzk7cyB0aGUgc2hhcmVkIG1lbW9yeSBwYWdlIGZhdWx0IGhhbmRsZXIuIE5vdyBJIHJlbWVtYmVyLCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBjYXV0aW9ucyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gVGhhdCYjMzk7cyBhIHZhbGlkIGNvbmNlcm4uIElmIGBzaG1lbV9mYXVsdGAgaXMgaW5kZWVkIGEgaG90LXBhdGgsIHdoaWNoIGl0IGFsbW9zdCBjZXJ0YWlubHkgaXMsIEkgc2hvdWxkIHJlY29uc2lkZXIgaW5jbHVkaW5nIGl0IGFzIGEgcHJpbWFyeSB0YXJnZXQuIFBlcmhhcHMgSSBzaG91bGQgZm9jdXMgb24gYSByZWxhdGVkIGZ1bmN0aW9uIGluc3RlYWQuIFdoYXQgYWJvdXQgYHNobWVtX2ZhbGxvY193YWl0YD8gTGV0IG1lIGNoZWNrIHRoYXQgZnVuY3Rpb24gbW9yZSBjbG9zZWx5IHRvIHNlZSBpZiBpdCBtYWtlcyBhIGJldHRlciBjYW5kaWRhdGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vc2htZW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9zaG1lbS5jPTI2MTg9c3RhdGljIGludCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKHdhaXRfcXVldWVfZW50cnlfdCAqd2FpdCxcbi0tXG5tbS9zaG1lbS5jLTI2NDItICovXG5tbS9zaG1lbS5jOjI2NDM6c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5tbS9zaG1lbS5jLTI2NDQte1xuLS1cbm1tL3NobWVtLmMtMjY1NC1cdCAgICB2bWYtXHUwMDNlcGdvZmYgXHUwMDNjIHNobWVtX2ZhbGxvYy1cdTAwM2VuZXh0KSB7XG5tbS9zaG1lbS5jOjI2NTU6XHRcdHdhaXRfcXVldWVfaGVhZF90ICpzaG1lbV9mYWxsb2Nfd2FpdHE7XG5tbS9zaG1lbS5jLTI2NTYtXHRcdERFRklORV9XQUlUX0ZVTkMoc2htZW1fZmF1bHRfd2FpdCwgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbik7XG4tLVxubW0vc2htZW0uYy0yNjU5LVx0XHRmcGluID0gbWF5YmVfdW5sb2NrX21tYXBfZm9yX2lvKHZtZiwgTlVMTCk7XG5tbS9zaG1lbS5jOjI2NjA6XHRcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cdTAwM2V3YWl0cTtcbm1tL3NobWVtLmM6MjY2MTpcdFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCxcbm1tL3NobWVtLmMtMjY2Mi1cdFx0XHRcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcbi0tXG5tbS9zaG1lbS5jLTI2NjYtXHRcdC8qXG5tbS9zaG1lbS5jOjI2Njc6XHRcdCAqIHNobWVtX2ZhbGxvY193YWl0cSBwb2ludHMgaW50byB0aGUgc2htZW1fZmFsbG9jYXRlKClcbm1tL3NobWVtLmM6MjY2ODpcdFx0ICogc3RhY2sgb2YgdGhlIGhvbGUtcHVuY2hpbmcgdGFzazogc2htZW1fZmFsbG9jX3dhaXRxXG5tbS9zaG1lbS5jLTI2NjktXHRcdCAqIGlzIHVzdWFsbHkgaW52YWxpZCBieSB0aGUgdGltZSB3ZSByZWFjaCBoZXJlLCBidXRcbi0tXG5tbS9zaG1lbS5jLTI2NzMtXHRcdHNwaW5fbG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xubW0vc2htZW0uYzoyNjc0Olx0XHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xubW0vc2htZW0uYy0yNjc1LVx0fVxuLS1cbm1tL3NobWVtLmM9MjY4ND1zdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcbi0tXG5tbS9zaG1lbS5jLTI2OTYtXHRpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLVx1MDAzZWlfcHJpdmF0ZSkpKSB7XG5tbS9zaG1lbS5jOjI2OTc6XHRcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xubW0vc2htZW0uYy0yNjk4LVx0XHRpZiAocmV0KVxuLS1cbm1tL3NobWVtLmM9MzU5Nz1zdGF0aWMgbG9uZyBzaG1lbV9mYWxsb2NhdGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LFxuLS1cbm1tL3NobWVtLmMtMzYyMC1cdFx0bG9mZl90IHVubWFwX2VuZCA9IHJvdW5kX2Rvd24ob2Zmc2V0ICYjNDM7IGxlbiwgUEFHRV9TSVpFKSAtIDE7XG5tbS9zaG1lbS5jOjM2MjE6XHRcdERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEX09OU1RBQ0soc2htZW1fZmFsbG9jX3dhaXRxKTtcbm1tL3NobWVtLmMtMzYyMi1cbi0tXG5tbS9zaG1lbS5jLTM2MjgtXG5tbS9zaG1lbS5jOjM2Mjk6XHRcdHNobWVtX2ZhbGxvYy53YWl0cSA9IFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cTtcbm1tL3NobWVtLmMtMzYzMC1cdFx0c2htZW1fZmFsbG9jLnN0YXJ0ID0gKHU2NCl1bm1hcF9zdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVDtcbi0tXG5tbS9zaG1lbS5jLTM2NDMtXHRcdGlub2RlLVx1MDAzZWlfcHJpdmF0ZSA9IE5VTEw7XG5tbS9zaG1lbS5jOjM2NDQ6XHRcdHdha2VfdXBfYWxsKFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cSk7XG5tbS9zaG1lbS5jOjM2NDU6XHRcdFdBUk5fT05fT05DRSghbGlzdF9lbXB0eShcdTAwMjZzaG1lbV9mYWxsb2Nfd2FpdHEuaGVhZCkpO1xubW0vc2htZW0uYy0zNjQ2LVx0XHRzcGluX3VubG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTU1CgkJCQkJCQlvdXRwdXQ6IDExNQoJCQkJCQkJdGhvdWdodHM6IDI5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBDb25jdXJyZW5jeSBCdWcgaW4gdGhlIHRtcGZzIEZpbGVzeXN0ZW0qKgoKT2theSwgc28gaGVyZSYjMzk7cyB3aGF0JiMzOTtzIGhhcHBlbmluZy4gSSYjMzk7bSBsb29raW5nIGF0IGEgZml4IHJlbGF0ZWQgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gdGhlIHRtcGZzIChzaGFyZWQgbWVtb3J5IGZpbGVzeXN0ZW0pLiBNeSB0aG91Z2h0IHByb2Nlc3MgaXMgY2VudGVyZWQgYXJvdW5kIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGBzaG1lbV9mYWxsb2Nfd2FpdGAgYW5kIGBzaG1lbV9mYXVsdGAuIEl0IGxvb2tzIGxpa2UgYHNobWVtX2ZhbGxvY193YWl0YCBnZXRzIGNhbGxlZCBmcm9tIGBzaG1lbV9mYXVsdGAgd2hlbiBgaW5vZGUtJmd0O2lfcHJpdmF0ZWAgaXMgc2V0LCB3aGljaCBoYXBwZW5zICpkdXJpbmcqIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGVyZWZvcmUsIHRoZSBjcnV4IG9mIHRoZSBwcm9ibGVtIGxpZXMgd2l0aCBgc2htZW1fZmFsbG9jYXRlYCwgYXMgaXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRoYXQgY3J1Y2lhbCBgaW5vZGUtJmd0O2lfcHJpdmF0ZWAgdmFsdWUuCgpTbywgdGhlIGxpa2VseSB0cmlnZ2VyIGlzIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgYHNobWVtX2ZhbGxvY2F0ZWAgYW5kIGBzaG1lbV9mYXVsdGAgYXJlIGNhbGxlZCBjb25jdXJyZW50bHkuIFRoYXQgbWVhbnMgZnV6emluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGlzIGEgZ29vZCBhcHByb2FjaCB0byBleHBvc2UgdGhlIGJ1Zy4gU3BlY2lmaWNhbGx5LCBgc2htZW1fZmFsbG9jYXRlYCBsb29rcyBsaWtlIGEga2V5IGZ1bmN0aW9uIHRvIHRhcmdldCBmb3IgZnV6emluZywgYWxvbmcgd2l0aCBgc2htZW1fZmFsbG9jX3dhaXRgLgoKTGV0JiMzOTtzIGxpc3QgdGhvc2Ugb3V0OiBgc2htZW1fZmFsbG9jYXRlYCwgYHNobWVtX2ZhbGxvY193YWl0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBgU0hNRU1gLgoKQmFzZWQgb24gdGhlIHBhdGNoIGRldGFpbHMsIHRoZSBmaXggaW52b2x2ZXMgYSBgUkVBRF9PTkNFYCBjb21waWxlciBiYXJyaWVyIG9uIGBpbm9kZS0mZ3Q7aV9wcml2YXRlYCB3aXRoaW4gYHNobWVtX2ZhdWx0YC4gVGhpcyBiYXJyaWVyIHByZXZlbnRzIHRoZSBjb21waWxlciBmcm9tIG9wdGltaXppbmcgYnkgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLSZndDtpX3ByaXZhdGVgLCB3aGljaCBjb3VsZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiBgc2htZW1fZmFsbG9jYXRlYCBpcyBtb2RpZnlpbmcgaXQgc2ltdWx0YW5lb3VzbHkuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjb25jdXJyZW5jeSBidWcuCgpJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYFNITUVNYCBpcyB0aGUgb25seSByZWxldmFudCBjb25maWcuIFllcywgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NITUVNYCBpcyB0aGUgbWFpbiBvbmUuCgpSaWdodCwgbGV0IG1lIGNsYXJpZnk6IGBzaG1lbV9mYWxsb2NhdGVgIGlzIHRoZSBzeXN0ZW0gY2FsbCBoYW5kbGVyIGZvciBgZmFsbG9jYXRlYCBvbiB0bXBmcy4gYHNobWVtX2ZhdWx0YCBpcyB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyLiBTbywgdGhlIG9yaWdpbmFsIGFzc2Vzc21lbnQgaXMgY29uZmlybWVkOiBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgLS0gYHNobWVtX2ZhbGxvY2F0ZWAgYW5kIGBzaG1lbV9mYWxsb2Nfd2FpdGAgLS0gc2VlbXMgbGlrZSB0aGUgcmlnaHQgc3RyYXRlZ3kgdG8gdHJpZ2dlciB0aGUgYnVnLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U0hNRU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzaG1lbV9mYWxsb2NhdGUmIzM0OywKICAgICYjMzQ7c2htZW1fZmFsbG9jX3dhaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIFJFQURfT05DRSBjb21waWxlciBiYXJyaWVyIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIGluIGBzaG1lbV9mYXVsdGAgdG8gcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBjYWNoaW5nIHRoZSB2YWx1ZSwgd2hpY2ggY291bGQgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiByYWNpbmcgd2l0aCBgc2htZW1fZmFsbG9jYXRlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIGNvbmN1cnJlbmN5IGJ1Zy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U0hNRU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzaG1lbV9mYWxsb2NhdGUmIzM0OywKICAgICYjMzQ7c2htZW1fZmFsbG9jX3dhaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIFJFQURfT05DRSBjb21waWxlciBiYXJyaWVyIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIGluIGBzaG1lbV9mYXVsdGAgdG8gcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBjYWNoaW5nIHRoZSB2YWx1ZSwgd2hpY2ggY291bGQgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiByYWNpbmcgd2l0aCBgc2htZW1fZmFsbG9jYXRlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIGNvbmN1cnJlbmN5IGJ1Zy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDIzOjAwOjIyLjczMjU4Nzk2MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDkxMTYzNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMi43MzI1OTI3MzFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2ODE5NzA0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdW4gMjcgMjM6MDA6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmNcXG5pbmRleCBiNTFmODNjOTcwYmIzNy4uOTdiMzkxMzE0NGFkMzcgMTAwNjQ0XFxuLS0tIGEvbW0vc2htZW0uY1xcbisrKyBiL21tL3NobWVtLmNcXG5AQCAtMjY5Myw3ICsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxuIFxcdCAqIFRyaW5pdHkgZmluZHMgdGhhdCBwcm9iaW5nIGEgaG9sZSB3aGljaCB0bXBmcyBpcyBwdW5jaGluZyBjYW5cXG4gXFx0ICogcHJldmVudCB0aGUgaG9sZS1wdW5jaCBmcm9tIGV2ZXIgY29tcGxldGluZzogbm90ZWQgaW4gaV9wcml2YXRlLlxcbiBcXHQgKi9cXG4tXFx0aWYgKHVubGlrZWx5KGlub2RlLVxcdTAwM2VpX3ByaXZhdGUpKSB7XFxuK1xcdGlmICh1bmxpa2VseShSRUFEX09OQ0UoaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSkpKSB7XFxuIFxcdFxcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xcbiBcXHRcXHRpZiAocmV0KVxcbiBcXHRcXHRcXHRyZXR1cm4gcmV0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMy4xMDE1ODk5NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NzIyMTUxMDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyNyAyMzowMDoyMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jXG5pbmRleCBiNTFmODNjOTcwYmIzNy4uOTdiMzkxMzE0NGFkMzcgMTAwNjQ0XG4tLS0gYS9tbS9zaG1lbS5jXG4rKysgYi9tbS9zaG1lbS5jXG5AQCAtMjY5Myw3ICsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4gXHQgKiBUcmluaXR5IGZpbmRzIHRoYXQgcHJvYmluZyBhIGhvbGUgd2hpY2ggdG1wZnMgaXMgcHVuY2hpbmcgY2FuXG4gXHQgKiBwcmV2ZW50IHRoZSBob2xlLXB1bmNoIGZyb20gZXZlciBjb21wbGV0aW5nOiBub3RlZCBpbiBpX3ByaXZhdGUuXG4gXHQgKi9cbi1cdGlmICh1bmxpa2VseShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSB7XG4rXHRpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLVx1MDAzZWlfcHJpdmF0ZSkpKSB7XG4gXHRcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMy4xMDE1OTE5NDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzU4NTQ4MTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYG1tL3NobWVtLmNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vc2htZW0uY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBSRUFEX09OQ0VgIGFyb3VuZCB0aGUgY2hlY2sgZm9yIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgOlxuXG5gYGBjXG4tXHRpZiAodW5saWtlbHkoaW5vZGUtXHUwMDNlaV9wcml2YXRlKSkge1xuK1x0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSkge1xuYGBgXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gQWRkaW5nIGBSRUFEX09OQ0VgIGhlcmUgaXMgYWJvdXQgcHJldmVudGluZyB0aGUgY29tcGlsZXIgZnJvbSBnZXR0aW5nIHRvbyBjbGV2ZXIsIHNwZWNpZmljYWxseSBieSBhdm9pZGluZyBvcHRpbWl6YXRpb25zIGxpa2UgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgaW4gYSByZWdpc3Rlci4gU28sIGVzc2VudGlhbGx5LCBpdOKAmXMgYSBjb21waWxlciBiYXJyaWVyLiBJIGNvbmZpcm0gdGhhdCBgUkVBRF9PTkNFYCAqaXMqIGEgY29tcGlsZXIgYmFycmllci5cblxuRG9lcyB0aGlzIGFjdHVhbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93IGluIGEgKmZ1bmN0aW9uYWwqIHdheT8gQWJzb2x1dGVseS4gV2hpbGUgdGhlIGNvZGUgbWlnaHQgKmFwcGVhciogZnVuY3Rpb25hbGx5IHRoZSBzYW1lIHRvIHNvbWVvbmUgbm90IHVuZGVyc3RhbmRpbmcgdGhlIHVuZGVybHlpbmcgbWVjaGFuaWNzLCBpdCBhY3R1YWxseSBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgYnVnIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgYSBjb21waWxlciBvcHRpbWl6YXRpb24gaXNzdWUuIFRoaXMgY291bGQgcHJldmVudCBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgY2FjaGVkIHZhbHVlIGxlYWRzIHRvIGFuIGluZmluaXRlIGxvb3Agb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvci5cblxuTm93LCBJJ20gcmVtaW5kZWQgb2YgdGhlIHByb21wdCwgd2hpY2ggc3BlY2lmaWNhbGx5IGZsYWdzIGEgYFdvcnRoRnV6emluZz1mYWxzZWAgY29uZGl0aW9uIGlmIGl0ICpvbmx5KiBjb250YWlucyBjaGFuZ2VzIHRvIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCAqZG9uJ3QqIGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBJbiB0aGlzIGNhc2UsIGFkZGluZyBgUkVBRF9PTkNFYCAqZG9lcyogZnVuY3Rpb25hbGx5IGNoYW5nZSBleGVjdXRpb24sIGJlY2F1c2UgaXQgZml4ZXMgYSBjb25jdXJyZW5jeSBidWcgdGhhdCBjb3VsZCBhcmlzZSBmcm9tIHRoZSBjb21waWxlcidzIG9wdGltaXphdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgY291bGQgZml4IGEgYnVnIHRoYXQgd2UgbWlnaHQgZXhwb3NlIHdpdGggZnV6emluZy5cblxuSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgcmVhbGx5IGNoZWNrIHRoZSBzdXJyb3VuZGluZyBjb2RlIGluIGBtbS9zaG1lbS5jYCwgc3RhcnRpbmcgd2l0aCBgc2htZW1fZmF1bHRgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQzLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MjguNDYwMTQyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTUwMDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaG1lbV9mYXVsdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9zaG1lbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3NobWVtLmM9NDY9c3RhdGljIHN0cnVjdCB2ZnNtb3VudCAqc2htX21udCBfX3JvX2FmdGVyX2luaXQ7XFxuLS1cXG5tbS9zaG1lbS5jLTEwMC0vKlxcbm1tL3NobWVtLmM6MTAxOiAqIHNobWVtX2ZhbGxvY2F0ZSBjb21tdW5pY2F0ZXMgd2l0aCBzaG1lbV9mYXVsdCBvciBzaG1lbV93cml0ZW91dCB2aWFcXG5tbS9zaG1lbS5jLTEwMi0gKiBpbm9kZS1cXHUwMDNlaV9wcml2YXRlICh3aXRoIGlfcndzZW0gbWFraW5nIHN1cmUgdGhhdCBpdCBoYXMgb25seSBvbmUgdXNlciBhdFxcbi0tXFxubW0vc2htZW0uYz0yMjI4PXN0YXRpYyBpbnQgc2htZW1fc3dhcGluX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHBnb2ZmX3QgaW5kZXgsXFxuLS1cXG5tbS9zaG1lbS5jLTIzOTktICpcXG5tbS9zaG1lbS5jOjI0MDA6ICogdm1mIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OiBvdGhlcndpc2UgdGhleSBhcmUgTlVMTC5cXG5tbS9zaG1lbS5jLTI0MDEtICovXFxuLS1cXG5tbS9zaG1lbS5jPTI2NDM9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5tbS9zaG1lbS5jLTI2NTUtXFx0XFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcXG5tbS9zaG1lbS5jOjI2NTY6XFx0XFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcXG5tbS9zaG1lbS5jLTI2NTctXFxuLS1cXG5tbS9zaG1lbS5jLTI2NjAtXFx0XFx0c2htZW1fZmFsbG9jX3dhaXRxID0gc2htZW1fZmFsbG9jLVxcdTAwM2V3YWl0cTtcXG5tbS9zaG1lbS5jOjI2NjE6XFx0XFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQsXFxubW0vc2htZW0uYy0yNjYyLVxcdFxcdFxcdFxcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcXG4tLVxcbm1tL3NobWVtLmMtMjY3My1cXHRcXHRzcGluX2xvY2soXFx1MDAyNmlub2RlLVxcdTAwM2VpX2xvY2spO1xcbm1tL3NobWVtLmM6MjY3NDpcXHRcXHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0KTtcXG5tbS9zaG1lbS5jLTI2NzUtXFx0fVxcbi0tXFxubW0vc2htZW0uYy0yNjgzLVxcbm1tL3NobWVtLmM6MjY4NDpzdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcXG5tbS9zaG1lbS5jLTI2ODUte1xcbi0tXFxubW0vc2htZW0uYz01MjIyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fdm1fb3BzID0ge1xcbm1tL3NobWVtLmM6NTIyMzpcXHQuZmF1bHRcXHRcXHQ9IHNobWVtX2ZhdWx0LFxcbm1tL3NobWVtLmMtNTIyNC1cXHQubWFwX3BhZ2VzXFx0PSBmaWxlbWFwX21hcF9wYWdlcyxcXG4tLVxcbm1tL3NobWVtLmM9NTIzND1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX2Fub25fdm1fb3BzID0ge1xcbm1tL3NobWVtLmM6NTIzNTpcXHQuZmF1bHRcXHRcXHQ9IHNobWVtX2ZhdWx0LFxcbm1tL3NobWVtLmMtNTIzNi1cXHQubWFwX3BhZ2VzXFx0PSBmaWxlbWFwX21hcF9wYWdlcyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MjguNTE1NjQ3NjY2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3Njk1MzM3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBTaG1lbSBGYXVsdCBIYW5kbGVyIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgbW9kaWZ5aW5nIHRoZSBgc2htZW1fZmF1bHRgIGZ1bmN0aW9uLCB3aGljaCwgYXMgYSBjb3JlIG1tL3NobWVtIGZ1bmN0aW9uLCBpbW1lZGlhdGVseSBncmFicyBteSBhdHRlbnRpb24uIFRoZSBjaGFuZ2Ugc2VlbXMgc3RyYWlnaHRmb3J3YXJkOiBhIGBSRUFEX09OQ0VgIG9wZXJhdGlvbiBpcyBiZWluZyBhZGRlZCB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGxpa2VseSBhZGRyZXNzaW5nIHNvbWUgc3VidGxlIGNvbmN1cnJlbmN5IGlzc3VlIHdpdGhpbiB0aGUgc2htZW0vdG1wZnMgaW1wbGVtZW50YXRpb24uIFRoZXNlIGtpbmRzIG9mIGZpeGVzIGFyZSBjcml0aWNhbCwgZXNwZWNpYWxseSBpbiBzaGFyZWQgbWVtb3J5IHN1YnN5c3RlbXMuXG5cblRoZSByZWFsIHF1ZXN0aW9uLCB0aG91Z2gsIGlzIHdoZXRoZXIgdGhpcyBkZXNlcnZlcyBhIGRlZGljYXRlZCBmdXp6aW5nIGNhbXBhaWduLiBHaXZlbiBpdHMgcm9sZSBhcyBhIGNvcmUgZnVuY3Rpb24sIGhhbmRsaW5nIG1lbW9yeSBmYXVsdHMsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gQW55IHN0YWJpbGl0eSBpc3N1ZXMgaW4gdGhpcyBhcmVhIGNvdWxkIGhhdmUgd2lkZXNwcmVhZCBjb25zZXF1ZW5jZXMuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgc2htZW1fZmF1bHRgIHN5bWJvbCBpdHNlbGYuXG5cbkFzIGEgcXVpY2sgY2hlY2ssIEkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFVzdWFsbHksIGBDT05GSUdfU0hNRU1gIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hpY2ggbWVhbnMgYFRNUEZTYCBpcyBhbHNvIGFjdGl2ZS4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgY2FzZSBoZXJlLCBhcyBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQsIGJ1dCBJJ20gZ29pbmcgdG8gcHJvY2VlZCBhc3N1bWluZyBpdCdzIGFjdGl2YXRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyMSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDozMi4wOTI2MDI4NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2OTk4NDYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0hNRU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluaXQvS2NvbmZpZz0xODg3PWNvbmZpZyBFVkVOVEZEXFxuLS1cXG5pbml0L0tjb25maWctMTg5NS1cXG5pbml0L0tjb25maWc6MTg5Njpjb25maWcgU0hNRU1cXG5pbml0L0tjb25maWctMTg5Ny1cXHRib29sIFxcXCJVc2UgZnVsbCBzaG1lbSBmaWxlc3lzdGVtXFxcIiBpZiBFWFBFUlRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MzQuNTYyNTk2MDg0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjM4MzkyMzY2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byBDb25maWd1cmF0aW9uIFNwYWNlKipcblxuT2theSwgc28gd2UncmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1NITUVNYC4gVGhhdCdzIG91ciBzdGFydGluZyBwb2ludC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWxhdGVkIG9yIGFkamFjZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgd2Ugc2hvdWxkIGJlIGF3YXJlIG9mLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgYENPTkZJR19TSE1FTWAgaW4gaXNvbGF0aW9uOyBpdCdzIGFib3V0IHRoZSBicm9hZGVyIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlIGFuZCBob3cgdGhpcyBwaWVjZSBmaXRzIGludG8gdGhlIGxhcmdlciBwdXp6bGUuIEl0J3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucy4gTGV0J3Mgc2VlIHdoYXQgZWxzZSBpcyBpbiBwbGF5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjgxLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MzYuOTQ2NTIxNTk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMDc1ODQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNobWVtX2ZhdWx0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9zaG1lbS5jPTQ2PXN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKnNobV9tbnQgX19yb19hZnRlcl9pbml0O1xcbi0tXFxubW0vc2htZW0uYy0xMDAtLypcXG5tbS9zaG1lbS5jOjEwMTogKiBzaG1lbV9mYWxsb2NhdGUgY29tbXVuaWNhdGVzIHdpdGggc2htZW1fZmF1bHQgb3Igc2htZW1fd3JpdGVvdXQgdmlhXFxubW0vc2htZW0uYy0xMDItICogaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSAod2l0aCBpX3J3c2VtIG1ha2luZyBzdXJlIHRoYXQgaXQgaGFzIG9ubHkgb25lIHVzZXIgYXRcXG4tLVxcbm1tL3NobWVtLmM9MjIyOD1zdGF0aWMgaW50IHNobWVtX3N3YXBpbl9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LFxcbi0tXFxubW0vc2htZW0uYy0yMzk5LSAqXFxubW0vc2htZW0uYzoyNDAwOiAqIHZtZiBhbmQgZmF1bHRfdHlwZSBhcmUgb25seSBzdXBwbGllZCBieSBzaG1lbV9mYXVsdDogb3RoZXJ3aXNlIHRoZXkgYXJlIE5VTEwuXFxubW0vc2htZW0uYy0yNDAxLSAqL1xcbi0tXFxubW0vc2htZW0uYz0yNjQzPXN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxubW0vc2htZW0uYy0yNjU1LVxcdFxcdHdhaXRfcXVldWVfaGVhZF90ICpzaG1lbV9mYWxsb2Nfd2FpdHE7XFxubW0vc2htZW0uYzoyNjU2OlxcdFxcdERFRklORV9XQUlUX0ZVTkMoc2htZW1fZmF1bHRfd2FpdCwgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbik7XFxubW0vc2htZW0uYy0yNjU3LVxcbi0tXFxubW0vc2htZW0uYy0yNjYwLVxcdFxcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cXHUwMDNld2FpdHE7XFxubW0vc2htZW0uYzoyNjYxOlxcdFxcdHByZXBhcmVfdG9fd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxcbm1tL3NobWVtLmMtMjY2Mi1cXHRcXHRcXHRcXHRUQVNLX1VOSU5URVJSVVBUSUJMRSk7XFxuLS1cXG5tbS9zaG1lbS5jLTI2NzMtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZpbm9kZS1cXHUwMDNlaV9sb2NrKTtcXG5tbS9zaG1lbS5jOjI2NzQ6XFx0XFx0ZmluaXNoX3dhaXQoc2htZW1fZmFsbG9jX3dhaXRxLCBcXHUwMDI2c2htZW1fZmF1bHRfd2FpdCk7XFxubW0vc2htZW0uYy0yNjc1LVxcdH1cXG4tLVxcbm1tL3NobWVtLmMtMjY4My1cXG5tbS9zaG1lbS5jOjI2ODQ6c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxubW0vc2htZW0uYy0yNjg1LXtcXG4tLVxcbm1tL3NobWVtLmM9NTIyMj1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX3ZtX29wcyA9IHtcXG5tbS9zaG1lbS5jOjUyMjM6XFx0LmZhdWx0XFx0XFx0PSBzaG1lbV9mYXVsdCxcXG5tbS9zaG1lbS5jLTUyMjQtXFx0Lm1hcF9wYWdlc1xcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXFxuLS1cXG5tbS9zaG1lbS5jPTUyMzQ9c3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBzaG1lbV9hbm9uX3ZtX29wcyA9IHtcXG5tbS9zaG1lbS5jOjUyMzU6XFx0LmZhdWx0XFx0XFx0PSBzaG1lbV9mYXVsdCxcXG5tbS9zaG1lbS5jLTUyMzYtXFx0Lm1hcF9wYWdlc1xcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDIzOjAwOjM3LjAwNzYwMzg3MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MDk2MzY2MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhlIFBhdGNoIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBSRUFEX09OQ0VgIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIHdpdGhpbiBgc2htZW1fZmF1bHRgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXgsIGFkZHJlc3NpbmcgYSBkYXRhIHJhY2Ugb3IgYSBwb3RlbnRpYWwgY29tcGlsZXIgb3B0aW1pemF0aW9uIHByb2JsZW0sIEkgc2VlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZW5zdXJlIHRoZSBmaXggaXMgc29saWQgYnkgZnV6emluZyBpdC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgdHJ1bHkgcmVzb2x2ZXMgdGhlIHJhY2UgY29uZGl0aW9uIHdpdGhvdXQgaW50cm9kdWNpbmcgYW55IG5ldyBpc3N1ZXMuXG5cbldhaXQgYSBzZWNvbmTigKYgaXMgYHNobWVtX2ZhdWx0YCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBZZXMsIG9mIGNvdXJzZSBpdCBpczsgaXQncyB0aGUgc2hhcmVkIG1lbW9yeSBwYWdlIGZhdWx0IGhhbmRsZXIuIE5vdyBJIHJlbWVtYmVyLCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBjYXV0aW9ucyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gVGhhdCdzIGEgdmFsaWQgY29uY2Vybi4gSWYgYHNobWVtX2ZhdWx0YCBpcyBpbmRlZWQgYSBob3QtcGF0aCwgd2hpY2ggaXQgYWxtb3N0IGNlcnRhaW5seSBpcywgSSBzaG91bGQgcmVjb25zaWRlciBpbmNsdWRpbmcgaXQgYXMgYSBwcmltYXJ5IHRhcmdldC4gUGVyaGFwcyBJIHNob3VsZCBmb2N1cyBvbiBhIHJlbGF0ZWQgZnVuY3Rpb24gaW5zdGVhZC4gV2hhdCBhYm91dCBgc2htZW1fZmFsbG9jX3dhaXRgPyBMZXQgbWUgY2hlY2sgdGhhdCBmdW5jdGlvbiBtb3JlIGNsb3NlbHkgdG8gc2VlIGlmIGl0IG1ha2VzIGEgYmV0dGVyIGNhbmRpZGF0ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU4MCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDo0MC45MTcyNDMwNzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2NjU1NjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNobWVtX2ZhbGxvY193YWl0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL3NobWVtLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vc2htZW0uYz0yNjE4PXN0YXRpYyBpbnQgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbih3YWl0X3F1ZXVlX2VudHJ5X3QgKndhaXQsXFxuLS1cXG5tbS9zaG1lbS5jLTI2NDItICovXFxubW0vc2htZW0uYzoyNjQzOnN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbm1tL3NobWVtLmMtMjY0NC17XFxuLS1cXG5tbS9zaG1lbS5jLTI2NTQtXFx0ICAgIHZtZi1cXHUwMDNlcGdvZmYgXFx1MDAzYyBzaG1lbV9mYWxsb2MtXFx1MDAzZW5leHQpIHtcXG5tbS9zaG1lbS5jOjI2NTU6XFx0XFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcXG5tbS9zaG1lbS5jLTI2NTYtXFx0XFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcXG4tLVxcbm1tL3NobWVtLmMtMjY1OS1cXHRcXHRmcGluID0gbWF5YmVfdW5sb2NrX21tYXBfZm9yX2lvKHZtZiwgTlVMTCk7XFxubW0vc2htZW0uYzoyNjYwOlxcdFxcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cXHUwMDNld2FpdHE7XFxubW0vc2htZW0uYzoyNjYxOlxcdFxcdHByZXBhcmVfdG9fd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxcbm1tL3NobWVtLmMtMjY2Mi1cXHRcXHRcXHRcXHRUQVNLX1VOSU5URVJSVVBUSUJMRSk7XFxuLS1cXG5tbS9zaG1lbS5jLTI2NjYtXFx0XFx0LypcXG5tbS9zaG1lbS5jOjI2Njc6XFx0XFx0ICogc2htZW1fZmFsbG9jX3dhaXRxIHBvaW50cyBpbnRvIHRoZSBzaG1lbV9mYWxsb2NhdGUoKVxcbm1tL3NobWVtLmM6MjY2ODpcXHRcXHQgKiBzdGFjayBvZiB0aGUgaG9sZS1wdW5jaGluZyB0YXNrOiBzaG1lbV9mYWxsb2Nfd2FpdHFcXG5tbS9zaG1lbS5jLTI2NjktXFx0XFx0ICogaXMgdXN1YWxseSBpbnZhbGlkIGJ5IHRoZSB0aW1lIHdlIHJlYWNoIGhlcmUsIGJ1dFxcbi0tXFxubW0vc2htZW0uYy0yNjczLVxcdFxcdHNwaW5fbG9jayhcXHUwMDI2aW5vZGUtXFx1MDAzZWlfbG9jayk7XFxubW0vc2htZW0uYzoyNjc0OlxcdFxcdGZpbmlzaF93YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xcbm1tL3NobWVtLmMtMjY3NS1cXHR9XFxuLS1cXG5tbS9zaG1lbS5jPTI2ODQ9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxuLS1cXG5tbS9zaG1lbS5jLTI2OTYtXFx0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cXHUwMDNlaV9wcml2YXRlKSkpIHtcXG5tbS9zaG1lbS5jOjI2OTc6XFx0XFx0cmV0ID0gc2htZW1fZmFsbG9jX3dhaXQodm1mLCBpbm9kZSk7XFxubW0vc2htZW0uYy0yNjk4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5tbS9zaG1lbS5jPTM1OTc9c3RhdGljIGxvbmcgc2htZW1fZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCxcXG4tLVxcbm1tL3NobWVtLmMtMzYyMC1cXHRcXHRsb2ZmX3QgdW5tYXBfZW5kID0gcm91bmRfZG93bihvZmZzZXQgKyBsZW4sIFBBR0VfU0laRSkgLSAxO1xcbm1tL3NobWVtLmM6MzYyMTpcXHRcXHRERUNMQVJFX1dBSVRfUVVFVUVfSEVBRF9PTlNUQUNLKHNobWVtX2ZhbGxvY193YWl0cSk7XFxubW0vc2htZW0uYy0zNjIyLVxcbi0tXFxubW0vc2htZW0uYy0zNjI4LVxcbm1tL3NobWVtLmM6MzYyOTpcXHRcXHRzaG1lbV9mYWxsb2Mud2FpdHEgPSBcXHUwMDI2c2htZW1fZmFsbG9jX3dhaXRxO1xcbm1tL3NobWVtLmMtMzYzMC1cXHRcXHRzaG1lbV9mYWxsb2Muc3RhcnQgPSAodTY0KXVubWFwX3N0YXJ0IFxcdTAwM2VcXHUwMDNlIFBBR0VfU0hJRlQ7XFxuLS1cXG5tbS9zaG1lbS5jLTM2NDMtXFx0XFx0aW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSA9IE5VTEw7XFxubW0vc2htZW0uYzozNjQ0OlxcdFxcdHdha2VfdXBfYWxsKFxcdTAwMjZzaG1lbV9mYWxsb2Nfd2FpdHEpO1xcbm1tL3NobWVtLmM6MzY0NTpcXHRcXHRXQVJOX09OX09OQ0UoIWxpc3RfZW1wdHkoXFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cS5oZWFkKSk7XFxubW0vc2htZW0uYy0zNjQ2LVxcdFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZpbm9kZS1cXHUwMDNlaV9sb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6NDAuOTczOTA0NjE3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3NzAwODMwNTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ29uY3VycmVuY3kgQnVnIGluIHRoZSB0bXBmcyBGaWxlc3lzdGVtKipcblxuT2theSwgc28gaGVyZSdzIHdoYXQncyBoYXBwZW5pbmcuIEknbSBsb29raW5nIGF0IGEgZml4IHJlbGF0ZWQgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gdGhlIHRtcGZzIChzaGFyZWQgbWVtb3J5IGZpbGVzeXN0ZW0pLiBNeSB0aG91Z2h0IHByb2Nlc3MgaXMgY2VudGVyZWQgYXJvdW5kIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGBzaG1lbV9mYWxsb2Nfd2FpdGAgYW5kIGBzaG1lbV9mYXVsdGAuIEl0IGxvb2tzIGxpa2UgYHNobWVtX2ZhbGxvY193YWl0YCBnZXRzIGNhbGxlZCBmcm9tIGBzaG1lbV9mYXVsdGAgd2hlbiBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpcyBzZXQsIHdoaWNoIGhhcHBlbnMgKmR1cmluZyogYHNobWVtX2ZhbGxvY2F0ZWAuIFRoZXJlZm9yZSwgdGhlIGNydXggb2YgdGhlIHByb2JsZW0gbGllcyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLCBhcyBpdCdzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGF0IGNydWNpYWwgYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgdmFsdWUuXG5cblNvLCB0aGUgbGlrZWx5IHRyaWdnZXIgaXMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSBgc2htZW1fZmFsbG9jYXRlYCBhbmQgYHNobWVtX2ZhdWx0YCBhcmUgY2FsbGVkIGNvbmN1cnJlbnRseS4gVGhhdCBtZWFucyBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgaXMgYSBnb29kIGFwcHJvYWNoIHRvIGV4cG9zZSB0aGUgYnVnLiBTcGVjaWZpY2FsbHksIGBzaG1lbV9mYWxsb2NhdGVgIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gdG8gdGFyZ2V0IGZvciBmdXp6aW5nLCBhbG9uZyB3aXRoIGBzaG1lbV9mYWxsb2Nfd2FpdGAuXG5cbkxldCdzIGxpc3QgdGhvc2Ugb3V0OiBgc2htZW1fZmFsbG9jYXRlYCwgYHNobWVtX2ZhbGxvY193YWl0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBgU0hNRU1gLlxuXG5CYXNlZCBvbiB0aGUgcGF0Y2ggZGV0YWlscywgdGhlIGZpeCBpbnZvbHZlcyBhIGBSRUFEX09OQ0VgIGNvbXBpbGVyIGJhcnJpZXIgb24gYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgd2l0aGluIGBzaG1lbV9mYXVsdGAuIFRoaXMgYmFycmllciBwcmV2ZW50cyB0aGUgY29tcGlsZXIgZnJvbSBvcHRpbWl6aW5nIGJ5IGNhY2hpbmcgdGhlIHZhbHVlIG9mIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgLCB3aGljaCBjb3VsZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiBgc2htZW1fZmFsbG9jYXRlYCBpcyBtb2RpZnlpbmcgaXQgc2ltdWx0YW5lb3VzbHkuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjb25jdXJyZW5jeSBidWcuXG5cbkkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBgU0hNRU1gIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZy4gWWVzLCBpdCBsb29rcyBsaWtlIGBDT05GSUdfU0hNRU1gIGlzIHRoZSBtYWluIG9uZS5cblxuUmlnaHQsIGxldCBtZSBjbGFyaWZ5OiBgc2htZW1fZmFsbG9jYXRlYCBpcyB0aGUgc3lzdGVtIGNhbGwgaGFuZGxlciBmb3IgYGZhbGxvY2F0ZWAgb24gdG1wZnMuIGBzaG1lbV9mYXVsdGAgaXMgdGhlIHBhZ2UgZmF1bHQgaGFuZGxlci4gU28sIHRoZSBvcmlnaW5hbCBhc3Nlc3NtZW50IGlzIGNvbmZpcm1lZDogZnV6emluZyB0aGVzZSB0d28gZnVuY3Rpb25zIC0tIGBzaG1lbV9mYWxsb2NhdGVgIGFuZCBgc2htZW1fZmFsbG9jX3dhaXRgIC0tIHNlZW1zIGxpa2UgdGhlIHJpZ2h0IHN0cmF0ZWd5IHRvIHRyaWdnZXIgdGhlIGJ1Zy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk1NSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6NDcuNzQzOTg5Njk2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk3NDc3MjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[0].run-triage(0) Phase: Succeeded StartedAt: 2026-06-27 22:52:24 +0000 UTC FinishedAt: 2026-06-27 23:00:48 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SHMEM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "mm-new", "tree_url": "https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git", "commit_hash": "840ef6c78e6a2f694b578ecb9063241c992aaa9e", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "SHMEM" ], "series_id": "c150f9d7-10be-41d2-bb09-3288783771bd" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "shmem_fallocate", "shmem_falloc_wait" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": true, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NITUVNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2htZW1fZmFsbG9jYXRlJiMzNDssCiAgICAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpbiBgc2htZW1fZmF1bHRgIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gY2FjaGluZyB0aGUgdmFsdWUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBoYW5nIHdoZW4gcmFjaW5nIHdpdGggYHNobWVtX2ZhbGxvY2F0ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgYSBjb25jdXJyZW5jeSBidWcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAxZWViMDNjZmFlNjY2Zjg4Yzk5ZjRiMDEwZTMwYTAyNzhiOGQ5ODhjXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFNhdCBKdW4gMjcgMjM6MDA6MjEgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmNcbmluZGV4IGI1MWY4M2M5NzBiYjM3Li45N2IzOTEzMTQ0YWQzNyAxMDA2NDRcbi0tLSBhL21tL3NobWVtLmNcbiYjNDM7JiM0MzsmIzQzOyBiL21tL3NobWVtLmNcbkBAIC0yNjkzLDcgJiM0MzsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4gXHQgKiBUcmluaXR5IGZpbmRzIHRoYXQgcHJvYmluZyBhIGhvbGUgd2hpY2ggdG1wZnMgaXMgcHVuY2hpbmcgY2FuXG4gXHQgKiBwcmV2ZW50IHRoZSBob2xlLXB1bmNoIGZyb20gZXZlciBjb21wbGV0aW5nOiBub3RlZCBpbiBpX3ByaXZhdGUuXG4gXHQgKi9cbi1cdGlmICh1bmxpa2VseShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSB7XG4mIzQzO1x0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSkge1xuIFx0XHRyZXQgPSBzaG1lbV9mYWxsb2Nfd2FpdCh2bWYsIGlub2RlKTtcbiBcdFx0aWYgKHJldClcbiBcdFx0XHRyZXR1cm4gcmV0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O1NITUVNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7c2htZW1fZmFsbG9jYXRlJiMzNDssCiAgICAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpbiBgc2htZW1fZmF1bHRgIHRvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gY2FjaGluZyB0aGUgdmFsdWUsIHdoaWNoIGNvdWxkIGxlYWQgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBoYW5nIHdoZW4gcmFjaW5nIHdpdGggYHNobWVtX2ZhbGxvY2F0ZWAuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBmaXhpbmcgYSBjb25jdXJyZW5jeSBidWcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKZXZlbiB3aGVuIHV0aWxpemluZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZSAoZS5nLiwgdXNiIGdhZGdldCwgbWFjODAyMTFfaHdzaW0pLgoKSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaAp0b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS4KCldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOgoxLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLgogICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0CiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSwKICAgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGMKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgU2F0IEp1biAyNyAyMzowMDoyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jCmluZGV4IGI1MWY4M2M5NzBiYjM3Li45N2IzOTEzMTQ0YWQzNyAxMDA2NDQKLS0tIGEvbW0vc2htZW0uYwomIzQzOyYjNDM7JiM0MzsgYi9tbS9zaG1lbS5jCkBAIC0yNjkzLDcgJiM0MzsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCiAJICogVHJpbml0eSBmaW5kcyB0aGF0IHByb2JpbmcgYSBob2xlIHdoaWNoIHRtcGZzIGlzIHB1bmNoaW5nIGNhbgogCSAqIHByZXZlbnQgdGhlIGhvbGUtcHVuY2ggZnJvbSBldmVyIGNvbXBsZXRpbmc6IG5vdGVkIGluIGlfcHJpdmF0ZS4KIAkgKi8KLQlpZiAodW5saWtlbHkoaW5vZGUtJmd0O2lfcHJpdmF0ZSkpIHsKJiM0MzsJaWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS0mZ3Q7aV9wcml2YXRlKSkpIHsKIAkJcmV0ID0gc2htZW1fZmFsbG9jX3dhaXQodm1mLCBpbm9kZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0Owo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxODQzCgkJCQkJCQlvdXRwdXQ6IDMwCgkJCQkJCQl0aG91Z2h0czogMjMzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG1tL3NobWVtLmNgIFBhdGNoKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIHRoYXQgdHdlYWtzIGBtbS9zaG1lbS5jYC4gVGhlIGNvcmUgb2YgdGhlIGNoYW5nZSBpcyBhZGRpbmcgYFJFQURfT05DRWAgYXJvdW5kIHRoZSBjaGVjayBmb3IgYGlub2RlLSZndDtpX3ByaXZhdGVgOgoKYGBgYwotCWlmICh1bmxpa2VseShpbm9kZS0mZ3Q7aV9wcml2YXRlKSkgewomIzQzOwlpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLSZndDtpX3ByaXZhdGUpKSkgewpgYGAKCk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gQWRkaW5nIGBSRUFEX09OQ0VgIGhlcmUgaXMgYWJvdXQgcHJldmVudGluZyB0aGUgY29tcGlsZXIgZnJvbSBnZXR0aW5nIHRvbyBjbGV2ZXIsIHNwZWNpZmljYWxseSBieSBhdm9pZGluZyBvcHRpbWl6YXRpb25zIGxpa2UgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLSZndDtpX3ByaXZhdGVgIGluIGEgcmVnaXN0ZXIuIFNvLCBlc3NlbnRpYWxseSwgaXTigJlzIGEgY29tcGlsZXIgYmFycmllci4gSSBjb25maXJtIHRoYXQgYFJFQURfT05DRWAgKmlzKiBhIGNvbXBpbGVyIGJhcnJpZXIuCgpEb2VzIHRoaXMgYWN0dWFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cgaW4gYSAqZnVuY3Rpb25hbCogd2F5PyBBYnNvbHV0ZWx5LiBXaGlsZSB0aGUgY29kZSBtaWdodCAqYXBwZWFyKiBmdW5jdGlvbmFsbHkgdGhlIHNhbWUgdG8gc29tZW9uZSBub3QgdW5kZXJzdGFuZGluZyB0aGUgdW5kZXJseWluZyBtZWNoYW5pY3MsIGl0IGFjdHVhbGx5IGFkZHJlc3NlcyBhIHBvdGVudGlhbCBjb25jdXJyZW5jeSBidWcgb3IsIG1vcmUgc3BlY2lmaWNhbGx5LCBhIGNvbXBpbGVyIG9wdGltaXphdGlvbiBpc3N1ZS4gVGhpcyBjb3VsZCBwcmV2ZW50IGEgc2l0dWF0aW9uIHdoZXJlIHRoZSBjYWNoZWQgdmFsdWUgbGVhZHMgdG8gYW4gaW5maW5pdGUgbG9vcCBvciBvdGhlciB1bmV4cGVjdGVkIGJlaGF2aW9yLgoKTm93LCBJJiMzOTttIHJlbWluZGVkIG9mIHRoZSBwcm9tcHQsIHdoaWNoIHNwZWNpZmljYWxseSBmbGFncyBhIGBXb3J0aEZ1enppbmc9ZmFsc2VgIGNvbmRpdGlvbiBpZiBpdCAqb25seSogY29udGFpbnMgY2hhbmdlcyB0byBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgKmRvbiYjMzk7dCogYWx0ZXIgZXhlY3V0aW9uIGZsb3cuIEluIHRoaXMgY2FzZSwgYWRkaW5nIGBSRUFEX09OQ0VgICpkb2VzKiBmdW5jdGlvbmFsbHkgY2hhbmdlIGV4ZWN1dGlvbiwgYmVjYXVzZSBpdCBmaXhlcyBhIGNvbmN1cnJlbmN5IGJ1ZyB0aGF0IGNvdWxkIGFyaXNlIGZyb20gdGhlIGNvbXBpbGVyJiMzOTtzIG9wdGltaXphdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgY291bGQgZml4IGEgYnVnIHRoYXQgd2UgbWlnaHQgZXhwb3NlIHdpdGggZnV6emluZy4KCkp1c3QgdG8gYmUgdGhvcm91Z2gsIEkgc2hvdWxkIHJlYWxseSBjaGVjayB0aGUgc3Vycm91bmRpbmcgY29kZSBpbiBgbW0vc2htZW0uY2AsIHN0YXJ0aW5nIHdpdGggYHNobWVtX2ZhdWx0YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaG1lbV9mYXVsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL3NobWVtLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vc2htZW0uYz00Nj1zdGF0aWMgc3RydWN0IHZmc21vdW50ICpzaG1fbW50IF9fcm9fYWZ0ZXJfaW5pdDtcbi0tXG5tbS9zaG1lbS5jLTEwMC0vKlxubW0vc2htZW0uYzoxMDE6ICogc2htZW1fZmFsbG9jYXRlIGNvbW11bmljYXRlcyB3aXRoIHNobWVtX2ZhdWx0IG9yIHNobWVtX3dyaXRlb3V0IHZpYVxubW0vc2htZW0uYy0xMDItICogaW5vZGUtXHUwMDNlaV9wcml2YXRlICh3aXRoIGlfcndzZW0gbWFraW5nIHN1cmUgdGhhdCBpdCBoYXMgb25seSBvbmUgdXNlciBhdFxuLS1cbm1tL3NobWVtLmM9MjIyOD1zdGF0aWMgaW50IHNobWVtX3N3YXBpbl9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LFxuLS1cbm1tL3NobWVtLmMtMjM5OS0gKlxubW0vc2htZW0uYzoyNDAwOiAqIHZtZiBhbmQgZmF1bHRfdHlwZSBhcmUgb25seSBzdXBwbGllZCBieSBzaG1lbV9mYXVsdDogb3RoZXJ3aXNlIHRoZXkgYXJlIE5VTEwuXG5tbS9zaG1lbS5jLTI0MDEtICovXG4tLVxubW0vc2htZW0uYz0yNjQzPXN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxuLS1cbm1tL3NobWVtLmMtMjY1NS1cdFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcbm1tL3NobWVtLmM6MjY1NjpcdFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcbm1tL3NobWVtLmMtMjY1Ny1cbi0tXG5tbS9zaG1lbS5jLTI2NjAtXHRcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cdTAwM2V3YWl0cTtcbm1tL3NobWVtLmM6MjY2MTpcdFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCxcbm1tL3NobWVtLmMtMjY2Mi1cdFx0XHRcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcbi0tXG5tbS9zaG1lbS5jLTI2NzMtXHRcdHNwaW5fbG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xubW0vc2htZW0uYzoyNjc0Olx0XHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xubW0vc2htZW0uYy0yNjc1LVx0fVxuLS1cbm1tL3NobWVtLmMtMjY4My1cbm1tL3NobWVtLmM6MjY4NDpzdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcbm1tL3NobWVtLmMtMjY4NS17XG4tLVxubW0vc2htZW0uYz01MjIyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fdm1fb3BzID0ge1xubW0vc2htZW0uYzo1MjIzOlx0LmZhdWx0XHRcdD0gc2htZW1fZmF1bHQsXG5tbS9zaG1lbS5jLTUyMjQtXHQubWFwX3BhZ2VzXHQ9IGZpbGVtYXBfbWFwX3BhZ2VzLFxuLS1cbm1tL3NobWVtLmM9NTIzND1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX2Fub25fdm1fb3BzID0ge1xubW0vc2htZW0uYzo1MjM1Olx0LmZhdWx0XHRcdD0gc2htZW1fZmF1bHQsXG5tbS9zaG1lbS5jLTUyMzYtXHQubWFwX3BhZ2VzXHQ9IGZpbGVtYXBfbWFwX3BhZ2VzLFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDMyMjEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIGEgU2htZW0gRmF1bHQgSGFuZGxlciBGaXgqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0JiMzOTtzIG1vZGlmeWluZyB0aGUgYHNobWVtX2ZhdWx0YCBmdW5jdGlvbiwgd2hpY2gsIGFzIGEgY29yZSBtbS9zaG1lbSBmdW5jdGlvbiwgaW1tZWRpYXRlbHkgZ3JhYnMgbXkgYXR0ZW50aW9uLiBUaGUgY2hhbmdlIHNlZW1zIHN0cmFpZ2h0Zm9yd2FyZDogYSBgUkVBRF9PTkNFYCBvcGVyYXRpb24gaXMgYmVpbmcgYWRkZWQgdG8gYGlub2RlLSZndDtpX3ByaXZhdGVgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMsIHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgbGlrZWx5IGFkZHJlc3Npbmcgc29tZSBzdWJ0bGUgY29uY3VycmVuY3kgaXNzdWUgd2l0aGluIHRoZSBzaG1lbS90bXBmcyBpbXBsZW1lbnRhdGlvbi4gVGhlc2Uga2luZHMgb2YgZml4ZXMgYXJlIGNyaXRpY2FsLCBlc3BlY2lhbGx5IGluIHNoYXJlZCBtZW1vcnkgc3Vic3lzdGVtcy4KClRoZSByZWFsIHF1ZXN0aW9uLCB0aG91Z2gsIGlzIHdoZXRoZXIgdGhpcyBkZXNlcnZlcyBhIGRlZGljYXRlZCBmdXp6aW5nIGNhbXBhaWduLiBHaXZlbiBpdHMgcm9sZSBhcyBhIGNvcmUgZnVuY3Rpb24sIGhhbmRsaW5nIG1lbW9yeSBmYXVsdHMsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gQW55IHN0YWJpbGl0eSBpc3N1ZXMgaW4gdGhpcyBhcmVhIGNvdWxkIGhhdmUgd2lkZXNwcmVhZCBjb25zZXF1ZW5jZXMuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgc2htZW1fZmF1bHRgIHN5bWJvbCBpdHNlbGYuCgpBcyBhIHF1aWNrIGNoZWNrLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBvcHRpb25zLiBVc3VhbGx5LCBgQ09ORklHX1NITUVNYCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQsIHdoaWNoIG1lYW5zIGBUTVBGU2AgaXMgYWxzbyBhY3RpdmUuIEkgc2hvdWxkIHByb2JhYmx5IGRvdWJsZS1jaGVjayB0aGF0IHRoaXMgaXMgdGhlIGNhc2UgaGVyZSwgYXMgaXQmIzM5O3Mgc29tZXRoaW5nIHRvIGtlZXAgaW4gbWluZCwgYnV0IEkmIzM5O20gZ29pbmcgdG8gcHJvY2VlZCBhc3N1bWluZyBpdCYjMzk7cyBhY3RpdmF0ZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFNITUVNJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2luaXQvS2NvbmZpZz0xODg3PWNvbmZpZyBFVkVOVEZEXG4tLVxuaW5pdC9LY29uZmlnLTE4OTUtXG5pbml0L0tjb25maWc6MTg5Njpjb25maWcgU0hNRU1cbmluaXQvS2NvbmZpZy0xODk3LVx0Ym9vbCBcJiMzNDtVc2UgZnVsbCBzaG1lbSBmaWxlc3lzdGVtXCYjMzQ7IGlmIEVYUEVSVFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM2ODEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAyMgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3M6CgoqKkRpdmluZyBpbnRvIENvbmZpZ3VyYXRpb24gU3BhY2UqKgoKT2theSwgc28gd2UmIzM5O3JlIHRhbGtpbmcgYWJvdXQgYENPTkZJR19TSE1FTWAuIFRoYXQmIzM5O3Mgb3VyIHN0YXJ0aW5nIHBvaW50LiBJJiMzOTttIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWxhdGVkIG9yIGFkamFjZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgd2Ugc2hvdWxkIGJlIGF3YXJlIG9mLiBUaGlzIGlzbiYjMzk7dCBqdXN0IGFib3V0IGBDT05GSUdfU0hNRU1gIGluIGlzb2xhdGlvbjsgaXQmIzM5O3MgYWJvdXQgdGhlIGJyb2FkZXIgY29uZmlndXJhdGlvbiBsYW5kc2NhcGUgYW5kIGhvdyB0aGlzIHBpZWNlIGZpdHMgaW50byB0aGUgbGFyZ2VyIHB1enpsZS4gSXQmIzM5O3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucy4gTGV0JiMzOTtzIHNlZSB3aGF0IGVsc2UgaXMgaW4gcGxheS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtzaG1lbV9mYXVsdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9zaG1lbS5jPTQ2PXN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKnNobV9tbnQgX19yb19hZnRlcl9pbml0O1xuLS1cbm1tL3NobWVtLmMtMTAwLS8qXG5tbS9zaG1lbS5jOjEwMTogKiBzaG1lbV9mYWxsb2NhdGUgY29tbXVuaWNhdGVzIHdpdGggc2htZW1fZmF1bHQgb3Igc2htZW1fd3JpdGVvdXQgdmlhXG5tbS9zaG1lbS5jLTEwMi0gKiBpbm9kZS1cdTAwM2VpX3ByaXZhdGUgKHdpdGggaV9yd3NlbSBtYWtpbmcgc3VyZSB0aGF0IGl0IGhhcyBvbmx5IG9uZSB1c2VyIGF0XG4tLVxubW0vc2htZW0uYz0yMjI4PXN0YXRpYyBpbnQgc2htZW1fc3dhcGluX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHBnb2ZmX3QgaW5kZXgsXG4tLVxubW0vc2htZW0uYy0yMzk5LSAqXG5tbS9zaG1lbS5jOjI0MDA6ICogdm1mIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OiBvdGhlcndpc2UgdGhleSBhcmUgTlVMTC5cbm1tL3NobWVtLmMtMjQwMS0gKi9cbi0tXG5tbS9zaG1lbS5jPTI2NDM9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG4tLVxubW0vc2htZW0uYy0yNjU1LVx0XHR3YWl0X3F1ZXVlX2hlYWRfdCAqc2htZW1fZmFsbG9jX3dhaXRxO1xubW0vc2htZW0uYzoyNjU2Olx0XHRERUZJTkVfV0FJVF9GVU5DKHNobWVtX2ZhdWx0X3dhaXQsIHN5bmNocm9ub3VzX3dha2VfZnVuY3Rpb24pO1xubW0vc2htZW0uYy0yNjU3LVxuLS1cbm1tL3NobWVtLmMtMjY2MC1cdFx0c2htZW1fZmFsbG9jX3dhaXRxID0gc2htZW1fZmFsbG9jLVx1MDAzZXdhaXRxO1xubW0vc2htZW0uYzoyNjYxOlx0XHRwcmVwYXJlX3RvX3dhaXQoc2htZW1fZmFsbG9jX3dhaXRxLCBcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxubW0vc2htZW0uYy0yNjYyLVx0XHRcdFx0VEFTS19VTklOVEVSUlVQVElCTEUpO1xuLS1cbm1tL3NobWVtLmMtMjY3My1cdFx0c3Bpbl9sb2NrKFx1MDAyNmlub2RlLVx1MDAzZWlfbG9jayk7XG5tbS9zaG1lbS5jOjI2NzQ6XHRcdGZpbmlzaF93YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCk7XG5tbS9zaG1lbS5jLTI2NzUtXHR9XG4tLVxubW0vc2htZW0uYy0yNjgzLVxubW0vc2htZW0uYzoyNjg0OnN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKVxubW0vc2htZW0uYy0yNjg1LXtcbi0tXG5tbS9zaG1lbS5jPTUyMjI9c3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBzaG1lbV92bV9vcHMgPSB7XG5tbS9zaG1lbS5jOjUyMjM6XHQuZmF1bHRcdFx0PSBzaG1lbV9mYXVsdCxcbm1tL3NobWVtLmMtNTIyNC1cdC5tYXBfcGFnZXNcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXG4tLVxubW0vc2htZW0uYz01MjM0PXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fYW5vbl92bV9vcHMgPSB7XG5tbS9zaG1lbS5jOjUyMzU6XHQuZmF1bHRcdFx0PSBzaG1lbV9mYXVsdCxcbm1tL3NobWVtLmMtNTIzNi1cdC5tYXBfcGFnZXNcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDYvMjcgMjM6MDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDU4MAoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDE2NAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIEltcGxpY2F0aW9ucyBvZiB0aGUgUGF0Y2ggYW5kIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBSRUFEX09OQ0VgIHRvIGBpbm9kZS0mZ3Q7aV9wcml2YXRlYCB3aXRoaW4gYHNobWVtX2ZhdWx0YC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgZml4LCBhZGRyZXNzaW5nIGEgZGF0YSByYWNlIG9yIGEgcG90ZW50aWFsIGNvbXBpbGVyIG9wdGltaXphdGlvbiBwcm9ibGVtLCBJIHNlZS4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGVuc3VyZSB0aGUgZml4IGlzIHNvbGlkIGJ5IGZ1enppbmcgaXQuIEkgbmVlZCB0byB2ZXJpZnkgdGhhdCB0aGlzIHRydWx5IHJlc29sdmVzIHRoZSByYWNlIGNvbmRpdGlvbiB3aXRob3V0IGludHJvZHVjaW5nIGFueSBuZXcgaXNzdWVzLgoKV2FpdCBhIHNlY29uZOKApiBpcyBgc2htZW1fZmF1bHRgIGEgaG90LXBhdGggZnVuY3Rpb24/IFllcywgb2YgY291cnNlIGl0IGlzOyBpdCYjMzk7cyB0aGUgc2hhcmVkIG1lbW9yeSBwYWdlIGZhdWx0IGhhbmRsZXIuIE5vdyBJIHJlbWVtYmVyLCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBjYXV0aW9ucyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gVGhhdCYjMzk7cyBhIHZhbGlkIGNvbmNlcm4uIElmIGBzaG1lbV9mYXVsdGAgaXMgaW5kZWVkIGEgaG90LXBhdGgsIHdoaWNoIGl0IGFsbW9zdCBjZXJ0YWlubHkgaXMsIEkgc2hvdWxkIHJlY29uc2lkZXIgaW5jbHVkaW5nIGl0IGFzIGEgcHJpbWFyeSB0YXJnZXQuIFBlcmhhcHMgSSBzaG91bGQgZm9jdXMgb24gYSByZWxhdGVkIGZ1bmN0aW9uIGluc3RlYWQuIFdoYXQgYWJvdXQgYHNobWVtX2ZhbGxvY193YWl0YD8gTGV0IG1lIGNoZWNrIHRoYXQgZnVuY3Rpb24gbW9yZSBjbG9zZWx5IHRvIHNlZSBpZiBpdCBtYWtlcyBhIGJldHRlciBjYW5kaWRhdGUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA2LzI3IDIzOjAwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NobWVtX2ZhbGxvY193YWl0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vc2htZW0uYyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9zaG1lbS5jPTI2MTg9c3RhdGljIGludCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKHdhaXRfcXVldWVfZW50cnlfdCAqd2FpdCxcbi0tXG5tbS9zaG1lbS5jLTI2NDItICovXG5tbS9zaG1lbS5jOjI2NDM6c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXG5tbS9zaG1lbS5jLTI2NDQte1xuLS1cbm1tL3NobWVtLmMtMjY1NC1cdCAgICB2bWYtXHUwMDNlcGdvZmYgXHUwMDNjIHNobWVtX2ZhbGxvYy1cdTAwM2VuZXh0KSB7XG5tbS9zaG1lbS5jOjI2NTU6XHRcdHdhaXRfcXVldWVfaGVhZF90ICpzaG1lbV9mYWxsb2Nfd2FpdHE7XG5tbS9zaG1lbS5jLTI2NTYtXHRcdERFRklORV9XQUlUX0ZVTkMoc2htZW1fZmF1bHRfd2FpdCwgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbik7XG4tLVxubW0vc2htZW0uYy0yNjU5LVx0XHRmcGluID0gbWF5YmVfdW5sb2NrX21tYXBfZm9yX2lvKHZtZiwgTlVMTCk7XG5tbS9zaG1lbS5jOjI2NjA6XHRcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cdTAwM2V3YWl0cTtcbm1tL3NobWVtLmM6MjY2MTpcdFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXHUwMDI2c2htZW1fZmF1bHRfd2FpdCxcbm1tL3NobWVtLmMtMjY2Mi1cdFx0XHRcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcbi0tXG5tbS9zaG1lbS5jLTI2NjYtXHRcdC8qXG5tbS9zaG1lbS5jOjI2Njc6XHRcdCAqIHNobWVtX2ZhbGxvY193YWl0cSBwb2ludHMgaW50byB0aGUgc2htZW1fZmFsbG9jYXRlKClcbm1tL3NobWVtLmM6MjY2ODpcdFx0ICogc3RhY2sgb2YgdGhlIGhvbGUtcHVuY2hpbmcgdGFzazogc2htZW1fZmFsbG9jX3dhaXRxXG5tbS9zaG1lbS5jLTI2NjktXHRcdCAqIGlzIHVzdWFsbHkgaW52YWxpZCBieSB0aGUgdGltZSB3ZSByZWFjaCBoZXJlLCBidXRcbi0tXG5tbS9zaG1lbS5jLTI2NzMtXHRcdHNwaW5fbG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xubW0vc2htZW0uYzoyNjc0Olx0XHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xubW0vc2htZW0uYy0yNjc1LVx0fVxuLS1cbm1tL3NobWVtLmM9MjY4ND1zdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcbi0tXG5tbS9zaG1lbS5jLTI2OTYtXHRpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLVx1MDAzZWlfcHJpdmF0ZSkpKSB7XG5tbS9zaG1lbS5jOjI2OTc6XHRcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xubW0vc2htZW0uYy0yNjk4LVx0XHRpZiAocmV0KVxuLS1cbm1tL3NobWVtLmM9MzU5Nz1zdGF0aWMgbG9uZyBzaG1lbV9mYWxsb2NhdGUoc3RydWN0IGZpbGUgKmZpbGUsIGludCBtb2RlLCBsb2ZmX3Qgb2Zmc2V0LFxuLS1cbm1tL3NobWVtLmMtMzYyMC1cdFx0bG9mZl90IHVubWFwX2VuZCA9IHJvdW5kX2Rvd24ob2Zmc2V0ICYjNDM7IGxlbiwgUEFHRV9TSVpFKSAtIDE7XG5tbS9zaG1lbS5jOjM2MjE6XHRcdERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEX09OU1RBQ0soc2htZW1fZmFsbG9jX3dhaXRxKTtcbm1tL3NobWVtLmMtMzYyMi1cbi0tXG5tbS9zaG1lbS5jLTM2MjgtXG5tbS9zaG1lbS5jOjM2Mjk6XHRcdHNobWVtX2ZhbGxvYy53YWl0cSA9IFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cTtcbm1tL3NobWVtLmMtMzYzMC1cdFx0c2htZW1fZmFsbG9jLnN0YXJ0ID0gKHU2NCl1bm1hcF9zdGFydCBcdTAwM2VcdTAwM2UgUEFHRV9TSElGVDtcbi0tXG5tbS9zaG1lbS5jLTM2NDMtXHRcdGlub2RlLVx1MDAzZWlfcHJpdmF0ZSA9IE5VTEw7XG5tbS9zaG1lbS5jOjM2NDQ6XHRcdHdha2VfdXBfYWxsKFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cSk7XG5tbS9zaG1lbS5jOjM2NDU6XHRcdFdBUk5fT05fT05DRSghbGlzdF9lbXB0eShcdTAwMjZzaG1lbV9mYWxsb2Nfd2FpdHEuaGVhZCkpO1xubW0vc2htZW0uYy0zNjQ2LVx0XHRzcGluX3VubG9jayhcdTAwMjZpbm9kZS1cdTAwM2VpX2xvY2spO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1OTU1CgkJCQkJCQlvdXRwdXQ6IDExNQoJCQkJCQkJdGhvdWdodHM6IDI5OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBDb25jdXJyZW5jeSBCdWcgaW4gdGhlIHRtcGZzIEZpbGVzeXN0ZW0qKgoKT2theSwgc28gaGVyZSYjMzk7cyB3aGF0JiMzOTtzIGhhcHBlbmluZy4gSSYjMzk7bSBsb29raW5nIGF0IGEgZml4IHJlbGF0ZWQgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gdGhlIHRtcGZzIChzaGFyZWQgbWVtb3J5IGZpbGVzeXN0ZW0pLiBNeSB0aG91Z2h0IHByb2Nlc3MgaXMgY2VudGVyZWQgYXJvdW5kIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGBzaG1lbV9mYWxsb2Nfd2FpdGAgYW5kIGBzaG1lbV9mYXVsdGAuIEl0IGxvb2tzIGxpa2UgYHNobWVtX2ZhbGxvY193YWl0YCBnZXRzIGNhbGxlZCBmcm9tIGBzaG1lbV9mYXVsdGAgd2hlbiBgaW5vZGUtJmd0O2lfcHJpdmF0ZWAgaXMgc2V0LCB3aGljaCBoYXBwZW5zICpkdXJpbmcqIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGVyZWZvcmUsIHRoZSBjcnV4IG9mIHRoZSBwcm9ibGVtIGxpZXMgd2l0aCBgc2htZW1fZmFsbG9jYXRlYCwgYXMgaXQmIzM5O3MgdGhlIGZ1bmN0aW9uIHJlc3BvbnNpYmxlIGZvciBzZXR0aW5nIHRoYXQgY3J1Y2lhbCBgaW5vZGUtJmd0O2lfcHJpdmF0ZWAgdmFsdWUuCgpTbywgdGhlIGxpa2VseSB0cmlnZ2VyIGlzIGEgcmFjZSBjb25kaXRpb24gd2hlcmUgYHNobWVtX2ZhbGxvY2F0ZWAgYW5kIGBzaG1lbV9mYXVsdGAgYXJlIGNhbGxlZCBjb25jdXJyZW50bHkuIFRoYXQgbWVhbnMgZnV6emluZyB0aGVzZSB0d28gZnVuY3Rpb25zIGlzIGEgZ29vZCBhcHByb2FjaCB0byBleHBvc2UgdGhlIGJ1Zy4gU3BlY2lmaWNhbGx5LCBgc2htZW1fZmFsbG9jYXRlYCBsb29rcyBsaWtlIGEga2V5IGZ1bmN0aW9uIHRvIHRhcmdldCBmb3IgZnV6emluZywgYWxvbmcgd2l0aCBgc2htZW1fZmFsbG9jX3dhaXRgLgoKTGV0JiMzOTtzIGxpc3QgdGhvc2Ugb3V0OiBgc2htZW1fZmFsbG9jYXRlYCwgYHNobWVtX2ZhbGxvY193YWl0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBgU0hNRU1gLgoKQmFzZWQgb24gdGhlIHBhdGNoIGRldGFpbHMsIHRoZSBmaXggaW52b2x2ZXMgYSBgUkVBRF9PTkNFYCBjb21waWxlciBiYXJyaWVyIG9uIGBpbm9kZS0mZ3Q7aV9wcml2YXRlYCB3aXRoaW4gYHNobWVtX2ZhdWx0YC4gVGhpcyBiYXJyaWVyIHByZXZlbnRzIHRoZSBjb21waWxlciBmcm9tIG9wdGltaXppbmcgYnkgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLSZndDtpX3ByaXZhdGVgLCB3aGljaCBjb3VsZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiBgc2htZW1fZmFsbG9jYXRlYCBpcyBtb2RpZnlpbmcgaXQgc2ltdWx0YW5lb3VzbHkuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjb25jdXJyZW5jeSBidWcuCgpJIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgYFNITUVNYCBpcyB0aGUgb25seSByZWxldmFudCBjb25maWcuIFllcywgaXQgbG9va3MgbGlrZSBgQ09ORklHX1NITUVNYCBpcyB0aGUgbWFpbiBvbmUuCgpSaWdodCwgbGV0IG1lIGNsYXJpZnk6IGBzaG1lbV9mYWxsb2NhdGVgIGlzIHRoZSBzeXN0ZW0gY2FsbCBoYW5kbGVyIGZvciBgZmFsbG9jYXRlYCBvbiB0bXBmcy4gYHNobWVtX2ZhdWx0YCBpcyB0aGUgcGFnZSBmYXVsdCBoYW5kbGVyLiBTbywgdGhlIG9yaWdpbmFsIGFzc2Vzc21lbnQgaXMgY29uZmlybWVkOiBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgLS0gYHNobWVtX2ZhbGxvY2F0ZWAgYW5kIGBzaG1lbV9mYWxsb2Nfd2FpdGAgLS0gc2VlbXMgbGlrZSB0aGUgcmlnaHQgc3RyYXRlZ3kgdG8gdHJpZ2dlciB0aGUgYnVnLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNi8yNyAyMzowMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U0hNRU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzaG1lbV9mYWxsb2NhdGUmIzM0OywKICAgICYjMzQ7c2htZW1fZmFsbG9jX3dhaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIFJFQURfT05DRSBjb21waWxlciBiYXJyaWVyIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIGluIGBzaG1lbV9mYXVsdGAgdG8gcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBjYWNoaW5nIHRoZSB2YWx1ZSwgd2hpY2ggY291bGQgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiByYWNpbmcgd2l0aCBgc2htZW1fZmFsbG9jYXRlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIGNvbmN1cnJlbmN5IGJ1Zy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7U0hNRU0mIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtzaG1lbV9mYWxsb2NhdGUmIzM0OywKICAgICYjMzQ7c2htZW1fZmFsbG9jX3dhaXQmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggYWRkcyBhIFJFQURfT05DRSBjb21waWxlciBiYXJyaWVyIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIGluIGBzaG1lbV9mYXVsdGAgdG8gcHJldmVudCB0aGUgY29tcGlsZXIgZnJvbSBjYWNoaW5nIHRoZSB2YWx1ZSwgd2hpY2ggY291bGQgbGVhZCB0byBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiByYWNpbmcgd2l0aCBgc2htZW1fZmFsbG9jYXRlYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGZpeGluZyBhIGNvbmN1cnJlbmN5IGJ1Zy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDIzOjAwOjIyLjczMjU4Nzk2MloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI1MDkxMTYzNTI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMi43MzI1OTI3MzFaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjM2ODE5NzA0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGNcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFNhdCBKdW4gMjcgMjM6MDA6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmNcXG5pbmRleCBiNTFmODNjOTcwYmIzNy4uOTdiMzkxMzE0NGFkMzcgMTAwNjQ0XFxuLS0tIGEvbW0vc2htZW0uY1xcbisrKyBiL21tL3NobWVtLmNcXG5AQCAtMjY5Myw3ICsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxuIFxcdCAqIFRyaW5pdHkgZmluZHMgdGhhdCBwcm9iaW5nIGEgaG9sZSB3aGljaCB0bXBmcyBpcyBwdW5jaGluZyBjYW5cXG4gXFx0ICogcHJldmVudCB0aGUgaG9sZS1wdW5jaCBmcm9tIGV2ZXIgY29tcGxldGluZzogbm90ZWQgaW4gaV9wcml2YXRlLlxcbiBcXHQgKi9cXG4tXFx0aWYgKHVubGlrZWx5KGlub2RlLVxcdTAwM2VpX3ByaXZhdGUpKSB7XFxuK1xcdGlmICh1bmxpa2VseShSRUFEX09OQ0UoaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSkpKSB7XFxuIFxcdFxcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xcbiBcXHRcXHRpZiAocmV0KVxcbiBcXHRcXHRcXHRyZXR1cm4gcmV0O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMy4xMDE1ODk5NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI0NzIyMTUxMDQzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG5ldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLlxuICAgR28gYW5kIGxvb2sgaW50byB0aGUgS2NvbmZpZyBmaWxlcyBhbmQgY2hlY2sgZm9yIGlmZGVmcyBhcm91bmQgdGhlIGNvZGUsIGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuICAgRG8gbm90IGxpc3QgdG9vIGdlbmVyaWMgY29uZmlncyAod2UgYWxyZWFkeSBoYXZlIHRoZW0gZW5hYmxlZCkuIE9ubHkgbGlzdCB0aG9zZSB0aGF0XG4gICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksXG4gICBhbmQgRE8gTk9UIGFkZCBhICdDT05GSUdfJyBwcmVmaXggKGUuZy4sIHJldHVybiBcIk5FVF9JUFY0XCIgaW5zdGVhZCBvZiBcIkNPTkZJR19ORVRfSVBWNFwiKS5cblByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLlxuXG5cblVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuXG5JdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS5cbklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC5cbiIsIlByb21wdCI6IkZvciB5b3VyIGNvbnZlbmllbmNlLCBoZXJlIGlzIHRoZSBkaWZmIG9mIHRoZSBjaGFuZ2VzOlxuY29tbWl0IDFlZWIwM2NmYWU2NjZmODhjOTlmNGIwMTBlMzBhMDI3OGI4ZDk4OGNcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU2F0IEp1biAyNyAyMzowMDoyMSAyMDI2ICswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL21tL3NobWVtLmMgYi9tbS9zaG1lbS5jXG5pbmRleCBiNTFmODNjOTcwYmIzNy4uOTdiMzkxMzE0NGFkMzcgMTAwNjQ0XG4tLS0gYS9tbS9zaG1lbS5jXG4rKysgYi9tbS9zaG1lbS5jXG5AQCAtMjY5Myw3ICsyNjkzLDcgQEAgc3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXG4gXHQgKiBUcmluaXR5IGZpbmRzIHRoYXQgcHJvYmluZyBhIGhvbGUgd2hpY2ggdG1wZnMgaXMgcHVuY2hpbmcgY2FuXG4gXHQgKiBwcmV2ZW50IHRoZSBob2xlLXB1bmNoIGZyb20gZXZlciBjb21wbGV0aW5nOiBub3RlZCBpbiBpX3ByaXZhdGUuXG4gXHQgKi9cbi1cdGlmICh1bmxpa2VseShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSB7XG4rXHRpZiAodW5saWtlbHkoUkVBRF9PTkNFKGlub2RlLVx1MDAzZWlfcHJpdmF0ZSkpKSB7XG4gXHRcdHJldCA9IHNobWVtX2ZhbGxvY193YWl0KHZtZiwgaW5vZGUpO1xuIFx0XHRpZiAocmV0KVxuIFx0XHRcdHJldHVybiByZXQ7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDoyMy4xMDE1OTE5NDdaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MzU4NTQ4MTMzLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgYG1tL3NobWVtLmNgIFBhdGNoKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCB0aGF0IHR3ZWFrcyBgbW0vc2htZW0uY2AuIFRoZSBjb3JlIG9mIHRoZSBjaGFuZ2UgaXMgYWRkaW5nIGBSRUFEX09OQ0VgIGFyb3VuZCB0aGUgY2hlY2sgZm9yIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgOlxuXG5gYGBjXG4tXHRpZiAodW5saWtlbHkoaW5vZGUtXHUwMDNlaV9wcml2YXRlKSkge1xuK1x0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cdTAwM2VpX3ByaXZhdGUpKSkge1xuYGBgXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZS4gQWRkaW5nIGBSRUFEX09OQ0VgIGhlcmUgaXMgYWJvdXQgcHJldmVudGluZyB0aGUgY29tcGlsZXIgZnJvbSBnZXR0aW5nIHRvbyBjbGV2ZXIsIHNwZWNpZmljYWxseSBieSBhdm9pZGluZyBvcHRpbWl6YXRpb25zIGxpa2UgY2FjaGluZyB0aGUgdmFsdWUgb2YgYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgaW4gYSByZWdpc3Rlci4gU28sIGVzc2VudGlhbGx5LCBpdOKAmXMgYSBjb21waWxlciBiYXJyaWVyLiBJIGNvbmZpcm0gdGhhdCBgUkVBRF9PTkNFYCAqaXMqIGEgY29tcGlsZXIgYmFycmllci5cblxuRG9lcyB0aGlzIGFjdHVhbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93IGluIGEgKmZ1bmN0aW9uYWwqIHdheT8gQWJzb2x1dGVseS4gV2hpbGUgdGhlIGNvZGUgbWlnaHQgKmFwcGVhciogZnVuY3Rpb25hbGx5IHRoZSBzYW1lIHRvIHNvbWVvbmUgbm90IHVuZGVyc3RhbmRpbmcgdGhlIHVuZGVybHlpbmcgbWVjaGFuaWNzLCBpdCBhY3R1YWxseSBhZGRyZXNzZXMgYSBwb3RlbnRpYWwgY29uY3VycmVuY3kgYnVnIG9yLCBtb3JlIHNwZWNpZmljYWxseSwgYSBjb21waWxlciBvcHRpbWl6YXRpb24gaXNzdWUuIFRoaXMgY291bGQgcHJldmVudCBhIHNpdHVhdGlvbiB3aGVyZSB0aGUgY2FjaGVkIHZhbHVlIGxlYWRzIHRvIGFuIGluZmluaXRlIGxvb3Agb3Igb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvci5cblxuTm93LCBJJ20gcmVtaW5kZWQgb2YgdGhlIHByb21wdCwgd2hpY2ggc3BlY2lmaWNhbGx5IGZsYWdzIGEgYFdvcnRoRnV6emluZz1mYWxzZWAgY29uZGl0aW9uIGlmIGl0ICpvbmx5KiBjb250YWlucyBjaGFuZ2VzIHRvIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCAqZG9uJ3QqIGFsdGVyIGV4ZWN1dGlvbiBmbG93LiBJbiB0aGlzIGNhc2UsIGFkZGluZyBgUkVBRF9PTkNFYCAqZG9lcyogZnVuY3Rpb25hbGx5IGNoYW5nZSBleGVjdXRpb24sIGJlY2F1c2UgaXQgZml4ZXMgYSBjb25jdXJyZW5jeSBidWcgdGhhdCBjb3VsZCBhcmlzZSBmcm9tIHRoZSBjb21waWxlcidzIG9wdGltaXphdGlvbnMuIFRoZXJlZm9yZSwgdGhpcyBpcyBkZWZpbml0ZWx5IHdvcnRoIGZ1enppbmcuIFRoZSBjaGFuZ2UgaXMgZnVuY3Rpb25hbCBhbmQgY291bGQgZml4IGEgYnVnIHRoYXQgd2UgbWlnaHQgZXhwb3NlIHdpdGggZnV6emluZy5cblxuSnVzdCB0byBiZSB0aG9yb3VnaCwgSSBzaG91bGQgcmVhbGx5IGNoZWNrIHRoZSBzdXJyb3VuZGluZyBjb2RlIGluIGBtbS9zaG1lbS5jYCwgc3RhcnRpbmcgd2l0aCBgc2htZW1fZmF1bHRgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxODQzLCJPdXRwdXRUb2tlbnMiOjMwLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjMzLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MjguNDYwMTQyMVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1NTUwMDE4NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJzaG1lbV9mYXVsdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9zaG1lbS5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcIm1tL3NobWVtLmM9NDY9c3RhdGljIHN0cnVjdCB2ZnNtb3VudCAqc2htX21udCBfX3JvX2FmdGVyX2luaXQ7XFxuLS1cXG5tbS9zaG1lbS5jLTEwMC0vKlxcbm1tL3NobWVtLmM6MTAxOiAqIHNobWVtX2ZhbGxvY2F0ZSBjb21tdW5pY2F0ZXMgd2l0aCBzaG1lbV9mYXVsdCBvciBzaG1lbV93cml0ZW91dCB2aWFcXG5tbS9zaG1lbS5jLTEwMi0gKiBpbm9kZS1cXHUwMDNlaV9wcml2YXRlICh3aXRoIGlfcndzZW0gbWFraW5nIHN1cmUgdGhhdCBpdCBoYXMgb25seSBvbmUgdXNlciBhdFxcbi0tXFxubW0vc2htZW0uYz0yMjI4PXN0YXRpYyBpbnQgc2htZW1fc3dhcGluX2ZvbGlvKHN0cnVjdCBpbm9kZSAqaW5vZGUsIHBnb2ZmX3QgaW5kZXgsXFxuLS1cXG5tbS9zaG1lbS5jLTIzOTktICpcXG5tbS9zaG1lbS5jOjI0MDA6ICogdm1mIGFuZCBmYXVsdF90eXBlIGFyZSBvbmx5IHN1cHBsaWVkIGJ5IHNobWVtX2ZhdWx0OiBvdGhlcndpc2UgdGhleSBhcmUgTlVMTC5cXG5tbS9zaG1lbS5jLTI0MDEtICovXFxuLS1cXG5tbS9zaG1lbS5jPTI2NDM9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmFsbG9jX3dhaXQoc3RydWN0IHZtX2ZhdWx0ICp2bWYsIHN0cnVjdCBpbm9kZSAqaW5vZGUpXFxuLS1cXG5tbS9zaG1lbS5jLTI2NTUtXFx0XFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcXG5tbS9zaG1lbS5jOjI2NTY6XFx0XFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcXG5tbS9zaG1lbS5jLTI2NTctXFxuLS1cXG5tbS9zaG1lbS5jLTI2NjAtXFx0XFx0c2htZW1fZmFsbG9jX3dhaXRxID0gc2htZW1fZmFsbG9jLVxcdTAwM2V3YWl0cTtcXG5tbS9zaG1lbS5jOjI2NjE6XFx0XFx0cHJlcGFyZV90b193YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQsXFxubW0vc2htZW0uYy0yNjYyLVxcdFxcdFxcdFxcdFRBU0tfVU5JTlRFUlJVUFRJQkxFKTtcXG4tLVxcbm1tL3NobWVtLmMtMjY3My1cXHRcXHRzcGluX2xvY2soXFx1MDAyNmlub2RlLVxcdTAwM2VpX2xvY2spO1xcbm1tL3NobWVtLmM6MjY3NDpcXHRcXHRmaW5pc2hfd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0KTtcXG5tbS9zaG1lbS5jLTI2NzUtXFx0fVxcbi0tXFxubW0vc2htZW0uYy0yNjgzLVxcbm1tL3NobWVtLmM6MjY4NDpzdGF0aWMgdm1fZmF1bHRfdCBzaG1lbV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZilcXG5tbS9zaG1lbS5jLTI2ODUte1xcbi0tXFxubW0vc2htZW0uYz01MjIyPXN0YXRpYyBjb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3Qgc2htZW1fdm1fb3BzID0ge1xcbm1tL3NobWVtLmM6NTIyMzpcXHQuZmF1bHRcXHRcXHQ9IHNobWVtX2ZhdWx0LFxcbm1tL3NobWVtLmMtNTIyNC1cXHQubWFwX3BhZ2VzXFx0PSBmaWxlbWFwX21hcF9wYWdlcyxcXG4tLVxcbm1tL3NobWVtLmM9NTIzND1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX2Fub25fdm1fb3BzID0ge1xcbm1tL3NobWVtLmM6NTIzNTpcXHQuZmF1bHRcXHRcXHQ9IHNobWVtX2ZhdWx0LFxcbm1tL3NobWVtLmMtNTIzNi1cXHQubWFwX3BhZ2VzXFx0PSBmaWxlbWFwX21hcF9wYWdlcyxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MjguNTE1NjQ3NjY2WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzU3Njk1MzM3MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBTaG1lbSBGYXVsdCBIYW5kbGVyIEZpeCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgbW9kaWZ5aW5nIHRoZSBgc2htZW1fZmF1bHRgIGZ1bmN0aW9uLCB3aGljaCwgYXMgYSBjb3JlIG1tL3NobWVtIGZ1bmN0aW9uLCBpbW1lZGlhdGVseSBncmFicyBteSBhdHRlbnRpb24uIFRoZSBjaGFuZ2Ugc2VlbXMgc3RyYWlnaHRmb3J3YXJkOiBhIGBSRUFEX09OQ0VgIG9wZXJhdGlvbiBpcyBiZWluZyBhZGRlZCB0byBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzLCB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGxpa2VseSBhZGRyZXNzaW5nIHNvbWUgc3VidGxlIGNvbmN1cnJlbmN5IGlzc3VlIHdpdGhpbiB0aGUgc2htZW0vdG1wZnMgaW1wbGVtZW50YXRpb24uIFRoZXNlIGtpbmRzIG9mIGZpeGVzIGFyZSBjcml0aWNhbCwgZXNwZWNpYWxseSBpbiBzaGFyZWQgbWVtb3J5IHN1YnN5c3RlbXMuXG5cblRoZSByZWFsIHF1ZXN0aW9uLCB0aG91Z2gsIGlzIHdoZXRoZXIgdGhpcyBkZXNlcnZlcyBhIGRlZGljYXRlZCBmdXp6aW5nIGNhbXBhaWduLiBHaXZlbiBpdHMgcm9sZSBhcyBhIGNvcmUgZnVuY3Rpb24sIGhhbmRsaW5nIG1lbW9yeSBmYXVsdHMsIHRoZSBhbnN3ZXIgaXMgYSByZXNvdW5kaW5nIHllcy4gQW55IHN0YWJpbGl0eSBpc3N1ZXMgaW4gdGhpcyBhcmVhIGNvdWxkIGhhdmUgd2lkZXNwcmVhZCBjb25zZXF1ZW5jZXMuIE15IGZvY3VzIG5lZWRzIHRvIGJlIG9uIHRoZSBgc2htZW1fZmF1bHRgIHN5bWJvbCBpdHNlbGYuXG5cbkFzIGEgcXVpY2sgY2hlY2ssIEkgbmVlZCB0byBjb25maXJtIHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFVzdWFsbHksIGBDT05GSUdfU0hNRU1gIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgd2hpY2ggbWVhbnMgYFRNUEZTYCBpcyBhbHNvIGFjdGl2ZS4gSSBzaG91bGQgcHJvYmFibHkgZG91YmxlLWNoZWNrIHRoYXQgdGhpcyBpcyB0aGUgY2FzZSBoZXJlLCBhcyBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGluIG1pbmQsIGJ1dCBJJ20gZ29pbmcgdG8gcHJvY2VlZCBhc3N1bWluZyBpdCdzIGFjdGl2YXRlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6MzIyMSwiT3V0cHV0VG9rZW5zIjoyMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjExMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDozMi4wOTI2MDI4NjhaIiwiU2VxIjo2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ2OTk4NDYwNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgU0hNRU1cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluaXQvS2NvbmZpZz0xODg3PWNvbmZpZyBFVkVOVEZEXFxuLS1cXG5pbml0L0tjb25maWctMTg5NS1cXG5pbml0L0tjb25maWc6MTg5Njpjb25maWcgU0hNRU1cXG5pbml0L0tjb25maWctMTg5Ny1cXHRib29sIFxcXCJVc2UgZnVsbCBzaG1lbSBmaWxlc3lzdGVtXFxcIiBpZiBFWFBFUlRcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MzQuNTYyNTk2MDg0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MjM4MzkyMzY2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzczpcblxuKipEaXZpbmcgaW50byBDb25maWd1cmF0aW9uIFNwYWNlKipcblxuT2theSwgc28gd2UncmUgdGFsa2luZyBhYm91dCBgQ09ORklHX1NITUVNYC4gVGhhdCdzIG91ciBzdGFydGluZyBwb2ludC4gSSdtIGdvaW5nIHRvIHF1aWNrbHkgY2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWxhdGVkIG9yIGFkamFjZW50IGNvbmZpZ3VyYXRpb25zIHRoYXQgd2Ugc2hvdWxkIGJlIGF3YXJlIG9mLiBUaGlzIGlzbid0IGp1c3QgYWJvdXQgYENPTkZJR19TSE1FTWAgaW4gaXNvbGF0aW9uOyBpdCdzIGFib3V0IHRoZSBicm9hZGVyIGNvbmZpZ3VyYXRpb24gbGFuZHNjYXBlIGFuZCBob3cgdGhpcyBwaWVjZSBmaXRzIGludG8gdGhlIGxhcmdlciBwdXp6bGUuIEl0J3MgY3J1Y2lhbCB0byB1bmRlcnN0YW5kIHRoZSBkZXBlbmRlbmNpZXMgYW5kIGludGVyYWN0aW9ucy4gTGV0J3Mgc2VlIHdoYXQgZWxzZSBpcyBpbiBwbGF5LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNjgxLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6MzYuOTQ2NTIxNTk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMDc1ODQ2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNobWVtX2ZhdWx0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9zaG1lbS5jPTQ2PXN0YXRpYyBzdHJ1Y3QgdmZzbW91bnQgKnNobV9tbnQgX19yb19hZnRlcl9pbml0O1xcbi0tXFxubW0vc2htZW0uYy0xMDAtLypcXG5tbS9zaG1lbS5jOjEwMTogKiBzaG1lbV9mYWxsb2NhdGUgY29tbXVuaWNhdGVzIHdpdGggc2htZW1fZmF1bHQgb3Igc2htZW1fd3JpdGVvdXQgdmlhXFxubW0vc2htZW0uYy0xMDItICogaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSAod2l0aCBpX3J3c2VtIG1ha2luZyBzdXJlIHRoYXQgaXQgaGFzIG9ubHkgb25lIHVzZXIgYXRcXG4tLVxcbm1tL3NobWVtLmM9MjIyOD1zdGF0aWMgaW50IHNobWVtX3N3YXBpbl9mb2xpbyhzdHJ1Y3QgaW5vZGUgKmlub2RlLCBwZ29mZl90IGluZGV4LFxcbi0tXFxubW0vc2htZW0uYy0yMzk5LSAqXFxubW0vc2htZW0uYzoyNDAwOiAqIHZtZiBhbmQgZmF1bHRfdHlwZSBhcmUgb25seSBzdXBwbGllZCBieSBzaG1lbV9mYXVsdDogb3RoZXJ3aXNlIHRoZXkgYXJlIE5VTEwuXFxubW0vc2htZW0uYy0yNDAxLSAqL1xcbi0tXFxubW0vc2htZW0uYz0yNjQzPXN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbi0tXFxubW0vc2htZW0uYy0yNjU1LVxcdFxcdHdhaXRfcXVldWVfaGVhZF90ICpzaG1lbV9mYWxsb2Nfd2FpdHE7XFxubW0vc2htZW0uYzoyNjU2OlxcdFxcdERFRklORV9XQUlUX0ZVTkMoc2htZW1fZmF1bHRfd2FpdCwgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbik7XFxubW0vc2htZW0uYy0yNjU3LVxcbi0tXFxubW0vc2htZW0uYy0yNjYwLVxcdFxcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cXHUwMDNld2FpdHE7XFxubW0vc2htZW0uYzoyNjYxOlxcdFxcdHByZXBhcmVfdG9fd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxcbm1tL3NobWVtLmMtMjY2Mi1cXHRcXHRcXHRcXHRUQVNLX1VOSU5URVJSVVBUSUJMRSk7XFxuLS1cXG5tbS9zaG1lbS5jLTI2NzMtXFx0XFx0c3Bpbl9sb2NrKFxcdTAwMjZpbm9kZS1cXHUwMDNlaV9sb2NrKTtcXG5tbS9zaG1lbS5jOjI2NzQ6XFx0XFx0ZmluaXNoX3dhaXQoc2htZW1fZmFsbG9jX3dhaXRxLCBcXHUwMDI2c2htZW1fZmF1bHRfd2FpdCk7XFxubW0vc2htZW0uYy0yNjc1LVxcdH1cXG4tLVxcbm1tL3NobWVtLmMtMjY4My1cXG5tbS9zaG1lbS5jOjI2ODQ6c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxubW0vc2htZW0uYy0yNjg1LXtcXG4tLVxcbm1tL3NobWVtLmM9NTIyMj1zdGF0aWMgY29uc3Qgc3RydWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHNobWVtX3ZtX29wcyA9IHtcXG5tbS9zaG1lbS5jOjUyMjM6XFx0LmZhdWx0XFx0XFx0PSBzaG1lbV9mYXVsdCxcXG5tbS9zaG1lbS5jLTUyMjQtXFx0Lm1hcF9wYWdlc1xcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXFxuLS1cXG5tbS9zaG1lbS5jPTUyMzQ9c3RhdGljIGNvbnN0IHN0cnVjdCB2bV9vcGVyYXRpb25zX3N0cnVjdCBzaG1lbV9hbm9uX3ZtX29wcyA9IHtcXG5tbS9zaG1lbS5jOjUyMzU6XFx0LmZhdWx0XFx0XFx0PSBzaG1lbV9mYXVsdCxcXG5tbS9zaG1lbS5jLTUyMzYtXFx0Lm1hcF9wYWdlc1xcdD0gZmlsZW1hcF9tYXBfcGFnZXMsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA2LTI3VDIzOjAwOjM3LjAwNzYwMzg3MVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM5MDk2MzY2MjksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhlIFBhdGNoIGFuZCBGdXp6aW5nIFN0cmF0ZWd5KipcblxuT2theSwgc28gdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGBSRUFEX09OQ0VgIHRvIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgIHdpdGhpbiBgc2htZW1fZmF1bHRgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBmaXgsIGFkZHJlc3NpbmcgYSBkYXRhIHJhY2Ugb3IgYSBwb3RlbnRpYWwgY29tcGlsZXIgb3B0aW1pemF0aW9uIHByb2JsZW0sIEkgc2VlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZW5zdXJlIHRoZSBmaXggaXMgc29saWQgYnkgZnV6emluZyBpdC4gSSBuZWVkIHRvIHZlcmlmeSB0aGF0IHRoaXMgdHJ1bHkgcmVzb2x2ZXMgdGhlIHJhY2UgY29uZGl0aW9uIHdpdGhvdXQgaW50cm9kdWNpbmcgYW55IG5ldyBpc3N1ZXMuXG5cbldhaXQgYSBzZWNvbmTigKYgaXMgYHNobWVtX2ZhdWx0YCBhIGhvdC1wYXRoIGZ1bmN0aW9uPyBZZXMsIG9mIGNvdXJzZSBpdCBpczsgaXQncyB0aGUgc2hhcmVkIG1lbW9yeSBwYWdlIGZhdWx0IGhhbmRsZXIuIE5vdyBJIHJlbWVtYmVyLCB0aGUgcHJvbXB0IHNwZWNpZmljYWxseSBjYXV0aW9ucyBhZ2FpbnN0IGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gYXZvaWQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy4gVGhhdCdzIGEgdmFsaWQgY29uY2Vybi4gSWYgYHNobWVtX2ZhdWx0YCBpcyBpbmRlZWQgYSBob3QtcGF0aCwgd2hpY2ggaXQgYWxtb3N0IGNlcnRhaW5seSBpcywgSSBzaG91bGQgcmVjb25zaWRlciBpbmNsdWRpbmcgaXQgYXMgYSBwcmltYXJ5IHRhcmdldC4gUGVyaGFwcyBJIHNob3VsZCBmb2N1cyBvbiBhIHJlbGF0ZWQgZnVuY3Rpb24gaW5zdGVhZC4gV2hhdCBhYm91dCBgc2htZW1fZmFsbG9jX3dhaXRgPyBMZXQgbWUgY2hlY2sgdGhhdCBmdW5jdGlvbiBtb3JlIGNsb3NlbHkgdG8gc2VlIGlmIGl0IG1ha2VzIGEgYmV0dGVyIGNhbmRpZGF0ZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU4MCwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNi0yN1QyMzowMDo0MC45MTcyNDMwNzFaIiwiU2VxIjoxMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjU2NjU1NjQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNobWVtX2ZhbGxvY193YWl0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL3NobWVtLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vc2htZW0uYz0yNjE4PXN0YXRpYyBpbnQgc3luY2hyb25vdXNfd2FrZV9mdW5jdGlvbih3YWl0X3F1ZXVlX2VudHJ5X3QgKndhaXQsXFxuLS1cXG5tbS9zaG1lbS5jLTI2NDItICovXFxubW0vc2htZW0uYzoyNjQzOnN0YXRpYyB2bV9mYXVsdF90IHNobWVtX2ZhbGxvY193YWl0KHN0cnVjdCB2bV9mYXVsdCAqdm1mLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKVxcbm1tL3NobWVtLmMtMjY0NC17XFxuLS1cXG5tbS9zaG1lbS5jLTI2NTQtXFx0ICAgIHZtZi1cXHUwMDNlcGdvZmYgXFx1MDAzYyBzaG1lbV9mYWxsb2MtXFx1MDAzZW5leHQpIHtcXG5tbS9zaG1lbS5jOjI2NTU6XFx0XFx0d2FpdF9xdWV1ZV9oZWFkX3QgKnNobWVtX2ZhbGxvY193YWl0cTtcXG5tbS9zaG1lbS5jLTI2NTYtXFx0XFx0REVGSU5FX1dBSVRfRlVOQyhzaG1lbV9mYXVsdF93YWl0LCBzeW5jaHJvbm91c193YWtlX2Z1bmN0aW9uKTtcXG4tLVxcbm1tL3NobWVtLmMtMjY1OS1cXHRcXHRmcGluID0gbWF5YmVfdW5sb2NrX21tYXBfZm9yX2lvKHZtZiwgTlVMTCk7XFxubW0vc2htZW0uYzoyNjYwOlxcdFxcdHNobWVtX2ZhbGxvY193YWl0cSA9IHNobWVtX2ZhbGxvYy1cXHUwMDNld2FpdHE7XFxubW0vc2htZW0uYzoyNjYxOlxcdFxcdHByZXBhcmVfdG9fd2FpdChzaG1lbV9mYWxsb2Nfd2FpdHEsIFxcdTAwMjZzaG1lbV9mYXVsdF93YWl0LFxcbm1tL3NobWVtLmMtMjY2Mi1cXHRcXHRcXHRcXHRUQVNLX1VOSU5URVJSVVBUSUJMRSk7XFxuLS1cXG5tbS9zaG1lbS5jLTI2NjYtXFx0XFx0LypcXG5tbS9zaG1lbS5jOjI2Njc6XFx0XFx0ICogc2htZW1fZmFsbG9jX3dhaXRxIHBvaW50cyBpbnRvIHRoZSBzaG1lbV9mYWxsb2NhdGUoKVxcbm1tL3NobWVtLmM6MjY2ODpcXHRcXHQgKiBzdGFjayBvZiB0aGUgaG9sZS1wdW5jaGluZyB0YXNrOiBzaG1lbV9mYWxsb2Nfd2FpdHFcXG5tbS9zaG1lbS5jLTI2NjktXFx0XFx0ICogaXMgdXN1YWxseSBpbnZhbGlkIGJ5IHRoZSB0aW1lIHdlIHJlYWNoIGhlcmUsIGJ1dFxcbi0tXFxubW0vc2htZW0uYy0yNjczLVxcdFxcdHNwaW5fbG9jayhcXHUwMDI2aW5vZGUtXFx1MDAzZWlfbG9jayk7XFxubW0vc2htZW0uYzoyNjc0OlxcdFxcdGZpbmlzaF93YWl0KHNobWVtX2ZhbGxvY193YWl0cSwgXFx1MDAyNnNobWVtX2ZhdWx0X3dhaXQpO1xcbm1tL3NobWVtLmMtMjY3NS1cXHR9XFxuLS1cXG5tbS9zaG1lbS5jPTI2ODQ9c3RhdGljIHZtX2ZhdWx0X3Qgc2htZW1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpXFxuLS1cXG5tbS9zaG1lbS5jLTI2OTYtXFx0aWYgKHVubGlrZWx5KFJFQURfT05DRShpbm9kZS1cXHUwMDNlaV9wcml2YXRlKSkpIHtcXG5tbS9zaG1lbS5jOjI2OTc6XFx0XFx0cmV0ID0gc2htZW1fZmFsbG9jX3dhaXQodm1mLCBpbm9kZSk7XFxubW0vc2htZW0uYy0yNjk4LVxcdFxcdGlmIChyZXQpXFxuLS1cXG5tbS9zaG1lbS5jPTM1OTc9c3RhdGljIGxvbmcgc2htZW1fZmFsbG9jYXRlKHN0cnVjdCBmaWxlICpmaWxlLCBpbnQgbW9kZSwgbG9mZl90IG9mZnNldCxcXG4tLVxcbm1tL3NobWVtLmMtMzYyMC1cXHRcXHRsb2ZmX3QgdW5tYXBfZW5kID0gcm91bmRfZG93bihvZmZzZXQgKyBsZW4sIFBBR0VfU0laRSkgLSAxO1xcbm1tL3NobWVtLmM6MzYyMTpcXHRcXHRERUNMQVJFX1dBSVRfUVVFVUVfSEVBRF9PTlNUQUNLKHNobWVtX2ZhbGxvY193YWl0cSk7XFxubW0vc2htZW0uYy0zNjIyLVxcbi0tXFxubW0vc2htZW0uYy0zNjI4LVxcbm1tL3NobWVtLmM6MzYyOTpcXHRcXHRzaG1lbV9mYWxsb2Mud2FpdHEgPSBcXHUwMDI2c2htZW1fZmFsbG9jX3dhaXRxO1xcbm1tL3NobWVtLmMtMzYzMC1cXHRcXHRzaG1lbV9mYWxsb2Muc3RhcnQgPSAodTY0KXVubWFwX3N0YXJ0IFxcdTAwM2VcXHUwMDNlIFBBR0VfU0hJRlQ7XFxuLS1cXG5tbS9zaG1lbS5jLTM2NDMtXFx0XFx0aW5vZGUtXFx1MDAzZWlfcHJpdmF0ZSA9IE5VTEw7XFxubW0vc2htZW0uYzozNjQ0OlxcdFxcdHdha2VfdXBfYWxsKFxcdTAwMjZzaG1lbV9mYWxsb2Nfd2FpdHEpO1xcbm1tL3NobWVtLmM6MzY0NTpcXHRcXHRXQVJOX09OX09OQ0UoIWxpc3RfZW1wdHkoXFx1MDAyNnNobWVtX2ZhbGxvY193YWl0cS5oZWFkKSk7XFxubW0vc2htZW0uYy0zNjQ2LVxcdFxcdHNwaW5fdW5sb2NrKFxcdTAwMjZpbm9kZS1cXHUwMDNlaV9sb2NrKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6NDAuOTczOTA0NjE3WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjY3NzAwODMwNTksIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgQ29uY3VycmVuY3kgQnVnIGluIHRoZSB0bXBmcyBGaWxlc3lzdGVtKipcblxuT2theSwgc28gaGVyZSdzIHdoYXQncyBoYXBwZW5pbmcuIEknbSBsb29raW5nIGF0IGEgZml4IHJlbGF0ZWQgdG8gYSBjb25jdXJyZW5jeSBpc3N1ZSB3aXRoaW4gdGhlIHRtcGZzIChzaGFyZWQgbWVtb3J5IGZpbGVzeXN0ZW0pLiBNeSB0aG91Z2h0IHByb2Nlc3MgaXMgY2VudGVyZWQgYXJvdW5kIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVuIGBzaG1lbV9mYWxsb2Nfd2FpdGAgYW5kIGBzaG1lbV9mYXVsdGAuIEl0IGxvb2tzIGxpa2UgYHNobWVtX2ZhbGxvY193YWl0YCBnZXRzIGNhbGxlZCBmcm9tIGBzaG1lbV9mYXVsdGAgd2hlbiBgaW5vZGUtXHUwMDNlaV9wcml2YXRlYCBpcyBzZXQsIHdoaWNoIGhhcHBlbnMgKmR1cmluZyogYHNobWVtX2ZhbGxvY2F0ZWAuIFRoZXJlZm9yZSwgdGhlIGNydXggb2YgdGhlIHByb2JsZW0gbGllcyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLCBhcyBpdCdzIHRoZSBmdW5jdGlvbiByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB0aGF0IGNydWNpYWwgYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgdmFsdWUuXG5cblNvLCB0aGUgbGlrZWx5IHRyaWdnZXIgaXMgYSByYWNlIGNvbmRpdGlvbiB3aGVyZSBgc2htZW1fZmFsbG9jYXRlYCBhbmQgYHNobWVtX2ZhdWx0YCBhcmUgY2FsbGVkIGNvbmN1cnJlbnRseS4gVGhhdCBtZWFucyBmdXp6aW5nIHRoZXNlIHR3byBmdW5jdGlvbnMgaXMgYSBnb29kIGFwcHJvYWNoIHRvIGV4cG9zZSB0aGUgYnVnLiBTcGVjaWZpY2FsbHksIGBzaG1lbV9mYWxsb2NhdGVgIGxvb2tzIGxpa2UgYSBrZXkgZnVuY3Rpb24gdG8gdGFyZ2V0IGZvciBmdXp6aW5nLCBhbG9uZyB3aXRoIGBzaG1lbV9mYWxsb2Nfd2FpdGAuXG5cbkxldCdzIGxpc3QgdGhvc2Ugb3V0OiBgc2htZW1fZmFsbG9jYXRlYCwgYHNobWVtX2ZhbGxvY193YWl0YC4gVGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gaXMgZGVmaW5pdGVseSBgU0hNRU1gLlxuXG5CYXNlZCBvbiB0aGUgcGF0Y2ggZGV0YWlscywgdGhlIGZpeCBpbnZvbHZlcyBhIGBSRUFEX09OQ0VgIGNvbXBpbGVyIGJhcnJpZXIgb24gYGlub2RlLVx1MDAzZWlfcHJpdmF0ZWAgd2l0aGluIGBzaG1lbV9mYXVsdGAuIFRoaXMgYmFycmllciBwcmV2ZW50cyB0aGUgY29tcGlsZXIgZnJvbSBvcHRpbWl6aW5nIGJ5IGNhY2hpbmcgdGhlIHZhbHVlIG9mIGBpbm9kZS1cdTAwM2VpX3ByaXZhdGVgLCB3aGljaCBjb3VsZCBjYXVzZSBhbiBpbmZpbml0ZSBsb29wIG9yIGhhbmcgd2hlbiBgc2htZW1fZmFsbG9jYXRlYCBpcyBtb2RpZnlpbmcgaXQgc2ltdWx0YW5lb3VzbHkuIFRoaXMgaXMgYSBjbGVhciBmdW5jdGlvbmFsIGZpeCBmb3IgYSBjb25jdXJyZW5jeSBidWcuXG5cbkkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCBgU0hNRU1gIGlzIHRoZSBvbmx5IHJlbGV2YW50IGNvbmZpZy4gWWVzLCBpdCBsb29rcyBsaWtlIGBDT05GSUdfU0hNRU1gIGlzIHRoZSBtYWluIG9uZS5cblxuUmlnaHQsIGxldCBtZSBjbGFyaWZ5OiBgc2htZW1fZmFsbG9jYXRlYCBpcyB0aGUgc3lzdGVtIGNhbGwgaGFuZGxlciBmb3IgYGZhbGxvY2F0ZWAgb24gdG1wZnMuIGBzaG1lbV9mYXVsdGAgaXMgdGhlIHBhZ2UgZmF1bHQgaGFuZGxlci4gU28sIHRoZSBvcmlnaW5hbCBhc3Nlc3NtZW50IGlzIGNvbmZpcm1lZDogZnV6emluZyB0aGVzZSB0d28gZnVuY3Rpb25zIC0tIGBzaG1lbV9mYWxsb2NhdGVgIGFuZCBgc2htZW1fZmFsbG9jX3dhaXRgIC0tIHNlZW1zIGxpa2UgdGhlIHJpZ2h0IHN0cmF0ZWd5IHRvIHRyaWdnZXIgdGhlIGJ1Zy5cblxuXG4iLCJJbnB1dFRva2VucyI6NTk1NSwiT3V0cHV0VG9rZW5zIjoxMTUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyOTksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDYtMjdUMjM6MDA6NDcuNzQzOTg5Njk2WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Nzk3NDc3MjUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIlNITUVNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwic2htZW1fZmFsbG9jYXRlXCIsXG4gICAgXCJzaG1lbV9mYWxsb2Nfd2FpdFwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGFkZHMgYSBSRUFEX09OQ0UgY29tcGlsZXIgYmFycmllciB0byBgaW5vZGUtXFx1MDAzZWlfcHJpdmF0ZWAgaW4gYHNobWVtX2ZhdWx0YCB0byBwcmV2ZW50IHRoZSBjb21waWxlciBmcm9tIGNhY2hpbmcgdGhlIHZhbHVlLCB3aGljaCBjb3VsZCBsZWFkIHRvIGFuIGluZmluaXRlIGxvb3Agb3IgaGFuZyB3aGVuIHJhY2luZyB3aXRoIGBzaG1lbV9mYWxsb2NhdGVgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgZml4aW5nIGEgY29uY3VycmVuY3kgYnVnLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[1] Phase: Succeeded StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-27 23:00:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-27 23:00:58 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2] Phase: Succeeded StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-27 23:01:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-06-27 23:00:58 +0000 UTC FinishedAt: 2026-06-27 23:01:05 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.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-workflowc5j94/series-workflowc5j94-convert-artifact-1219271983/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-06-27 23:01:08 +0000 UTC FinishedAt: 2026-06-27 23:23:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-06-27 23:01:08 +0000 UTC FinishedAt: 2026-06-27 23:23:01 +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:*89e53c7a-039a-4283-a2b5-d4b9717c10a3,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-workflowc5j94/series-workflowc5j94-convert-artifact-1219271983/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": "ed2020aa-d074-462d-b76c-e8c97588de5c", "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-workflowc5j94/series-workflowc5j94-build-action-3940164341/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-06-27 23:01:08 +0000 UTC FinishedAt: 2026-06-27 23:22:51 +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:*89e53c7a-039a-4283-a2b5-d4b9717c10a3,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-workflowc5j94/series-workflowc5j94-convert-artifact-1219271983/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": "ed2020aa-d074-462d-b76c-e8c97588de5c", "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-workflowc5j94/series-workflowc5j94-build-action-3940164341/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-06-27 23:23:01 +0000 UTC FinishedAt: 2026-06-27 23:23:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-06-27 23:23:01 +0000 UTC FinishedAt: 2026-06-27 23:23:01 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-06-27 23:23:01 +0000 UTC FinishedAt: 2026-06-27 23:23:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-06-27 23:23:01 +0000 UTC FinishedAt: 2026-06-27 23:23:07 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.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-workflowc5j94/series-workflowc5j94-convert-artifact-3611252862/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-06-27 23:23:11 +0000 UTC FinishedAt: 2026-06-27 23:25:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-06-27 23:23:11 +0000 UTC FinishedAt: 2026-06-27 23:25:23 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ed2020aa-d074-462d-b76c-e8c97588de5c,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-workflowc5j94/series-workflowc5j94-build-action-3940164341/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-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-06-27 23:25:33 +0000 UTC FinishedAt: 2026-06-27 23:25:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-06-27 23:25:33 +0000 UTC FinishedAt: 2026-06-27 23:25:33 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-06-27 23:25:33 +0000 UTC FinishedAt: 2026-06-27 23:47:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-06-27 23:25:33 +0000 UTC FinishedAt: 2026-06-27 23:47:30 +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:*89e53c7a-039a-4283-a2b5-d4b9717c10a3,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-workflowc5j94/series-workflowc5j94-convert-artifact-3611252862/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": "d0229919-aa1f-436c-bd29-40a46b997864", "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-workflowc5j94/series-workflowc5j94-build-action-2411078866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-06-27 23:25:33 +0000 UTC FinishedAt: 2026-06-27 23:47:20 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*true,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Patched,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*89e53c7a-039a-4283-a2b5-d4b9717c10a3,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-workflowc5j94/series-workflowc5j94-convert-artifact-3611252862/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": "d0229919-aa1f-436c-bd29-40a46b997864", "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-workflowc5j94/series-workflowc5j94-build-action-2411078866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-06-27 23:47:30 +0000 UTC FinishedAt: 2026-06-27 23:47:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-06-27 23:47:30 +0000 UTC FinishedAt: 2026-06-27 23:47:30 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-06-27 23:47:30 +0000 UTC FinishedAt: 2026-06-27 23:49:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-06-27 23:47:30 +0000 UTC FinishedAt: 2026-06-27 23:49:35 +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:*d0229919-aa1f-436c-bd29-40a46b997864,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-workflowc5j94/series-workflowc5j94-build-action-2411078866/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-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +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"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},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:*ed2020aa-d074-462d-b76c-e8c97588de5c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d0229919-aa1f-436c-bd29-40a46b997864,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-workflowc5j94/series-workflowc5j94-build-action-3940164341/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-workflowc5j94/series-workflowc5j94-build-action-2411078866/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-27 23:49:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-27 23:49:51 +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"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},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-workflowc5j94/series-workflowc5j94-convert-artifact-4071511683/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-27 23:49:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-27 23:49:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-06-27 23:49:45 +0000 UTC FinishedAt: 2026-06-27 23:49:45 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-06-27 23:49:55 +0000 UTC FinishedAt: 2026-06-28 02:52:36 +0000 UTC Input: nil Output: nil --------- Name: series-workflowc5j94[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":null,"focus_symbols":["shmem_fallocate","shmem_falloc_wait"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"840ef6c78e6a2f694b578ecb9063241c992aaa9e","config_name":"upstream-apparmor-kasan.config","enable_configs":["SHMEM"],"series_id":"c150f9d7-10be-41d2-bb09-3288783771bd","tree_name":"mm-new","tree_url":"https://kernel.googlesource.com/pub/scm/linux/kernel/git/akpm/mm.git"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-06-27 23:49:55 +0000 UTC FinishedAt: 2026-06-28 02:52:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*ed2020aa-d074-462d-b76c-e8c97588de5c,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*d0229919-aa1f-436c-bd29-40a46b997864,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-workflowc5j94/series-workflowc5j94-build-action-3940164341/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-workflowc5j94/series-workflowc5j94-build-action-2411078866/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-workflowc5j94/series-workflowc5j94-convert-artifact-4071511683/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,}