Name: series-workflowrgsw5 Phase: Succeeded StartedAt: 2026-08-06 08:25:09 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[0] Phase: Succeeded StartedAt: 2026-08-06 08:25:09 +0000 UTC FinishedAt: 2026-08-06 09:06:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[0].run-triage Phase: Succeeded StartedAt: 2026-08-06 08:25:09 +0000 UTC FinishedAt: 2026-08-06 09:06:52 +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": "d3f0a606b9f278ece8a0df626ded9c4044071235", "config_name": "upstream-apparmor-kasan.config", "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": "d3f0a606b9f278ece8a0df626ded9c4044071235", "config_name": "upstream-apparmor-kasan.config", "series_id": "ff609282-6e87-44ce-b49f-d3baff150883" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "copy_process", "kernel_clone" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y29weV9wcm9jZXNzJiMzNDssCiAgICAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwOTowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGI1NWVjMGYzZGYzNjg0MDJlNmVhMDVlZmZjNjJjYWQ3OWIyNmVjOWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDA5OjA2OjEzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jXG5pbmRleCA2NTExM2EzMDQ1MThhLi5iYzRkZjE4YmZkOTA3IDEwMDY0NFxuLS0tIGEva2VybmVsL2ZvcmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2ZvcmsuY1xuQEAgLTIzLDYgJiM0MzsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvdGFza19zdGFjay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvY3B1dGltZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvZXh0LmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NlcV9maWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ydG11dGV4LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbkBAIC0yMTMzLDcgJiM0MzsyMTM0LDEwIEBAIF9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4gXHRyZXR2YWwgPSAtRUFHQUlOO1xuICNlbmRpZlxuIFxuLVx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiYjNDM7XHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXG4mIzQzO1x0XHRwLVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiBcbiAjaWZkZWYgQ09ORklHX1BTSVxuIFx0cC1cdTAwM2Vwc2lfZmxhZ3MgPSAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICAgJiMzNDtrZXJuZWxfY2xvbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiNTVlYzBmM2RmMzY4NDAyZTZlYTA1ZWZmYzYyY2FkNzliMjZlYzlmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgNiAwOTowNjoxMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jCmluZGV4IDY1MTEzYTMwNDUxOGEuLmJjNGRmMThiZmQ5MDcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9mb3JrLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2ZvcmsuYwpAQCAtMjMsNiAmIzQzOzIzLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC90YXNrX3N0YWNrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc2NoZWQvY3B1dGltZS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NjaGVkL2V4dC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC9ydC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NlcV9maWxlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcnRtdXRleC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2luaXQuaCZndDsKQEAgLTIxMzMsNyAmIzQzOzIxMzQsMTAgQEAgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcygKIAlyZXR2YWwgPSAtRUFHQUlOOwogI2VuZGlmCiAKLQlwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC0mZ3Q7dGltZXJfc2xhY2tfbnM7CiYjNDM7CWlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSkKJiM0MzsJCXAtJmd0O2RlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zOwomIzQzOwllbHNlCiYjNDM7CQlwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC0mZ3Q7dGltZXJfc2xhY2tfbnM7CiAKICNpZmRlZiBDT05GSUdfUFNJCiAJcC0mZ3Q7cHNpX2ZsYWdzID0gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE2MAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGtlcm5lbC9mb3JrLmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBrZXJuZWwvZm9yay5jYCwgc3BlY2lmaWNhbGx5IGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBgY29weV9wcm9jZXNzKClgIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgdGhpcyBpcyBhIGNoYW5nZSB0byBjb3JlIHByb2Nlc3MgY3JlYXRpb24sIHNvbWV0aGluZyB0aGF0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYGZvcmtgLCBgY2xvbmVgLCB0aGUgd2hvbGUgc2hlYmFuZy4gVGhlIGNoYW5nZSBpdHNlbGYgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIOKAkyB3ZSYjMzk7cmUgYWx0ZXJpbmcgaG93IGBwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbml0aWFsaXplZCB3aGVuIGEgbmV3IHByb2Nlc3MgaXMgY3JlYXRlZC4KClByZXZpb3VzbHksIGl0IHdhcyBqdXN0IGNvcGllZCBmcm9tIHRoZSBwYXJlbnQmIzM5O3MgYGN1cnJlbnQtJmd0O3RpbWVyX3NsYWNrX25zYC4gTm93LCB0aGUgY29kZSBjaGVja3MgaWYgdGhlIHBhcmVudCBoYXMgYSByZWFsLXRpbWUgb3IgZGVhZGxpbmUgdGFzayBwb2xpY3kgdXNpbmcgYHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpYC4gSWYgaXQgZG9lcywgdGhlIG5ldyBwcm9jZXNzIGluaGVyaXRzIGBjdXJyZW50LSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkLiBPdGhlcndpc2UsIGl0IHJldGFpbnMgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgoKVGhpcyBpcyBpbW1lZGlhdGVseSBzcGFya2luZyBzb21lIGlkZWFzIGluIG15IGhlYWQuIFRoaXMgaXMgYSBwb3RlbnRpYWwgYXJlYSBmb3Igc3VidGxlIGJlaGF2aW9yIGNoYW5nZXMsIGFuZCBkZWZpbml0ZWx5IHNvbWV0aGluZyBJJiMzOTtkIHdhbnQgdG8gZnV6eiB0aG9yb3VnaGx5LiBgY29weV9wcm9jZXNzKClgIGlzIGEgdHJpY2t5IGZ1bmN0aW9uLCBhbmQgYW55IGNoYW5nZSB0byBpdHMgbG9naWMgd2FycmFudHMgZXh0cmEgYXR0ZW50aW9uLiBUaGUgcXVlc3Rpb24gdGhhdCBjb21lcyB0byBtaW5kIHJpZ2h0IGF3YXkgaXM6IGlzIGBjb3B5X3Byb2Nlc3NgIHN0YXRpYz8gQmVjYXVzZSBpZiBpdCBpcywgZnV6emluZyBpdCBiZWNvbWVzIGEgYml0IGhhcmRlci4gTGV0IG1lIGp1c3QgZ2xhbmNlIGF0IGBrZXJuZWwvZm9yay5jYCB0byBjb25maXJtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9mb3JrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2ZvcmsuYz0xODA5PWluaXRfdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUsIHN0cnVjdCBwaWQgKnBpZClcbi0tXG5rZXJuZWwvZm9yay5jLTE4MTYtXG5rZXJuZWwvZm9yay5jOjE4MTc6c3RhdGljIGlubGluZSB2b2lkIHJjdV9jb3B5X3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwKVxua2VybmVsL2ZvcmsuYy0xODE4LXtcbi0tXG5rZXJuZWwvZm9yay5jPTE5NTA9c3RhdGljIGJvb2wgbmVlZF9mdXRleF9oYXNoX2FsbG9jYXRlX2RlZmF1bHQodTY0IGNsb25lX2ZsYWdzKVxuLS1cbmtlcm5lbC9mb3JrLmMtMTk2NC0gKi9cbmtlcm5lbC9mb3JrLmM6MTk2NTpfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxua2VybmVsL2ZvcmsuYy0xOTY2LVx0XHRcdFx0XHRzdHJ1Y3QgcGlkICpwaWQsXG4tLVxua2VybmVsL2ZvcmsuYy0yMDk3LVx0Lypcbmtlcm5lbC9mb3JrLmM6MjA5ODpcdCAqIElmIG11bHRpcGxlIHRocmVhZHMgYXJlIHdpdGhpbiBjb3B5X3Byb2Nlc3MoKSwgdGhlbiB0aGlzIGNoZWNrXG5rZXJuZWwvZm9yay5jLTIwOTktXHQgKiB0cmlnZ2VycyB0b28gbGF0ZS4gVGhpcyBkb2VzbiYjMzk7dCBodXJ0LCB0aGUgY2hlY2sgaXMgb25seSB0aGVyZVxuLS1cbmtlcm5lbC9mb3JrLmMtMjExMC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnAtXHUwMDNlc2libGluZyk7XG5rZXJuZWwvZm9yay5jOjIxMTE6XHRyY3VfY29weV9wcm9jZXNzKHApO1xua2VybmVsL2ZvcmsuYy0yMTEyLVx0cC1cdTAwM2V2Zm9ya19kb25lID0gTlVMTDtcbi0tXG5rZXJuZWwvZm9yay5jLTIzODgtXG5rZXJuZWwvZm9yay5jOjIzODk6XHRrbHBfY29weV9wcm9jZXNzKHApO1xua2VybmVsL2ZvcmsuYy0yMzkwLVxuLS1cbmtlcm5lbC9mb3JrLmMtMjQ3NC1cdHRyYWNlX3Rhc2tfbmV3dGFzayhwLCBjbG9uZV9mbGFncyk7XG5rZXJuZWwvZm9yay5jOjI0NzU6XHR1cHJvYmVfY29weV9wcm9jZXNzKHAsIGNsb25lX2ZsYWdzKTtcbmtlcm5lbC9mb3JrLmMtMjQ3Ni1cdHVzZXJfZXZlbnRzX2ZvcmsocCwgY2xvbmVfZmxhZ3MpO1xuLS1cbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXG4tLVxua2VybmVsL2ZvcmsuYy0yNTc4LVxua2VybmVsL2ZvcmsuYzoyNTc5Olx0dGFzayA9IGNvcHlfcHJvY2VzcyhcdTAwMjZpbml0X3N0cnVjdF9waWQsIDAsIGNwdV90b19ub2RlKGNwdSksIFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNTgwLVx0aWYgKCFJU19FUlIodGFzaykpIHtcbi0tXG5rZXJuZWwvZm9yay5jPTI1OTQ9c3RydWN0IHRhc2tfc3RydWN0ICpjcmVhdGVfaW9fdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGludCBub2RlKVxuLS1cbmtlcm5lbC9mb3JrLmMtMjYwNS1cbmtlcm5lbC9mb3JrLmM6MjYwNjpcdHJldHVybiBjb3B5X3Byb2Nlc3MoTlVMTCwgMCwgbm9kZSwgXHUwMDI2YXJncyk7XG5rZXJuZWwvZm9yay5jLTI2MDctfVxuLS1cbmtlcm5lbC9mb3JrLmM9MjYxNz1waWRfdCBrZXJuZWxfY2xvbmUoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxuLS1cbmtlcm5lbC9mb3JrLmMtMjY1Ny1cbmtlcm5lbC9mb3JrLmM6MjY1ODpcdHAgPSBjb3B5X3Byb2Nlc3MoTlVMTCwgdHJhY2UsIE5VTUFfTk9fTk9ERSwgYXJncyk7XG5rZXJuZWwvZm9yay5jLTI2NTktXHRhZGRfbGF0ZW50X2VudHJvcHkoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwOTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDc4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKkRpdmluZyBpbnRvIHRoZSBgY29weV9wcm9jZXNzYCBGdW5jdGlvbioqCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3QgYSBzdGF0aWMgZnVuY3Rpb24sIGJ1dCBpdCYjMzk7cyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCYjMzk7cyBleHBvcnRlZCBlaXRoZXIuIEEgcXVpY2sgc2NhbiBzdWdnZXN0cyBpdCAqc2hvdWxkbiYjMzk7dCogYmUgc3RhdGljLiBBaCwgb2theSwgc28gaXQmIzM5O3MgKm5vdCogc3RhdGljIHdpdGhpbiBga2VybmVsL2ZvcmsuY2AsIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0LiBMZXQmIzM5O3Mgc2VlLi4uIGxvb2tpbmcgYXQgdGhlIGRlY2xhcmF0aW9uOiBgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhgLiBXYWl0LCBubyBgc3RhdGljYCBrZXl3b3JkIHByZXBlbmRlZCB0byBpdD8gR29vZCwgY29uZmlybWF0aW9uLiBMZXQgbWUgY29uZmlybSwgTGluZSAxOTY1LiBPa2F5LCBnb29kLiBUaGF0JiMzOTtzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIGludG8gdGhlIGtlcm5lbCYjMzk7cyBwcm9jZXNzIG1hbmFnZW1lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtrZXJuZWwvZm9yay5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTk2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxOTYwOlx0ICpcbjE5NjE6XHQgKiBJdCBjb3BpZXMgdGhlIHJlZ2lzdGVycywgYW5kIGFsbCB0aGUgYXBwcm9wcmlhdGVcbjE5NjI6XHQgKiBwYXJ0cyBvZiB0aGUgcHJvY2VzcyBlbnZpcm9ubWVudCAoYXMgcGVyIHRoZSBjbG9uZVxuMTk2MzpcdCAqIGZsYWdzKS4gVGhlIGFjdHVhbCBraWNrLW9mZiBpcyBsZWZ0IHRvIHRoZSBjYWxsZXIuXG4xOTY0Olx0ICovXG4xOTY1Olx0X19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcbjE5NjY6XHRcdFx0XHRcdFx0c3RydWN0IHBpZCAqcGlkLFxuMTk2NzpcdFx0XHRcdFx0XHRpbnQgdHJhY2UsXG4xOTY4Olx0XHRcdFx0XHRcdGludCBub2RlLFxuMTk2OTpcdFx0XHRcdFx0XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxNQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlbHZpbmcgaW50byB0aGUgRXNzZW5jZSBvZiB0aGUgVGhyZWFkIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyB0aGlzIGlzbiYjMzk7dCBhIGZpeGVkLCBleHBvcnRlZCBzdHJ1Y3R1cmU7IGludGVyZXN0aW5nLiBJdHMgcHVycG9zZSBiZWNvbWVzIGNsZWFyIGJ5IGV4YW1pbmluZyBpdHMgdXNhZ2Ugd2l0aGluIHRoZSBrZXJuZWwuIEl0IHNlZW1zIHRvIGJlIGludGltYXRlbHkgaW52b2x2ZWQgd2l0aCB0aGUgY29yZSB0aHJlYWQgbGlmZWN5Y2xlIGZ1bmN0aW9uczogYGtlcm5lbF9jbG9uZWAsIGBmb3JrX2lkbGVgLCBhbmQgYGNyZWF0ZV9pb190aHJlYWRgLiBUaGF0JiMzOTtzIGEgc3Ryb25nIGluZGljYXRpb24gb2YgaXRzIGZ1bmRhbWVudGFsIGltcG9ydGFuY2UuCgpTaW5jZSBga2VybmVsX2Nsb25lYCBpcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCBmb3IgdGhlIGNydWNpYWwgc3lzdGVtIGNhbGxzIGBjbG9uZWAsIGBmb3JrYCwgYW5kIGB2Zm9ya2AsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSB0aGUga2V5IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGlubmVyIHdvcmtpbmdzIGFuZCByZWxhdGlvbiB0byB0aGVzZSBmdW5jdGlvbnMuIExldCYjMzk7cyBkaWcgaW50byBga2VybmVsX2Nsb25lYCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG5vbi1zdGF0aWMgc3RydWN0dXJlLiBUaGF0IHNob3VsZCBnaXZlIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgb3ZlcmFsbCBwdXJwb3NlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9mb3JrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2ZvcmsuYz0xOTY1PV9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4tLVxua2VybmVsL2ZvcmsuYy0xOTY4LVx0XHRcdFx0XHRpbnQgbm9kZSxcbmtlcm5lbC9mb3JrLmM6MTk2OTpcdFx0XHRcdFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxua2VybmVsL2ZvcmsuYy0xOTcwLXtcbi0tXG5rZXJuZWwvZm9yay5jPTI1Njg9c3RydWN0IHRhc2tfc3RydWN0ICogX19pbml0IGZvcmtfaWRsZShpbnQgY3B1KVxuLS1cbmtlcm5lbC9mb3JrLmMtMjU3MC1cdHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaztcbmtlcm5lbC9mb3JrLmM6MjU3MTpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNTcyLVx0XHQuZmxhZ3NcdFx0PSBDTE9ORV9WTSxcbi0tXG5rZXJuZWwvZm9yay5jLTI1ODgtLypcbmtlcm5lbC9mb3JrLmM6MjU4OTogKiBUaGlzIGlzIGxpa2Uga2VybmVsX2Nsb25lKCksIGJ1dCBzaGF2ZWQgZG93biBhbmQgdGFpbG9yZWQgdG8ganVzdFxua2VybmVsL2ZvcmsuYy0yNTkwLSAqIGNyZWF0aW5nIGlvX3VyaW5nIHdvcmtlcnMuIEl0IHJldHVybnMgYSBjcmVhdGVkIHRhc2ssIG9yIGFuIGVycm9yIHBvaW50ZXIuXG4tLVxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcbi0tXG5rZXJuZWwvZm9yay5jLTI1OTctXHRcdFx0ICAgICAgQ0xPTkVfSU98Q0xPTkVfVk18Q0xPTkVfVU5UUkFDRUQ7XG5rZXJuZWwvZm9yay5jOjI1OTg6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjU5OS1cdFx0LmZsYWdzXHRcdD0gZmxhZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yNjE2LSAqL1xua2VybmVsL2ZvcmsuYzoyNjE3OnBpZF90IGtlcm5lbF9jbG9uZShzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXG5rZXJuZWwvZm9yay5jLTI2MTgte1xuLS1cbmtlcm5lbC9mb3JrLmM9MjcwNz1waWRfdCBrZXJuZWxfdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxua2VybmVsL2ZvcmsuYy0yNzA5LXtcbmtlcm5lbC9mb3JrLmM6MjcxMDpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzExLVx0XHQuZmxhZ3NcdFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3MTgtXG5rZXJuZWwvZm9yay5jOjI3MTk6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzIwLX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3MjU9cGlkX3QgdXNlcl9tb2RlX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB1bnNpZ25lZCBsb25nIGZsYWdzKVxua2VybmVsL2ZvcmsuYy0yNzI2LXtcbmtlcm5lbC9mb3JrLmM6MjcyNzpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzI4LVx0XHQuZmxhZ3NcdFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3MzMtXG5rZXJuZWwvZm9yay5jOjI3MzQ6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzM1LX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3Mzg9U1lTQ0FMTF9ERUZJTkUwKGZvcmspXG4tLVxua2VybmVsL2ZvcmsuYy0yNzQwLSNpZmRlZiBDT05GSUdfTU1VXG5rZXJuZWwvZm9yay5jOjI3NDE6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjc0Mi1cdFx0LmV4aXRfc2lnbmFsID0gU0lHQ0hMRCxcbi0tXG5rZXJuZWwvZm9yay5jLTI3NDQtXG5rZXJuZWwvZm9yay5jOjI3NDU6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzQ2LSNlbHNlXG4tLVxua2VybmVsL2ZvcmsuYz0yNzU0PVNZU0NBTExfREVGSU5FMCh2Zm9yaylcbmtlcm5lbC9mb3JrLmMtMjc1NS17XG5rZXJuZWwvZm9yay5jOjI3NTY6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjc1Ny1cdFx0LmZsYWdzXHRcdD0gQ0xPTkVfVkZPUksgfCBDTE9ORV9WTSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3NjAtXG5rZXJuZWwvZm9yay5jOjI3NjE6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzYyLX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3ODM9U1lTQ0FMTF9ERUZJTkU1KGNsb25lLCB1bnNpZ25lZCBsb25nLCBjbG9uZV9mbGFncywgdW5zaWduZWQgbG9uZywgbmV3c3AsXG4tLVxua2VybmVsL2ZvcmsuYy0yNzg4LXtcbmtlcm5lbC9mb3JrLmM6Mjc4OTpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzkwLVx0XHQuZmxhZ3NcdFx0PSAobG93ZXJfMzJfYml0cyhjbG9uZV9mbGFncykgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3OTgtXG5rZXJuZWwvZm9yay5jOjI3OTk6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yODAwLX1cbi0tXG5rZXJuZWwvZm9yay5jLTI4MDItXG5rZXJuZWwvZm9yay5jOjI4MDM6c3RhdGljIG5vaW5saW5lIGludCBjb3B5X2Nsb25lX2FyZ3NfZnJvbV91c2VyKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MsXG5rZXJuZWwvZm9yay5jLTI4MDQtXHRcdFx0XHRcdCAgICAgIHN0cnVjdCBjbG9uZV9hcmdzIF9fdXNlciAqdWFyZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yODQ4LVxua2VybmVsL2ZvcmsuYzoyODQ5Olx0KmthcmdzID0gKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyl7XG5rZXJuZWwvZm9yay5jLTI4NTAtXHRcdC5mbGFnc1x0XHQ9IGFyZ3MuZmxhZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yODc5LSAqL1xua2VybmVsL2ZvcmsuYzoyODgwOnN0YXRpYyBpbmxpbmUgYm9vbCBjbG9uZTNfc3RhY2tfdmFsaWQoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICprYXJncylcbmtlcm5lbC9mb3JrLmMtMjg4MS17XG4tLVxua2VybmVsL2ZvcmsuYy0yODk5LVxua2VybmVsL2ZvcmsuYzoyOTAwOnN0YXRpYyBib29sIGNsb25lM19hcmdzX3ZhbGlkKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MpXG5rZXJuZWwvZm9yay5jLTI5MDEte1xuLS1cbmtlcm5lbC9mb3JrLmM9MjkzOT1TWVNDQUxMX0RFRklORTIoY2xvbmUzLCBzdHJ1Y3QgY2xvbmVfYXJncyBfX3VzZXIgKiwgdWFyZ3MsIHNpemVfdCwgc2l6ZSlcbi0tXG5rZXJuZWwvZm9yay5jLTI5NDItXG5rZXJuZWwvZm9yay5jOjI5NDM6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3Mga2FyZ3M7XG5rZXJuZWwvZm9yay5jLTI5NDQtXHRwaWRfdCBzZXRfdGlkW01BWF9QSURfTlNfTEVWRUxdO1xuLS1cbmtlcm5lbC9mb3JrLmMtMjk1OS1cbmtlcm5lbC9mb3JrLmM6Mjk2MDpcdHJldHVybiBrZXJuZWxfY2xvbmUoXHUwMDI2a2FyZ3MpO1xua2VybmVsL2ZvcmsuYy0yOTYxLX1cbi0tXG5rZXJuZWwvZm9yay5jPTMxMDU9c3RhdGljIGludCB1bnNoYXJlX2ZkKHVuc2lnbmVkIGxvbmcgdW5zaGFyZV9mbGFncywgc3RydWN0IGZpbGVzX3N0cnVjdCAqKm5ld19mZHApXG4tLVxua2VybmVsL2ZvcmsuYy0zMTIyLSAqIGNvbnRleHQgd2hpY2ggd2FzIG9yaWdpbmFsbHkgc2hhcmVkIHVzaW5nIGNsb25lLiAgY29weV8qXG5rZXJuZWwvZm9yay5jOjMxMjM6ICogZnVuY3Rpb25zIHVzZWQgYnkga2VybmVsX2Nsb25lKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBkaXJlY3RseVxua2VybmVsL2ZvcmsuYy0zMTI0LSAqIGJlY2F1c2UgdGhleSBtb2RpZnkgYW4gaW5hY3RpdmUgdGFza19zdHJ1Y3QgdGhhdCBpcyBiZWluZ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4NDAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhpcyBDbG9uZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIFJpZ2h0LCBzbyBga2VybmVsX2Nsb25lYCBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIGNsb25lIHN5c2NhbGwgZmFtaWx5IOKAkyBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gVGhlIGNvcmUgb2YgdGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1zIHRvIGJlIGxvY2F0ZWQgd2l0aGluIHRoZXNlIGZ1bmN0aW9ucy4gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZW0uIEkgd2FzIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJlc3Qgc3ltYm9sIHRvIGZvY3VzIG9uLiAKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmRpdGlvbmFsIGNoZWNrIHdpdGhpbiBgY29weV9wcm9jZXNzYCwgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjdXJyZW50IHRhc2smIzM5O3Mgc2NoZWR1bGluZyBwb2xpY3kuIEl0JiMzOTtzIHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIFNvLCBpZiB0aGUgdGFzayBpcyBSZWFsLVRpbWUgKFJUKSBvciBEZWFkbGluZSAoREwpIGl04oCZcyBnb2luZyB0byBpbmhlcml0IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkIG9mIGB0aW1lcl9zbGFja19uc2AuIFRoYXQmIzM5O3MgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZS4KCk5vdywgYGNvcHlfcHJvY2Vzc2AgaXNuJiMzOTt0IGV4cG9ydGVkLCBidXQgaXQgKmlzKiBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIEJ1dCwgd2FpdCwgYGtlcm5lbF9jbG9uZWAgaXNuJiMzOTt0IGV4cG9ydGVkIGVpdGhlcj8gSSBuZWVkIHRvIGNoZWNrIGlmIHRoZXNlIGFyZSBzdGF0aWMuIENoZWNraW5nLi4uIE9rYXksIGBrZXJuZWxfY2xvbmVgIGlzbiYjMzk7dCBzdGF0aWMuIEl0JiMzOTtzIHVzZWQgYnkgdGhlIHN5c2NhbGxzOiBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gT2theSwgc28gYGtlcm5lbF9jbG9uZWAgaXMgdXNlZCBieSB0aGUgc3lzdGVtIGNhbGxzIGFuZCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3Qgc3RhdGljIGVpdGhlci4gWWVzLCBJJiMzOTtsbCBmb2N1cyBvbiBib3RoLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiBgcnRfb3JfZGxfdGFza19wb2xpY3lgLCBhcyB0aGlzIGlzIHRoZSBjb25kaXRpb25hbCBmYWN0b3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0X29yX2RsX3Rhc2tfcG9saWN5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3Byb2MvYmFzZS5jPTI1OTc9c3RhdGljIHNzaXplX3QgdGltZXJzbGFja19uc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Zixcbi0tXG5mcy9wcm9jL2Jhc2UuYy0yNjI5LVx0dGFza19sb2NrKHApO1xuZnMvcHJvYy9iYXNlLmM6MjYzMDpcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShwKSlcbmZzL3Byb2MvYmFzZS5jLTI2MzEtXHRcdHNsYWNrX25zID0gMDtcbi0tXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oPTM5PXN0YXRpYyBpbmxpbmUgaW50IHRhc2tfbmljZV9pb2NsYXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaylcbi0tXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQyLVx0XHRyZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7XG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oOjQzOlx0ZWxzZSBpZiAocnRfb3JfZGxfdGFza19wb2xpY3kodGFzaykpXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQ0LVx0XHRyZXR1cm4gSU9QUklPX0NMQVNTX1JUO1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaD0yMz1zdGF0aWMgaW5saW5lIGJvb2wgcnRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTI5LSAqIFJldHVybnMgdHJ1ZSBpZiBhIHRhc2sgaGFzIGEgcHJpb3JpdHkgdGhhdCBiZWxvbmdzIHRvIFJUIG9yIERMIGNsYXNzZXMuXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg6MzA6ICogUEktYm9vc3RlZCB0YXNrcyB3aWxsIHJldHVybiB0cnVlLiBVc2UgcnRfb3JfZGxfdGFza19wb2xpY3koKSB0byBpZ25vcmVcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaC0zMS0gKiBQSS1ib29zdGVkIHRhc2tzLlxuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaD0zMz1zdGF0aWMgaW5saW5lIGJvb2wgcnRfb3JfZGxfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQxLSAqL1xuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oOjQyOnN0YXRpYyBpbmxpbmUgYm9vbCBydF9vcl9kbF90YXNrX3BvbGljeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaylcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaC00My17XG4tLVxua2VybmVsL2ZvcmsuYz0xOTY1PV9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4tLVxua2VybmVsL2ZvcmsuYy0yMTM2LVxua2VybmVsL2ZvcmsuYzoyMTM3Olx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpKVxua2VybmVsL2ZvcmsuYy0yMTM4LVx0XHRwLVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XG4tLVxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM9MjQxPXN0YXRpYyB2b2lkIF9fc2V0c2NoZWR1bGVyX3BhcmFtcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsXG4tLVxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmMtMjU2LVx0LyogcnQtcG9saWN5IHRhc2tzIGRvIG5vdCBoYXZlIGEgdGltZXJzbGFjayAqL1xua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM6MjU3Olx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KHApKSB7XG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTgtXHRcdHAtXHUwMDNldGltZXJfc2xhY2tfbnMgPSAwO1xuLS1cbmtlcm5lbC9zeXMuYz0yNTMzPVNZU0NBTExfREVGSU5FNShwcmN0bCwgaW50LCBvcHRpb24sIHVuc2lnbmVkIGxvbmcsIGFyZzIsIHVuc2lnbmVkIGxvbmcsIGFyZzMsXG4tLVxua2VybmVsL3N5cy5jLTI2NDUtXHRjYXNlIFBSX1NFVF9USU1FUlNMQUNLOlxua2VybmVsL3N5cy5jOjI2NDY6XHRcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSlcbmtlcm5lbC9zeXMuYy0yNjQ3LVx0XHRcdGJyZWFrO1xuLS1cbmtlcm5lbC90aW1lL2hydGltZXIuYz0yMDUxPXN0YXRpYyB2b2lkIF9faHJ0aW1lcl9zZXR1cF9zbGVlcGVyKHN0cnVjdCBocnRpbWVyX3NsZWVwZXIgKnNsLFxuLS1cbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDczLVx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XG5rZXJuZWwvdGltZS9ocnRpbWVyLmM6MjA3NDpcdFx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpIFx1MDAyNlx1MDAyNiAhKG1vZGUgXHUwMDI2IEhSVElNRVJfTU9ERV9TT0ZUKSlcbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDc1LVx0XHRcdG1vZGUgfD0gSFJUSU1FUl9NT0RFX0hBUkQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNzQKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogMzE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgZGVmaW5pdGVseSBpbiBgY29weV9wcm9jZXNzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gYGNvcHlfcHJvY2Vzc2AgYW5kIGBrZXJuZWxfY2xvbmVgIGFzIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMuIE5vIHNwZWNpYWwgY29uZmlnIG9wdGlvbnMgYXJlIHJlcXVpcmVkLCB0aGFua2Z1bGx5IOKAkyBgY29weV9wcm9jZXNzYCBpcyBhbHdheXMgY29tcGlsZWQgaW4sIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLiBBaCwgcmlnaHQsIHRoZSBpbmNsdXNpb24gb2YgYCZsdDtsaW51eC9zY2hlZC9ydC5oJmd0O2AgbWFrZXMgaXQgY2xlYXIgdGhpcyBpcyBhYm91dCBSVC9ETCB0YXNrIHBvbGljeSwgc3BlY2lmaWNhbGx5IGhvdyB0aW1lciBzbGFjayBpcyBpbmhlcml0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIGZ1bmN0aW9uYWwgY2hhbmdlcyBhcmUgYWx3YXlzIHdvcnRoIGZ1enppbmcuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3QgYSBzdGF0aWMgZnVuY3Rpb24uIE5vcGUsIGl0JiMzOTtzIG5vdCDigJMgZ29vZCwgdGhhdCBtZWFucyBpdCYjMzk7cyBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBTYW1lIGdvZXMgZm9yIGBrZXJuZWxfY2xvbmVgLiBCb3RoIGFyZSBwZXJmZWN0IGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcgdGFyZ2V0cy4KCkFscmlnaHQsIGxldCYjMzk7cyBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGVyZSBhcmVu4oCZdCBhbnkgb3RoZXIgZ290Y2hhcyB3aXRoIGNvbmZpZ3MuIE5vcGUsIGBrZXJuZWwvZm9yay5jYCBpcyBhbHdheXMgY29tcGlsZWQgYW5kIGBydF9vcl9kbF90YXNrX3BvbGljeWAgaXMgYWx3YXlzIGRlZmluZWQuIFdlJiMzOTtyZSBnb29kIHRvIGdvLgoKVGltZSB0byBzdHJ1Y3R1cmUgdGhlIGZ1enppbmcgcmVzcG9uc2UuIEl0JiMzOTtzIGEgJiMzNDtXb3J0aEZ1enppbmc6IHRydWUmIzM0OyBzaXR1YXRpb24sIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMgYXJlICYjMzQ7Y29weV9wcm9jZXNzJiMzNDsgYW5kICYjMzQ7a2VybmVsX2Nsb25lJiMzNDssIG5vIHNwZWNpYWwgZW5hYmxpbmcgY29uZmlncyBhcmUgbmVjZXNzYXJ5LCBhbmQgdGhlIHJlYXNvbiBpcyB0aGlzIHBhdGNoIGFmZmVjdHMgZGVmYXVsdCB0aW1lciBzbGFjayBpbmhlcml0YW5jZSBkdXJpbmcgcHJvY2VzcyBjcmVhdGlvbiBmb3IgUlQvREwgdGFza3MuIFdlIGNhbiBoaXQgdGhlIGNvZGUgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICAgJiMzNDtrZXJuZWxfY2xvbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y29weV9wcm9jZXNzJiMzNDssCiAgICAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjE0LjY5OTA1MzU4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2Mjg4NTI0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNvcHlfcHJvY2Vzc1wiLFxuICAgIFwia2VybmVsX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjE0LjY5OTA1OTIwN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk1MzgzMTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjU1ZWMwZjNkZjM2ODQwMmU2ZWEwNWVmZmM2MmNhZDc5YjI2ZWM5ZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDA5OjA2OjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jXFxuaW5kZXggNjUxMTNhMzA0NTE4YS4uYmM0ZGYxOGJmZDkwNyAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvZm9yay5jXFxuKysrIGIva2VybmVsL2ZvcmsuY1xcbkBAIC0yMyw2ICsyMyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC90YXNrX3N0YWNrLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC9jcHV0aW1lLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC9leHQuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkL3J0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zZXFfZmlsZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcnRtdXRleC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvaW5pdC5oXFx1MDAzZVxcbkBAIC0yMTMzLDcgKzIxMzQsMTAgQEAgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcXG4gXFx0cmV0dmFsID0gLUVBR0FJTjtcXG4gI2VuZGlmXFxuIFxcbi1cXHRwLVxcdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cXHUwMDNldGltZXJfc2xhY2tfbnM7XFxuK1xcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSlcXG4rXFx0XFx0cC1cXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXFx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XFxuK1xcdGVsc2VcXG4rXFx0XFx0cC1cXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXFx1MDAzZXRpbWVyX3NsYWNrX25zO1xcbiBcXG4gI2lmZGVmIENPTkZJR19QU0lcXG4gXFx0cC1cXHUwMDNlcHNpX2ZsYWdzID0gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MTUuMDk1MjUxNTY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjU4OTIzMjEyMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY29weV9wcm9jZXNzXCIsXG4gICAgXCJrZXJuZWxfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjU1ZWMwZjNkZjM2ODQwMmU2ZWEwNWVmZmM2MmNhZDc5YjI2ZWM5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDk6MDY6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuY1xuaW5kZXggNjUxMTNhMzA0NTE4YS4uYmM0ZGYxOGJmZDkwNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9mb3JrLmNcbisrKyBiL2tlcm5lbC9mb3JrLmNcbkBAIC0yMyw2ICsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvdGFza19zdGFjay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvY3B1dGltZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvZXh0LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9zY2hlZC9ydC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2VxX2ZpbGUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3J0bXV0ZXguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuQEAgLTIxMzMsNyArMjEzNCwxMCBAQCBfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxuIFx0cmV0dmFsID0gLUVBR0FJTjtcbiAjZW5kaWZcbiBcbi1cdHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXHUwMDNldGltZXJfc2xhY2tfbnM7XG4rXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXG4rXHRcdHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucztcbitcdGVsc2VcbitcdFx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiBcbiAjaWZkZWYgQ09ORklHX1BTSVxuIFx0cC1cdTAwM2Vwc2lfZmxhZ3MgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MTUuMDk1MjUyODA2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMyMDc3NDMyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGtlcm5lbC9mb3JrLmNgKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBga2VybmVsL2ZvcmsuY2AsIHNwZWNpZmljYWxseSBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYGNvcHlfcHJvY2VzcygpYCBmdW5jdGlvbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYSBjaGFuZ2UgdG8gY29yZSBwcm9jZXNzIGNyZWF0aW9uLCBzb21ldGhpbmcgdGhhdCdzIGNhbGxlZCBkdXJpbmcgYGZvcmtgLCBgY2xvbmVgLCB0aGUgd2hvbGUgc2hlYmFuZy4gVGhlIGNoYW5nZSBpdHNlbGYgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIOKAkyB3ZSdyZSBhbHRlcmluZyBob3cgYHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5pdGlhbGl6ZWQgd2hlbiBhIG5ldyBwcm9jZXNzIGlzIGNyZWF0ZWQuXG5cblByZXZpb3VzbHksIGl0IHdhcyBqdXN0IGNvcGllZCBmcm9tIHRoZSBwYXJlbnQncyBgY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19uc2AuIE5vdywgdGhlIGNvZGUgY2hlY2tzIGlmIHRoZSBwYXJlbnQgaGFzIGEgcmVhbC10aW1lIG9yIGRlYWRsaW5lIHRhc2sgcG9saWN5IHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIElmIGl0IGRvZXMsIHRoZSBuZXcgcHJvY2VzcyBpbmhlcml0cyBgY3VycmVudC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkLiBPdGhlcndpc2UsIGl0IHJldGFpbnMgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLlxuXG5UaGlzIGlzIGltbWVkaWF0ZWx5IHNwYXJraW5nIHNvbWUgaWRlYXMgaW4gbXkgaGVhZC4gVGhpcyBpcyBhIHBvdGVudGlhbCBhcmVhIGZvciBzdWJ0bGUgYmVoYXZpb3IgY2hhbmdlcywgYW5kIGRlZmluaXRlbHkgc29tZXRoaW5nIEknZCB3YW50IHRvIGZ1enogdGhvcm91Z2hseS4gYGNvcHlfcHJvY2VzcygpYCBpcyBhIHRyaWNreSBmdW5jdGlvbiwgYW5kIGFueSBjaGFuZ2UgdG8gaXRzIGxvZ2ljIHdhcnJhbnRzIGV4dHJhIGF0dGVudGlvbi4gVGhlIHF1ZXN0aW9uIHRoYXQgY29tZXMgdG8gbWluZCByaWdodCBhd2F5IGlzOiBpcyBgY29weV9wcm9jZXNzYCBzdGF0aWM/IEJlY2F1c2UgaWYgaXQgaXMsIGZ1enppbmcgaXQgYmVjb21lcyBhIGJpdCBoYXJkZXIuIExldCBtZSBqdXN0IGdsYW5jZSBhdCBga2VybmVsL2ZvcmsuY2AgdG8gY29uZmlybS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjIwLjQxNjAzMTA2NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY2NDI1NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29weV9wcm9jZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9mb3JrLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2ZvcmsuYz0xODA5PWluaXRfdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUsIHN0cnVjdCBwaWQgKnBpZClcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMTgxNi1cXG5rZXJuZWwvZm9yay5jOjE4MTc6c3RhdGljIGlubGluZSB2b2lkIHJjdV9jb3B5X3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbmtlcm5lbC9mb3JrLmMtMTgxOC17XFxuLS1cXG5rZXJuZWwvZm9yay5jPTE5NTA9c3RhdGljIGJvb2wgbmVlZF9mdXRleF9oYXNoX2FsbG9jYXRlX2RlZmF1bHQodTY0IGNsb25lX2ZsYWdzKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0xOTY0LSAqL1xcbmtlcm5lbC9mb3JrLmM6MTk2NTpfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbmtlcm5lbC9mb3JrLmMtMTk2Ni1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgcGlkICpwaWQsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTIwOTctXFx0LypcXG5rZXJuZWwvZm9yay5jOjIwOTg6XFx0ICogSWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUgd2l0aGluIGNvcHlfcHJvY2VzcygpLCB0aGVuIHRoaXMgY2hlY2tcXG5rZXJuZWwvZm9yay5jLTIwOTktXFx0ICogdHJpZ2dlcnMgdG9vIGxhdGUuIFRoaXMgZG9lc24ndCBodXJ0LCB0aGUgY2hlY2sgaXMgb25seSB0aGVyZVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yMTEwLVxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZwLVxcdTAwM2VzaWJsaW5nKTtcXG5rZXJuZWwvZm9yay5jOjIxMTE6XFx0cmN1X2NvcHlfcHJvY2VzcyhwKTtcXG5rZXJuZWwvZm9yay5jLTIxMTItXFx0cC1cXHUwMDNldmZvcmtfZG9uZSA9IE5VTEw7XFxuLS1cXG5rZXJuZWwvZm9yay5jLTIzODgtXFxua2VybmVsL2ZvcmsuYzoyMzg5OlxcdGtscF9jb3B5X3Byb2Nlc3MocCk7XFxua2VybmVsL2ZvcmsuYy0yMzkwLVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yNDc0LVxcdHRyYWNlX3Rhc2tfbmV3dGFzayhwLCBjbG9uZV9mbGFncyk7XFxua2VybmVsL2ZvcmsuYzoyNDc1OlxcdHVwcm9iZV9jb3B5X3Byb2Nlc3MocCwgY2xvbmVfZmxhZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjQ3Ni1cXHR1c2VyX2V2ZW50c19mb3JrKHAsIGNsb25lX2ZsYWdzKTtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI1NzgtXFxua2VybmVsL2ZvcmsuYzoyNTc5OlxcdHRhc2sgPSBjb3B5X3Byb2Nlc3MoXFx1MDAyNmluaXRfc3RydWN0X3BpZCwgMCwgY3B1X3RvX25vZGUoY3B1KSwgXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjU4MC1cXHRpZiAoIUlTX0VSUih0YXNrKSkge1xcbi0tXFxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjYwNS1cXG5rZXJuZWwvZm9yay5jOjI2MDY6XFx0cmV0dXJuIGNvcHlfcHJvY2VzcyhOVUxMLCAwLCBub2RlLCBcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNjA3LX1cXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjYxNz1waWRfdCBrZXJuZWxfY2xvbmUoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yNjU3LVxcbmtlcm5lbC9mb3JrLmM6MjY1ODpcXHRwID0gY29weV9wcm9jZXNzKE5VTEwsIHRyYWNlLCBOVU1BX05PX05PREUsIGFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjY1OS1cXHRhZGRfbGF0ZW50X2VudHJvcHkoKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MjAuNTkyNjc3NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTU2NDc2OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgY29weV9wcm9jZXNzYCBGdW5jdGlvbioqXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBjb3B5X3Byb2Nlc3NgIGlzbid0IGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCdzIGV4cG9ydGVkIGVpdGhlci4gQSBxdWljayBzY2FuIHN1Z2dlc3RzIGl0ICpzaG91bGRuJ3QqIGJlIHN0YXRpYy4gQWgsIG9rYXksIHNvIGl0J3MgKm5vdCogc3RhdGljIHdpdGhpbiBga2VybmVsL2ZvcmsuY2AsIHRoYXQncyBhIGdvb2Qgc3RhcnQuIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBkZWNsYXJhdGlvbjogYF9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoYC4gV2FpdCwgbm8gYHN0YXRpY2Aga2V5d29yZCBwcmVwZW5kZWQgdG8gaXQ/IEdvb2QsIGNvbmZpcm1hdGlvbi4gTGV0IG1lIGNvbmZpcm0sIExpbmUgMTk2NS4gT2theSwgZ29vZC4gVGhhdCdzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGludGVncmF0ZWQgaW50byB0aGUga2VybmVsJ3MgcHJvY2VzcyBtYW5hZ2VtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MjQuMTQ5MTU2NzE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM5NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImtlcm5lbC9mb3JrLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTk2MCxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTk2MDpcXHQgKlxcbjE5NjE6XFx0ICogSXQgY29waWVzIHRoZSByZWdpc3RlcnMsIGFuZCBhbGwgdGhlIGFwcHJvcHJpYXRlXFxuMTk2MjpcXHQgKiBwYXJ0cyBvZiB0aGUgcHJvY2VzcyBlbnZpcm9ubWVudCAoYXMgcGVyIHRoZSBjbG9uZVxcbjE5NjM6XFx0ICogZmxhZ3MpLiBUaGUgYWN0dWFsIGtpY2stb2ZmIGlzIGxlZnQgdG8gdGhlIGNhbGxlci5cXG4xOTY0OlxcdCAqL1xcbjE5NjU6XFx0X19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcXG4xOTY2OlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaWQgKnBpZCxcXG4xOTY3OlxcdFxcdFxcdFxcdFxcdFxcdGludCB0cmFjZSxcXG4xOTY4OlxcdFxcdFxcdFxcdFxcdFxcdGludCBub2RlLFxcbjE5Njk6XFx0XFx0XFx0XFx0XFx0XFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwOTowNjoyNC4xNDkyOTgwNTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjY5NTU4MjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlbHZpbmcgaW50byB0aGUgRXNzZW5jZSBvZiB0aGUgVGhyZWFkIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIHRoaXMgaXNuJ3QgYSBmaXhlZCwgZXhwb3J0ZWQgc3RydWN0dXJlOyBpbnRlcmVzdGluZy4gSXRzIHB1cnBvc2UgYmVjb21lcyBjbGVhciBieSBleGFtaW5pbmcgaXRzIHVzYWdlIHdpdGhpbiB0aGUga2VybmVsLiBJdCBzZWVtcyB0byBiZSBpbnRpbWF0ZWx5IGludm9sdmVkIHdpdGggdGhlIGNvcmUgdGhyZWFkIGxpZmVjeWNsZSBmdW5jdGlvbnM6IGBrZXJuZWxfY2xvbmVgLCBgZm9ya19pZGxlYCwgYW5kIGBjcmVhdGVfaW9fdGhyZWFkYC4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRpb24gb2YgaXRzIGZ1bmRhbWVudGFsIGltcG9ydGFuY2UuXG5cblNpbmNlIGBrZXJuZWxfY2xvbmVgIGlzIHRoZSBwcmltYXJ5IGVudHJ5IHBvaW50IGZvciB0aGUgY3J1Y2lhbCBzeXN0ZW0gY2FsbHMgYGNsb25lYCwgYGZvcmtgLCBhbmQgYHZmb3JrYCwgdGhhdCdzIGRlZmluaXRlbHkgdGhlIGtleSBzdGFydGluZyBwb2ludCB0byB1bmRlcnN0YW5kIGl0cyBpbm5lciB3b3JraW5ncyBhbmQgcmVsYXRpb24gdG8gdGhlc2UgZnVuY3Rpb25zLiBMZXQncyBkaWcgaW50byBga2VybmVsX2Nsb25lYCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG5vbi1zdGF0aWMgc3RydWN0dXJlLiBUaGF0IHNob3VsZCBnaXZlIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgb3ZlcmFsbCBwdXJwb3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTE1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwOTowNjoyNy40MTg4NTgyNjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4MTcwNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImtlcm5lbF9jbG9uZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvZm9yay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9mb3JrLmM9MTk2NT1fX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbi0tXFxua2VybmVsL2ZvcmsuYy0xOTY4LVxcdFxcdFxcdFxcdFxcdGludCBub2RlLFxcbmtlcm5lbC9mb3JrLmM6MTk2OTpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXFxua2VybmVsL2ZvcmsuYy0xOTcwLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI1NzAtXFx0c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrO1xcbmtlcm5lbC9mb3JrLmM6MjU3MTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI1NzItXFx0XFx0LmZsYWdzXFx0XFx0PSBDTE9ORV9WTSxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjU4OC0vKlxcbmtlcm5lbC9mb3JrLmM6MjU4OTogKiBUaGlzIGlzIGxpa2Uga2VybmVsX2Nsb25lKCksIGJ1dCBzaGF2ZWQgZG93biBhbmQgdGFpbG9yZWQgdG8ganVzdFxcbmtlcm5lbC9mb3JrLmMtMjU5MC0gKiBjcmVhdGluZyBpb191cmluZyB3b3JrZXJzLiBJdCByZXR1cm5zIGEgY3JlYXRlZCB0YXNrLCBvciBhbiBlcnJvciBwb2ludGVyLlxcbi0tXFxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjU5Ny1cXHRcXHRcXHQgICAgICBDTE9ORV9JT3xDTE9ORV9WTXxDTE9ORV9VTlRSQUNFRDtcXG5rZXJuZWwvZm9yay5jOjI1OTg6XFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzIGFyZ3MgPSB7XFxua2VybmVsL2ZvcmsuYy0yNTk5LVxcdFxcdC5mbGFnc1xcdFxcdD0gZmxhZ3MsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI2MTYtICovXFxua2VybmVsL2ZvcmsuYzoyNjE3OnBpZF90IGtlcm5lbF9jbG9uZShzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXFxua2VybmVsL2ZvcmsuYy0yNjE4LXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjcwNz1waWRfdCBrZXJuZWxfdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3MDkte1xcbmtlcm5lbC9mb3JrLmM6MjcxMDpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3MTEtXFx0XFx0LmZsYWdzXFx0XFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXFx1MDAyNiB+Q1NJR05BTCksXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3MTgtXFxua2VybmVsL2ZvcmsuYzoyNzE5OlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjcyMC19XFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3MjU9cGlkX3QgdXNlcl9tb2RlX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB1bnNpZ25lZCBsb25nIGZsYWdzKVxcbmtlcm5lbC9mb3JrLmMtMjcyNi17XFxua2VybmVsL2ZvcmsuYzoyNzI3OlxcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xcbmtlcm5lbC9mb3JrLmMtMjcyOC1cXHRcXHQuZmxhZ3NcXHRcXHQ9ICgoZmxhZ3MgfCBDTE9ORV9WTSB8IENMT05FX1VOVFJBQ0VEKSBcXHUwMDI2IH5DU0lHTkFMKSxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjczMy1cXG5rZXJuZWwvZm9yay5jOjI3MzQ6XFx0cmV0dXJuIGtlcm5lbF9jbG9uZShcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNzM1LX1cXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjczOD1TWVNDQUxMX0RFRklORTAoZm9yaylcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjc0MC0jaWZkZWYgQ09ORklHX01NVVxcbmtlcm5lbC9mb3JrLmM6Mjc0MTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3NDItXFx0XFx0LmV4aXRfc2lnbmFsID0gU0lHQ0hMRCxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjc0NC1cXG5rZXJuZWwvZm9yay5jOjI3NDU6XFx0cmV0dXJuIGtlcm5lbF9jbG9uZShcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNzQ2LSNlbHNlXFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3NTQ9U1lTQ0FMTF9ERUZJTkUwKHZmb3JrKVxcbmtlcm5lbC9mb3JrLmMtMjc1NS17XFxua2VybmVsL2ZvcmsuYzoyNzU2OlxcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xcbmtlcm5lbC9mb3JrLmMtMjc1Ny1cXHRcXHQuZmxhZ3NcXHRcXHQ9IENMT05FX1ZGT1JLIHwgQ0xPTkVfVk0sXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3NjAtXFxua2VybmVsL2ZvcmsuYzoyNzYxOlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjc2Mi19XFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3ODM9U1lTQ0FMTF9ERUZJTkU1KGNsb25lLCB1bnNpZ25lZCBsb25nLCBjbG9uZV9mbGFncywgdW5zaWduZWQgbG9uZywgbmV3c3AsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3ODgte1xcbmtlcm5lbC9mb3JrLmM6Mjc4OTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3OTAtXFx0XFx0LmZsYWdzXFx0XFx0PSAobG93ZXJfMzJfYml0cyhjbG9uZV9mbGFncykgXFx1MDAyNiB+Q1NJR05BTCksXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3OTgtXFxua2VybmVsL2ZvcmsuYzoyNzk5OlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjgwMC19XFxuLS1cXG5rZXJuZWwvZm9yay5jLTI4MDItXFxua2VybmVsL2ZvcmsuYzoyODAzOnN0YXRpYyBub2lubGluZSBpbnQgY29weV9jbG9uZV9hcmdzX2Zyb21fdXNlcihzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmthcmdzLFxcbmtlcm5lbC9mb3JrLmMtMjgwNC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2xvbmVfYXJncyBfX3VzZXIgKnVhcmdzLFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yODQ4LVxcbmtlcm5lbC9mb3JrLmM6Mjg0OTpcXHQqa2FyZ3MgPSAoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzKXtcXG5rZXJuZWwvZm9yay5jLTI4NTAtXFx0XFx0LmZsYWdzXFx0XFx0PSBhcmdzLmZsYWdzLFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yODc5LSAqL1xcbmtlcm5lbC9mb3JrLmM6Mjg4MDpzdGF0aWMgaW5saW5lIGJvb2wgY2xvbmUzX3N0YWNrX3ZhbGlkKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MpXFxua2VybmVsL2ZvcmsuYy0yODgxLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjg5OS1cXG5rZXJuZWwvZm9yay5jOjI5MDA6c3RhdGljIGJvb2wgY2xvbmUzX2FyZ3NfdmFsaWQoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICprYXJncylcXG5rZXJuZWwvZm9yay5jLTI5MDEte1xcbi0tXFxua2VybmVsL2ZvcmsuYz0yOTM5PVNZU0NBTExfREVGSU5FMihjbG9uZTMsIHN0cnVjdCBjbG9uZV9hcmdzIF9fdXNlciAqLCB1YXJncywgc2l6ZV90LCBzaXplKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yOTQyLVxcbmtlcm5lbC9mb3JrLmM6Mjk0MzpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3Mga2FyZ3M7XFxua2VybmVsL2ZvcmsuYy0yOTQ0LVxcdHBpZF90IHNldF90aWRbTUFYX1BJRF9OU19MRVZFTF07XFxuLS1cXG5rZXJuZWwvZm9yay5jLTI5NTktXFxua2VybmVsL2ZvcmsuYzoyOTYwOlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmthcmdzKTtcXG5rZXJuZWwvZm9yay5jLTI5NjEtfVxcbi0tXFxua2VybmVsL2ZvcmsuYz0zMTA1PXN0YXRpYyBpbnQgdW5zaGFyZV9mZCh1bnNpZ25lZCBsb25nIHVuc2hhcmVfZmxhZ3MsIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKipuZXdfZmRwKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0zMTIyLSAqIGNvbnRleHQgd2hpY2ggd2FzIG9yaWdpbmFsbHkgc2hhcmVkIHVzaW5nIGNsb25lLiAgY29weV8qXFxua2VybmVsL2ZvcmsuYzozMTIzOiAqIGZ1bmN0aW9ucyB1c2VkIGJ5IGtlcm5lbF9jbG9uZSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgZGlyZWN0bHlcXG5rZXJuZWwvZm9yay5jLTMxMjQtICogYmVjYXVzZSB0aGV5IG1vZGlmeSBhbiBpbmFjdGl2ZSB0YXNrX3N0cnVjdCB0aGF0IGlzIGJlaW5nXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjI3LjUzNzAzMzA5OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NzQ5NDAzMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhpcyBDbG9uZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgbW9kaWZ5aW5nIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIFJpZ2h0LCBzbyBga2VybmVsX2Nsb25lYCBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIGNsb25lIHN5c2NhbGwgZmFtaWx5IOKAkyBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gVGhlIGNvcmUgb2YgdGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1zIHRvIGJlIGxvY2F0ZWQgd2l0aGluIHRoZXNlIGZ1bmN0aW9ucy4gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZW0uIEkgd2FzIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJlc3Qgc3ltYm9sIHRvIGZvY3VzIG9uLiBcblxuVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgd2l0aGluIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBkZXBlbmRlbnQgb24gdGhlIGN1cnJlbnQgdGFzaydzIHNjaGVkdWxpbmcgcG9saWN5LiBJdCdzIHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIFNvLCBpZiB0aGUgdGFzayBpcyBSZWFsLVRpbWUgKFJUKSBvciBEZWFkbGluZSAoREwpIGl04oCZcyBnb2luZyB0byBpbmhlcml0IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkIG9mIGB0aW1lcl9zbGFja19uc2AuIFRoYXQncyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgY2hhbmdlLlxuXG5Ob3csIGBjb3B5X3Byb2Nlc3NgIGlzbid0IGV4cG9ydGVkLCBidXQgaXQgKmlzKiBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIEJ1dCwgd2FpdCwgYGtlcm5lbF9jbG9uZWAgaXNuJ3QgZXhwb3J0ZWQgZWl0aGVyPyBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlc2UgYXJlIHN0YXRpYy4gQ2hlY2tpbmcuLi4gT2theSwgYGtlcm5lbF9jbG9uZWAgaXNuJ3Qgc3RhdGljLiBJdCdzIHVzZWQgYnkgdGhlIHN5c2NhbGxzOiBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gT2theSwgc28gYGtlcm5lbF9jbG9uZWAgaXMgdXNlZCBieSB0aGUgc3lzdGVtIGNhbGxzIGFuZCBgY29weV9wcm9jZXNzYCBpc24ndCBzdGF0aWMgZWl0aGVyLiBZZXMsIEknbGwgZm9jdXMgb24gYm90aC5cblxuTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiBgcnRfb3JfZGxfdGFza19wb2xpY3lgLCBhcyB0aGlzIGlzIHRoZSBjb25kaXRpb25hbCBmYWN0b3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NDAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MzMuMDExOTc2NTM1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkyOTgzOTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0X29yX2RsX3Rhc2tfcG9saWN5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9wcm9jL2Jhc2UuYz0yNTk3PXN0YXRpYyBzc2l6ZV90IHRpbWVyc2xhY2tfbnNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXFxuLS1cXG5mcy9wcm9jL2Jhc2UuYy0yNjI5LVxcdHRhc2tfbG9jayhwKTtcXG5mcy9wcm9jL2Jhc2UuYzoyNjMwOlxcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShwKSlcXG5mcy9wcm9jL2Jhc2UuYy0yNjMxLVxcdFxcdHNsYWNrX25zID0gMDtcXG4tLVxcbmluY2x1ZGUvbGludXgvaW9wcmlvLmg9Mzk9c3RhdGljIGlubGluZSBpbnQgdGFza19uaWNlX2lvY2xhc3Moc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKVxcbi0tXFxuaW5jbHVkZS9saW51eC9pb3ByaW8uaC00Mi1cXHRcXHRyZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7XFxuaW5jbHVkZS9saW51eC9pb3ByaW8uaDo0MzpcXHRlbHNlIGlmIChydF9vcl9kbF90YXNrX3BvbGljeSh0YXNrKSlcXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQ0LVxcdFxcdHJldHVybiBJT1BSSU9fQ0xBU1NfUlQ7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg9MjM9c3RhdGljIGlubGluZSBib29sIHJ0X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTI5LSAqIFJldHVybnMgdHJ1ZSBpZiBhIHRhc2sgaGFzIGEgcHJpb3JpdHkgdGhhdCBiZWxvbmdzIHRvIFJUIG9yIERMIGNsYXNzZXMuXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oOjMwOiAqIFBJLWJvb3N0ZWQgdGFza3Mgd2lsbCByZXR1cm4gdHJ1ZS4gVXNlIHJ0X29yX2RsX3Rhc2tfcG9saWN5KCkgdG8gaWdub3JlXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTMxLSAqIFBJLWJvb3N0ZWQgdGFza3MuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg9MzM9c3RhdGljIGlubGluZSBib29sIHJ0X29yX2RsX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQxLSAqL1xcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaDo0MjpzdGF0aWMgaW5saW5lIGJvb2wgcnRfb3JfZGxfdGFza19wb2xpY3koc3RydWN0IHRhc2tfc3RydWN0ICp0c2spXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQzLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MTk2NT1fX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yMTM2LVxcbmtlcm5lbC9mb3JrLmM6MjEzNzpcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXFxua2VybmVsL2ZvcmsuYy0yMTM4LVxcdFxcdHAtXFx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVxcdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zO1xcbi0tXFxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM9MjQxPXN0YXRpYyB2b2lkIF9fc2V0c2NoZWR1bGVyX3BhcmFtcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsXFxuLS1cXG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTYtXFx0LyogcnQtcG9saWN5IHRhc2tzIGRvIG5vdCBoYXZlIGEgdGltZXJzbGFjayAqL1xcbmtlcm5lbC9zY2hlZC9zeXNjYWxscy5jOjI1NzpcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3kocCkpIHtcXG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTgtXFx0XFx0cC1cXHUwMDNldGltZXJfc2xhY2tfbnMgPSAwO1xcbi0tXFxua2VybmVsL3N5cy5jPTI1MzM9U1lTQ0FMTF9ERUZJTkU1KHByY3RsLCBpbnQsIG9wdGlvbiwgdW5zaWduZWQgbG9uZywgYXJnMiwgdW5zaWduZWQgbG9uZywgYXJnMyxcXG4tLVxcbmtlcm5lbC9zeXMuYy0yNjQ1LVxcdGNhc2UgUFJfU0VUX1RJTUVSU0xBQ0s6XFxua2VybmVsL3N5cy5jOjI2NDY6XFx0XFx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpKVxcbmtlcm5lbC9zeXMuYy0yNjQ3LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxua2VybmVsL3RpbWUvaHJ0aW1lci5jPTIwNTE9c3RhdGljIHZvaWQgX19ocnRpbWVyX3NldHVwX3NsZWVwZXIoc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsXFxuLS1cXG5rZXJuZWwvdGltZS9ocnRpbWVyLmMtMjA3My1cXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9SVCkpIHtcXG5rZXJuZWwvdGltZS9ocnRpbWVyLmM6MjA3NDpcXHRcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkgXFx1MDAyNlxcdTAwMjYgIShtb2RlIFxcdTAwMjYgSFJUSU1FUl9NT0RFX1NPRlQpKVxcbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDc1LVxcdFxcdFxcdG1vZGUgfD0gSFJUSU1FUl9NT0RFX0hBUkQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjM0LjgwNDk2NjAzN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTgyNTc4Mjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IGluIGBjb3B5X3Byb2Nlc3NgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiBgY29weV9wcm9jZXNzYCBhbmQgYGtlcm5lbF9jbG9uZWAgYXMgdGhlIHByaW1hcnkgZm9jdXMgc3ltYm9scy4gTm8gc3BlY2lhbCBjb25maWcgb3B0aW9ucyBhcmUgcmVxdWlyZWQsIHRoYW5rZnVsbHkg4oCTIGBjb3B5X3Byb2Nlc3NgIGlzIGFsd2F5cyBjb21waWxlZCBpbiwgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIEFoLCByaWdodCwgdGhlIGluY2x1c2lvbiBvZiBgXHUwMDNjbGludXgvc2NoZWQvcnQuaFx1MDAzZWAgbWFrZXMgaXQgY2xlYXIgdGhpcyBpcyBhYm91dCBSVC9ETCB0YXNrIHBvbGljeSwgc3BlY2lmaWNhbGx5IGhvdyB0aW1lciBzbGFjayBpcyBpbmhlcml0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIGZ1bmN0aW9uYWwgY2hhbmdlcyBhcmUgYWx3YXlzIHdvcnRoIGZ1enppbmcuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBjb3B5X3Byb2Nlc3NgIGlzbid0IGEgc3RhdGljIGZ1bmN0aW9uLiBOb3BlLCBpdCdzIG5vdCDigJMgZ29vZCwgdGhhdCBtZWFucyBpdCdzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIFNhbWUgZ29lcyBmb3IgYGtlcm5lbF9jbG9uZWAuIEJvdGggYXJlIHBlcmZlY3QgY2FuZGlkYXRlcyBmb3IgZnV6emluZyB0YXJnZXRzLlxuXG5BbHJpZ2h0LCBsZXQncyBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGVyZSBhcmVu4oCZdCBhbnkgb3RoZXIgZ290Y2hhcyB3aXRoIGNvbmZpZ3MuIE5vcGUsIGBrZXJuZWwvZm9yay5jYCBpcyBhbHdheXMgY29tcGlsZWQgYW5kIGBydF9vcl9kbF90YXNrX3BvbGljeWAgaXMgYWx3YXlzIGRlZmluZWQuIFdlJ3JlIGdvb2QgdG8gZ28uXG5cblRpbWUgdG8gc3RydWN0dXJlIHRoZSBmdXp6aW5nIHJlc3BvbnNlLiBJdCdzIGEgXCJXb3J0aEZ1enppbmc6IHRydWVcIiBzaXR1YXRpb24sIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMgYXJlIFwiY29weV9wcm9jZXNzXCIgYW5kIFwia2VybmVsX2Nsb25lXCIsIG5vIHNwZWNpYWwgZW5hYmxpbmcgY29uZmlncyBhcmUgbmVjZXNzYXJ5LCBhbmQgdGhlIHJlYXNvbiBpcyB0aGlzIHBhdGNoIGFmZmVjdHMgZGVmYXVsdCB0aW1lciBzbGFjayBpbmhlcml0YW5jZSBkdXJpbmcgcHJvY2VzcyBjcmVhdGlvbiBmb3IgUlQvREwgdGFza3MuIFdlIGNhbiBoaXQgdGhlIGNvZGUgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM3NCwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6NDAuOTg3NTQ2NzkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjb3B5X3Byb2Nlc3NcIixcbiAgICBcImtlcm5lbF9jbG9uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjb3B5X3Byb2Nlc3NgIHRvIGNoYW5nZSBob3cgYGRlZmF1bHRfdGltZXJfc2xhY2tfbnNgIGlzIGluaGVyaXRlZCBmb3IgdGFza3Mgd2l0aCByZWFsLXRpbWUgb3IgZGVhZGxpbmUgc2NoZWR1bGluZyBwb2xpY2llcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIHByb2Nlc3MgY3JlYXRpb24gbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgYGNsb25lYCwgYGZvcmtgLCBvciBgdmZvcmtgIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNvcHlfcHJvY2Vzc1wiLFxuICAgIFwia2VybmVsX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-06 08:25:09 +0000 UTC FinishedAt: 2026-08-06 09:06:42 +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": "d3f0a606b9f278ece8a0df626ded9c4044071235", "config_name": "upstream-apparmor-kasan.config", "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": "d3f0a606b9f278ece8a0df626ded9c4044071235", "config_name": "upstream-apparmor-kasan.config", "series_id": "ff609282-6e87-44ce-b49f-d3baff150883" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "copy_process", "kernel_clone" ], "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+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y29weV9wcm9jZXNzJiMzNDssCiAgICAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwOTowNjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGI1NWVjMGYzZGYzNjg0MDJlNmVhMDVlZmZjNjJjYWQ3OWIyNmVjOWZcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgVGh1IEF1ZyA2IDA5OjA2OjEzIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jXG5pbmRleCA2NTExM2EzMDQ1MThhLi5iYzRkZjE4YmZkOTA3IDEwMDY0NFxuLS0tIGEva2VybmVsL2ZvcmsuY1xuJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2ZvcmsuY1xuQEAgLTIzLDYgJiM0MzsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvdGFza19zdGFjay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvY3B1dGltZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvZXh0LmhcdTAwM2VcbiYjNDM7I2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvcnQuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3NlcV9maWxlLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ydG11dGV4LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9pbml0LmhcdTAwM2VcbkBAIC0yMTMzLDcgJiM0MzsyMTM0LDEwIEBAIF9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4gXHRyZXR2YWwgPSAtRUFHQUlOO1xuICNlbmRpZlxuIFxuLVx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiYjNDM7XHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXG4mIzQzO1x0XHRwLVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XG4mIzQzO1x0ZWxzZVxuJiM0MztcdFx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiBcbiAjaWZkZWYgQ09ORklHX1BTSVxuIFx0cC1cdTAwM2Vwc2lfZmxhZ3MgPSAwO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmFnZW50PC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmJlc3QtZXhwZW5zaXZlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICAgJiMzNDtrZXJuZWxfY2xvbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5JbnN0cnVjdGlvbjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZQppZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuCgpJTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW4KeW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5CnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuCgpSZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOgotIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuCi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuCi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LgotIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSwKICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuCi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsCiAgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuCi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSkKICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuCgpJZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoCnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLgoKV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086CjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuCiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLgogICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnMKICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIEFsc28gY2hlY2sgJiMzNDtkZXBlbmRzIG9uJiMzNDsgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzCiAgIG5lZWRlZCBmb3IgS2J1aWxkIHRvIGNvbXBpbGUgdGhlIGNvZGUgc3RhdGljYWxseSBpbnRvIHZtbGludXguIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncwogICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBiNTVlYzBmM2RmMzY4NDAyZTZlYTA1ZWZmYzYyY2FkNzliMjZlYzlmCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFRodSBBdWcgNiAwOTowNjoxMyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jCmluZGV4IDY1MTEzYTMwNDUxOGEuLmJjNGRmMThiZmQ5MDcgMTAwNjQ0Ci0tLSBhL2tlcm5lbC9mb3JrLmMKJiM0MzsmIzQzOyYjNDM7IGIva2VybmVsL2ZvcmsuYwpAQCAtMjMsNiAmIzQzOzIzLDcgQEAKICNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC90YXNrX3N0YWNrLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvc2NoZWQvY3B1dGltZS5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NjaGVkL2V4dC5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9zY2hlZC9ydC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3NlcV9maWxlLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7bGludXgvcnRtdXRleC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L2luaXQuaCZndDsKQEAgLTIxMzMsNyAmIzQzOzIxMzQsMTAgQEAgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcygKIAlyZXR2YWwgPSAtRUFHQUlOOwogI2VuZGlmCiAKLQlwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC0mZ3Q7dGltZXJfc2xhY2tfbnM7CiYjNDM7CWlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSkKJiM0MzsJCXAtJmd0O2RlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zOwomIzQzOwllbHNlCiYjNDM7CQlwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC0mZ3Q7dGltZXJfc2xhY2tfbnM7CiAKICNpZmRlZiBDT05GSUdfUFNJCiAJcC0mZ3Q7cHNpX2ZsYWdzID0gMDsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjE2MAoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDI0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGtlcm5lbC9mb3JrLmNgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGluIGBrZXJuZWwvZm9yay5jYCwgc3BlY2lmaWNhbGx5IGEgbW9kaWZpY2F0aW9uIHRvIHRoZSBgY29weV9wcm9jZXNzKClgIGZ1bmN0aW9uLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgdGhpcyBpcyBhIGNoYW5nZSB0byBjb3JlIHByb2Nlc3MgY3JlYXRpb24sIHNvbWV0aGluZyB0aGF0JiMzOTtzIGNhbGxlZCBkdXJpbmcgYGZvcmtgLCBgY2xvbmVgLCB0aGUgd2hvbGUgc2hlYmFuZy4gVGhlIGNoYW5nZSBpdHNlbGYgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIOKAkyB3ZSYjMzk7cmUgYWx0ZXJpbmcgaG93IGBwLSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbml0aWFsaXplZCB3aGVuIGEgbmV3IHByb2Nlc3MgaXMgY3JlYXRlZC4KClByZXZpb3VzbHksIGl0IHdhcyBqdXN0IGNvcGllZCBmcm9tIHRoZSBwYXJlbnQmIzM5O3MgYGN1cnJlbnQtJmd0O3RpbWVyX3NsYWNrX25zYC4gTm93LCB0aGUgY29kZSBjaGVja3MgaWYgdGhlIHBhcmVudCBoYXMgYSByZWFsLXRpbWUgb3IgZGVhZGxpbmUgdGFzayBwb2xpY3kgdXNpbmcgYHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpYC4gSWYgaXQgZG9lcywgdGhlIG5ldyBwcm9jZXNzIGluaGVyaXRzIGBjdXJyZW50LSZndDtkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkLiBPdGhlcndpc2UsIGl0IHJldGFpbnMgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLgoKVGhpcyBpcyBpbW1lZGlhdGVseSBzcGFya2luZyBzb21lIGlkZWFzIGluIG15IGhlYWQuIFRoaXMgaXMgYSBwb3RlbnRpYWwgYXJlYSBmb3Igc3VidGxlIGJlaGF2aW9yIGNoYW5nZXMsIGFuZCBkZWZpbml0ZWx5IHNvbWV0aGluZyBJJiMzOTtkIHdhbnQgdG8gZnV6eiB0aG9yb3VnaGx5LiBgY29weV9wcm9jZXNzKClgIGlzIGEgdHJpY2t5IGZ1bmN0aW9uLCBhbmQgYW55IGNoYW5nZSB0byBpdHMgbG9naWMgd2FycmFudHMgZXh0cmEgYXR0ZW50aW9uLiBUaGUgcXVlc3Rpb24gdGhhdCBjb21lcyB0byBtaW5kIHJpZ2h0IGF3YXkgaXM6IGlzIGBjb3B5X3Byb2Nlc3NgIHN0YXRpYz8gQmVjYXVzZSBpZiBpdCBpcywgZnV6emluZyBpdCBiZWNvbWVzIGEgYml0IGhhcmRlci4gTGV0IG1lIGp1c3QgZ2xhbmNlIGF0IGBrZXJuZWwvZm9yay5jYCB0byBjb25maXJtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9mb3JrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2ZvcmsuYz0xODA5PWluaXRfdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUsIHN0cnVjdCBwaWQgKnBpZClcbi0tXG5rZXJuZWwvZm9yay5jLTE4MTYtXG5rZXJuZWwvZm9yay5jOjE4MTc6c3RhdGljIGlubGluZSB2b2lkIHJjdV9jb3B5X3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwKVxua2VybmVsL2ZvcmsuYy0xODE4LXtcbi0tXG5rZXJuZWwvZm9yay5jPTE5NTA9c3RhdGljIGJvb2wgbmVlZF9mdXRleF9oYXNoX2FsbG9jYXRlX2RlZmF1bHQodTY0IGNsb25lX2ZsYWdzKVxuLS1cbmtlcm5lbC9mb3JrLmMtMTk2NC0gKi9cbmtlcm5lbC9mb3JrLmM6MTk2NTpfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxua2VybmVsL2ZvcmsuYy0xOTY2LVx0XHRcdFx0XHRzdHJ1Y3QgcGlkICpwaWQsXG4tLVxua2VybmVsL2ZvcmsuYy0yMDk3LVx0Lypcbmtlcm5lbC9mb3JrLmM6MjA5ODpcdCAqIElmIG11bHRpcGxlIHRocmVhZHMgYXJlIHdpdGhpbiBjb3B5X3Byb2Nlc3MoKSwgdGhlbiB0aGlzIGNoZWNrXG5rZXJuZWwvZm9yay5jLTIwOTktXHQgKiB0cmlnZ2VycyB0b28gbGF0ZS4gVGhpcyBkb2VzbiYjMzk7dCBodXJ0LCB0aGUgY2hlY2sgaXMgb25seSB0aGVyZVxuLS1cbmtlcm5lbC9mb3JrLmMtMjExMC1cdElOSVRfTElTVF9IRUFEKFx1MDAyNnAtXHUwMDNlc2libGluZyk7XG5rZXJuZWwvZm9yay5jOjIxMTE6XHRyY3VfY29weV9wcm9jZXNzKHApO1xua2VybmVsL2ZvcmsuYy0yMTEyLVx0cC1cdTAwM2V2Zm9ya19kb25lID0gTlVMTDtcbi0tXG5rZXJuZWwvZm9yay5jLTIzODgtXG5rZXJuZWwvZm9yay5jOjIzODk6XHRrbHBfY29weV9wcm9jZXNzKHApO1xua2VybmVsL2ZvcmsuYy0yMzkwLVxuLS1cbmtlcm5lbC9mb3JrLmMtMjQ3NC1cdHRyYWNlX3Rhc2tfbmV3dGFzayhwLCBjbG9uZV9mbGFncyk7XG5rZXJuZWwvZm9yay5jOjI0NzU6XHR1cHJvYmVfY29weV9wcm9jZXNzKHAsIGNsb25lX2ZsYWdzKTtcbmtlcm5lbC9mb3JrLmMtMjQ3Ni1cdHVzZXJfZXZlbnRzX2ZvcmsocCwgY2xvbmVfZmxhZ3MpO1xuLS1cbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXG4tLVxua2VybmVsL2ZvcmsuYy0yNTc4LVxua2VybmVsL2ZvcmsuYzoyNTc5Olx0dGFzayA9IGNvcHlfcHJvY2VzcyhcdTAwMjZpbml0X3N0cnVjdF9waWQsIDAsIGNwdV90b19ub2RlKGNwdSksIFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNTgwLVx0aWYgKCFJU19FUlIodGFzaykpIHtcbi0tXG5rZXJuZWwvZm9yay5jPTI1OTQ9c3RydWN0IHRhc2tfc3RydWN0ICpjcmVhdGVfaW9fdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGludCBub2RlKVxuLS1cbmtlcm5lbC9mb3JrLmMtMjYwNS1cbmtlcm5lbC9mb3JrLmM6MjYwNjpcdHJldHVybiBjb3B5X3Byb2Nlc3MoTlVMTCwgMCwgbm9kZSwgXHUwMDI2YXJncyk7XG5rZXJuZWwvZm9yay5jLTI2MDctfVxuLS1cbmtlcm5lbC9mb3JrLmM9MjYxNz1waWRfdCBrZXJuZWxfY2xvbmUoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxuLS1cbmtlcm5lbC9mb3JrLmMtMjY1Ny1cbmtlcm5lbC9mb3JrLmM6MjY1ODpcdHAgPSBjb3B5X3Byb2Nlc3MoTlVMTCwgdHJhY2UsIE5VTUFfTk9fTk9ERSwgYXJncyk7XG5rZXJuZWwvZm9yay5jLTI2NTktXHRhZGRfbGF0ZW50X2VudHJvcHkoKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8wNiAwOTowNjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNDc4CgkJCQkJCQlvdXRwdXQ6IDM0CgkJCQkJCQl0aG91Z2h0czogNzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGxldCBtZSBicmVhayB0aGlzIGRvd24uCgoqKkRpdmluZyBpbnRvIHRoZSBgY29weV9wcm9jZXNzYCBGdW5jdGlvbioqCgpNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3QgYSBzdGF0aWMgZnVuY3Rpb24sIGJ1dCBpdCYjMzk7cyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCYjMzk7cyBleHBvcnRlZCBlaXRoZXIuIEEgcXVpY2sgc2NhbiBzdWdnZXN0cyBpdCAqc2hvdWxkbiYjMzk7dCogYmUgc3RhdGljLiBBaCwgb2theSwgc28gaXQmIzM5O3MgKm5vdCogc3RhdGljIHdpdGhpbiBga2VybmVsL2ZvcmsuY2AsIHRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0LiBMZXQmIzM5O3Mgc2VlLi4uIGxvb2tpbmcgYXQgdGhlIGRlY2xhcmF0aW9uOiBgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhgLiBXYWl0LCBubyBgc3RhdGljYCBrZXl3b3JkIHByZXBlbmRlZCB0byBpdD8gR29vZCwgY29uZmlybWF0aW9uLiBMZXQgbWUgY29uZmlybSwgTGluZSAxOTY1LiBPa2F5LCBnb29kLiBUaGF0JiMzOTtzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kIGhvdyBpdCYjMzk7cyBpbnRlZ3JhdGVkIGludG8gdGhlIGtlcm5lbCYjMzk7cyBwcm9jZXNzIG1hbmFnZW1lbnQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtrZXJuZWwvZm9yay5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMTk2MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAxMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsxOTYwOlx0ICpcbjE5NjE6XHQgKiBJdCBjb3BpZXMgdGhlIHJlZ2lzdGVycywgYW5kIGFsbCB0aGUgYXBwcm9wcmlhdGVcbjE5NjI6XHQgKiBwYXJ0cyBvZiB0aGUgcHJvY2VzcyBlbnZpcm9ubWVudCAoYXMgcGVyIHRoZSBjbG9uZVxuMTk2MzpcdCAqIGZsYWdzKS4gVGhlIGFjdHVhbCBraWNrLW9mZiBpcyBsZWZ0IHRvIHRoZSBjYWxsZXIuXG4xOTY0Olx0ICovXG4xOTY1Olx0X19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcbjE5NjY6XHRcdFx0XHRcdFx0c3RydWN0IHBpZCAqcGlkLFxuMTk2NzpcdFx0XHRcdFx0XHRpbnQgdHJhY2UsXG4xOTY4Olx0XHRcdFx0XHRcdGludCBub2RlLFxuMTk2OTpcdFx0XHRcdFx0XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzkxNQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDY0CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkRlbHZpbmcgaW50byB0aGUgRXNzZW5jZSBvZiB0aGUgVGhyZWFkIFN0cnVjdHVyZSoqCgpPa2F5LCBzbyB0aGlzIGlzbiYjMzk7dCBhIGZpeGVkLCBleHBvcnRlZCBzdHJ1Y3R1cmU7IGludGVyZXN0aW5nLiBJdHMgcHVycG9zZSBiZWNvbWVzIGNsZWFyIGJ5IGV4YW1pbmluZyBpdHMgdXNhZ2Ugd2l0aGluIHRoZSBrZXJuZWwuIEl0IHNlZW1zIHRvIGJlIGludGltYXRlbHkgaW52b2x2ZWQgd2l0aCB0aGUgY29yZSB0aHJlYWQgbGlmZWN5Y2xlIGZ1bmN0aW9uczogYGtlcm5lbF9jbG9uZWAsIGBmb3JrX2lkbGVgLCBhbmQgYGNyZWF0ZV9pb190aHJlYWRgLiBUaGF0JiMzOTtzIGEgc3Ryb25nIGluZGljYXRpb24gb2YgaXRzIGZ1bmRhbWVudGFsIGltcG9ydGFuY2UuCgpTaW5jZSBga2VybmVsX2Nsb25lYCBpcyB0aGUgcHJpbWFyeSBlbnRyeSBwb2ludCBmb3IgdGhlIGNydWNpYWwgc3lzdGVtIGNhbGxzIGBjbG9uZWAsIGBmb3JrYCwgYW5kIGB2Zm9ya2AsIHRoYXQmIzM5O3MgZGVmaW5pdGVseSB0aGUga2V5IHN0YXJ0aW5nIHBvaW50IHRvIHVuZGVyc3RhbmQgaXRzIGlubmVyIHdvcmtpbmdzIGFuZCByZWxhdGlvbiB0byB0aGVzZSBmdW5jdGlvbnMuIExldCYjMzk7cyBkaWcgaW50byBga2VybmVsX2Nsb25lYCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG5vbi1zdGF0aWMgc3RydWN0dXJlLiBUaGF0IHNob3VsZCBnaXZlIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgb3ZlcmFsbCBwdXJwb3NlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2tlcm5lbC9mb3JrLmMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7a2VybmVsL2ZvcmsuYz0xOTY1PV9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4tLVxua2VybmVsL2ZvcmsuYy0xOTY4LVx0XHRcdFx0XHRpbnQgbm9kZSxcbmtlcm5lbC9mb3JrLmM6MTk2OTpcdFx0XHRcdFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxua2VybmVsL2ZvcmsuYy0xOTcwLXtcbi0tXG5rZXJuZWwvZm9yay5jPTI1Njg9c3RydWN0IHRhc2tfc3RydWN0ICogX19pbml0IGZvcmtfaWRsZShpbnQgY3B1KVxuLS1cbmtlcm5lbC9mb3JrLmMtMjU3MC1cdHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaztcbmtlcm5lbC9mb3JrLmM6MjU3MTpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNTcyLVx0XHQuZmxhZ3NcdFx0PSBDTE9ORV9WTSxcbi0tXG5rZXJuZWwvZm9yay5jLTI1ODgtLypcbmtlcm5lbC9mb3JrLmM6MjU4OTogKiBUaGlzIGlzIGxpa2Uga2VybmVsX2Nsb25lKCksIGJ1dCBzaGF2ZWQgZG93biBhbmQgdGFpbG9yZWQgdG8ganVzdFxua2VybmVsL2ZvcmsuYy0yNTkwLSAqIGNyZWF0aW5nIGlvX3VyaW5nIHdvcmtlcnMuIEl0IHJldHVybnMgYSBjcmVhdGVkIHRhc2ssIG9yIGFuIGVycm9yIHBvaW50ZXIuXG4tLVxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcbi0tXG5rZXJuZWwvZm9yay5jLTI1OTctXHRcdFx0ICAgICAgQ0xPTkVfSU98Q0xPTkVfVk18Q0xPTkVfVU5UUkFDRUQ7XG5rZXJuZWwvZm9yay5jOjI1OTg6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjU5OS1cdFx0LmZsYWdzXHRcdD0gZmxhZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yNjE2LSAqL1xua2VybmVsL2ZvcmsuYzoyNjE3OnBpZF90IGtlcm5lbF9jbG9uZShzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXG5rZXJuZWwvZm9yay5jLTI2MTgte1xuLS1cbmtlcm5lbC9mb3JrLmM9MjcwNz1waWRfdCBrZXJuZWxfdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGNvbnN0IGNoYXIgKm5hbWUsXG4tLVxua2VybmVsL2ZvcmsuYy0yNzA5LXtcbmtlcm5lbC9mb3JrLmM6MjcxMDpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzExLVx0XHQuZmxhZ3NcdFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3MTgtXG5rZXJuZWwvZm9yay5jOjI3MTk6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzIwLX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3MjU9cGlkX3QgdXNlcl9tb2RlX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB1bnNpZ25lZCBsb25nIGZsYWdzKVxua2VybmVsL2ZvcmsuYy0yNzI2LXtcbmtlcm5lbC9mb3JrLmM6MjcyNzpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzI4LVx0XHQuZmxhZ3NcdFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3MzMtXG5rZXJuZWwvZm9yay5jOjI3MzQ6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzM1LX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3Mzg9U1lTQ0FMTF9ERUZJTkUwKGZvcmspXG4tLVxua2VybmVsL2ZvcmsuYy0yNzQwLSNpZmRlZiBDT05GSUdfTU1VXG5rZXJuZWwvZm9yay5jOjI3NDE6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjc0Mi1cdFx0LmV4aXRfc2lnbmFsID0gU0lHQ0hMRCxcbi0tXG5rZXJuZWwvZm9yay5jLTI3NDQtXG5rZXJuZWwvZm9yay5jOjI3NDU6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzQ2LSNlbHNlXG4tLVxua2VybmVsL2ZvcmsuYz0yNzU0PVNZU0NBTExfREVGSU5FMCh2Zm9yaylcbmtlcm5lbC9mb3JrLmMtMjc1NS17XG5rZXJuZWwvZm9yay5jOjI3NTY6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcbmtlcm5lbC9mb3JrLmMtMjc1Ny1cdFx0LmZsYWdzXHRcdD0gQ0xPTkVfVkZPUksgfCBDTE9ORV9WTSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3NjAtXG5rZXJuZWwvZm9yay5jOjI3NjE6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yNzYyLX1cbi0tXG5rZXJuZWwvZm9yay5jPTI3ODM9U1lTQ0FMTF9ERUZJTkU1KGNsb25lLCB1bnNpZ25lZCBsb25nLCBjbG9uZV9mbGFncywgdW5zaWduZWQgbG9uZywgbmV3c3AsXG4tLVxua2VybmVsL2ZvcmsuYy0yNzg4LXtcbmtlcm5lbC9mb3JrLmM6Mjc4OTpcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xua2VybmVsL2ZvcmsuYy0yNzkwLVx0XHQuZmxhZ3NcdFx0PSAobG93ZXJfMzJfYml0cyhjbG9uZV9mbGFncykgXHUwMDI2IH5DU0lHTkFMKSxcbi0tXG5rZXJuZWwvZm9yay5jLTI3OTgtXG5rZXJuZWwvZm9yay5jOjI3OTk6XHRyZXR1cm4ga2VybmVsX2Nsb25lKFx1MDAyNmFyZ3MpO1xua2VybmVsL2ZvcmsuYy0yODAwLX1cbi0tXG5rZXJuZWwvZm9yay5jLTI4MDItXG5rZXJuZWwvZm9yay5jOjI4MDM6c3RhdGljIG5vaW5saW5lIGludCBjb3B5X2Nsb25lX2FyZ3NfZnJvbV91c2VyKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MsXG5rZXJuZWwvZm9yay5jLTI4MDQtXHRcdFx0XHRcdCAgICAgIHN0cnVjdCBjbG9uZV9hcmdzIF9fdXNlciAqdWFyZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yODQ4LVxua2VybmVsL2ZvcmsuYzoyODQ5Olx0KmthcmdzID0gKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyl7XG5rZXJuZWwvZm9yay5jLTI4NTAtXHRcdC5mbGFnc1x0XHQ9IGFyZ3MuZmxhZ3MsXG4tLVxua2VybmVsL2ZvcmsuYy0yODc5LSAqL1xua2VybmVsL2ZvcmsuYzoyODgwOnN0YXRpYyBpbmxpbmUgYm9vbCBjbG9uZTNfc3RhY2tfdmFsaWQoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICprYXJncylcbmtlcm5lbC9mb3JrLmMtMjg4MS17XG4tLVxua2VybmVsL2ZvcmsuYy0yODk5LVxua2VybmVsL2ZvcmsuYzoyOTAwOnN0YXRpYyBib29sIGNsb25lM19hcmdzX3ZhbGlkKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MpXG5rZXJuZWwvZm9yay5jLTI5MDEte1xuLS1cbmtlcm5lbC9mb3JrLmM9MjkzOT1TWVNDQUxMX0RFRklORTIoY2xvbmUzLCBzdHJ1Y3QgY2xvbmVfYXJncyBfX3VzZXIgKiwgdWFyZ3MsIHNpemVfdCwgc2l6ZSlcbi0tXG5rZXJuZWwvZm9yay5jLTI5NDItXG5rZXJuZWwvZm9yay5jOjI5NDM6XHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3Mga2FyZ3M7XG5rZXJuZWwvZm9yay5jLTI5NDQtXHRwaWRfdCBzZXRfdGlkW01BWF9QSURfTlNfTEVWRUxdO1xuLS1cbmtlcm5lbC9mb3JrLmMtMjk1OS1cbmtlcm5lbC9mb3JrLmM6Mjk2MDpcdHJldHVybiBrZXJuZWxfY2xvbmUoXHUwMDI2a2FyZ3MpO1xua2VybmVsL2ZvcmsuYy0yOTYxLX1cbi0tXG5rZXJuZWwvZm9yay5jPTMxMDU9c3RhdGljIGludCB1bnNoYXJlX2ZkKHVuc2lnbmVkIGxvbmcgdW5zaGFyZV9mbGFncywgc3RydWN0IGZpbGVzX3N0cnVjdCAqKm5ld19mZHApXG4tLVxua2VybmVsL2ZvcmsuYy0zMTIyLSAqIGNvbnRleHQgd2hpY2ggd2FzIG9yaWdpbmFsbHkgc2hhcmVkIHVzaW5nIGNsb25lLiAgY29weV8qXG5rZXJuZWwvZm9yay5jOjMxMjM6ICogZnVuY3Rpb25zIHVzZWQgYnkga2VybmVsX2Nsb25lKCkgY2Fubm90IGJlIHVzZWQgaGVyZSBkaXJlY3RseVxua2VybmVsL2ZvcmsuYy0zMTI0LSAqIGJlY2F1c2UgdGhleSBtb2RpZnkgYW4gaW5hY3RpdmUgdGFza19zdHJ1Y3QgdGhhdCBpcyBiZWluZ1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU4NDAKCQkJCQkJCW91dHB1dDogMjkKCQkJCQkJCXRob3VnaHRzOiAyNDYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhpcyBDbG9uZSBQYXRjaCoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBhbmQgaXQmIzM5O3MgbW9kaWZ5aW5nIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIFJpZ2h0LCBzbyBga2VybmVsX2Nsb25lYCBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIGNsb25lIHN5c2NhbGwgZmFtaWx5IOKAkyBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gVGhlIGNvcmUgb2YgdGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1zIHRvIGJlIGxvY2F0ZWQgd2l0aGluIHRoZXNlIGZ1bmN0aW9ucy4gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZW0uIEkgd2FzIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJlc3Qgc3ltYm9sIHRvIGZvY3VzIG9uLiAKClRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmRpdGlvbmFsIGNoZWNrIHdpdGhpbiBgY29weV9wcm9jZXNzYCwgd2hpY2ggaXMgZGVwZW5kZW50IG9uIHRoZSBjdXJyZW50IHRhc2smIzM5O3Mgc2NoZWR1bGluZyBwb2xpY3kuIEl0JiMzOTtzIHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIFNvLCBpZiB0aGUgdGFzayBpcyBSZWFsLVRpbWUgKFJUKSBvciBEZWFkbGluZSAoREwpIGl04oCZcyBnb2luZyB0byBpbmhlcml0IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkIG9mIGB0aW1lcl9zbGFja19uc2AuIFRoYXQmIzM5O3MgYSBkZWZpbml0ZSBmdW5jdGlvbmFsIGNoYW5nZS4KCk5vdywgYGNvcHlfcHJvY2Vzc2AgaXNuJiMzOTt0IGV4cG9ydGVkLCBidXQgaXQgKmlzKiBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIEJ1dCwgd2FpdCwgYGtlcm5lbF9jbG9uZWAgaXNuJiMzOTt0IGV4cG9ydGVkIGVpdGhlcj8gSSBuZWVkIHRvIGNoZWNrIGlmIHRoZXNlIGFyZSBzdGF0aWMuIENoZWNraW5nLi4uIE9rYXksIGBrZXJuZWxfY2xvbmVgIGlzbiYjMzk7dCBzdGF0aWMuIEl0JiMzOTtzIHVzZWQgYnkgdGhlIHN5c2NhbGxzOiBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gT2theSwgc28gYGtlcm5lbF9jbG9uZWAgaXMgdXNlZCBieSB0aGUgc3lzdGVtIGNhbGxzIGFuZCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3Qgc3RhdGljIGVpdGhlci4gWWVzLCBJJiMzOTtsbCBmb2N1cyBvbiBib3RoLgoKTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiBgcnRfb3JfZGxfdGFza19wb2xpY3lgLCBhcyB0aGlzIGlzIHRoZSBjb25kaXRpb25hbCBmYWN0b3IuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3J0X29yX2RsX3Rhc2tfcG9saWN5JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2ZzL3Byb2MvYmFzZS5jPTI1OTc9c3RhdGljIHNzaXplX3QgdGltZXJzbGFja19uc193cml0ZShzdHJ1Y3QgZmlsZSAqZmlsZSwgY29uc3QgY2hhciBfX3VzZXIgKmJ1Zixcbi0tXG5mcy9wcm9jL2Jhc2UuYy0yNjI5LVx0dGFza19sb2NrKHApO1xuZnMvcHJvYy9iYXNlLmM6MjYzMDpcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShwKSlcbmZzL3Byb2MvYmFzZS5jLTI2MzEtXHRcdHNsYWNrX25zID0gMDtcbi0tXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oPTM5PXN0YXRpYyBpbmxpbmUgaW50IHRhc2tfbmljZV9pb2NsYXNzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaylcbi0tXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQyLVx0XHRyZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7XG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oOjQzOlx0ZWxzZSBpZiAocnRfb3JfZGxfdGFza19wb2xpY3kodGFzaykpXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQ0LVx0XHRyZXR1cm4gSU9QUklPX0NMQVNTX1JUO1xuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaD0yMz1zdGF0aWMgaW5saW5lIGJvb2wgcnRfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTI5LSAqIFJldHVybnMgdHJ1ZSBpZiBhIHRhc2sgaGFzIGEgcHJpb3JpdHkgdGhhdCBiZWxvbmdzIHRvIFJUIG9yIERMIGNsYXNzZXMuXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg6MzA6ICogUEktYm9vc3RlZCB0YXNrcyB3aWxsIHJldHVybiB0cnVlLiBVc2UgcnRfb3JfZGxfdGFza19wb2xpY3koKSB0byBpZ25vcmVcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaC0zMS0gKiBQSS1ib29zdGVkIHRhc2tzLlxuLS1cbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaD0zMz1zdGF0aWMgaW5saW5lIGJvb2wgcnRfb3JfZGxfdGFzayhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnApXG4tLVxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQxLSAqL1xuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oOjQyOnN0YXRpYyBpbmxpbmUgYm9vbCBydF9vcl9kbF90YXNrX3BvbGljeShzdHJ1Y3QgdGFza19zdHJ1Y3QgKnRzaylcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaC00My17XG4tLVxua2VybmVsL2ZvcmsuYz0xOTY1PV9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoXG4tLVxua2VybmVsL2ZvcmsuYy0yMTM2LVxua2VybmVsL2ZvcmsuYzoyMTM3Olx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpKVxua2VybmVsL2ZvcmsuYy0yMTM4LVx0XHRwLVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XG4tLVxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM9MjQxPXN0YXRpYyB2b2lkIF9fc2V0c2NoZWR1bGVyX3BhcmFtcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsXG4tLVxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmMtMjU2LVx0LyogcnQtcG9saWN5IHRhc2tzIGRvIG5vdCBoYXZlIGEgdGltZXJzbGFjayAqL1xua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM6MjU3Olx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KHApKSB7XG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTgtXHRcdHAtXHUwMDNldGltZXJfc2xhY2tfbnMgPSAwO1xuLS1cbmtlcm5lbC9zeXMuYz0yNTMzPVNZU0NBTExfREVGSU5FNShwcmN0bCwgaW50LCBvcHRpb24sIHVuc2lnbmVkIGxvbmcsIGFyZzIsIHVuc2lnbmVkIGxvbmcsIGFyZzMsXG4tLVxua2VybmVsL3N5cy5jLTI2NDUtXHRjYXNlIFBSX1NFVF9USU1FUlNMQUNLOlxua2VybmVsL3N5cy5jOjI2NDY6XHRcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSlcbmtlcm5lbC9zeXMuYy0yNjQ3LVx0XHRcdGJyZWFrO1xuLS1cbmtlcm5lbC90aW1lL2hydGltZXIuYz0yMDUxPXN0YXRpYyB2b2lkIF9faHJ0aW1lcl9zZXR1cF9zbGVlcGVyKHN0cnVjdCBocnRpbWVyX3NsZWVwZXIgKnNsLFxuLS1cbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDczLVx0aWYgKElTX0VOQUJMRUQoQ09ORklHX1BSRUVNUFRfUlQpKSB7XG5rZXJuZWwvdGltZS9ocnRpbWVyLmM6MjA3NDpcdFx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpIFx1MDAyNlx1MDAyNiAhKG1vZGUgXHUwMDI2IEhSVElNRVJfTU9ERV9TT0ZUKSlcbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDc1LVx0XHRcdG1vZGUgfD0gSFJUSU1FUl9NT0RFX0hBUkQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzA2IDA5OjA2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDczNzQKCQkJCQkJCW91dHB1dDogMTA1CgkJCQkJCQl0aG91Z2h0czogMzE4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKioKCk9rYXksIHNvIHRoZSBjaGFuZ2UgaXMgZGVmaW5pdGVseSBpbiBgY29weV9wcm9jZXNzYC4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIHplcm8gaW4gb24gYGNvcHlfcHJvY2Vzc2AgYW5kIGBrZXJuZWxfY2xvbmVgIGFzIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMuIE5vIHNwZWNpYWwgY29uZmlnIG9wdGlvbnMgYXJlIHJlcXVpcmVkLCB0aGFua2Z1bGx5IOKAkyBgY29weV9wcm9jZXNzYCBpcyBhbHdheXMgY29tcGlsZWQgaW4sIHdoaWNoIHNpbXBsaWZpZXMgdGhpbmdzLiBBaCwgcmlnaHQsIHRoZSBpbmNsdXNpb24gb2YgYCZsdDtsaW51eC9zY2hlZC9ydC5oJmd0O2AgbWFrZXMgaXQgY2xlYXIgdGhpcyBpcyBhYm91dCBSVC9ETCB0YXNrIHBvbGljeSwgc3BlY2lmaWNhbGx5IGhvdyB0aW1lciBzbGFjayBpcyBpbmhlcml0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIGZ1bmN0aW9uYWwgY2hhbmdlcyBhcmUgYWx3YXlzIHdvcnRoIGZ1enppbmcuCgpMZXQgbWUganVzdCBkb3VibGUtY2hlY2sgdGhhdCBgY29weV9wcm9jZXNzYCBpc24mIzM5O3QgYSBzdGF0aWMgZnVuY3Rpb24uIE5vcGUsIGl0JiMzOTtzIG5vdCDigJMgZ29vZCwgdGhhdCBtZWFucyBpdCYjMzk7cyBhIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzLiBTYW1lIGdvZXMgZm9yIGBrZXJuZWxfY2xvbmVgLiBCb3RoIGFyZSBwZXJmZWN0IGNhbmRpZGF0ZXMgZm9yIGZ1enppbmcgdGFyZ2V0cy4KCkFscmlnaHQsIGxldCYjMzk7cyBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGVyZSBhcmVu4oCZdCBhbnkgb3RoZXIgZ290Y2hhcyB3aXRoIGNvbmZpZ3MuIE5vcGUsIGBrZXJuZWwvZm9yay5jYCBpcyBhbHdheXMgY29tcGlsZWQgYW5kIGBydF9vcl9kbF90YXNrX3BvbGljeWAgaXMgYWx3YXlzIGRlZmluZWQuIFdlJiMzOTtyZSBnb29kIHRvIGdvLgoKVGltZSB0byBzdHJ1Y3R1cmUgdGhlIGZ1enppbmcgcmVzcG9uc2UuIEl0JiMzOTtzIGEgJiMzNDtXb3J0aEZ1enppbmc6IHRydWUmIzM0OyBzaXR1YXRpb24sIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMgYXJlICYjMzQ7Y29weV9wcm9jZXNzJiMzNDsgYW5kICYjMzQ7a2VybmVsX2Nsb25lJiMzNDssIG5vIHNwZWNpYWwgZW5hYmxpbmcgY29uZmlncyBhcmUgbmVjZXNzYXJ5LCBhbmQgdGhlIHJlYXNvbiBpcyB0aGlzIHBhdGNoIGFmZmVjdHMgZGVmYXVsdCB0aW1lciBzbGFjayBpbmhlcml0YW5jZSBkdXJpbmcgcHJvY2VzcyBjcmVhdGlvbiBmb3IgUlQvREwgdGFza3MuIFdlIGNhbiBoaXQgdGhlIGNvZGUgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMDYgMDk6MDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2NvcHlfcHJvY2VzcyYjMzQ7LAogICAgJiMzNDtrZXJuZWxfY2xvbmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7Y29weV9wcm9jZXNzJiMzNDssCiAgICAmIzM0O2tlcm5lbF9jbG9uZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjE0LjY5OTA1MzU4N1oiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjI2Mjg4NTI0ODU2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNvcHlfcHJvY2Vzc1wiLFxuICAgIFwia2VybmVsX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjE0LjY5OTA1OTIwN1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6Mzk1MzgzMTU5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgYjU1ZWMwZjNkZjM2ODQwMmU2ZWEwNWVmZmM2MmNhZDc5YjI2ZWM5ZlxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgVGh1IEF1ZyA2IDA5OjA2OjEzIDIwMjYgKzAwMDBcXG5cXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XFxuXFxuZGlmZiAtLWdpdCBhL2tlcm5lbC9mb3JrLmMgYi9rZXJuZWwvZm9yay5jXFxuaW5kZXggNjUxMTNhMzA0NTE4YS4uYmM0ZGYxOGJmZDkwNyAxMDA2NDRcXG4tLS0gYS9rZXJuZWwvZm9yay5jXFxuKysrIGIva2VybmVsL2ZvcmsuY1xcbkBAIC0yMyw2ICsyMyw3IEBAXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC90YXNrX3N0YWNrLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC9jcHV0aW1lLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zY2hlZC9leHQuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NjaGVkL3J0LmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9zZXFfZmlsZS5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcnRtdXRleC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvaW5pdC5oXFx1MDAzZVxcbkBAIC0yMTMzLDcgKzIxMzQsMTAgQEAgX19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcXG4gXFx0cmV0dmFsID0gLUVBR0FJTjtcXG4gI2VuZGlmXFxuIFxcbi1cXHRwLVxcdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cXHUwMDNldGltZXJfc2xhY2tfbnM7XFxuK1xcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KSlcXG4rXFx0XFx0cC1cXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXFx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnM7XFxuK1xcdGVsc2VcXG4rXFx0XFx0cC1cXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXFx1MDAzZXRpbWVyX3NsYWNrX25zO1xcbiBcXG4gI2lmZGVmIENPTkZJR19QU0lcXG4gXFx0cC1cXHUwMDNlcHNpX2ZsYWdzID0gMDtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MTUuMDk1MjUxNTY2WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6MjU4OTIzMjEyMTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogbnVsbCxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwiY29weV9wcm9jZXNzXCIsXG4gICAgXCJrZXJuZWxfY2xvbmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBgY29weV9wcm9jZXNzYCB0byBjaGFuZ2UgaG93IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpcyBpbmhlcml0ZWQgZm9yIHRhc2tzIHdpdGggcmVhbC10aW1lIG9yIGRlYWRsaW5lIHNjaGVkdWxpbmcgcG9saWNpZXMuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiBjb3JlIGtlcm5lbCBwcm9jZXNzIGNyZWF0aW9uIGxvZ2ljIHRoYXQgY2FuIGJlIHJlYWNoZWQgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYCBzeXNjYWxscy5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogdHJ1ZVxufSIsIkluc3RydWN0aW9uIjoiWW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuXG5Zb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGRldGVybWluZVxuaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseVxudXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy5cblxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczpcbi0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy5cbi0gUHVyZWx5IGRlY29yYXRpdmUgY2hhbmdlcywgc3VjaCBhcyBsb2dnaW5nIChlLmcuLCBwcl9lcnIsIHByaW50aykgb3IgdHJhY2Vwb2ludHMuXG4tIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy5cbi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLFxuICBldmVuIHdoZW4gdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlIChlLmcuLCB1c2IgZ2FkZ2V0LCBtYWM4MDIxMV9od3NpbSkuXG4tIENvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLFxuICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cbi0gRHJpdmVyIC5yZW1vdmUsIC5zaHV0ZG93biwgb3IgcGNpX3VucmVnaXN0ZXJfZHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoZS5nLiwgaWdiX3JlbW92ZSlcbiAgdGhhdCBhcmUgZXhlY3V0ZWQgb25seSBkdXJpbmcgUENJIGhvdC11bnBsdWcgb3Igc3lzZnMgZHJpdmVyIHVuYmluZCBvcGVyYXRpb25zLlxuXG5JZiBpdCBtb2RpZmllcyByZWFjaGFibGUgY29yZSBrZXJuZWwgbG9naWMsIGRyaXZlcnMsIG9yIGFyY2hpdGVjdHVyZXMsIHVzZSB5b3VyIGNvZGUgc2VhcmNoXG50b29scyB0byB2ZXJpZnkgdGhlIGNvZGUgY2FuIGJlIGV4ZWN1dGVkLCB0aGVuIHJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZS5cblxuV2hlbiByZXR1cm5pbmcgV29ydGhGdXp6aW5nPXRydWUsIHlvdSBNVVNUIEFMU086XG4xLiBFeHRyYWN0IGFueSBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIGhlYXZpbHkgZnV6emVkIGludG8gRm9jdXNTeW1ib2xzLlxuICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuXG4gICBQcmVmZXIgbm9uLXN0YXRpYywgbm9uLWlubGluZWQgQVBJIGVudHJ5cG9pbnQgZnVuY3Rpb25zIG92ZXIgaW50ZXJuYWwgc3RhdGljIGhlbHBlciBmdW5jdGlvbnNcbiAgICh3aGljaCBhcmUgaW5saW5lZCBieSB0aGUgY29tcGlsZXIgYW5kIGRvIG5vdCBoYXZlIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMpLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBBbHNvIGNoZWNrIFwiZGVwZW5kcyBvblwiIGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlnc1xuICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzXG4gICBvdXRwdXQgYXJyYXksIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgYjU1ZWMwZjNkZjM2ODQwMmU2ZWEwNWVmZmM2MmNhZDc5YjI2ZWM5ZlxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUaHUgQXVnIDYgMDk6MDY6MTMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9rZXJuZWwvZm9yay5jIGIva2VybmVsL2ZvcmsuY1xuaW5kZXggNjUxMTNhMzA0NTE4YS4uYmM0ZGYxOGJmZDkwNyAxMDA2NDRcbi0tLSBhL2tlcm5lbC9mb3JrLmNcbisrKyBiL2tlcm5lbC9mb3JrLmNcbkBAIC0yMyw2ICsyMyw3IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvdGFza19zdGFjay5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvY3B1dGltZS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2NoZWQvZXh0LmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9zY2hlZC9ydC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvc2VxX2ZpbGUuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L3J0bXV0ZXguaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2luaXQuaFx1MDAzZVxuQEAgLTIxMzMsNyArMjEzNCwxMCBAQCBfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxuIFx0cmV0dmFsID0gLUVBR0FJTjtcbiAjZW5kaWZcbiBcbi1cdHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXHUwMDNldGltZXJfc2xhY2tfbnM7XG4rXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXG4rXHRcdHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucyA9IGN1cnJlbnQtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19ucztcbitcdGVsc2VcbitcdFx0cC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zID0gY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19ucztcbiBcbiAjaWZkZWYgQ09ORklHX1BTSVxuIFx0cC1cdTAwM2Vwc2lfZmxhZ3MgPSAwO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MTUuMDk1MjUyODA2WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTMyMDc3NDMyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBLZXJuZWwgUGF0Y2ggaW4gYGtlcm5lbC9mb3JrLmNgKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBwYXRjaCBpbiBga2VybmVsL2ZvcmsuY2AsIHNwZWNpZmljYWxseSBhIG1vZGlmaWNhdGlvbiB0byB0aGUgYGNvcHlfcHJvY2VzcygpYCBmdW5jdGlvbi4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIHRoaXMgaXMgYSBjaGFuZ2UgdG8gY29yZSBwcm9jZXNzIGNyZWF0aW9uLCBzb21ldGhpbmcgdGhhdCdzIGNhbGxlZCBkdXJpbmcgYGZvcmtgLCBgY2xvbmVgLCB0aGUgd2hvbGUgc2hlYmFuZy4gVGhlIGNoYW5nZSBpdHNlbGYgc2VlbXMgc3RyYWlnaHRmb3J3YXJkIOKAkyB3ZSdyZSBhbHRlcmluZyBob3cgYHAtXHUwMDNlZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5pdGlhbGl6ZWQgd2hlbiBhIG5ldyBwcm9jZXNzIGlzIGNyZWF0ZWQuXG5cblByZXZpb3VzbHksIGl0IHdhcyBqdXN0IGNvcGllZCBmcm9tIHRoZSBwYXJlbnQncyBgY3VycmVudC1cdTAwM2V0aW1lcl9zbGFja19uc2AuIE5vdywgdGhlIGNvZGUgY2hlY2tzIGlmIHRoZSBwYXJlbnQgaGFzIGEgcmVhbC10aW1lIG9yIGRlYWRsaW5lIHRhc2sgcG9saWN5IHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIElmIGl0IGRvZXMsIHRoZSBuZXcgcHJvY2VzcyBpbmhlcml0cyBgY3VycmVudC1cdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkLiBPdGhlcndpc2UsIGl0IHJldGFpbnMgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLlxuXG5UaGlzIGlzIGltbWVkaWF0ZWx5IHNwYXJraW5nIHNvbWUgaWRlYXMgaW4gbXkgaGVhZC4gVGhpcyBpcyBhIHBvdGVudGlhbCBhcmVhIGZvciBzdWJ0bGUgYmVoYXZpb3IgY2hhbmdlcywgYW5kIGRlZmluaXRlbHkgc29tZXRoaW5nIEknZCB3YW50IHRvIGZ1enogdGhvcm91Z2hseS4gYGNvcHlfcHJvY2VzcygpYCBpcyBhIHRyaWNreSBmdW5jdGlvbiwgYW5kIGFueSBjaGFuZ2UgdG8gaXRzIGxvZ2ljIHdhcnJhbnRzIGV4dHJhIGF0dGVudGlvbi4gVGhlIHF1ZXN0aW9uIHRoYXQgY29tZXMgdG8gbWluZCByaWdodCBhd2F5IGlzOiBpcyBgY29weV9wcm9jZXNzYCBzdGF0aWM/IEJlY2F1c2UgaWYgaXQgaXMsIGZ1enppbmcgaXQgYmVjb21lcyBhIGJpdCBoYXJkZXIuIExldCBtZSBqdXN0IGdsYW5jZSBhdCBga2VybmVsL2ZvcmsuY2AgdG8gY29uZmlybS5cblxuXG4iLCJJbnB1dFRva2VucyI6MjE2MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjI0OSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjIwLjQxNjAzMTA2NVoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzY2NDI1NDUsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29weV9wcm9jZXNzXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImtlcm5lbC9mb3JrLmNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwia2VybmVsL2ZvcmsuYz0xODA5PWluaXRfdGFza19waWQoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrLCBlbnVtIHBpZF90eXBlIHR5cGUsIHN0cnVjdCBwaWQgKnBpZClcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMTgxNi1cXG5rZXJuZWwvZm9yay5jOjE4MTc6c3RhdGljIGlubGluZSB2b2lkIHJjdV9jb3B5X3Byb2Nlc3Moc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbmtlcm5lbC9mb3JrLmMtMTgxOC17XFxuLS1cXG5rZXJuZWwvZm9yay5jPTE5NTA9c3RhdGljIGJvb2wgbmVlZF9mdXRleF9oYXNoX2FsbG9jYXRlX2RlZmF1bHQodTY0IGNsb25lX2ZsYWdzKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0xOTY0LSAqL1xcbmtlcm5lbC9mb3JrLmM6MTk2NTpfX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbmtlcm5lbC9mb3JrLmMtMTk2Ni1cXHRcXHRcXHRcXHRcXHRzdHJ1Y3QgcGlkICpwaWQsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTIwOTctXFx0LypcXG5rZXJuZWwvZm9yay5jOjIwOTg6XFx0ICogSWYgbXVsdGlwbGUgdGhyZWFkcyBhcmUgd2l0aGluIGNvcHlfcHJvY2VzcygpLCB0aGVuIHRoaXMgY2hlY2tcXG5rZXJuZWwvZm9yay5jLTIwOTktXFx0ICogdHJpZ2dlcnMgdG9vIGxhdGUuIFRoaXMgZG9lc24ndCBodXJ0LCB0aGUgY2hlY2sgaXMgb25seSB0aGVyZVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yMTEwLVxcdElOSVRfTElTVF9IRUFEKFxcdTAwMjZwLVxcdTAwM2VzaWJsaW5nKTtcXG5rZXJuZWwvZm9yay5jOjIxMTE6XFx0cmN1X2NvcHlfcHJvY2VzcyhwKTtcXG5rZXJuZWwvZm9yay5jLTIxMTItXFx0cC1cXHUwMDNldmZvcmtfZG9uZSA9IE5VTEw7XFxuLS1cXG5rZXJuZWwvZm9yay5jLTIzODgtXFxua2VybmVsL2ZvcmsuYzoyMzg5OlxcdGtscF9jb3B5X3Byb2Nlc3MocCk7XFxua2VybmVsL2ZvcmsuYy0yMzkwLVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yNDc0LVxcdHRyYWNlX3Rhc2tfbmV3dGFzayhwLCBjbG9uZV9mbGFncyk7XFxua2VybmVsL2ZvcmsuYzoyNDc1OlxcdHVwcm9iZV9jb3B5X3Byb2Nlc3MocCwgY2xvbmVfZmxhZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjQ3Ni1cXHR1c2VyX2V2ZW50c19mb3JrKHAsIGNsb25lX2ZsYWdzKTtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI1NzgtXFxua2VybmVsL2ZvcmsuYzoyNTc5OlxcdHRhc2sgPSBjb3B5X3Byb2Nlc3MoXFx1MDAyNmluaXRfc3RydWN0X3BpZCwgMCwgY3B1X3RvX25vZGUoY3B1KSwgXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjU4MC1cXHRpZiAoIUlTX0VSUih0YXNrKSkge1xcbi0tXFxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjYwNS1cXG5rZXJuZWwvZm9yay5jOjI2MDY6XFx0cmV0dXJuIGNvcHlfcHJvY2VzcyhOVUxMLCAwLCBub2RlLCBcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNjA3LX1cXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjYxNz1waWRfdCBrZXJuZWxfY2xvbmUoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yNjU3LVxcbmtlcm5lbC9mb3JrLmM6MjY1ODpcXHRwID0gY29weV9wcm9jZXNzKE5VTEwsIHRyYWNlLCBOVU1BX05PX05PREUsIGFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjY1OS1cXHRhZGRfbGF0ZW50X2VudHJvcHkoKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MjAuNTkyNjc3NzlaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozNTU2NDc2OTM3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBsZXQgbWUgYnJlYWsgdGhpcyBkb3duLlxuXG4qKkRpdmluZyBpbnRvIHRoZSBgY29weV9wcm9jZXNzYCBGdW5jdGlvbioqXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0aGF0IGBjb3B5X3Byb2Nlc3NgIGlzbid0IGEgc3RhdGljIGZ1bmN0aW9uLCBidXQgaXQncyBub3QgaW1tZWRpYXRlbHkgb2J2aW91cyBpZiBpdCdzIGV4cG9ydGVkIGVpdGhlci4gQSBxdWljayBzY2FuIHN1Z2dlc3RzIGl0ICpzaG91bGRuJ3QqIGJlIHN0YXRpYy4gQWgsIG9rYXksIHNvIGl0J3MgKm5vdCogc3RhdGljIHdpdGhpbiBga2VybmVsL2ZvcmsuY2AsIHRoYXQncyBhIGdvb2Qgc3RhcnQuIExldCdzIHNlZS4uLiBsb29raW5nIGF0IHRoZSBkZWNsYXJhdGlvbjogYF9fbGF0ZW50X2VudHJvcHkgc3RydWN0IHRhc2tfc3RydWN0ICpjb3B5X3Byb2Nlc3MoYC4gV2FpdCwgbm8gYHN0YXRpY2Aga2V5d29yZCBwcmVwZW5kZWQgdG8gaXQ/IEdvb2QsIGNvbmZpcm1hdGlvbi4gTGV0IG1lIGNvbmZpcm0sIExpbmUgMTk2NS4gT2theSwgZ29vZC4gVGhhdCdzIGEga2V5IGRldGFpbCB0byB1bmRlcnN0YW5kIGhvdyBpdCdzIGludGVncmF0ZWQgaW50byB0aGUga2VybmVsJ3MgcHJvY2VzcyBtYW5hZ2VtZW50LlxuXG5cbiIsIklucHV0VG9rZW5zIjozNDc4LCJPdXRwdXRUb2tlbnMiOjM0LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MjQuMTQ5MTU2NzE3WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM5NjAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImtlcm5lbC9mb3JrLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMTk2MCxcbiAgXCJMaW5lQ291bnRcIjogMTBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMTk2MDpcXHQgKlxcbjE5NjE6XFx0ICogSXQgY29waWVzIHRoZSByZWdpc3RlcnMsIGFuZCBhbGwgdGhlIGFwcHJvcHJpYXRlXFxuMTk2MjpcXHQgKiBwYXJ0cyBvZiB0aGUgcHJvY2VzcyBlbnZpcm9ubWVudCAoYXMgcGVyIHRoZSBjbG9uZVxcbjE5NjM6XFx0ICogZmxhZ3MpLiBUaGUgYWN0dWFsIGtpY2stb2ZmIGlzIGxlZnQgdG8gdGhlIGNhbGxlci5cXG4xOTY0OlxcdCAqL1xcbjE5NjU6XFx0X19sYXRlbnRfZW50cm9weSBzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNvcHlfcHJvY2VzcyhcXG4xOTY2OlxcdFxcdFxcdFxcdFxcdFxcdHN0cnVjdCBwaWQgKnBpZCxcXG4xOTY3OlxcdFxcdFxcdFxcdFxcdFxcdGludCB0cmFjZSxcXG4xOTY4OlxcdFxcdFxcdFxcdFxcdFxcdGludCBub2RlLFxcbjE5Njk6XFx0XFx0XFx0XFx0XFx0XFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICphcmdzKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwOTowNjoyNC4xNDkyOTgwNTdaIiwiU2VxIjo3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjY5NTU4MjE1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkRlbHZpbmcgaW50byB0aGUgRXNzZW5jZSBvZiB0aGUgVGhyZWFkIFN0cnVjdHVyZSoqXG5cbk9rYXksIHNvIHRoaXMgaXNuJ3QgYSBmaXhlZCwgZXhwb3J0ZWQgc3RydWN0dXJlOyBpbnRlcmVzdGluZy4gSXRzIHB1cnBvc2UgYmVjb21lcyBjbGVhciBieSBleGFtaW5pbmcgaXRzIHVzYWdlIHdpdGhpbiB0aGUga2VybmVsLiBJdCBzZWVtcyB0byBiZSBpbnRpbWF0ZWx5IGludm9sdmVkIHdpdGggdGhlIGNvcmUgdGhyZWFkIGxpZmVjeWNsZSBmdW5jdGlvbnM6IGBrZXJuZWxfY2xvbmVgLCBgZm9ya19pZGxlYCwgYW5kIGBjcmVhdGVfaW9fdGhyZWFkYC4gVGhhdCdzIGEgc3Ryb25nIGluZGljYXRpb24gb2YgaXRzIGZ1bmRhbWVudGFsIGltcG9ydGFuY2UuXG5cblNpbmNlIGBrZXJuZWxfY2xvbmVgIGlzIHRoZSBwcmltYXJ5IGVudHJ5IHBvaW50IGZvciB0aGUgY3J1Y2lhbCBzeXN0ZW0gY2FsbHMgYGNsb25lYCwgYGZvcmtgLCBhbmQgYHZmb3JrYCwgdGhhdCdzIGRlZmluaXRlbHkgdGhlIGtleSBzdGFydGluZyBwb2ludCB0byB1bmRlcnN0YW5kIGl0cyBpbm5lciB3b3JraW5ncyBhbmQgcmVsYXRpb24gdG8gdGhlc2UgZnVuY3Rpb25zLiBMZXQncyBkaWcgaW50byBga2VybmVsX2Nsb25lYCBhbmQgc2VlIGhvdyBpdCBpbnRlcmFjdHMgd2l0aCB0aGlzIG5vbi1zdGF0aWMgc3RydWN0dXJlLiBUaGF0IHNob3VsZCBnaXZlIGEgY2xlYXIgcGljdHVyZSBvZiBpdHMgb3ZlcmFsbCBwdXJwb3NlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozOTE1LCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NjQsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0wNlQwOTowNjoyNy40MTg4NTgyNjNaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE4MTcwNDc2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImtlcm5lbF9jbG9uZVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJrZXJuZWwvZm9yay5jXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImtlcm5lbC9mb3JrLmM9MTk2NT1fX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbi0tXFxua2VybmVsL2ZvcmsuYy0xOTY4LVxcdFxcdFxcdFxcdFxcdGludCBub2RlLFxcbmtlcm5lbC9mb3JrLmM6MTk2OTpcXHRcXHRcXHRcXHRcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXFxua2VybmVsL2ZvcmsuYy0xOTcwLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjU2OD1zdHJ1Y3QgdGFza19zdHJ1Y3QgKiBfX2luaXQgZm9ya19pZGxlKGludCBjcHUpXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI1NzAtXFx0c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrO1xcbmtlcm5lbC9mb3JrLmM6MjU3MTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI1NzItXFx0XFx0LmZsYWdzXFx0XFx0PSBDTE9ORV9WTSxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjU4OC0vKlxcbmtlcm5lbC9mb3JrLmM6MjU4OTogKiBUaGlzIGlzIGxpa2Uga2VybmVsX2Nsb25lKCksIGJ1dCBzaGF2ZWQgZG93biBhbmQgdGFpbG9yZWQgdG8ganVzdFxcbmtlcm5lbC9mb3JrLmMtMjU5MC0gKiBjcmVhdGluZyBpb191cmluZyB3b3JrZXJzLiBJdCByZXR1cm5zIGEgY3JlYXRlZCB0YXNrLCBvciBhbiBlcnJvciBwb2ludGVyLlxcbi0tXFxua2VybmVsL2ZvcmsuYz0yNTk0PXN0cnVjdCB0YXNrX3N0cnVjdCAqY3JlYXRlX2lvX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCBpbnQgbm9kZSlcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjU5Ny1cXHRcXHRcXHQgICAgICBDTE9ORV9JT3xDTE9ORV9WTXxDTE9ORV9VTlRSQUNFRDtcXG5rZXJuZWwvZm9yay5jOjI1OTg6XFx0c3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzIGFyZ3MgPSB7XFxua2VybmVsL2ZvcmsuYy0yNTk5LVxcdFxcdC5mbGFnc1xcdFxcdD0gZmxhZ3MsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI2MTYtICovXFxua2VybmVsL2ZvcmsuYzoyNjE3OnBpZF90IGtlcm5lbF9jbG9uZShzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmFyZ3MpXFxua2VybmVsL2ZvcmsuYy0yNjE4LXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjcwNz1waWRfdCBrZXJuZWxfdGhyZWFkKGludCAoKmZuKSh2b2lkICopLCB2b2lkICphcmcsIGNvbnN0IGNoYXIgKm5hbWUsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3MDkte1xcbmtlcm5lbC9mb3JrLmM6MjcxMDpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3MTEtXFx0XFx0LmZsYWdzXFx0XFx0PSAoKGZsYWdzIHwgQ0xPTkVfVk0gfCBDTE9ORV9VTlRSQUNFRCkgXFx1MDAyNiB+Q1NJR05BTCksXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3MTgtXFxua2VybmVsL2ZvcmsuYzoyNzE5OlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjcyMC19XFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3MjU9cGlkX3QgdXNlcl9tb2RlX3RocmVhZChpbnQgKCpmbikodm9pZCAqKSwgdm9pZCAqYXJnLCB1bnNpZ25lZCBsb25nIGZsYWdzKVxcbmtlcm5lbC9mb3JrLmMtMjcyNi17XFxua2VybmVsL2ZvcmsuYzoyNzI3OlxcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xcbmtlcm5lbC9mb3JrLmMtMjcyOC1cXHRcXHQuZmxhZ3NcXHRcXHQ9ICgoZmxhZ3MgfCBDTE9ORV9WTSB8IENMT05FX1VOVFJBQ0VEKSBcXHUwMDI2IH5DU0lHTkFMKSxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjczMy1cXG5rZXJuZWwvZm9yay5jOjI3MzQ6XFx0cmV0dXJuIGtlcm5lbF9jbG9uZShcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNzM1LX1cXG4tLVxcbmtlcm5lbC9mb3JrLmM9MjczOD1TWVNDQUxMX0RFRklORTAoZm9yaylcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjc0MC0jaWZkZWYgQ09ORklHX01NVVxcbmtlcm5lbC9mb3JrLmM6Mjc0MTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3NDItXFx0XFx0LmV4aXRfc2lnbmFsID0gU0lHQ0hMRCxcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjc0NC1cXG5rZXJuZWwvZm9yay5jOjI3NDU6XFx0cmV0dXJuIGtlcm5lbF9jbG9uZShcXHUwMDI2YXJncyk7XFxua2VybmVsL2ZvcmsuYy0yNzQ2LSNlbHNlXFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3NTQ9U1lTQ0FMTF9ERUZJTkUwKHZmb3JrKVxcbmtlcm5lbC9mb3JrLmMtMjc1NS17XFxua2VybmVsL2ZvcmsuYzoyNzU2OlxcdHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyBhcmdzID0ge1xcbmtlcm5lbC9mb3JrLmMtMjc1Ny1cXHRcXHQuZmxhZ3NcXHRcXHQ9IENMT05FX1ZGT1JLIHwgQ0xPTkVfVk0sXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3NjAtXFxua2VybmVsL2ZvcmsuYzoyNzYxOlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjc2Mi19XFxuLS1cXG5rZXJuZWwvZm9yay5jPTI3ODM9U1lTQ0FMTF9ERUZJTkU1KGNsb25lLCB1bnNpZ25lZCBsb25nLCBjbG9uZV9mbGFncywgdW5zaWduZWQgbG9uZywgbmV3c3AsXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3ODgte1xcbmtlcm5lbC9mb3JrLmM6Mjc4OTpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgYXJncyA9IHtcXG5rZXJuZWwvZm9yay5jLTI3OTAtXFx0XFx0LmZsYWdzXFx0XFx0PSAobG93ZXJfMzJfYml0cyhjbG9uZV9mbGFncykgXFx1MDAyNiB+Q1NJR05BTCksXFxuLS1cXG5rZXJuZWwvZm9yay5jLTI3OTgtXFxua2VybmVsL2ZvcmsuYzoyNzk5OlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmFyZ3MpO1xcbmtlcm5lbC9mb3JrLmMtMjgwMC19XFxuLS1cXG5rZXJuZWwvZm9yay5jLTI4MDItXFxua2VybmVsL2ZvcmsuYzoyODAzOnN0YXRpYyBub2lubGluZSBpbnQgY29weV9jbG9uZV9hcmdzX2Zyb21fdXNlcihzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3MgKmthcmdzLFxcbmtlcm5lbC9mb3JrLmMtMjgwNC1cXHRcXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2xvbmVfYXJncyBfX3VzZXIgKnVhcmdzLFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yODQ4LVxcbmtlcm5lbC9mb3JrLmM6Mjg0OTpcXHQqa2FyZ3MgPSAoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzKXtcXG5rZXJuZWwvZm9yay5jLTI4NTAtXFx0XFx0LmZsYWdzXFx0XFx0PSBhcmdzLmZsYWdzLFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yODc5LSAqL1xcbmtlcm5lbC9mb3JrLmM6Mjg4MDpzdGF0aWMgaW5saW5lIGJvb2wgY2xvbmUzX3N0YWNrX3ZhbGlkKHN0cnVjdCBrZXJuZWxfY2xvbmVfYXJncyAqa2FyZ3MpXFxua2VybmVsL2ZvcmsuYy0yODgxLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmMtMjg5OS1cXG5rZXJuZWwvZm9yay5jOjI5MDA6c3RhdGljIGJvb2wgY2xvbmUzX2FyZ3NfdmFsaWQoc3RydWN0IGtlcm5lbF9jbG9uZV9hcmdzICprYXJncylcXG5rZXJuZWwvZm9yay5jLTI5MDEte1xcbi0tXFxua2VybmVsL2ZvcmsuYz0yOTM5PVNZU0NBTExfREVGSU5FMihjbG9uZTMsIHN0cnVjdCBjbG9uZV9hcmdzIF9fdXNlciAqLCB1YXJncywgc2l6ZV90LCBzaXplKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0yOTQyLVxcbmtlcm5lbC9mb3JrLmM6Mjk0MzpcXHRzdHJ1Y3Qga2VybmVsX2Nsb25lX2FyZ3Mga2FyZ3M7XFxua2VybmVsL2ZvcmsuYy0yOTQ0LVxcdHBpZF90IHNldF90aWRbTUFYX1BJRF9OU19MRVZFTF07XFxuLS1cXG5rZXJuZWwvZm9yay5jLTI5NTktXFxua2VybmVsL2ZvcmsuYzoyOTYwOlxcdHJldHVybiBrZXJuZWxfY2xvbmUoXFx1MDAyNmthcmdzKTtcXG5rZXJuZWwvZm9yay5jLTI5NjEtfVxcbi0tXFxua2VybmVsL2ZvcmsuYz0zMTA1PXN0YXRpYyBpbnQgdW5zaGFyZV9mZCh1bnNpZ25lZCBsb25nIHVuc2hhcmVfZmxhZ3MsIHN0cnVjdCBmaWxlc19zdHJ1Y3QgKipuZXdfZmRwKVxcbi0tXFxua2VybmVsL2ZvcmsuYy0zMTIyLSAqIGNvbnRleHQgd2hpY2ggd2FzIG9yaWdpbmFsbHkgc2hhcmVkIHVzaW5nIGNsb25lLiAgY29weV8qXFxua2VybmVsL2ZvcmsuYzozMTIzOiAqIGZ1bmN0aW9ucyB1c2VkIGJ5IGtlcm5lbF9jbG9uZSgpIGNhbm5vdCBiZSB1c2VkIGhlcmUgZGlyZWN0bHlcXG5rZXJuZWwvZm9yay5jLTMxMjQtICogYmVjYXVzZSB0aGV5IG1vZGlmeSBhbiBpbmFjdGl2ZSB0YXNrX3N0cnVjdCB0aGF0IGlzIGJlaW5nXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjI3LjUzNzAzMzA5OVoiLCJTZXEiOjksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU0NzQ5NDAzMDUsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBJbXBsaWNhdGlvbnMgb2YgdGhpcyBDbG9uZSBQYXRjaCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggYW5kIGl0J3MgbW9kaWZ5aW5nIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIFJpZ2h0LCBzbyBga2VybmVsX2Nsb25lYCBpcyB0aGUgbWFpbiBlbnRyeSBwb2ludCBmb3IgdGhlIGNsb25lIHN5c2NhbGwgZmFtaWx5IOKAkyBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gVGhlIGNvcmUgb2YgdGhpcyBmdW5jdGlvbmFsaXR5IHNlZW1zIHRvIGJlIGxvY2F0ZWQgd2l0aGluIHRoZXNlIGZ1bmN0aW9ucy4gSSBuZWVkIHRvIGZvY3VzIG9uIHRoZW0uIEkgd2FzIHRyeWluZyB0byBkZXRlcm1pbmUgdGhlIGJlc3Qgc3ltYm9sIHRvIGZvY3VzIG9uLiBcblxuVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIGEgY29uZGl0aW9uYWwgY2hlY2sgd2l0aGluIGBjb3B5X3Byb2Nlc3NgLCB3aGljaCBpcyBkZXBlbmRlbnQgb24gdGhlIGN1cnJlbnQgdGFzaydzIHNjaGVkdWxpbmcgcG9saWN5LiBJdCdzIHVzaW5nIGBydF9vcl9kbF90YXNrX3BvbGljeShjdXJyZW50KWAuIFNvLCBpZiB0aGUgdGFzayBpcyBSZWFsLVRpbWUgKFJUKSBvciBEZWFkbGluZSAoREwpIGl04oCZcyBnb2luZyB0byBpbmhlcml0IGBkZWZhdWx0X3RpbWVyX3NsYWNrX25zYCBpbnN0ZWFkIG9mIGB0aW1lcl9zbGFja19uc2AuIFRoYXQncyBhIGRlZmluaXRlIGZ1bmN0aW9uYWwgY2hhbmdlLlxuXG5Ob3csIGBjb3B5X3Byb2Nlc3NgIGlzbid0IGV4cG9ydGVkLCBidXQgaXQgKmlzKiBjYWxsZWQgYnkgYGtlcm5lbF9jbG9uZWAuIEJ1dCwgd2FpdCwgYGtlcm5lbF9jbG9uZWAgaXNuJ3QgZXhwb3J0ZWQgZWl0aGVyPyBJIG5lZWQgdG8gY2hlY2sgaWYgdGhlc2UgYXJlIHN0YXRpYy4gQ2hlY2tpbmcuLi4gT2theSwgYGtlcm5lbF9jbG9uZWAgaXNuJ3Qgc3RhdGljLiBJdCdzIHVzZWQgYnkgdGhlIHN5c2NhbGxzOiBgZm9ya2AsIGB2Zm9ya2AsIGBjbG9uZWAsIGFuZCBgY2xvbmUzYC4gT2theSwgc28gYGtlcm5lbF9jbG9uZWAgaXMgdXNlZCBieSB0aGUgc3lzdGVtIGNhbGxzIGFuZCBgY29weV9wcm9jZXNzYCBpc24ndCBzdGF0aWMgZWl0aGVyLiBZZXMsIEknbGwgZm9jdXMgb24gYm90aC5cblxuTmV4dCwgSSBuZWVkIHRvIGNoZWNrIHRoZSBmdW5jdGlvbiBgcnRfb3JfZGxfdGFza19wb2xpY3lgLCBhcyB0aGlzIGlzIHRoZSBjb25kaXRpb25hbCBmYWN0b3IuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjU4NDAsIk91dHB1dFRva2VucyI6MjksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNDYsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6MzMuMDExOTc2NTM1WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzkyOTgzOTAzLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInJ0X29yX2RsX3Rhc2tfcG9saWN5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJmcy9wcm9jL2Jhc2UuYz0yNTk3PXN0YXRpYyBzc2l6ZV90IHRpbWVyc2xhY2tfbnNfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsIGNvbnN0IGNoYXIgX191c2VyICpidWYsXFxuLS1cXG5mcy9wcm9jL2Jhc2UuYy0yNjI5LVxcdHRhc2tfbG9jayhwKTtcXG5mcy9wcm9jL2Jhc2UuYzoyNjMwOlxcdGlmIChydF9vcl9kbF90YXNrX3BvbGljeShwKSlcXG5mcy9wcm9jL2Jhc2UuYy0yNjMxLVxcdFxcdHNsYWNrX25zID0gMDtcXG4tLVxcbmluY2x1ZGUvbGludXgvaW9wcmlvLmg9Mzk9c3RhdGljIGlubGluZSBpbnQgdGFza19uaWNlX2lvY2xhc3Moc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKVxcbi0tXFxuaW5jbHVkZS9saW51eC9pb3ByaW8uaC00Mi1cXHRcXHRyZXR1cm4gSU9QUklPX0NMQVNTX0lETEU7XFxuaW5jbHVkZS9saW51eC9pb3ByaW8uaDo0MzpcXHRlbHNlIGlmIChydF9vcl9kbF90YXNrX3BvbGljeSh0YXNrKSlcXG5pbmNsdWRlL2xpbnV4L2lvcHJpby5oLTQ0LVxcdFxcdHJldHVybiBJT1BSSU9fQ0xBU1NfUlQ7XFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg9MjM9c3RhdGljIGlubGluZSBib29sIHJ0X3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTI5LSAqIFJldHVybnMgdHJ1ZSBpZiBhIHRhc2sgaGFzIGEgcHJpb3JpdHkgdGhhdCBiZWxvbmdzIHRvIFJUIG9yIERMIGNsYXNzZXMuXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oOjMwOiAqIFBJLWJvb3N0ZWQgdGFza3Mgd2lsbCByZXR1cm4gdHJ1ZS4gVXNlIHJ0X29yX2RsX3Rhc2tfcG9saWN5KCkgdG8gaWdub3JlXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTMxLSAqIFBJLWJvb3N0ZWQgdGFza3MuXFxuLS1cXG5pbmNsdWRlL2xpbnV4L3NjaGVkL3J0Lmg9MzM9c3RhdGljIGlubGluZSBib29sIHJ0X29yX2RsX3Rhc2soc3RydWN0IHRhc2tfc3RydWN0ICpwKVxcbi0tXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQxLSAqL1xcbmluY2x1ZGUvbGludXgvc2NoZWQvcnQuaDo0MjpzdGF0aWMgaW5saW5lIGJvb2wgcnRfb3JfZGxfdGFza19wb2xpY3koc3RydWN0IHRhc2tfc3RydWN0ICp0c2spXFxuaW5jbHVkZS9saW51eC9zY2hlZC9ydC5oLTQzLXtcXG4tLVxcbmtlcm5lbC9mb3JrLmM9MTk2NT1fX2xhdGVudF9lbnRyb3B5IHN0cnVjdCB0YXNrX3N0cnVjdCAqY29weV9wcm9jZXNzKFxcbi0tXFxua2VybmVsL2ZvcmsuYy0yMTM2LVxcbmtlcm5lbC9mb3JrLmM6MjEzNzpcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkpXFxua2VybmVsL2ZvcmsuYy0yMTM4LVxcdFxcdHAtXFx1MDAzZWRlZmF1bHRfdGltZXJfc2xhY2tfbnMgPSBjdXJyZW50LVxcdTAwM2VkZWZhdWx0X3RpbWVyX3NsYWNrX25zO1xcbi0tXFxua2VybmVsL3NjaGVkL3N5c2NhbGxzLmM9MjQxPXN0YXRpYyB2b2lkIF9fc2V0c2NoZWR1bGVyX3BhcmFtcyhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnAsXFxuLS1cXG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTYtXFx0LyogcnQtcG9saWN5IHRhc2tzIGRvIG5vdCBoYXZlIGEgdGltZXJzbGFjayAqL1xcbmtlcm5lbC9zY2hlZC9zeXNjYWxscy5jOjI1NzpcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3kocCkpIHtcXG5rZXJuZWwvc2NoZWQvc3lzY2FsbHMuYy0yNTgtXFx0XFx0cC1cXHUwMDNldGltZXJfc2xhY2tfbnMgPSAwO1xcbi0tXFxua2VybmVsL3N5cy5jPTI1MzM9U1lTQ0FMTF9ERUZJTkU1KHByY3RsLCBpbnQsIG9wdGlvbiwgdW5zaWduZWQgbG9uZywgYXJnMiwgdW5zaWduZWQgbG9uZywgYXJnMyxcXG4tLVxcbmtlcm5lbC9zeXMuYy0yNjQ1LVxcdGNhc2UgUFJfU0VUX1RJTUVSU0xBQ0s6XFxua2VybmVsL3N5cy5jOjI2NDY6XFx0XFx0aWYgKHJ0X29yX2RsX3Rhc2tfcG9saWN5KGN1cnJlbnQpKVxcbmtlcm5lbC9zeXMuYy0yNjQ3LVxcdFxcdFxcdGJyZWFrO1xcbi0tXFxua2VybmVsL3RpbWUvaHJ0aW1lci5jPTIwNTE9c3RhdGljIHZvaWQgX19ocnRpbWVyX3NldHVwX3NsZWVwZXIoc3RydWN0IGhydGltZXJfc2xlZXBlciAqc2wsXFxuLS1cXG5rZXJuZWwvdGltZS9ocnRpbWVyLmMtMjA3My1cXHRpZiAoSVNfRU5BQkxFRChDT05GSUdfUFJFRU1QVF9SVCkpIHtcXG5rZXJuZWwvdGltZS9ocnRpbWVyLmM6MjA3NDpcXHRcXHRpZiAocnRfb3JfZGxfdGFza19wb2xpY3koY3VycmVudCkgXFx1MDAyNlxcdTAwMjYgIShtb2RlIFxcdTAwMjYgSFJUSU1FUl9NT0RFX1NPRlQpKVxcbmtlcm5lbC90aW1lL2hydGltZXIuYy0yMDc1LVxcdFxcdFxcdG1vZGUgfD0gSFJUSU1FUl9NT0RFX0hBUkQ7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTA2VDA5OjA2OjM0LjgwNDk2NjAzN1oiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTgyNTc4Mjg2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgUGF0Y2ggZm9yIEZ1enppbmcgUG90ZW50aWFsKipcblxuT2theSwgc28gdGhlIGNoYW5nZSBpcyBkZWZpbml0ZWx5IGluIGBjb3B5X3Byb2Nlc3NgLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gemVybyBpbiBvbiBgY29weV9wcm9jZXNzYCBhbmQgYGtlcm5lbF9jbG9uZWAgYXMgdGhlIHByaW1hcnkgZm9jdXMgc3ltYm9scy4gTm8gc3BlY2lhbCBjb25maWcgb3B0aW9ucyBhcmUgcmVxdWlyZWQsIHRoYW5rZnVsbHkg4oCTIGBjb3B5X3Byb2Nlc3NgIGlzIGFsd2F5cyBjb21waWxlZCBpbiwgd2hpY2ggc2ltcGxpZmllcyB0aGluZ3MuIEFoLCByaWdodCwgdGhlIGluY2x1c2lvbiBvZiBgXHUwMDNjbGludXgvc2NoZWQvcnQuaFx1MDAzZWAgbWFrZXMgaXQgY2xlYXIgdGhpcyBpcyBhYm91dCBSVC9ETCB0YXNrIHBvbGljeSwgc3BlY2lmaWNhbGx5IGhvdyB0aW1lciBzbGFjayBpcyBpbmhlcml0ZWQuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSwgYW5kIGZ1bmN0aW9uYWwgY2hhbmdlcyBhcmUgYWx3YXlzIHdvcnRoIGZ1enppbmcuXG5cbkxldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0IGBjb3B5X3Byb2Nlc3NgIGlzbid0IGEgc3RhdGljIGZ1bmN0aW9uLiBOb3BlLCBpdCdzIG5vdCDigJMgZ29vZCwgdGhhdCBtZWFucyBpdCdzIGEgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3MuIFNhbWUgZ29lcyBmb3IgYGtlcm5lbF9jbG9uZWAuIEJvdGggYXJlIHBlcmZlY3QgY2FuZGlkYXRlcyBmb3IgZnV6emluZyB0YXJnZXRzLlxuXG5BbHJpZ2h0LCBsZXQncyBtYWtlIGFic29sdXRlbHkgc3VyZSB0aGVyZSBhcmVu4oCZdCBhbnkgb3RoZXIgZ290Y2hhcyB3aXRoIGNvbmZpZ3MuIE5vcGUsIGBrZXJuZWwvZm9yay5jYCBpcyBhbHdheXMgY29tcGlsZWQgYW5kIGBydF9vcl9kbF90YXNrX3BvbGljeWAgaXMgYWx3YXlzIGRlZmluZWQuIFdlJ3JlIGdvb2QgdG8gZ28uXG5cblRpbWUgdG8gc3RydWN0dXJlIHRoZSBmdXp6aW5nIHJlc3BvbnNlLiBJdCdzIGEgXCJXb3J0aEZ1enppbmc6IHRydWVcIiBzaXR1YXRpb24sIHRoZSBwcmltYXJ5IGZvY3VzIHN5bWJvbHMgYXJlIFwiY29weV9wcm9jZXNzXCIgYW5kIFwia2VybmVsX2Nsb25lXCIsIG5vIHNwZWNpYWwgZW5hYmxpbmcgY29uZmlncyBhcmUgbmVjZXNzYXJ5LCBhbmQgdGhlIHJlYXNvbiBpcyB0aGlzIHBhdGNoIGFmZmVjdHMgZGVmYXVsdCB0aW1lciBzbGFjayBpbmhlcml0YW5jZSBkdXJpbmcgcHJvY2VzcyBjcmVhdGlvbiBmb3IgUlQvREwgdGFza3MuIFdlIGNhbiBoaXQgdGhlIGNvZGUgdmlhIGBjbG9uZWAsIGBmb3JrYCwgb3IgYHZmb3JrYC5cblxuXG4iLCJJbnB1dFRva2VucyI6NzM3NCwiT3V0cHV0VG9rZW5zIjoxMDUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMDZUMDk6MDY6NDAuOTg3NTQ2NzkzWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjQ1NTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJjb3B5X3Byb2Nlc3NcIixcbiAgICBcImtlcm5lbF9jbG9uZVwiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGBjb3B5X3Byb2Nlc3NgIHRvIGNoYW5nZSBob3cgYGRlZmF1bHRfdGltZXJfc2xhY2tfbnNgIGlzIGluaGVyaXRlZCBmb3IgdGFza3Mgd2l0aCByZWFsLXRpbWUgb3IgZGVhZGxpbmUgc2NoZWR1bGluZyBwb2xpY2llcy4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIGNvcmUga2VybmVsIHByb2Nlc3MgY3JlYXRpb24gbG9naWMgdGhhdCBjYW4gYmUgcmVhY2hlZCB2aWEgYGNsb25lYCwgYGZvcmtgLCBvciBgdmZvcmtgIHN5c2NhbGxzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImNvcHlfcHJvY2Vzc1wiLFxuICAgIFwia2VybmVsX2Nsb25lXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgYGNvcHlfcHJvY2Vzc2AgdG8gY2hhbmdlIGhvdyBgZGVmYXVsdF90aW1lcl9zbGFja19uc2AgaXMgaW5oZXJpdGVkIGZvciB0YXNrcyB3aXRoIHJlYWwtdGltZSBvciBkZWFkbGluZSBzY2hlZHVsaW5nIHBvbGljaWVzLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gY29yZSBrZXJuZWwgcHJvY2VzcyBjcmVhdGlvbiBsb2dpYyB0aGF0IGNhbiBiZSByZWFjaGVkIHZpYSBgY2xvbmVgLCBgZm9ya2AsIG9yIGB2Zm9ya2Agc3lzY2FsbHMuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0udG9rZW5zIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnVG9vbER1ciA9IHN0YXRzLnRvb2wuY291bnQgPiAwID8gKHN0YXRzLnRvb2wuZHVyYXRpb24gLyBzdGF0cy50b29sLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCgkJCWNvbnN0IGxsbVN1bWFyeUNlbGxzID0gW3N0YXRzLmxsbS5jb3VudCwgc3RhdHMubGxtLnRva2VucywgYXZnTGxtVG9rZW4sIHN0YXRzLmxsbS5kdXJhdGlvbiwgYXZnTGxtRHVyXTsKCQkJY29uc3QgdG9vbFN1bW1hcnlDZWxscyA9IFtzdGF0cy50b29sLmNvdW50LCBzdGF0cy50b29sLmR1cmF0aW9uLCBhdmdUb29sRHVyXTsKCgkJCWNvbnN0IGxsbVN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xsbV9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJbGxtU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IGxsbVRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJbGxtU3VtYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCWxsbVRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCWxsbVN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKGxsbVRyKTsKCgkJCWNvbnN0IHRvb2xTdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b29sX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQl0b29sU3VtbWFyeUJvZHkuaW5uZXJIVE1MID0gIiI7CgkJCWNvbnN0IHRvb2xUciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCXRvb2xTdW1tYXJ5Q2VsbHMuZm9yRWFjaChjZWxsID0+IHsKCQkJCWNvbnN0IHRkID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndGQnKTsKCQkJCXRkLnRleHRDb250ZW50ID0gY2VsbDsKCQkJCXRvb2xUci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQl0b29sU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQodG9vbFRyKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgZmlsdGVyZWRTdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gWyJsbG0iLCAidG9vbCJdLmluY2x1ZGVzKGQuVHlwZSkpOwoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdEdXJhdGlvbicpOwoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOyAKCgkJCWZpbHRlcmVkU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCQoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7CgkJCQlsZXQgdG9vbHRpcCA9IHMuTmFtZTsKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iICYmIHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCQkJCWRhdGEuYWRkUm93KFtgJHtzLlNlcX1gLCBkdXIsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUaW1lIENvbnN1bXB0aW9uIG9mIExMTS9Ub29sIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0vVG9vbCBTdGVwcycsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdTZWNvbmRzJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkdXJhdGlvbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpIHsKCQkJY29uc3QgbGxtU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IGQuVHlwZSA9PT0gImxsbSIpOwoJCQlpZiAobGxtU3RlcHMubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQljb25zdCBkYXRhID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkRhdGFUYWJsZSgpOwoJCQlkYXRhLmFkZENvbHVtbignc3RyaW5nJywgJ1N0ZXAnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oJ251bWJlcicsICdUb2tlbnMnKTsJCQkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAnc3R5bGUnfSk7CQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICd0b29sdGlwJ30pOwkKCgkJCWNvbnN0IGFnZW50Q29sb3JzID0ge307CgkJCWNvbnN0IHBhbGV0dGUgPSBbJyM0Mjg1RjQnLCAnI0RCNDQzNycsICcjRjRCNDAwJywgJyMwRjlENTgnLCAnI0FCNDdCQycsICcjMDBBQ0MxJ107CgkJCWxldCBjb2xvcklkeCA9IDA7CgkJCWNvbnN0IGFnZW50TExNQ291bnRzID0ge307CgkJCWxsbVN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQlpZiAoIWFnZW50Q29sb3JzW3MuTmFtZV0pIHsKCQkJCQlhZ2VudENvbG9yc1tzLk5hbWVdID0gcGFsZXR0ZVtjb2xvcklkeCAlIHBhbGV0dGUubGVuZ3RoXTsKCQkJCQljb2xvcklkeCsrOwoJCQkJfQoKCQkJCWFnZW50TExNQ291bnRzW3MuTmFtZV0gPSAoYWdlbnRMTE1Db3VudHNbcy5OYW1lXSB8fCAwKSArIDE7CgkJCQljb25zdCBsYWJlbCA9IGAke3MuTmFtZX0tJHthZ2VudExMTUNvdW50c1tzLk5hbWVdfWA7CgkJCQljb25zdCB0b3RhbFRva2VucyA9IHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnM7CgkJCQljb25zdCBzdHlsZSA9IGBjb2xvcjogJHthZ2VudENvbG9yc1tzLk5hbWVdfWA7CgkJCQlsZXQgdG9vbHRpcCA9IGBUb3RhbCBUb2tlbnM6ICR7dG90YWxUb2tlbnN9XG4oSW46ICR7cy5JbnB1dFRva2Vuc30sIE91dDogJHtzLk91dHB1dFRva2Vuc30sIFRob3VnaHRzOiAke3MuT3V0cHV0VGhvdWdodHNUb2tlbnN9KWA7CgkJCQlpZiAocy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoKCQkJCWRhdGEuYWRkUm93KFtsYWJlbCwgdG90YWxUb2tlbnMsIHN0eWxlLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVG9rZW4gQ29uc3VtcHRpb24gYnkgTExNIENhbGxzJywKCQkJCWhBeGlzOiB7CgkJCQkJdGl0bGU6ICdMTE0gQ2FsbCBTZXF1ZW5jZScsCgkJCQl9LAoJCQkJdkF4aXM6IHsgdGl0bGU6ICdDb25zdW1lZCBUb2tlbnMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rva2VuX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgkJbGV0IGFsbEV4cGFuZGVkID0gZmFsc2U7CgkJZnVuY3Rpb24gdG9nZ2xlQWxsRGV0YWlscygpIHsKCQkJYWxsRXhwYW5kZWQgPSAhYWxsRXhwYW5kZWQ7CgkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2RldGFpbHMnKS5mb3JFYWNoKGQgPT4gewoJCQkJaWYgKGFsbEV4cGFuZGVkKSBkLnNldEF0dHJpYnV0ZSgnb3BlbicsICcnKTsKCQkJCWVsc2UgZC5yZW1vdmVBdHRyaWJ1dGUoJ29wZW4nKTsKCQkJfSk7CgkJfQoJPC9zY3JpcHQ+CgoKPC9ib2R5Pgo8L2h0bWw+Cg==" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[1] Phase: Succeeded StartedAt: 2026-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 09:06:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 09:06:52 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2] Phase: Succeeded StartedAt: 2026-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 09:07:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:06:52 +0000 UTC FinishedAt: 2026-08-06 09:06:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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-workflowrgsw5/series-workflowrgsw5-convert-artifact-84482334/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:07:02 +0000 UTC FinishedAt: 2026-08-06 09:28:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:07:02 +0000 UTC FinishedAt: 2026-08-06 09:28:11 +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:*ea24ff7b-71ee-48a6-89b7-69f5dee4c99e,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-workflowrgsw5/series-workflowrgsw5-convert-artifact-84482334/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": "e1e1f523-a0a5-43f4-920d-76fdd7ac783a", "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-workflowrgsw5/series-workflowrgsw5-build-action-592895492/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:07:02 +0000 UTC FinishedAt: 2026-08-06 09:27:30 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:findings,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:test-name,Default:nil,Value:*[KASAN] Build Base,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:smoke-build,Default:nil,Value:*false,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:session-id,Default:nil,Value:*ea24ff7b-71ee-48a6-89b7-69f5dee4c99e,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-workflowrgsw5/series-workflowrgsw5-convert-artifact-84482334/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": "e1e1f523-a0a5-43f4-920d-76fdd7ac783a", "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-workflowrgsw5/series-workflowrgsw5-build-action-592895492/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:11 +0000 UTC FinishedAt: 2026-08-06 09:28:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:11 +0000 UTC FinishedAt: 2026-08-06 09:28:11 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:11 +0000 UTC FinishedAt: 2026-08-06 09:28:21 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:11 +0000 UTC FinishedAt: 2026-08-06 09:28:17 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-workflowrgsw5/series-workflowrgsw5-convert-artifact-1561532881/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:21 +0000 UTC FinishedAt: 2026-08-06 09:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:28:21 +0000 UTC FinishedAt: 2026-08-06 09:30:14 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e1e1f523-a0a5-43f4-920d-76fdd7ac783a,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-workflowrgsw5/series-workflowrgsw5-build-action-592895492/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-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:30:24 +0000 UTC FinishedAt: 2026-08-06 09:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:30:24 +0000 UTC FinishedAt: 2026-08-06 09:30:24 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:30:24 +0000 UTC FinishedAt: 2026-08-06 09:46:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:30:24 +0000 UTC FinishedAt: 2026-08-06 09:46:08 +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:*ea24ff7b-71ee-48a6-89b7-69f5dee4c99e,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-workflowrgsw5/series-workflowrgsw5-convert-artifact-1561532881/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": "4c47578c-f745-4fa7-833b-2be963c9a714", "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-workflowrgsw5/series-workflowrgsw5-build-action-1914503069/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:30:24 +0000 UTC FinishedAt: 2026-08-06 09:45:58 +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:*ea24ff7b-71ee-48a6-89b7-69f5dee4c99e,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-workflowrgsw5/series-workflowrgsw5-convert-artifact-1561532881/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": "4c47578c-f745-4fa7-833b-2be963c9a714", "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-workflowrgsw5/series-workflowrgsw5-build-action-1914503069/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:46:08 +0000 UTC FinishedAt: 2026-08-06 09:46:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:46:08 +0000 UTC FinishedAt: 2026-08-06 09:46:08 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:46:08 +0000 UTC FinishedAt: 2026-08-06 09:48:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:46:08 +0000 UTC FinishedAt: 2026-08-06 09:47:52 +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:*4c47578c-f745-4fa7-833b-2be963c9a714,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-workflowrgsw5/series-workflowrgsw5-build-action-1914503069/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-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +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":["copy_process","kernel_clone"],"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:*e1e1f523-a0a5-43f4-920d-76fdd7ac783a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4c47578c-f745-4fa7-833b-2be963c9a714,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-workflowrgsw5/series-workflowrgsw5-build-action-592895492/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-workflowrgsw5/series-workflowrgsw5-build-action-1914503069/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 09:48:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 09:48:08 +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":["copy_process","kernel_clone"],"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-workflowrgsw5/series-workflowrgsw5-convert-artifact-725230854/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 09:48:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 09:48:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:02 +0000 UTC FinishedAt: 2026-08-06 09:48:02 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:12 +0000 UTC FinishedAt: 2026-08-06 12:51:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowrgsw5[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","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":["copy_process","kernel_clone"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"d3f0a606b9f278ece8a0df626ded9c4044071235","config_name":"upstream-apparmor-kasan.config","series_id":"ff609282-6e87-44ce-b49f-d3baff150883","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-08-06 09:48:12 +0000 UTC FinishedAt: 2026-08-06 12:51:39 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*e1e1f523-a0a5-43f4-920d-76fdd7ac783a,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*4c47578c-f745-4fa7-833b-2be963c9a714,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-workflowrgsw5/series-workflowrgsw5-build-action-592895492/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-workflowrgsw5/series-workflowrgsw5-build-action-1914503069/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-workflowrgsw5/series-workflowrgsw5-convert-artifact-725230854/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,}