Name: series-workflow69c7s Phase: Succeeded StartedAt: 2026-07-19 16:19:01 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[0] Phase: Succeeded StartedAt: 2026-07-19 16:19:01 +0000 UTC FinishedAt: 2026-07-19 16:50:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[0].run-triage Phase: Succeeded StartedAt: 2026-07-19 16:19:01 +0000 UTC FinishedAt: 2026-07-19 16:50:06 +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": "56b9d68cf62f5e79ac9035dde02c3a68d0c6e091", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS", "DAMON_RECLAIM", "DAMON_LRU_SORT" ], "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": "56b9d68cf62f5e79ac9035dde02c3a68d0c6e091", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS", "DAMON_RECLAIM", "DAMON_LRU_SORT" ], "series_id": "01380884-3fbb-4f0f-812c-2fd72ba91c95" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_hot_score", "damon_cold_score", "damon_pa_scheme_score", "damon_va_scheme_score" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDssCiAgICAmIzM0O0RBTU9OX1JFQ0xBSU0mIzM0OywKICAgICYjMzQ7REFNT05fTFJVX1NPUlQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9ob3Rfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fY29sZF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9wYV9zY2hlbWVfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fdmFfc2NoZW1lX3Njb3JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgaG90bmVzcyBzY29yZSAoYGZyZXFfc3Vic2NvcmVgKSBpbiBgZGFtb25faG90X3Njb3JlYCBieSB1c2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluc3RlYWQgb2YgYHItXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJiMzOTt0IGludHJvZHVjZSBidWdzIGxpa2UgZGl2aXNpb24gYnkgemVybyBvciBpbnRlZ2VyIG92ZXJmbG93cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGZmMGI1NzQwY2Y2YjJhNDBjNjViZGU4OTJlYjRhY2UzNDdiMzVmYmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxOSAxNjo0OToyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMgYi9tbS9kYW1vbi9vcHMtY29tbW9uLmNcbmluZGV4IGU1OWY1MjY4ZDUwM2NmLi5kN2Q3ZjEwMDM4OWIwMSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL29wcy1jb21tb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXG5AQCAtMTExLDggJiM0MzsxMTEsOSBAQCBpbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4gXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXHUwMDNlcXVvdGEud2VpZ2h0X2FnZTtcbiBcdGludCBob3RuZXNzO1xuIFxuLVx0ZnJlcV9zdWJzY29yZSA9IHItXHUwMDNlbnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgL1xuLVx0XHRkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKFx1MDAyNmMtXHUwMDNlYXR0cnMpO1xuJiM0MztcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXG4mIzQzO1x0XHRcdERBTU9OX01BWF9TVUJTQ09SRSxcbiYjNDM7XHRcdFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSk7XG4gXG4gXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cdTAwM2VhZ2UgKiBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgLyAxMDAwMDAwO1xuIFx0aWYgKGFnZV9pbl9zZWMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fUkVDTEFJTSYjMzQ7LAogICAgJiMzNDtEQU1PTl9MUlVfU09SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9jb2xkX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3BhX3NjaGVtZV9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl92YV9zY2hlbWVfc2NvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24mIzM5O3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmZjBiNTc0MGNmNmIyYTQwYzY1YmRlODkyZWI0YWNlMzQ3YjM1ZmJhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTkgMTY6NDk6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMgYi9tbS9kYW1vbi9vcHMtY29tbW9uLmMKaW5kZXggZTU5ZjUyNjhkNTAzY2YuLmQ3ZDdmMTAwMzg5YjAxIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jCkBAIC0xMTEsOCAmIzQzOzExMSw5IEBAIGludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqciwKIAl1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtJmd0O3F1b3RhLndlaWdodF9hZ2U7CiAJaW50IGhvdG5lc3M7CiAKLQlmcmVxX3N1YnNjb3JlID0gci0mZ3Q7bnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgLwotCQlkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpOwomIzQzOwlmcmVxX3N1YnNjb3JlID0gbXVsdF9mcmFjKGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpLAomIzQzOwkJCURBTU9OX01BWF9TVUJTQ09SRSwKJiM0MzsJCQlkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpKTsKIAogCWFnZV9pbl9zZWMgPSAodW5zaWduZWQgbG9uZylyLSZndDthZ2UgKiBjLSZndDthdHRycy5hZ2dyX2ludGVydmFsIC8gMTAwMDAwMDsKIAlpZiAoYWdlX2luX3NlYykKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkyNQoJCQkJCQkJb3V0cHV0OiA2NgoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIEhvdCBTY29yZSBNb2RpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLCBzcGVjaWZpY2FsbHkgaG93IGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBgZGFtb25faG90X3Njb3JlYCBmdW5jdGlvbi4gSXQgc2VlbXMgdGhleSYjMzk7cmUgY2hhbmdpbmcgdGhlIHdheSB0aGUgYGZyZXFfc3Vic2NvcmVgIGlzIGNhbGN1bGF0ZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCByYXRpbzogYHItJmd0O25yX2FjY2Vzc2VzYCB0aW1lcyBhIGNvbnN0YW50IChgREFNT05fTUFYX1NVQlNDT1JFYCksIGFsbCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBwZXIgYWdncmVnYXRpb24gd2luZG93IChgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncigmYW1wO2MtJmd0O2F0dHJzKWApLiBBIHNpbXBsZSBjb3VudCBzY2FsZWQgdG8gYSBtYXhpbXVtIHN1YnNjb3JlLgoKTm93LCBpbnN0ZWFkIG9mIGByLSZndDtucl9hY2Nlc3Nlc2AsIHRoZSBuZXcgY2FsY3VsYXRpb24gaXMgdXNpbmcgYG11bHRfZnJhYyhkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSwgREFNT05fTUFYX1NVQlNDT1JFLCBkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpKWAuIFRoYXQgYG11bHRfZnJhY2AgZnVuY3Rpb24gbGlrZWx5IGhhbmRsZXMgYSBtdWx0aXBsaWNhdGlvbiBhbmQgZGl2aXNpb24sIGtlZXBpbmcgdGhlIHJlc3VsdCB3aXRoaW4gdGhlIGFjY2VwdGFibGUgcmFuZ2UuIFRoZSBrZXkgaXMgdGhpcyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGZ1bmN0aW9uLiBJdCByZXBsYWNlcyBhIHNpbXBsZSBgbnJfYWNjZXNzZXNgIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSBpdCYjMzk7cyBjYWxjdWxhdGluZyBhIG1vdmluZyBzdW0sIHByZXN1bWFibHkgd2VpZ2h0ZWQgaW4gc29tZSB3YXkgYmFzZWQgb24gdGhlIHJlY2VudCBhY2Nlc3MgY291bnRzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBuZXcgYWNjZXNzIGNvdW50ZXIuIFRoZSBvbGQgbWV0aG9kIHNlZW1zIHByZXR0eSBiYXNpYy4gVGhpcyBtb3ZlIHRvIGEgbW92aW5nIHN1bSBzdWdnZXN0cyB0aGV5JiMzOTtyZSB0cnlpbmcgdG8gbWFrZSB0aGUgaG90IHNjb3JlIGNhbGN1bGF0aW9uIG1vcmUgcmVzcG9uc2l2ZSB0byByZWNlbnQgYWNjZXNzIHBhdHRlcm5zLCByYXRoZXIgdGhhbiBiZWluZyBvdmVybHkgaW5mbHVlbmNlZCBieSBhIHNpbmdsZSBpbml0aWFsIGJ1cnN0IG9yIGEgbG9uZy1hZ28gaGlnaCBudW1iZXIgb2YgYWNjZXNzZXMuIEl04oCZcyBtYWtpbmcgdGhlIGhvdCBzY29yZSBtb3JlIGR5bmFtaWMgYW5kIGxlc3Mgc3RhdGljLiBJdCYjMzk7cyBwcm9iYWJseSByZWxhdGVkIHRvIGZpbHRlcmluZyBvciBzbW9vdGhpbmcsIGJ1dCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCAqaG93KiBpdCYjMzk7cyBkb2luZyBpdC4KCkkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byBkaXZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBhbmQgaXRzIGludGVyYWN0aW9ucyB3aXRoIHRoZSBEQU1PTiBkYXRhIHN0cnVjdHVyZXMgdG8gZnVsbHkgZ3Jhc3Agd2hhdCYjMzk7cyBnb2luZyBvbiBoZXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbW92aW5nIHN1bSYjMzk7cyB3ZWlnaHRpbmcsIHdpbmRvdyBzaXplLCBhbmQgaW1wYWN0IG9uIHRoZSBob3Qgc2NvcmUmIzM5O3MgcmVzcG9uc2l2ZW5lc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGFtb25faG90X3Njb3JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL29wcy1jb21tb24uYz03Mz12b2lkIGRhbW9uX3BtZHBfbWtvbGQocG1kX3QgKnBtZCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcilcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjEwNDppbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTA1LVx0XHRcdHN0cnVjdCBkYW1vcyAqcylcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM9MTUwPWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTUzOlx0aW50IGhvdG5lc3MgPSBkYW1vbl9ob3Rfc2NvcmUoYywgciwgcyk7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uaD0xNT1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVx0XHRcdHN0cnVjdCBkYW1vcyAqcyk7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmg6MTc6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE4LVx0XHRcdHN0cnVjdCBkYW1vcyAqcyk7XG4tLVxubW0vZGFtb24vcGFkZHIuYz00MTQ9c3RhdGljIGludCBkYW1vbl9wYV9zY2hlbWVfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqY29udGV4dCxcbi0tXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cdGNhc2UgREFNT1NfTFJVX1BSSU86XG5tbS9kYW1vbi9wYWRkci5jOjQyMTpcdFx0cmV0dXJuIGRhbW9uX2hvdF9zY29yZShjb250ZXh0LCByLCBzY2hlbWUpO1xubW0vZGFtb24vcGFkZHIuYy00MjItXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XG4tLVxubW0vZGFtb24vcGFkZHIuYy00MjQtXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxubW0vZGFtb24vcGFkZHIuYzo0MjU6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3BhZGRyLmMtNDI2LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0NPTEQ6XG4tLVxubW0vZGFtb24vdmFkZHIuYz05MTg9c3RhdGljIGludCBkYW1vbl92YV9zY2hlbWVfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqY29udGV4dCxcbi0tXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cdGNhc2UgREFNT1NfTUlHUkFURV9IT1Q6XG5tbS9kYW1vbi92YWRkci5jOjkyNjpcdFx0cmV0dXJuIGRhbW9uX2hvdF9zY29yZShjb250ZXh0LCByLCBzY2hlbWUpO1xubW0vZGFtb24vdmFkZHIuYy05MjctXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmM9MjQ0PXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9uX212c3VtKHVuc2lnbmVkIGxvbmcgY3VycmVudF9ucixcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMjUwLS8qKlxubW0vZGFtb24vY29yZS5jOjI1MTogKiBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSgpIC0gUmV0dXJucyBtb3Zpbmcgc3VtIGFjY2VzcyBmcmVxdWVuY3kgc2NvcmUuXG5tbS9kYW1vbi9jb3JlLmMtMjUyLSAqIEByOlx0XHRSZWdpb24gdG8gZ2V0IHRoZSBhY2Nlc3MgZnJlcXVlbmN5IG9mLlxuLS1cbm1tL2RhbW9uL2NvcmUuYy0yNjMtICovXG5tbS9kYW1vbi9jb3JlLmM6MjY0OnVuc2lnbmVkIGludCBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vY29yZS5jLTI2NS1cdFx0c3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0yMjc0PXN0YXRpYyBib29sIF9fZGFtb3NfdmFsaWRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsIHN0cnVjdCBkYW1vcyAqcyxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMjI3Ny1cdHVuc2lnbmVkIGxvbmcgc3o7XG5tbS9kYW1vbi9jb3JlLmM6MjI3ODpcdHVuc2lnbmVkIGludCBucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xubW0vZGFtb24vY29yZS5jLTIyNzktXG4tLVxubW0vZGFtb24vY29yZS5jPTI1NzA9c3RhdGljIHZvaWQgZGFtb3NfYXBwbHlfc2NoZW1lKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXG4tLVxubW0vZGFtb24vY29yZS5jLTI2MDItXHRcdH1cbm1tL2RhbW9uL2NvcmUuYzoyNjAzOlx0XHRucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xubW0vZGFtb24vY29yZS5jLTI2MDQtXHRcdGRvX3RyYWNlID0gdHJ1ZTtcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM9MTA0PWludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTEzLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjExNDpcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTE1LVx0XHRcdERBTU9OX01BWF9TVUJTQ09SRSxcbi0tXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmM9MTYwPXN0YXRpYyBzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbiAqZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbl9hbGxvYyhcbi0tXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMtMTY4LVx0c3lzZnNfcmVnaW9uLVx1MDAzZWFyID0gcmVnaW9uLVx1MDAzZWFyO1xubW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jOjE2OTpcdHN5c2ZzX3JlZ2lvbi1cdTAwM2Vucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHJlZ2lvbiwgY3R4KTtcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNzAtXHRzeXNmc19yZWdpb24tXHUwMDNlYWdlID0gcmVnaW9uLVx1MDAzZWFnZTtcbi0tXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0Lmg9NjY0PXN0YXRpYyB2b2lkIGRhbW9uX3Rlc3RfbXZzdW0oc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC02ODgtLypcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaDo2ODk6ICogVGVzdCBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSgpLCB3aGljaCB3cmFwcyBkYW1vbl9tdnN1bSgpIHdpdGggdGhlXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjkwLSAqIG1vbml0b3JpbmcgaW50ZXJ2YWxzIG9mIHRoZSBjb250ZXh0LiAgV2l0aCBhIHNhbXBsZSBpbnRlcnZhbCBvZiAxIGFuZCBhblxuLS1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD02OTY9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9ucl9hY2Nlc3Nlc19tdnN1bShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTcyOC1cdFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsICh1bnNpZ25lZCBpbnQpaW5wdXRfZXhwZWN0c1tpICYjNDM7IDRdLFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjcyOTpcdFx0XHRcdGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpKTtcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC03MzAtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI3MQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqREFNT04gU2NvcmUgUmVmaW5lbWVudCoqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgdHdlYWtpbmcgaG93IHdlIGNhbGN1bGF0ZSB0aGUgYGRhbW9uX2hvdF9zY29yZWAuIEVzc2VudGlhbGx5LCB3ZSYjMzk7cmUgc2hpZnRpbmcgZnJvbSB1c2luZyB0aGUgZGlyZWN0IGByLSZndDtucl9hY2Nlc3Nlc2AgY291bnQgdG8gbGV2ZXJhZ2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYylgLiBUaGlzIGlzIGEgcHJldHR5IHNpZ25pZmljYW50LCBhbGJlaXQgZnVuY3Rpb25hbCwgY2hhbmdlIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBHaXZlbiBteSBmYW1pbGlhcml0eSB3aXRoIERBTU9OJiMzOTtzIHJvbGUgYXMgYSBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGVsZW1lbnQsIHRoaXMgY2F0Y2hlcyBteSBhdHRlbnRpb24uCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtaW5vciBvcHRpbWl6YXRpb24uIFRoaXMgcG90ZW50aWFsbHkgaW1wbGllcyB3ZSYjMzk7cmUgaW1wcm92aW5nIHRoZSBhY2N1cmFjeSBvciBiZWhhdmlvciBvZiB0aGUgaG90bmVzcyBzY29yaW5nLCBvciB0aGF0IHRoZSBwcmV2aW91cyBtZXRob2Qgd2FzbiYjMzk7dCBwcm92aWRpbmcgYSBnb29kIHNpZ25hbC4gRWl0aGVyIHdheSwgdGhpcyBhZmZlY3RzIGEgY3J1Y2lhbCBwYXJ0IG9mIGhvdyB3ZSBtb25pdG9yIGFuZCBtYW5hZ2UgZGF0YSBhY2Nlc3MgcGF0dGVybnMuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIG5ldyBhY2Nlc3MgY291bnQgZnVuY3Rpb24sIGZpZ3VyZSBvdXQgdGhlIGBtdnN1bWAmIzM5O3Mgc21vb3RoaW5nIGJlaGF2aW9yIGFuZCBob3cgaXQgZGlmZmVycyBmcm9tIHRoZSBzdHJhaWdodCBjb3VudC4KCkZpcnN0IHRoaW5ncyBmaXJzdDogSSYjMzk7bSBkaXZpbmcgaW50byB0aGUgS2NvbmZpZyB0byBjb25maXJtIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGUgY2hhbmdlIGlzIHByb3Blcmx5IGludGVncmF0ZWQgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgYnVpbGQgaXNzdWVzIG9yIGNvbXBhdGliaWxpdHkgY29uY2VybnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERBTU9OJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL0tjb25maWc9Mz1tZW51IFwmIzM0O0RhdGEgQWNjZXNzIE1vbml0b3JpbmdcJiMzNDtcbm1tL2RhbW9uL0tjb25maWctNC1cbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cbm1tL2RhbW9uL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7REFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xNC1cbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxubW0vZGFtb24vS2NvbmZpZy0xNi1cdGJvb2wgXCYjMzQ7Q2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxubW0vZGFtb24vS2NvbmZpZzoyNjpjb25maWcgREFNT05fS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy0yNy1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb25cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctMzctXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxubW0vZGFtb24vS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7RGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy00Ni1cbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXG5tbS9kYW1vbi9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy01NS1cbm1tL2RhbW9uL0tjb25maWc6NTY6Y29uZmlnIERBTU9OX1ZBRERSX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNTctXHRib29sIFwmIzM0O1Rlc3QgZm9yIERBTU9OIG9wZXJhdGlvbnNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy04Ny1cbm1tL2RhbW9uL0tjb25maWc6ODg6Y29uZmlnIERBTU9OX1JFQ0xBSU1cbm1tL2RhbW9uL0tjb25maWctODktXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIHJlY2xhaW0gKERBTU9OX1JFQ0xBSU0pXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy05OS1cbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXG5tbS9kYW1vbi9LY29uZmlnLTEwOS1cdGJvb2wgXCYjMzQ7QnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTE1LVxubW0vZGFtb24vS2NvbmZpZzoxMTY6Y29uZmlnIERBTU9OX1NUQVRfRU5BQkxFRF9ERUZBVUxUXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIERBTU9OX1NUQVQgYnkgZGVmYXVsdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzOTAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqSW52ZXN0aWdhdGluZyB0aGUgYGRhbW9uX2hvdF9zY29yZWAgRnVuY3Rpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBkYW1vbl9ob3Rfc2NvcmVgIGZ1bmN0aW9uLiBJIHJlbWVtYmVyIHNlZWluZyB0aGF0IG5hbWUgZmxvYXRpbmcgYXJvdW5kIHJlY2VudGx5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBiZXR0ZXIuIEZpcnN0IHRoaW5ncyBmaXJzdDogSSBrbm93IGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgc291cmNlIGNvZGUgbG9jYXRpb24gaXMgYG1tL2RhbW9uL29wcy1jb21tb24uY2AuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcywgKnVuZGVyIHdoYXQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMqIGRvZXMgdGhpcyBwYXJ0aWN1bGFyIGBvcHMtY29tbW9uLmNgIGZpbGUgZ2V0IGJ1aWx0PyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgdG8gZnVsbHkgZ3Jhc3Agd2hlbiBhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBjb21lcyBpbnRvIHBsYXkuIFRpbWUgdG8gZGlnIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBhbmQgc3RhcnQgdHJhY2luZyB0aG9zZSBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b3BzLWNvbW1vbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9NYWtlZmlsZT0zPW9iai15XHRcdFx0XHQ6PSBjb3JlLm9cbm1tL2RhbW9uL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0RBTU9OX1ZBRERSKVx0JiM0Mzs9IG9wcy1jb21tb24ubyB2YWRkci5vXG5tbS9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19EQU1PTl9QQUREUilcdCYjNDM7PSBvcHMtY29tbW9uLm8gcGFkZHIub1xubW0vZGFtb24vTWFrZWZpbGUtNi1vYmotJChDT05GSUdfREFNT05fU1lTRlMpXHQmIzQzOz0gc3lzZnMtY29tbW9uLm8gc3lzZnMtc2NoZW1lcy5vIHN5c2ZzLm9cbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTktLyogZm9yIGRhbW9uX2dldF9mb2xpbygpIHVzZWQgYnkgbm9kZSBlbGlnaWJsZSBtZW1vcnkgbWV0cmljcyAqL1xubW0vZGFtb24vY29yZS5jOjIwOiNpbmNsdWRlIFwmIzM0O29wcy1jb21tb24uaFwmIzM0O1xubW0vZGFtb24vY29yZS5jLTIxLVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0yODIzPXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9zX2dldF9ub2RlX21lbWNnX3VzZWRfYnAoXG4tLVxubW0vZGFtb24vY29yZS5jLTI4NzQtICpcbm1tL2RhbW9uL2NvcmUuYzoyODc1OiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZGFtb25fZ2V0X2ZvbGlvKCkgZnJvbSBvcHMtY29tbW9uLmMsIHdoaWNoIGlzXG5tbS9kYW1vbi9jb3JlLmMtMjg3Ni0gKiBvbmx5IGF2YWlsYWJsZSB3aGVuIENPTkZJR19EQU1PTl9QQUREUiBpcyBlbmFibGVkLiBJdCBhbHNvIHJlcXVpcmVzIHRoZVxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNC0jaW5jbHVkZSBcJiMzNDsuLi9pbnRlcm5hbC5oXCYjMzQ7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTU6I2luY2x1ZGUgXCYjMzQ7b3BzLWNvbW1vbi5oXCYjMzQ7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTYtXG4tLVxubW0vZGFtb24vcGFkZHIuYy0xNi0jaW5jbHVkZSBcJiMzNDsuLi9pbnRlcm5hbC5oXCYjMzQ7XG5tbS9kYW1vbi9wYWRkci5jOjE3OiNpbmNsdWRlIFwmIzM0O29wcy1jb21tb24uaFwmIzM0O1xubW0vZGFtb24vcGFkZHIuYy0xOC1cbi0tXG5tbS9kYW1vbi92YWRkci5jLTE3LSNpbmNsdWRlIFwmIzM0Oy4uL2ludGVybmFsLmhcJiMzNDtcbm1tL2RhbW9uL3ZhZGRyLmM6MTg6I2luY2x1ZGUgXCYjMzQ7b3BzLWNvbW1vbi5oXCYjMzQ7XG5tbS9kYW1vbi92YWRkci5jLTE5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTE3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqREFNT04gQ29uZmlndXJhdGlvbiBUaG91Z2h0cyoqCgpPa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIGl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBgb3BzLWNvbW1vbi5vYCBvYmplY3QgZmlsZSBnZXRzIGJ1aWx0IG9ubHkgaWYgZWl0aGVyIGBDT05GSUdfREFNT05fVkFERFJgIG9yIGBDT05GSUdfREFNT05fUEFERFJgIGlzIGVuYWJsZWQuIFRoYXQgbWFrZXMgc2Vuc2UsIHRob3NlIGFyZSB0aGUgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzcyBtb25pdG9yIG9wdGlvbnMsIHJlc3BlY3RpdmVseS4gVGhlcmVmb3JlLCB0byBlbnN1cmUgdGhhdCBjb21wb25lbnQgaXMgcHJlc2VudCwgd2UgZGVmaW5pdGVseSBuZWVkIHRvIGVuYWJsZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYC4gU2VlbXMgbGlrZSBhIG1pbmltYWwgc2V0IG9mIG5lY2Vzc2FyeSBjb25maWdzIHRvIGtlZXAgaW4gbWluZCB0byBrZWVwIERBTU9OIHN1cHBvcnQgcHJlc2VudC4KCkFuZCBvZiBjb3Vyc2UsIHdlJiMzOTtyZSBsaWtlbHkgZ29pbmcgdG8gd2FudCB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgREFNT04gZnJvbSB1c2Vyc3BhY2UsIHNvIHdlIHByb2JhYmx5IHNob3VsZCBhbHNvIGVuYWJsZSBgREFNT05fU1lTRlNgIGFzIGEgbWF0dGVyIG9mIGNvdXJzZS4gVGhpcyBpcyB0aGUgY29tbW9uIGFwcHJvYWNoLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBzZXR0aW5ncyBpbiBwcmFjdGljZSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoZSBjYWxsZXJzIG9mIGBkYW1vbl9ob3Rfc2NvcmVgLiBVbmRlcnN0YW5kaW5nIGhvdyB0aGF0IGZ1bmN0aW9uIGlzIHVzZWQgc2hvdWxkIHJldmVhbCBhIGxvdCBhYm91dCBob3cgdGhlc2UgY29uZmlndXJhdGlvbnMgaW50ZXJhY3QgYXQgcnVudGltZSwgYW5kIGluIHR1cm4gaG93IERBTU9OJiMzOTtzIHBlcmZvcm1hbmNlIGNvdWxkIGJlIHR3ZWFrZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTEwMy1cbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTEwNS1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNTIte1xubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcdGludCBob3RuZXNzID0gZGFtb25faG90X3Njb3JlKGMsIHIsIHMpO1xubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1NC1cbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmg9MTU9aW50IGRhbW9uX2NvbGRfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbm1tL2RhbW9uL29wcy1jb21tb24uaC0xNi1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpO1xubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbm1tL2RhbW9uL29wcy1jb21tb24uaC0xOC1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpO1xuLS1cbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXG4tLVxubW0vZGFtb24vcGFkZHIuYy00MjAtXHRjYXNlIERBTU9TX0xSVV9QUklPOlxubW0vZGFtb24vcGFkZHIuYzo0MjE6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3BhZGRyLmMtNDIyLVx0Y2FzZSBEQU1PU19MUlVfREVQUklPOlxuLS1cbm1tL2RhbW9uL3BhZGRyLmMtNDI0LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0hPVDpcbm1tL2RhbW9uL3BhZGRyLmM6NDI1Olx0XHRyZXR1cm4gZGFtb25faG90X3Njb3JlKGNvbnRleHQsIHIsIHNjaGVtZSk7XG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cdGNhc2UgREFNT1NfTUlHUkFURV9DT0xEOlxuLS1cbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXG4tLVxubW0vZGFtb24vdmFkZHIuYy05MjUtXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxubW0vZGFtb24vdmFkZHIuYzo5MjY6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3ZhZGRyLmMtOTI3LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0NPTEQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxNzQKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBIb3RuZXNzIFNjb3JlIENhbGN1bGF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBgZGFtb25faG90X3Njb3JlYCBpcyBjb21wdXRlZC4gVGhpcyBpcyBhIGNydWNpYWwgZnVuY3Rpb24sIGFzIGl04oCZcyB1c2VkIGluIERBTU9OIG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHBoeXNpY2FsIGFuZCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCBzY2hlbWVzIChgZGFtb25fcGFfc2NoZW1lX3Njb3JlYCwgYGRhbW9uX3ZhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fY29sZF9zY29yZWAgYXJlIHRoZSBrZXkgZnVuY3Rpb25zIGNhbGxpbmcgYGRhbW9uX2hvdF9zY29yZWApLiBTaW5jZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY2xvc2VyIGxvb2sgaXMgd2FycmFudGVkLgoKRmlyc3QsIEkgbmVlZCB0byBsaXN0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgdGhhdCBlbmFibGUgb3IgY29uZmlndXJlIHRoZSBEQU1PTiBzeXN0ZW0sIHNvIHRoZXkmIzM5O3JlIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGUgY2hhbmdlLgoKTm93LCBmb2N1c2luZyBvbiB0aGUgY29yZSBzeW1ib2xzOiBgZGFtb25faG90X3Njb3JlYCwgYGRhbW9uX2NvbGRfc2NvcmVgLCBgZGFtb25fcGFfc2NoZW1lX3Njb3JlYCwgYW5kIGBkYW1vbl92YV9zY2hlbWVfc2NvcmVgLiBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgZGFtb25faG90X3Njb3JlYCBpcyBpbmRlZWQgcmVhY2hhYmxlOyBpdCYjMzk7cyBhY3RpdmVseSBjYWxsZWQgZHVyaW5nIERBTU9OIHNjaGVtZSBhcHBsaWNhdGlvbi4gR2l2ZW4gdGhhdCB0aGUgaG90bmVzcyBzY29yZSBkaXJlY3RseSBpbmZsdWVuY2VzIG1lbW9yeSBtYW5hZ2VtZW50IGRlY2lzaW9ucywgZnV6emluZyB0aGlzIGFyZWEgaXMgZGVmaW5pdGVseSBhIHdvcnRod2hpbGUgaW52ZXN0bWVudC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIHRoZSBwb3RlbnRpYWwgdG8gaW50cm9kdWNlIGludGVyZXN0aW5nIGJlaGF2aW9yYWwgc2hpZnRzIGluIG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYW5kIHRodXMgcGVyZm9ybWFuY2UuCgpGaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIGxlYXZlIG5vIHN0b25lIHVudHVybmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXCYjMzQ7RGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1wmIzM0O1xubW0vZGFtb24vS2NvbmZpZy00LVxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxubW0vZGFtb24vS2NvbmZpZy02LVx0Ym9vbCBcJiMzNDtEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxubW0vZGFtb24vS2NvbmZpZzoxNTpjb25maWcgREFNT05fREVCVUdfU0FOSVRZXG5tbS9kYW1vbi9LY29uZmlnLTE2LVx0Ym9vbCBcJiMzNDtDaGVjayBzYW5pdHkgb2YgREFNT04gY29kZVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMjUtXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXG5tbS9kYW1vbi9LY29uZmlnLTI3LVx0Ym9vbCBcJiMzNDtUZXN0IGZvciBkYW1vblwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy0zNy1cbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXG5tbS9kYW1vbi9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxubW0vZGFtb24vS2NvbmZpZzo0Nzpjb25maWcgREFNT05fUEFERFJcbm1tL2RhbW9uL0tjb25maWctNDgtXHRib29sIFwmIzM0O0RhdGEgYWNjZXNzIG1vbml0b3Jpbmcgb3BlcmF0aW9ucyBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTU1LVxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy02Ny1cbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXG5tbS9kYW1vbi9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtEQU1PTiBzeXNmcyBpbnRlcmZhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxubW0vZGFtb24vS2NvbmZpZzo3Njpjb25maWcgREFNT05fU1lTRlNfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy03Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb24gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTg3LVxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxubW0vZGFtb24vS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXG5tbS9kYW1vbi9LY29uZmlnLTEwMS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTA3LVxubW0vZGFtb24vS2NvbmZpZzoxMDg6Y29uZmlnIERBTU9OX1NUQVRcbm1tL2RhbW9uL0tjb25maWctMTA5LVx0Ym9vbCBcJiMzNDtCdWlsZCBkYXRhIGFjY2VzcyBtb25pdG9yaW5nIHN0YXQgKERBTU9OX1NUQVQpXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xMTUtXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcbm1tL2RhbW9uL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg1MDYKCQkJCQkJCW91dHB1dDogMjMxCgkJCQkJCQl0aG91Z2h0czogMjI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IERBTU9OIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdG8gZWZmZWN0aXZlbHkgZnV6eiB0aGlzIERBTU9OIHBhdGNoLiBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGlzIHJvYnVzdCwgZXNwZWNpYWxseSB0aGUgdXBkYXRlZCBob3RuZXNzIHNjb3JpbmcgY2FsY3VsYXRpb24uIFRoYXQgbWVhbnMgSeKAmW0gZ29pbmcgdG8gZXhwbGljaXRseSBlbmFibGUgYWxsIHRoZSBjcml0aWNhbCBEQU1PTiBmZWF0dXJlcyB3aXRoaW4gdGhlIGZ1enppbmcgc2V0dXAg4oCTIEkmIzM5O2xsIGRlZmluaXRlbHkgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBgREFNT05fU1lTRlNgLCBgREFNT05fUkVDTEFJTWAsIGFuZCBgREFNT05fTFJVX1NPUlRgIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGVzc2VudGlhbCB0byBleHBvc2UgYWxsIHBvdGVudGlhbCBjb2RlIHBhdGhzIGFuZCBpbnRlcmFjdGlvbnMgZm9yIHRoZSBmdXp6ZXIuCgpUaGUgcmVhbCBtZWF0IG9mIHRoZSBwYXRjaCBpcyB0aGUgY2hhbmdlIHRvIGBkYW1vbl9ob3Rfc2NvcmVgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHJlcGxhY2luZyB0aGUgb2xkIGByLSZndDtucl9hY2Nlc3Nlc2Agd2l0aCBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluIHRoZSBgZnJlcV9zdWJzY29yZWAgY2FsY3VsYXRpb24uIFRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgaG90bmVzcy9jb2xkbmVzcyBkZXRlcm1pbmF0aW9uLCB3aGljaCBpbiB0dXJuIGZlZWRzIGludG8gaG93IHRoZSBkaWZmZXJlbnQgREFNT04gc2NoZW1lcywgbGlrZSByZWNsYWltIG9yIExSVSBzb3J0aW5nLCBhcmUgYXBwbGllZC4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgc3ViamVjdCBpdCB0byBhIHJpZ29yb3VzIGZ1enppbmcgcmVnaW1lLiBUaGVyZWZvcmUsIG15IGZvY3VzIGZvciB0YXJnZXRlZCBmdXp6aW5nIHdpbGwgYmUgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSYjMzk7bSBlc3BlY2lhbGx5IGNvbmNlcm5lZCBhYm91dCBlZGdlIGNhc2VzIGludHJvZHVjZWQgYnkgdGhlIG5ldyBjYWxjdWxhdGlvbiBtZXRob2QuIFdlIGhhdmUgdG8gZW5zdXJlIGl0IGRvZXNuJiMzOTt0IGxlYWQgdG8gaXNzdWVzIGxpa2UgZGl2aXNpb24gYnkgemVybywgaW50ZWdlciBvdmVyZmxvd3MsIG9yIGFueSBvdGhlciB1bmV4cGVjdGVkIGJlaGF2aW9ycyB0aGF0IG1pZ2h0IGNvbXByb21pc2UgdGhlIGludGVncml0eSBvZiB0aGUgbWVtb3J5IG1vbml0b3Jpbmcgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fUkVDTEFJTSYjMzQ7LAogICAgJiMzNDtEQU1PTl9MUlVfU09SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9jb2xkX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3BhX3NjaGVtZV9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl92YV9zY2hlbWVfc2NvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24mIzM5O3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9SRUNMQUlNJiMzNDssCiAgICAmIzM0O0RBTU9OX0xSVV9TT1JUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25faG90X3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX2NvbGRfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fcGFfc2NoZW1lX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3ZhX3NjaGVtZV9zY29yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVx1MDAzZW5yX2FjY2Vzc2VzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBEYXRhIEFjY2VzcyBNT05pdG9yIChEQU1PTikgZnJhbWV3b3JrLCBhZmZlY3RpbmcgaG93IG1lbW9yeSByZWdpb25zIGFyZSBzY29yZWQgZm9yIGhvdG5lc3MvY29sZG5lc3MgYW5kIHN1YnNlcXVlbnRseSBob3cgbWVtb3J5IG1hbmFnZW1lbnQgc2NoZW1lcyBhcmUgYXBwbGllZC4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjYWxjdWxhdGlvbiBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNC45MDE3NjA2NDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTIzODk2NTA2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fUkVDTEFJTVwiLFxuICAgIFwiREFNT05fTFJVX1NPUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9ob3Rfc2NvcmVcIixcbiAgICBcImRhbW9uX2NvbGRfc2NvcmVcIixcbiAgICBcImRhbW9uX3BhX3NjaGVtZV9zY29yZVwiLFxuICAgIFwiZGFtb25fdmFfc2NoZW1lX3Njb3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJ3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNC45MDE4MDkxODZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMzg4NDA3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGZmMGI1NzQwY2Y2YjJhNDBjNjViZGU4OTJlYjRhY2UzNDdiMzVmYmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMTkgMTY6NDk6MjMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vb3BzLWNvbW1vbi5jIGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXFxuaW5kZXggZTU5ZjUyNjhkNTAzY2YuLmQ3ZDdmMTAwMzg5YjAxIDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL29wcy1jb21tb24uY1xcbisrKyBiL21tL2RhbW9uL29wcy1jb21tb24uY1xcbkBAIC0xMTEsOCArMTExLDkgQEAgaW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbiBcXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXFx1MDAzZXF1b3RhLndlaWdodF9hZ2U7XFxuIFxcdGludCBob3RuZXNzO1xcbiBcXG4tXFx0ZnJlcV9zdWJzY29yZSA9IHItXFx1MDAzZW5yX2FjY2Vzc2VzICogREFNT05fTUFYX1NVQlNDT1JFIC9cXG4tXFx0XFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcXHUwMDI2Yy1cXHUwMDNlYXR0cnMpO1xcbitcXHRmcmVxX3N1YnNjb3JlID0gbXVsdF9mcmFjKGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpLFxcbitcXHRcXHRcXHREQU1PTl9NQVhfU1VCU0NPUkUsXFxuK1xcdFxcdFxcdGRhbW9uX25yX3NhbXBsZXNfcGVyX2FnZ3IoXFx1MDAyNmMtXFx1MDAzZWF0dHJzKSk7XFxuIFxcbiBcXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cXHUwMDNlYWdlICogYy1cXHUwMDNlYXR0cnMuYWdncl9pbnRlcnZhbCAvIDEwMDAwMDA7XFxuIFxcdGlmIChhZ2VfaW5fc2VjKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNS41MzYzODkxNjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NjA0MzI4MTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9SRUNMQUlNXCIsXG4gICAgXCJEQU1PTl9MUlVfU09SVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX2hvdF9zY29yZVwiLFxuICAgIFwiZGFtb25fY29sZF9zY29yZVwiLFxuICAgIFwiZGFtb25fcGFfc2NoZW1lX3Njb3JlXCIsXG4gICAgXCJkYW1vbl92YV9zY2hlbWVfc2NvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVxcdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24ndCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmYwYjU3NDBjZjZiMmE0MGM2NWJkZTg5MmViNGFjZTM0N2IzNWZiYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDE5IDE2OjQ5OjIzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vb3BzLWNvbW1vbi5jIGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXG5pbmRleCBlNTlmNTI2OGQ1MDNjZi4uZDdkN2YxMDAzODliMDEgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9vcHMtY29tbW9uLmNcbisrKyBiL21tL2RhbW9uL29wcy1jb21tb24uY1xuQEAgLTExMSw4ICsxMTEsOSBAQCBpbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4gXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXHUwMDNlcXVvdGEud2VpZ2h0X2FnZTtcbiBcdGludCBob3RuZXNzO1xuIFxuLVx0ZnJlcV9zdWJzY29yZSA9IHItXHUwMDNlbnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgL1xuLVx0XHRkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKFx1MDAyNmMtXHUwMDNlYXR0cnMpO1xuK1x0ZnJlcV9zdWJzY29yZSA9IG11bHRfZnJhYyhkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSxcbitcdFx0XHREQU1PTl9NQVhfU1VCU0NPUkUsXG4rXHRcdFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSk7XG4gXG4gXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cdTAwM2VhZ2UgKiBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgLyAxMDAwMDAwO1xuIFx0aWYgKGFnZV9pbl9zZWMpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNS41MzY0MDM0NzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTUxMzYwNTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgREFNT04gSG90IFNjb3JlIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLCBzcGVjaWZpY2FsbHkgaG93IGl0J3MgYWx0ZXJpbmcgdGhlIGBkYW1vbl9ob3Rfc2NvcmVgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0aGV5J3JlIGNoYW5naW5nIHRoZSB3YXkgdGhlIGBmcmVxX3N1YnNjb3JlYCBpcyBjYWxjdWxhdGVkLiBQcmV2aW91c2x5LCBpdCB3YXMgYSBzdHJhaWdodGZvcndhcmQgcmF0aW86IGByLVx1MDAzZW5yX2FjY2Vzc2VzYCB0aW1lcyBhIGNvbnN0YW50IChgREFNT05fTUFYX1NVQlNDT1JFYCksIGFsbCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBwZXIgYWdncmVnYXRpb24gd2luZG93IChgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKWApLiBBIHNpbXBsZSBjb3VudCBzY2FsZWQgdG8gYSBtYXhpbXVtIHN1YnNjb3JlLlxuXG5Ob3csIGluc3RlYWQgb2YgYHItXHUwMDNlbnJfYWNjZXNzZXNgLCB0aGUgbmV3IGNhbGN1bGF0aW9uIGlzIHVzaW5nIGBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksIERBTU9OX01BWF9TVUJTQ09SRSwgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSlgLiBUaGF0IGBtdWx0X2ZyYWNgIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIGEgbXVsdGlwbGljYXRpb24gYW5kIGRpdmlzaW9uLCBrZWVwaW5nIHRoZSByZXN1bHQgd2l0aGluIHRoZSBhY2NlcHRhYmxlIHJhbmdlLiBUaGUga2V5IGlzIHRoaXMgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBmdW5jdGlvbi4gSXQgcmVwbGFjZXMgYSBzaW1wbGUgYG5yX2FjY2Vzc2VzYCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgaXQncyBjYWxjdWxhdGluZyBhIG1vdmluZyBzdW0sIHByZXN1bWFibHkgd2VpZ2h0ZWQgaW4gc29tZSB3YXkgYmFzZWQgb24gdGhlIHJlY2VudCBhY2Nlc3MgY291bnRzLlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIG5ldyBhY2Nlc3MgY291bnRlci4gVGhlIG9sZCBtZXRob2Qgc2VlbXMgcHJldHR5IGJhc2ljLiBUaGlzIG1vdmUgdG8gYSBtb3Zpbmcgc3VtIHN1Z2dlc3RzIHRoZXkncmUgdHJ5aW5nIHRvIG1ha2UgdGhlIGhvdCBzY29yZSBjYWxjdWxhdGlvbiBtb3JlIHJlc3BvbnNpdmUgdG8gcmVjZW50IGFjY2VzcyBwYXR0ZXJucywgcmF0aGVyIHRoYW4gYmVpbmcgb3Zlcmx5IGluZmx1ZW5jZWQgYnkgYSBzaW5nbGUgaW5pdGlhbCBidXJzdCBvciBhIGxvbmctYWdvIGhpZ2ggbnVtYmVyIG9mIGFjY2Vzc2VzLiBJdOKAmXMgbWFraW5nIHRoZSBob3Qgc2NvcmUgbW9yZSBkeW5hbWljIGFuZCBsZXNzIHN0YXRpYy4gSXQncyBwcm9iYWJseSByZWxhdGVkIHRvIGZpbHRlcmluZyBvciBzbW9vdGhpbmcsIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kICpob3cqIGl0J3MgZG9pbmcgaXQuXG5cbkknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgZGVmaW5pdGlvbiBvZiBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGFuZCBpdHMgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIGRhdGEgc3RydWN0dXJlcyB0byBmdWxseSBncmFzcCB3aGF0J3MgZ29pbmcgb24gaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIG1vdmluZyBzdW0ncyB3ZWlnaHRpbmcsIHdpbmRvdyBzaXplLCBhbmQgaW1wYWN0IG9uIHRoZSBob3Qgc2NvcmUncyByZXNwb25zaXZlbmVzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyNSwiT3V0cHV0VG9rZW5zIjo2NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjMwLjY4Nzc2NjU0OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzYxNDM5NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25faG90X3Njb3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXFxuLS1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xMDUtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XFxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcXHRpbnQgaG90bmVzcyA9IGRhbW9uX2hvdF9zY29yZShjLCByLCBzKTtcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oPTE1PWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVxcdFxcdFxcdHN0cnVjdCBkYW1vcyAqcyk7XFxubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmgtMTgtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKTtcXG4tLVxcbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cXHRjYXNlIERBTU9TX0xSVV9QUklPOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDIxOlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyMi1cXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyNC1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDI1OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3ZhZGRyLmM6OTI2OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi92YWRkci5jLTkyNy1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzEuMTIzOTE1MjI4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjU0NTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vY29yZS5jPTI0ND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9tdnN1bSh1bnNpZ25lZCBsb25nIGN1cnJlbnRfbnIsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMjUwLS8qKlxcbm1tL2RhbW9uL2NvcmUuYzoyNTE6ICogZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0oKSAtIFJldHVybnMgbW92aW5nIHN1bSBhY2Nlc3MgZnJlcXVlbmN5IHNjb3JlLlxcbm1tL2RhbW9uL2NvcmUuYy0yNTItICogQHI6XFx0XFx0UmVnaW9uIHRvIGdldCB0aGUgYWNjZXNzIGZyZXF1ZW5jeSBvZi5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yNjMtICovXFxubW0vZGFtb24vY29yZS5jOjI2NDp1bnNpZ25lZCBpbnQgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0oc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9jb3JlLmMtMjY1LVxcdFxcdHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0yMjc0PXN0YXRpYyBib29sIF9fZGFtb3NfdmFsaWRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsIHN0cnVjdCBkYW1vcyAqcyxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yMjc3LVxcdHVuc2lnbmVkIGxvbmcgc3o7XFxubW0vZGFtb24vY29yZS5jOjIyNzg6XFx0dW5zaWduZWQgaW50IG5yX2FjY2Vzc2VzID0gZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyk7XFxubW0vZGFtb24vY29yZS5jLTIyNzktXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MjU3MD1zdGF0aWMgdm9pZCBkYW1vc19hcHBseV9zY2hlbWUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yNjAyLVxcdFxcdH1cXG5tbS9kYW1vbi9jb3JlLmM6MjYwMzpcXHRcXHRucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xcbm1tL2RhbW9uL2NvcmUuYy0yNjA0LVxcdFxcdGRvX3RyYWNlID0gdHJ1ZTtcXG4tLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYz0xMDQ9aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTExMy1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTE0OlxcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTExNS1cXHRcXHRcXHREQU1PTl9NQVhfU1VCU0NPUkUsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmM9MTYwPXN0YXRpYyBzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbiAqZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbl9hbGxvYyhcXG4tLVxcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNjgtXFx0c3lzZnNfcmVnaW9uLVxcdTAwM2VhciA9IHJlZ2lvbi1cXHUwMDNlYXI7XFxubW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jOjE2OTpcXHRzeXNmc19yZWdpb24tXFx1MDAzZW5yX2FjY2Vzc2VzID0gZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ocmVnaW9uLCBjdHgpO1xcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNzAtXFx0c3lzZnNfcmVnaW9uLVxcdTAwM2VhZ2UgPSByZWdpb24tXFx1MDAzZWFnZTtcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD02NjQ9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9tdnN1bShzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjg4LS8qXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjY4OTogKiBUZXN0IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKCksIHdoaWNoIHdyYXBzIGRhbW9uX212c3VtKCkgd2l0aCB0aGVcXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjkwLSAqIG1vbml0b3JpbmcgaW50ZXJ2YWxzIG9mIHRoZSBjb250ZXh0LiAgV2l0aCBhIHNhbXBsZSBpbnRlcnZhbCBvZiAxIGFuZCBhblxcbi0tXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oPTY5Nj1zdGF0aWMgdm9pZCBkYW1vbl90ZXN0X25yX2FjY2Vzc2VzX212c3VtKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC03MjgtXFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsICh1bnNpZ25lZCBpbnQpaW5wdXRfZXhwZWN0c1tpICsgNF0sXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjcyOTpcXHRcXHRcXHRcXHRkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSk7XFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTczMC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjMxLjIzMDQ2NjQ2NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDY4MTYzOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6XG5cbioqREFNT04gU2NvcmUgUmVmaW5lbWVudCoqXG5cbkFscmlnaHQsIHNvIHRoZSBwYXRjaCBpcyB0d2Vha2luZyBob3cgd2UgY2FsY3VsYXRlIHRoZSBgZGFtb25faG90X3Njb3JlYC4gRXNzZW50aWFsbHksIHdlJ3JlIHNoaWZ0aW5nIGZyb20gdXNpbmcgdGhlIGRpcmVjdCBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AgY291bnQgdG8gbGV2ZXJhZ2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYylgLiBUaGlzIGlzIGEgcHJldHR5IHNpZ25pZmljYW50LCBhbGJlaXQgZnVuY3Rpb25hbCwgY2hhbmdlIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBHaXZlbiBteSBmYW1pbGlhcml0eSB3aXRoIERBTU9OJ3Mgcm9sZSBhcyBhIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgZWxlbWVudCwgdGhpcyBjYXRjaGVzIG15IGF0dGVudGlvbi5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzbid0IGp1c3QgYSBtaW5vciBvcHRpbWl6YXRpb24uIFRoaXMgcG90ZW50aWFsbHkgaW1wbGllcyB3ZSdyZSBpbXByb3ZpbmcgdGhlIGFjY3VyYWN5IG9yIGJlaGF2aW9yIG9mIHRoZSBob3RuZXNzIHNjb3JpbmcsIG9yIHRoYXQgdGhlIHByZXZpb3VzIG1ldGhvZCB3YXNuJ3QgcHJvdmlkaW5nIGEgZ29vZCBzaWduYWwuIEVpdGhlciB3YXksIHRoaXMgYWZmZWN0cyBhIGNydWNpYWwgcGFydCBvZiBob3cgd2UgbW9uaXRvciBhbmQgbWFuYWdlIGRhdGEgYWNjZXNzIHBhdHRlcm5zLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIG5ldyBhY2Nlc3MgY291bnQgZnVuY3Rpb24sIGZpZ3VyZSBvdXQgdGhlIGBtdnN1bWAncyBzbW9vdGhpbmcgYmVoYXZpb3IgYW5kIGhvdyBpdCBkaWZmZXJzIGZyb20gdGhlIHN0cmFpZ2h0IGNvdW50LlxuXG5GaXJzdCB0aGluZ3MgZmlyc3Q6IEknbSBkaXZpbmcgaW50byB0aGUgS2NvbmZpZyB0byBjb25maXJtIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZC4gTGV0J3MgbWFrZSBzdXJlIHRoZSBjaGFuZ2UgaXMgcHJvcGVybHkgaW50ZWdyYXRlZCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IGJ1aWxkIGlzc3VlcyBvciBjb21wYXRpYmlsaXR5IGNvbmNlcm5zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjcxLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjM1LjM3NzI4NDc4NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTExOTQwOTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERBTU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjM1LjUyODUwNjU4MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNTQ1NjgwNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIGBkYW1vbl9ob3Rfc2NvcmVgIEZ1bmN0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGRhbW9uX2hvdF9zY29yZWAgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIHRoYXQgbmFtZSBmbG9hdGluZyBhcm91bmQgcmVjZW50bHksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgaXQncyBiZWVuIG1vZGlmaWVkLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGlzIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLiBOb3csIHRoZSBrZXkgcXVlc3Rpb24gaXMsICp1bmRlciB3aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zKiBkb2VzIHRoaXMgcGFydGljdWxhciBgb3BzLWNvbW1vbi5jYCBmaWxlIGdldCBidWlsdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHRvIGZ1bGx5IGdyYXNwIHdoZW4gYW5kIHdoZXJlIHRoaXMgZnVuY3Rpb24gY29tZXMgaW50byBwbGF5LiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIHN0YXJ0IHRyYWNpbmcgdGhvc2UgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzkwLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzguNjgzMDc3MDAxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTU0NzQ1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvcHMtY29tbW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9NYWtlZmlsZT0zPW9iai15XFx0XFx0XFx0XFx0Oj0gY29yZS5vXFxubW0vZGFtb24vTWFrZWZpbGU6NDpvYmotJChDT05GSUdfREFNT05fVkFERFIpXFx0Kz0gb3BzLWNvbW1vbi5vIHZhZGRyLm9cXG5tbS9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19EQU1PTl9QQUREUilcXHQrPSBvcHMtY29tbW9uLm8gcGFkZHIub1xcbm1tL2RhbW9uL01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX0RBTU9OX1NZU0ZTKVxcdCs9IHN5c2ZzLWNvbW1vbi5vIHN5c2ZzLXNjaGVtZXMubyBzeXNmcy5vXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMTktLyogZm9yIGRhbW9uX2dldF9mb2xpbygpIHVzZWQgYnkgbm9kZSBlbGlnaWJsZSBtZW1vcnkgbWV0cmljcyAqL1xcbm1tL2RhbW9uL2NvcmUuYzoyMDojaW5jbHVkZSBcXFwib3BzLWNvbW1vbi5oXFxcIlxcbm1tL2RhbW9uL2NvcmUuYy0yMS1cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0yODIzPXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9zX2dldF9ub2RlX21lbWNnX3VzZWRfYnAoXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMjg3NC0gKlxcbm1tL2RhbW9uL2NvcmUuYzoyODc1OiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZGFtb25fZ2V0X2ZvbGlvKCkgZnJvbSBvcHMtY29tbW9uLmMsIHdoaWNoIGlzXFxubW0vZGFtb24vY29yZS5jLTI4NzYtICogb25seSBhdmFpbGFibGUgd2hlbiBDT05GSUdfREFNT05fUEFERFIgaXMgZW5hYmxlZC4gSXQgYWxzbyByZXF1aXJlcyB0aGVcXG4tLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNC0jaW5jbHVkZSBcXFwiLi4vaW50ZXJuYWwuaFxcXCJcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTU6I2luY2x1ZGUgXFxcIm9wcy1jb21tb24uaFxcXCJcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTYtXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTE2LSNpbmNsdWRlIFxcXCIuLi9pbnRlcm5hbC5oXFxcIlxcbm1tL2RhbW9uL3BhZGRyLmM6MTc6I2luY2x1ZGUgXFxcIm9wcy1jb21tb24uaFxcXCJcXG5tbS9kYW1vbi9wYWRkci5jLTE4LVxcbi0tXFxubW0vZGFtb24vdmFkZHIuYy0xNy0jaW5jbHVkZSBcXFwiLi4vaW50ZXJuYWwuaFxcXCJcXG5tbS9kYW1vbi92YWRkci5jOjE4OiNpbmNsdWRlIFxcXCJvcHMtY29tbW9uLmhcXFwiXFxubW0vZGFtb24vdmFkZHIuYy0xOS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzguODIyNjI5MTg4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTIyMjk5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqREFNT04gQ29uZmlndXJhdGlvbiBUaG91Z2h0cyoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlIGBvcHMtY29tbW9uLm9gIG9iamVjdCBmaWxlIGdldHMgYnVpbHQgb25seSBpZiBlaXRoZXIgYENPTkZJR19EQU1PTl9WQUREUmAgb3IgYENPTkZJR19EQU1PTl9QQUREUmAgaXMgZW5hYmxlZC4gVGhhdCBtYWtlcyBzZW5zZSwgdGhvc2UgYXJlIHRoZSB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzIG1vbml0b3Igb3B0aW9ucywgcmVzcGVjdGl2ZWx5LiBUaGVyZWZvcmUsIHRvIGVuc3VyZSB0aGF0IGNvbXBvbmVudCBpcyBwcmVzZW50LCB3ZSBkZWZpbml0ZWx5IG5lZWQgdG8gZW5hYmxlIGBEQU1PTmAsIGBEQU1PTl9WQUREUmAsIGFuZCBgREFNT05fUEFERFJgLiBTZWVtcyBsaWtlIGEgbWluaW1hbCBzZXQgb2YgbmVjZXNzYXJ5IGNvbmZpZ3MgdG8ga2VlcCBpbiBtaW5kIHRvIGtlZXAgREFNT04gc3VwcG9ydCBwcmVzZW50LlxuXG5BbmQgb2YgY291cnNlLCB3ZSdyZSBsaWtlbHkgZ29pbmcgdG8gd2FudCB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgREFNT04gZnJvbSB1c2Vyc3BhY2UsIHNvIHdlIHByb2JhYmx5IHNob3VsZCBhbHNvIGVuYWJsZSBgREFNT05fU1lTRlNgIGFzIGEgbWF0dGVyIG9mIGNvdXJzZS4gVGhpcyBpcyB0aGUgY29tbW9uIGFwcHJvYWNoLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBzZXR0aW5ncyBpbiBwcmFjdGljZSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNhbGxlcnMgb2YgYGRhbW9uX2hvdF9zY29yZWAuIFVuZGVyc3RhbmRpbmcgaG93IHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBzaG91bGQgcmV2ZWFsIGEgbG90IGFib3V0IGhvdyB0aGVzZSBjb25maWd1cmF0aW9ucyBpbnRlcmFjdCBhdCBydW50aW1lLCBhbmQgaW4gdHVybiBob3cgREFNT04ncyBwZXJmb3JtYW5jZSBjb3VsZCBiZSB0d2Vha2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTE3LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDIuNjE0ODYxMjY0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTYxMTc1NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25faG90X3Njb3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXFxuLS1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xMDUtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XFxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcXHRpbnQgaG90bmVzcyA9IGRhbW9uX2hvdF9zY29yZShjLCByLCBzKTtcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oPTE1PWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVxcdFxcdFxcdHN0cnVjdCBkYW1vcyAqcyk7XFxubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmgtMTgtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKTtcXG4tLVxcbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cXHRjYXNlIERBTU9TX0xSVV9QUklPOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDIxOlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyMi1cXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyNC1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDI1OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3ZhZGRyLmM6OTI2OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi92YWRkci5jLTkyNy1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDIuNzMwOTg0MDkxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NTE4MDYxMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBIb3RuZXNzIFNjb3JlIENhbGN1bGF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgYGRhbW9uX2hvdF9zY29yZWAgaXMgY29tcHV0ZWQuIFRoaXMgaXMgYSBjcnVjaWFsIGZ1bmN0aW9uLCBhcyBpdOKAmXMgdXNlZCBpbiBEQU1PTiBvcGVyYXRpb25zLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzIHNwYWNlIG1hbmFnZW1lbnQgc2NoZW1lcyAoYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGBkYW1vbl92YV9zY2hlbWVfc2NvcmVgLCBhbmQgYGRhbW9uX2NvbGRfc2NvcmVgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBjYWxsaW5nIGBkYW1vbl9ob3Rfc2NvcmVgKS4gU2luY2UgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGNsb3NlciBsb29rIGlzIHdhcnJhbnRlZC5cblxuRmlyc3QsIEkgbmVlZCB0byBsaXN0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgdGhhdCBlbmFibGUgb3IgY29uZmlndXJlIHRoZSBEQU1PTiBzeXN0ZW0sIHNvIHRoZXkncmUgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgZm9jdXNpbmcgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSd2ZSBjb25maXJtZWQgdGhhdCBgZGFtb25faG90X3Njb3JlYCBpcyBpbmRlZWQgcmVhY2hhYmxlOyBpdCdzIGFjdGl2ZWx5IGNhbGxlZCBkdXJpbmcgREFNT04gc2NoZW1lIGFwcGxpY2F0aW9uLiBHaXZlbiB0aGF0IHRoZSBob3RuZXNzIHNjb3JlIGRpcmVjdGx5IGluZmx1ZW5jZXMgbWVtb3J5IG1hbmFnZW1lbnQgZGVjaXNpb25zLCBmdXp6aW5nIHRoaXMgYXJlYSBpcyBkZWZpbml0ZWx5IGEgd29ydGh3aGlsZSBpbnZlc3RtZW50LiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aCB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBpbnRlcmVzdGluZyBiZWhhdmlvcmFsIHNoaWZ0cyBpbiBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFuZCB0aHVzIHBlcmZvcm1hbmNlLlxuXG5GaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBvdGhlciBwb3RlbnRpYWxseSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBJIG5lZWQgdG8gbGVhdmUgbm8gc3RvbmUgdW50dXJuZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxNzQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDcuMzgyNzkyMzU4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDk5MDIyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERBTU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjQ3LjgzMjY5OTUxOFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTY3MTU5MzY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IERBTU9OIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IHRvIGVmZmVjdGl2ZWx5IGZ1enogdGhpcyBEQU1PTiBwYXRjaC4gSSBuZWVkIHRvIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBpcyByb2J1c3QsIGVzcGVjaWFsbHkgdGhlIHVwZGF0ZWQgaG90bmVzcyBzY29yaW5nIGNhbGN1bGF0aW9uLiBUaGF0IG1lYW5zIEnigJltIGdvaW5nIHRvIGV4cGxpY2l0bHkgZW5hYmxlIGFsbCB0aGUgY3JpdGljYWwgREFNT04gZmVhdHVyZXMgd2l0aGluIHRoZSBmdXp6aW5nIHNldHVwIOKAkyBJJ2xsIGRlZmluaXRlbHkgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBgREFNT05fU1lTRlNgLCBgREFNT05fUkVDTEFJTWAsIGFuZCBgREFNT05fTFJVX1NPUlRgIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGVzc2VudGlhbCB0byBleHBvc2UgYWxsIHBvdGVudGlhbCBjb2RlIHBhdGhzIGFuZCBpbnRlcmFjdGlvbnMgZm9yIHRoZSBmdXp6ZXIuXG5cblRoZSByZWFsIG1lYXQgb2YgdGhlIHBhdGNoIGlzIHRoZSBjaGFuZ2UgdG8gYGRhbW9uX2hvdF9zY29yZWAuIFNwZWNpZmljYWxseSwgaXQncyByZXBsYWNpbmcgdGhlIG9sZCBgci1cdTAwM2Vucl9hY2Nlc3Nlc2Agd2l0aCBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluIHRoZSBgZnJlcV9zdWJzY29yZWAgY2FsY3VsYXRpb24uIFRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgaG90bmVzcy9jb2xkbmVzcyBkZXRlcm1pbmF0aW9uLCB3aGljaCBpbiB0dXJuIGZlZWRzIGludG8gaG93IHRoZSBkaWZmZXJlbnQgREFNT04gc2NoZW1lcywgbGlrZSByZWNsYWltIG9yIExSVSBzb3J0aW5nLCBhcmUgYXBwbGllZC4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgc3ViamVjdCBpdCB0byBhIHJpZ29yb3VzIGZ1enppbmcgcmVnaW1lLiBUaGVyZWZvcmUsIG15IGZvY3VzIGZvciB0YXJnZXRlZCBmdXp6aW5nIHdpbGwgYmUgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSdtIGVzcGVjaWFsbHkgY29uY2VybmVkIGFib3V0IGVkZ2UgY2FzZXMgaW50cm9kdWNlZCBieSB0aGUgbmV3IGNhbGN1bGF0aW9uIG1ldGhvZC4gV2UgaGF2ZSB0byBlbnN1cmUgaXQgZG9lc24ndCBsZWFkIHRvIGlzc3VlcyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8sIGludGVnZXIgb3ZlcmZsb3dzLCBvciBhbnkgb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBtaWdodCBjb21wcm9taXNlIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1lbW9yeSBtb25pdG9yaW5nIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODUwNiwiT3V0cHV0VG9rZW5zIjoyMzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NTMuOTk5ODYxMzMxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwODUyMjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fUkVDTEFJTVwiLFxuICAgIFwiREFNT05fTFJVX1NPUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9ob3Rfc2NvcmVcIixcbiAgICBcImRhbW9uX2NvbGRfc2NvcmVcIixcbiAgICBcImRhbW9uX3BhX3NjaGVtZV9zY29yZVwiLFxuICAgIFwiZGFtb25fdmFfc2NoZW1lX3Njb3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJ3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9SRUNMQUlNXCIsXG4gICAgXCJEQU1PTl9MUlVfU09SVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX2hvdF9zY29yZVwiLFxuICAgIFwiZGFtb25fY29sZF9zY29yZVwiLFxuICAgIFwiZGFtb25fcGFfc2NoZW1lX3Njb3JlXCIsXG4gICAgXCJkYW1vbl92YV9zY2hlbWVfc2NvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVxcdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24ndCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow69c7s[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-19 16:19:01 +0000 UTC FinishedAt: 2026-07-19 16:49:56 +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": "56b9d68cf62f5e79ac9035dde02c3a68d0c6e091", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS", "DAMON_RECLAIM", "DAMON_LRU_SORT" ], "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": "56b9d68cf62f5e79ac9035dde02c3a68d0c6e091", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "DAMON", "DAMON_VADDR", "DAMON_PADDR", "DAMON_SYSFS", "DAMON_RECLAIM", "DAMON_LRU_SORT" ], "series_id": "01380884-3fbb-4f0f-812c-2fd72ba91c95" }, "track": "KASAN", "fuzz": { "focus": null, "focus_symbols": [ "damon_hot_score", "damon_cold_score", "damon_pa_scheme_score", "damon_va_scheme_score" ], "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+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0RBTU9OJiMzNDssCiAgICAmIzM0O0RBTU9OX1ZBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1BBRERSJiMzNDssCiAgICAmIzM0O0RBTU9OX1NZU0ZTJiMzNDssCiAgICAmIzM0O0RBTU9OX1JFQ0xBSU0mIzM0OywKICAgICYjMzQ7REFNT05fTFJVX1NPUlQmIzM0OwogIF0sCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogWwogICAgJiMzNDtkYW1vbl9ob3Rfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fY29sZF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9wYV9zY2hlbWVfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fdmFfc2NoZW1lX3Njb3JlJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgaG90bmVzcyBzY29yZSAoYGZyZXFfc3Vic2NvcmVgKSBpbiBgZGFtb25faG90X3Njb3JlYCBieSB1c2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluc3RlYWQgb2YgYHItXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJiMzOTt0IGludHJvZHVjZSBidWdzIGxpa2UgZGl2aXNpb24gYnkgemVybyBvciBpbnRlZ2VyIG92ZXJmbG93cy4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+cmVhZC1wYXRjaC1kaWZmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7UGF0Y2hEaWZmJiMzNDs6ICYjMzQ7Y29tbWl0IGZmMGI1NzQwY2Y2YjJhNDBjNjViZGU4OTJlYjRhY2UzNDdiMzVmYmFcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXHUwMDNjdHJpYWdlQHN5emthbGxlci5jb21cdTAwM2VcbkRhdGU6ICAgU3VuIEp1bCAxOSAxNjo0OToyMyAyMDI2ICYjNDM7MDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMgYi9tbS9kYW1vbi9vcHMtY29tbW9uLmNcbmluZGV4IGU1OWY1MjY4ZDUwM2NmLi5kN2Q3ZjEwMDM4OWIwMSAxMDA2NDRcbi0tLSBhL21tL2RhbW9uL29wcy1jb21tb24uY1xuJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXG5AQCAtMTExLDggJiM0MzsxMTEsOSBAQCBpbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4gXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXHUwMDNlcXVvdGEud2VpZ2h0X2FnZTtcbiBcdGludCBob3RuZXNzO1xuIFxuLVx0ZnJlcV9zdWJzY29yZSA9IHItXHUwMDNlbnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgL1xuLVx0XHRkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKFx1MDAyNmMtXHUwMDNlYXR0cnMpO1xuJiM0MztcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXG4mIzQzO1x0XHRcdERBTU9OX01BWF9TVUJTQ09SRSxcbiYjNDM7XHRcdFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSk7XG4gXG4gXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cdTAwM2VhZ2UgKiBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgLyAxMDAwMDAwO1xuIFx0aWYgKGFnZV9pbl9zZWMpXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fUkVDTEFJTSYjMzQ7LAogICAgJiMzNDtEQU1PTl9MUlVfU09SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9jb2xkX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3BhX3NjaGVtZV9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl92YV9zY2hlbWVfc2NvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24mIzM5O3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+SW5zdHJ1Y3Rpb246PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Zb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci4KWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmUKaWYgaXQgbWFrZXMgZnVuY3Rpb25hbCBjaGFuZ2VzIHRvIHRoZSBrZXJuZWwgdGhhdCBzaG91bGQgYmUgZnV6emVkLgoKSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluCnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiB5b3VyIGludGVybmFsIGtub3dsZWRnZSBvZiB0aGUga2VybmVsLiBZb3UgbXVzdCBhY3RpdmVseQp1c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLgoKUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBpZiB0aGUgcGF0Y2ggb25seSBjb250YWluczoKLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLgotIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLgotIENoYW5nZXMgdG8gbnVtZXJpYyBjb25zdGFudHMgb3IgbWFjcm9zIHRoYXQgZG8gbm90IGZ1bmN0aW9uYWxseSBhbHRlciBleGVjdXRpb24gZmxvdy4KLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsCmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCjIuIElkZW50aWZ5IGFueSBzcGVjaWZpYyBDT05GSUdfIG9wdGlvbnMgcmVxdWlyZWQgdG8gcHJvcGVybHkgdGVzdCB0aGlzIG5ldy9tb2RpZmllZCBmZWF0dXJlLgogICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuCiAgIERvIG5vdCBsaXN0IHRvbyBnZW5lcmljIGNvbmZpZ3MgKHdlIGFscmVhZHkgaGF2ZSB0aGVtIGVuYWJsZWQpLiBPbmx5IGxpc3QgdGhvc2UgdGhhdAogICBzcGVjaWZpY2FsbHkgY292ZXIgdGhlIG1vZGlmaWVkIGNvZGUuIExpc3QgdGhlbSBpbiB0aGUgRW5hYmxlQ29uZmlncyBvdXRwdXQgYXJyYXksCiAgIGFuZCBETyBOT1QgYWRkIGEgJiMzOTtDT05GSUdfJiMzOTsgcHJlZml4IChlLmcuLCByZXR1cm4gJiMzNDtORVRfSVBWNCYjMzQ7IGluc3RlYWQgb2YgJiMzNDtDT05GSUdfTkVUX0lQVjQmIzM0OykuClByZWZlciBjYWxsaW5nIHNldmVyYWwgdG9vbHMgYXQgdGhlIHNhbWUgdGltZSB0byBzYXZlIHJvdW5kLXRyaXBzLgoKClVzZSBzZXQtcmVzdWx0cyB0b29sIHRvIHByb3ZpZGUgcmVzdWx0cyBvZiB0aGUgYW5hbHlzaXMuCkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LgpJZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UHJvbXB0OjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Rm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6CmNvbW1pdCBmZjBiNTc0MGNmNmIyYTQwYzY1YmRlODkyZWI0YWNlMzQ3YjM1ZmJhCkF1dGhvcjogc3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OwpEYXRlOiAgIFN1biBKdWwgMTkgMTY6NDk6MjMgMjAyNiAmIzQzOzAwMDAKCiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXcKCmRpZmYgLS1naXQgYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMgYi9tbS9kYW1vbi9vcHMtY29tbW9uLmMKaW5kZXggZTU5ZjUyNjhkNTAzY2YuLmQ3ZDdmMTAwMzg5YjAxIDEwMDY0NAotLS0gYS9tbS9kYW1vbi9vcHMtY29tbW9uLmMKJiM0MzsmIzQzOyYjNDM7IGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jCkBAIC0xMTEsOCAmIzQzOzExMSw5IEBAIGludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqciwKIAl1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtJmd0O3F1b3RhLndlaWdodF9hZ2U7CiAJaW50IGhvdG5lc3M7CiAKLQlmcmVxX3N1YnNjb3JlID0gci0mZ3Q7bnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgLwotCQlkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpOwomIzQzOwlmcmVxX3N1YnNjb3JlID0gbXVsdF9mcmFjKGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpLAomIzQzOwkJCURBTU9OX01BWF9TVUJTQ09SRSwKJiM0MzsJCQlkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpKTsKIAogCWFnZV9pbl9zZWMgPSAodW5zaWduZWQgbG9uZylyLSZndDthZ2UgKiBjLSZndDthdHRycy5hZ2dyX2ludGVydmFsIC8gMTAwMDAwMDsKIAlpZiAoYWdlX2luX3NlYykKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTkyNQoJCQkJCQkJb3V0cHV0OiA2NgoJCQkJCQkJdGhvdWdodHM6IDE2MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgdGhlIERBTU9OIEhvdCBTY29yZSBNb2RpZmljYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLCBzcGVjaWZpY2FsbHkgaG93IGl0JiMzOTtzIGFsdGVyaW5nIHRoZSBgZGFtb25faG90X3Njb3JlYCBmdW5jdGlvbi4gSXQgc2VlbXMgdGhleSYjMzk7cmUgY2hhbmdpbmcgdGhlIHdheSB0aGUgYGZyZXFfc3Vic2NvcmVgIGlzIGNhbGN1bGF0ZWQuIFByZXZpb3VzbHksIGl0IHdhcyBhIHN0cmFpZ2h0Zm9yd2FyZCByYXRpbzogYHItJmd0O25yX2FjY2Vzc2VzYCB0aW1lcyBhIGNvbnN0YW50IChgREFNT05fTUFYX1NVQlNDT1JFYCksIGFsbCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBwZXIgYWdncmVnYXRpb24gd2luZG93IChgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncigmYW1wO2MtJmd0O2F0dHJzKWApLiBBIHNpbXBsZSBjb3VudCBzY2FsZWQgdG8gYSBtYXhpbXVtIHN1YnNjb3JlLgoKTm93LCBpbnN0ZWFkIG9mIGByLSZndDtucl9hY2Nlc3Nlc2AsIHRoZSBuZXcgY2FsY3VsYXRpb24gaXMgdXNpbmcgYG11bHRfZnJhYyhkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSwgREFNT05fTUFYX1NVQlNDT1JFLCBkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKCZhbXA7Yy0mZ3Q7YXR0cnMpKWAuIFRoYXQgYG11bHRfZnJhY2AgZnVuY3Rpb24gbGlrZWx5IGhhbmRsZXMgYSBtdWx0aXBsaWNhdGlvbiBhbmQgZGl2aXNpb24sIGtlZXBpbmcgdGhlIHJlc3VsdCB3aXRoaW4gdGhlIGFjY2VwdGFibGUgcmFuZ2UuIFRoZSBrZXkgaXMgdGhpcyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGZ1bmN0aW9uLiBJdCByZXBsYWNlcyBhIHNpbXBsZSBgbnJfYWNjZXNzZXNgIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3MgbGlrZSBpdCYjMzk7cyBjYWxjdWxhdGluZyBhIG1vdmluZyBzdW0sIHByZXN1bWFibHkgd2VpZ2h0ZWQgaW4gc29tZSB3YXkgYmFzZWQgb24gdGhlIHJlY2VudCBhY2Nlc3MgY291bnRzLgoKSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcyBuZXcgYWNjZXNzIGNvdW50ZXIuIFRoZSBvbGQgbWV0aG9kIHNlZW1zIHByZXR0eSBiYXNpYy4gVGhpcyBtb3ZlIHRvIGEgbW92aW5nIHN1bSBzdWdnZXN0cyB0aGV5JiMzOTtyZSB0cnlpbmcgdG8gbWFrZSB0aGUgaG90IHNjb3JlIGNhbGN1bGF0aW9uIG1vcmUgcmVzcG9uc2l2ZSB0byByZWNlbnQgYWNjZXNzIHBhdHRlcm5zLCByYXRoZXIgdGhhbiBiZWluZyBvdmVybHkgaW5mbHVlbmNlZCBieSBhIHNpbmdsZSBpbml0aWFsIGJ1cnN0IG9yIGEgbG9uZy1hZ28gaGlnaCBudW1iZXIgb2YgYWNjZXNzZXMuIEl04oCZcyBtYWtpbmcgdGhlIGhvdCBzY29yZSBtb3JlIGR5bmFtaWMgYW5kIGxlc3Mgc3RhdGljLiBJdCYjMzk7cyBwcm9iYWJseSByZWxhdGVkIHRvIGZpbHRlcmluZyBvciBzbW9vdGhpbmcsIGJ1dCBpdCYjMzk7cyBpbXBvcnRhbnQgdG8gdW5kZXJzdGFuZCAqaG93KiBpdCYjMzk7cyBkb2luZyBpdC4KCkkmIzM5O20gZ29pbmcgdG8gaGF2ZSB0byBkaXZlIGludG8gdGhlIGRlZmluaXRpb24gb2YgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBhbmQgaXRzIGludGVyYWN0aW9ucyB3aXRoIHRoZSBEQU1PTiBkYXRhIHN0cnVjdHVyZXMgdG8gZnVsbHkgZ3Jhc3Agd2hhdCYjMzk7cyBnb2luZyBvbiBoZXJlLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgbW92aW5nIHN1bSYjMzk7cyB3ZWlnaHRpbmcsIHdpbmRvdyBzaXplLCBhbmQgaW1wYWN0IG9uIHRoZSBob3Qgc2NvcmUmIzM5O3MgcmVzcG9uc2l2ZW5lc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZGFtb25faG90X3Njb3JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL29wcy1jb21tb24uYz03Mz12b2lkIGRhbW9uX3BtZHBfbWtvbGQocG1kX3QgKnBtZCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvbmcgYWRkcilcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjEwNDppbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTA1LVx0XHRcdHN0cnVjdCBkYW1vcyAqcylcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM9MTUwPWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTUzOlx0aW50IGhvdG5lc3MgPSBkYW1vbl9ob3Rfc2NvcmUoYywgciwgcyk7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uaD0xNT1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVx0XHRcdHN0cnVjdCBkYW1vcyAqcyk7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmg6MTc6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE4LVx0XHRcdHN0cnVjdCBkYW1vcyAqcyk7XG4tLVxubW0vZGFtb24vcGFkZHIuYz00MTQ9c3RhdGljIGludCBkYW1vbl9wYV9zY2hlbWVfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqY29udGV4dCxcbi0tXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cdGNhc2UgREFNT1NfTFJVX1BSSU86XG5tbS9kYW1vbi9wYWRkci5jOjQyMTpcdFx0cmV0dXJuIGRhbW9uX2hvdF9zY29yZShjb250ZXh0LCByLCBzY2hlbWUpO1xubW0vZGFtb24vcGFkZHIuYy00MjItXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XG4tLVxubW0vZGFtb24vcGFkZHIuYy00MjQtXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxubW0vZGFtb24vcGFkZHIuYzo0MjU6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3BhZGRyLmMtNDI2LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0NPTEQ6XG4tLVxubW0vZGFtb24vdmFkZHIuYz05MTg9c3RhdGljIGludCBkYW1vbl92YV9zY2hlbWVfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqY29udGV4dCxcbi0tXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cdGNhc2UgREFNT1NfTUlHUkFURV9IT1Q6XG5tbS9kYW1vbi92YWRkci5jOjkyNjpcdFx0cmV0dXJuIGRhbW9uX2hvdF9zY29yZShjb250ZXh0LCByLCBzY2hlbWUpO1xubW0vZGFtb24vdmFkZHIuYy05MjctXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9jb3JlLmM9MjQ0PXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9uX212c3VtKHVuc2lnbmVkIGxvbmcgY3VycmVudF9ucixcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMjUwLS8qKlxubW0vZGFtb24vY29yZS5jOjI1MTogKiBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSgpIC0gUmV0dXJucyBtb3Zpbmcgc3VtIGFjY2VzcyBmcmVxdWVuY3kgc2NvcmUuXG5tbS9kYW1vbi9jb3JlLmMtMjUyLSAqIEByOlx0XHRSZWdpb24gdG8gZ2V0IHRoZSBhY2Nlc3MgZnJlcXVlbmN5IG9mLlxuLS1cbm1tL2RhbW9uL2NvcmUuYy0yNjMtICovXG5tbS9kYW1vbi9jb3JlLmM6MjY0OnVuc2lnbmVkIGludCBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vY29yZS5jLTI2NS1cdFx0c3RydWN0IGRhbW9uX2N0eCAqY3R4KVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0yMjc0PXN0YXRpYyBib29sIF9fZGFtb3NfdmFsaWRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsIHN0cnVjdCBkYW1vcyAqcyxcbi0tXG5tbS9kYW1vbi9jb3JlLmMtMjI3Ny1cdHVuc2lnbmVkIGxvbmcgc3o7XG5tbS9kYW1vbi9jb3JlLmM6MjI3ODpcdHVuc2lnbmVkIGludCBucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xubW0vZGFtb24vY29yZS5jLTIyNzktXG4tLVxubW0vZGFtb24vY29yZS5jPTI1NzA9c3RhdGljIHZvaWQgZGFtb3NfYXBwbHlfc2NoZW1lKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl90YXJnZXQgKnQsXG4tLVxubW0vZGFtb24vY29yZS5jLTI2MDItXHRcdH1cbm1tL2RhbW9uL2NvcmUuYzoyNjAzOlx0XHRucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xubW0vZGFtb24vY29yZS5jLTI2MDQtXHRcdGRvX3RyYWNlID0gdHJ1ZTtcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM9MTA0PWludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTEzLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjExNDpcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTE1LVx0XHRcdERBTU9OX01BWF9TVUJTQ09SRSxcbi0tXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmM9MTYwPXN0YXRpYyBzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbiAqZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbl9hbGxvYyhcbi0tXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmMtMTY4LVx0c3lzZnNfcmVnaW9uLVx1MDAzZWFyID0gcmVnaW9uLVx1MDAzZWFyO1xubW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jOjE2OTpcdHN5c2ZzX3JlZ2lvbi1cdTAwM2Vucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHJlZ2lvbiwgY3R4KTtcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNzAtXHRzeXNmc19yZWdpb24tXHUwMDNlYWdlID0gcmVnaW9uLVx1MDAzZWFnZTtcbi0tXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0Lmg9NjY0PXN0YXRpYyB2b2lkIGRhbW9uX3Rlc3RfbXZzdW0oc3RydWN0IGt1bml0ICp0ZXN0KVxuLS1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC02ODgtLypcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaDo2ODk6ICogVGVzdCBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bSgpLCB3aGljaCB3cmFwcyBkYW1vbl9tdnN1bSgpIHdpdGggdGhlXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjkwLSAqIG1vbml0b3JpbmcgaW50ZXJ2YWxzIG9mIHRoZSBjb250ZXh0LiAgV2l0aCBhIHNhbXBsZSBpbnRlcnZhbCBvZiAxIGFuZCBhblxuLS1cbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD02OTY9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9ucl9hY2Nlc3Nlc19tdnN1bShzdHJ1Y3Qga3VuaXQgKnRlc3QpXG4tLVxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTcyOC1cdFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsICh1bnNpZ25lZCBpbnQpaW5wdXRfZXhwZWN0c1tpICYjNDM7IDRdLFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjcyOTpcdFx0XHRcdGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpKTtcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC03MzAtXHR9XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDI3MQoJCQkJCQkJb3V0cHV0OiAyOAoJCQkJCQkJdGhvdWdodHM6IDgwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBmcm9tIG15IGV4cGVydCBwZXJzcGVjdGl2ZToKCioqREFNT04gU2NvcmUgUmVmaW5lbWVudCoqCgpBbHJpZ2h0LCBzbyB0aGUgcGF0Y2ggaXMgdHdlYWtpbmcgaG93IHdlIGNhbGN1bGF0ZSB0aGUgYGRhbW9uX2hvdF9zY29yZWAuIEVzc2VudGlhbGx5LCB3ZSYjMzk7cmUgc2hpZnRpbmcgZnJvbSB1c2luZyB0aGUgZGlyZWN0IGByLSZndDtucl9hY2Nlc3Nlc2AgY291bnQgdG8gbGV2ZXJhZ2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYylgLiBUaGlzIGlzIGEgcHJldHR5IHNpZ25pZmljYW50LCBhbGJlaXQgZnVuY3Rpb25hbCwgY2hhbmdlIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBHaXZlbiBteSBmYW1pbGlhcml0eSB3aXRoIERBTU9OJiMzOTtzIHJvbGUgYXMgYSBjb3JlIG1lbW9yeSBtYW5hZ2VtZW50IGVsZW1lbnQsIHRoaXMgY2F0Y2hlcyBteSBhdHRlbnRpb24uCgpNeSBpbW1lZGlhdGUgdGhvdWdodCBpcyB0aGF0IHRoaXMgaXNuJiMzOTt0IGp1c3QgYSBtaW5vciBvcHRpbWl6YXRpb24uIFRoaXMgcG90ZW50aWFsbHkgaW1wbGllcyB3ZSYjMzk7cmUgaW1wcm92aW5nIHRoZSBhY2N1cmFjeSBvciBiZWhhdmlvciBvZiB0aGUgaG90bmVzcyBzY29yaW5nLCBvciB0aGF0IHRoZSBwcmV2aW91cyBtZXRob2Qgd2FzbiYjMzk7dCBwcm92aWRpbmcgYSBnb29kIHNpZ25hbC4gRWl0aGVyIHdheSwgdGhpcyBhZmZlY3RzIGEgY3J1Y2lhbCBwYXJ0IG9mIGhvdyB3ZSBtb25pdG9yIGFuZCBtYW5hZ2UgZGF0YSBhY2Nlc3MgcGF0dGVybnMuIEkmIzM5O2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIG5ldyBhY2Nlc3MgY291bnQgZnVuY3Rpb24sIGZpZ3VyZSBvdXQgdGhlIGBtdnN1bWAmIzM5O3Mgc21vb3RoaW5nIGJlaGF2aW9yIGFuZCBob3cgaXQgZGlmZmVycyBmcm9tIHRoZSBzdHJhaWdodCBjb3VudC4KCkZpcnN0IHRoaW5ncyBmaXJzdDogSSYjMzk7bSBkaXZpbmcgaW50byB0aGUgS2NvbmZpZyB0byBjb25maXJtIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZC4gTGV0JiMzOTtzIG1ha2Ugc3VyZSB0aGUgY2hhbmdlIGlzIHByb3Blcmx5IGludGVncmF0ZWQgYW5kIGRvZXNuJiMzOTt0IGludHJvZHVjZSBhbnkgYnVpbGQgaXNzdWVzIG9yIGNvbXBhdGliaWxpdHkgY29uY2VybnMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIERBTU9OJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7bW0vZGFtb24vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O21tL2RhbW9uL0tjb25maWc9Mz1tZW51IFwmIzM0O0RhdGEgQWNjZXNzIE1vbml0b3JpbmdcJiMzNDtcbm1tL2RhbW9uL0tjb25maWctNC1cbm1tL2RhbW9uL0tjb25maWc6NTpjb25maWcgREFNT05cbm1tL2RhbW9uL0tjb25maWctNi1cdGJvb2wgXCYjMzQ7REFNT046IERhdGEgQWNjZXNzIE1vbml0b3JpbmcgRnJhbWV3b3JrXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xNC1cbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxubW0vZGFtb24vS2NvbmZpZy0xNi1cdGJvb2wgXCYjMzQ7Q2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxubW0vZGFtb24vS2NvbmZpZzoyNjpjb25maWcgREFNT05fS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy0yNy1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb25cJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctMzctXG5tbS9kYW1vbi9LY29uZmlnOjM4OmNvbmZpZyBEQU1PTl9WQUREUlxubW0vZGFtb24vS2NvbmZpZy0zOS1cdGJvb2wgXCYjMzQ7RGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBvcGVyYXRpb25zIGZvciB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2VzXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy00Ni1cbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXG5tbS9kYW1vbi9LY29uZmlnLTQ4LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy01NS1cbm1tL2RhbW9uL0tjb25maWc6NTY6Y29uZmlnIERBTU9OX1ZBRERSX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNTctXHRib29sIFwmIzM0O1Rlc3QgZm9yIERBTU9OIG9wZXJhdGlvbnNcJiMzNDsgaWYgIUtVTklUX0FMTF9URVNUU1xuLS1cbm1tL2RhbW9uL0tjb25maWctNjctXG5tbS9kYW1vbi9LY29uZmlnOjY4OmNvbmZpZyBEQU1PTl9TWVNGU1xubW0vZGFtb24vS2NvbmZpZy02OS1cdGJvb2wgXCYjMzQ7REFNT04gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy03NS1cbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1Rcbm1tL2RhbW9uL0tjb25maWctNzctXHRib29sIFwmIzM0O1Rlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy04Ny1cbm1tL2RhbW9uL0tjb25maWc6ODg6Y29uZmlnIERBTU9OX1JFQ0xBSU1cbm1tL2RhbW9uL0tjb25maWctODktXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIHJlY2xhaW0gKERBTU9OX1JFQ0xBSU0pXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy05OS1cbm1tL2RhbW9uL0tjb25maWc6MTAwOmNvbmZpZyBEQU1PTl9MUlVfU09SVFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXHRib29sIFwmIzM0O0J1aWxkIERBTU9OLWJhc2VkIExSVS1saXN0cyBzb3J0aW5nIChEQU1PTl9MUlVfU09SVClcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTEwNy1cbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXG5tbS9kYW1vbi9LY29uZmlnLTEwOS1cdGJvb2wgXCYjMzQ7QnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTE1LVxubW0vZGFtb24vS2NvbmZpZzoxMTY6Y29uZmlnIERBTU9OX1NUQVRfRU5BQkxFRF9ERUZBVUxUXG5tbS9kYW1vbi9LY29uZmlnLTExNy1cdGJvb2wgXCYjMzQ7RW5hYmxlIERBTU9OX1NUQVQgYnkgZGVmYXVsdFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDUzOTAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSYjMzk7bSB0aGlua2luZyB0aHJvdWdoIHRoaXMgcHJvY2VzczoKCioqSW52ZXN0aWdhdGluZyB0aGUgYGRhbW9uX2hvdF9zY29yZWAgRnVuY3Rpb24qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBkYW1vbl9ob3Rfc2NvcmVgIGZ1bmN0aW9uLiBJIHJlbWVtYmVyIHNlZWluZyB0aGF0IG5hbWUgZmxvYXRpbmcgYXJvdW5kIHJlY2VudGx5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdCBiZXR0ZXIuIEZpcnN0IHRoaW5ncyBmaXJzdDogSSBrbm93IGl0JiMzOTtzIGJlZW4gbW9kaWZpZWQsIGFuZCB0aGUgc291cmNlIGNvZGUgbG9jYXRpb24gaXMgYG1tL2RhbW9uL29wcy1jb21tb24uY2AuIE5vdywgdGhlIGtleSBxdWVzdGlvbiBpcywgKnVuZGVyIHdoYXQgc3BlY2lmaWMgY29uZmlndXJhdGlvbnMqIGRvZXMgdGhpcyBwYXJ0aWN1bGFyIGBvcHMtY29tbW9uLmNgIGZpbGUgZ2V0IGJ1aWx0PyBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgcmVsZXZhbnQgS2NvbmZpZyBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMgdG8gZnVsbHkgZ3Jhc3Agd2hlbiBhbmQgd2hlcmUgdGhpcyBmdW5jdGlvbiBjb21lcyBpbnRvIHBsYXkuIFRpbWUgdG8gZGlnIGludG8gdGhlIGJ1aWxkIHN5c3RlbSBhbmQgc3RhcnQgdHJhY2luZyB0aG9zZSBkZXBlbmRlbmNpZXMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMTkgMTY6NDk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7b3BzLWNvbW1vbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9NYWtlZmlsZT0zPW9iai15XHRcdFx0XHQ6PSBjb3JlLm9cbm1tL2RhbW9uL01ha2VmaWxlOjQ6b2JqLSQoQ09ORklHX0RBTU9OX1ZBRERSKVx0JiM0Mzs9IG9wcy1jb21tb24ubyB2YWRkci5vXG5tbS9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19EQU1PTl9QQUREUilcdCYjNDM7PSBvcHMtY29tbW9uLm8gcGFkZHIub1xubW0vZGFtb24vTWFrZWZpbGUtNi1vYmotJChDT05GSUdfREFNT05fU1lTRlMpXHQmIzQzOz0gc3lzZnMtY29tbW9uLm8gc3lzZnMtc2NoZW1lcy5vIHN5c2ZzLm9cbi0tXG5tbS9kYW1vbi9jb3JlLmMtMTktLyogZm9yIGRhbW9uX2dldF9mb2xpbygpIHVzZWQgYnkgbm9kZSBlbGlnaWJsZSBtZW1vcnkgbWV0cmljcyAqL1xubW0vZGFtb24vY29yZS5jOjIwOiNpbmNsdWRlIFwmIzM0O29wcy1jb21tb24uaFwmIzM0O1xubW0vZGFtb24vY29yZS5jLTIxLVxuLS1cbm1tL2RhbW9uL2NvcmUuYz0yODIzPXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9zX2dldF9ub2RlX21lbWNnX3VzZWRfYnAoXG4tLVxubW0vZGFtb24vY29yZS5jLTI4NzQtICpcbm1tL2RhbW9uL2NvcmUuYzoyODc1OiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZGFtb25fZ2V0X2ZvbGlvKCkgZnJvbSBvcHMtY29tbW9uLmMsIHdoaWNoIGlzXG5tbS9kYW1vbi9jb3JlLmMtMjg3Ni0gKiBvbmx5IGF2YWlsYWJsZSB3aGVuIENPTkZJR19EQU1PTl9QQUREUiBpcyBlbmFibGVkLiBJdCBhbHNvIHJlcXVpcmVzIHRoZVxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNC0jaW5jbHVkZSBcJiMzNDsuLi9pbnRlcm5hbC5oXCYjMzQ7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTU6I2luY2x1ZGUgXCYjMzQ7b3BzLWNvbW1vbi5oXCYjMzQ7XG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTYtXG4tLVxubW0vZGFtb24vcGFkZHIuYy0xNi0jaW5jbHVkZSBcJiMzNDsuLi9pbnRlcm5hbC5oXCYjMzQ7XG5tbS9kYW1vbi9wYWRkci5jOjE3OiNpbmNsdWRlIFwmIzM0O29wcy1jb21tb24uaFwmIzM0O1xubW0vZGFtb24vcGFkZHIuYy0xOC1cbi0tXG5tbS9kYW1vbi92YWRkci5jLTE3LSNpbmNsdWRlIFwmIzM0Oy4uL2ludGVybmFsLmhcJiMzNDtcbm1tL2RhbW9uL3ZhZGRyLmM6MTg6I2luY2x1ZGUgXCYjMzQ7b3BzLWNvbW1vbi5oXCYjMzQ7XG5tbS9kYW1vbi92YWRkci5jLTE5LVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2MTE3CgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogOTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqREFNT04gQ29uZmlndXJhdGlvbiBUaG91Z2h0cyoqCgpPa2F5LCBzbyBsb29raW5nIGF0IHRoaXMsIGl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBgb3BzLWNvbW1vbi5vYCBvYmplY3QgZmlsZSBnZXRzIGJ1aWx0IG9ubHkgaWYgZWl0aGVyIGBDT05GSUdfREFNT05fVkFERFJgIG9yIGBDT05GSUdfREFNT05fUEFERFJgIGlzIGVuYWJsZWQuIFRoYXQgbWFrZXMgc2Vuc2UsIHRob3NlIGFyZSB0aGUgdmlydHVhbCBhbmQgcGh5c2ljYWwgYWRkcmVzcyBtb25pdG9yIG9wdGlvbnMsIHJlc3BlY3RpdmVseS4gVGhlcmVmb3JlLCB0byBlbnN1cmUgdGhhdCBjb21wb25lbnQgaXMgcHJlc2VudCwgd2UgZGVmaW5pdGVseSBuZWVkIHRvIGVuYWJsZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBhbmQgYERBTU9OX1BBRERSYC4gU2VlbXMgbGlrZSBhIG1pbmltYWwgc2V0IG9mIG5lY2Vzc2FyeSBjb25maWdzIHRvIGtlZXAgaW4gbWluZCB0byBrZWVwIERBTU9OIHN1cHBvcnQgcHJlc2VudC4KCkFuZCBvZiBjb3Vyc2UsIHdlJiMzOTtyZSBsaWtlbHkgZ29pbmcgdG8gd2FudCB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgREFNT04gZnJvbSB1c2Vyc3BhY2UsIHNvIHdlIHByb2JhYmx5IHNob3VsZCBhbHNvIGVuYWJsZSBgREFNT05fU1lTRlNgIGFzIGEgbWF0dGVyIG9mIGNvdXJzZS4gVGhpcyBpcyB0aGUgY29tbW9uIGFwcHJvYWNoLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBzZXR0aW5ncyBpbiBwcmFjdGljZSwgbGV0JiMzOTtzIHRha2UgYSBsb29rIGF0IHRoZSBjYWxsZXJzIG9mIGBkYW1vbl9ob3Rfc2NvcmVgLiBVbmRlcnN0YW5kaW5nIGhvdyB0aGF0IGZ1bmN0aW9uIGlzIHVzZWQgc2hvdWxkIHJldmVhbCBhIGxvdCBhYm91dCBob3cgdGhlc2UgY29uZmlndXJhdGlvbnMgaW50ZXJhY3QgYXQgcnVudGltZSwgYW5kIGluIHR1cm4gaG93IERBTU9OJiMzOTtzIHBlcmZvcm1hbmNlIGNvdWxkIGJlIHR3ZWFrZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O21tL2RhbW9uLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDttbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTEwMy1cbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTEwNS1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpXG4tLVxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxuLS1cbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNTIte1xubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcdGludCBob3RuZXNzID0gZGFtb25faG90X3Njb3JlKGMsIHIsIHMpO1xubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1NC1cbi0tXG5tbS9kYW1vbi9vcHMtY29tbW9uLmg9MTU9aW50IGRhbW9uX2NvbGRfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbm1tL2RhbW9uL29wcy1jb21tb24uaC0xNi1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpO1xubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcbm1tL2RhbW9uL29wcy1jb21tb24uaC0xOC1cdFx0XHRzdHJ1Y3QgZGFtb3MgKnMpO1xuLS1cbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXG4tLVxubW0vZGFtb24vcGFkZHIuYy00MjAtXHRjYXNlIERBTU9TX0xSVV9QUklPOlxubW0vZGFtb24vcGFkZHIuYzo0MjE6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3BhZGRyLmMtNDIyLVx0Y2FzZSBEQU1PU19MUlVfREVQUklPOlxuLS1cbm1tL2RhbW9uL3BhZGRyLmMtNDI0LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0hPVDpcbm1tL2RhbW9uL3BhZGRyLmM6NDI1Olx0XHRyZXR1cm4gZGFtb25faG90X3Njb3JlKGNvbnRleHQsIHIsIHNjaGVtZSk7XG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cdGNhc2UgREFNT1NfTUlHUkFURV9DT0xEOlxuLS1cbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXG4tLVxubW0vZGFtb24vdmFkZHIuYy05MjUtXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxubW0vZGFtb24vdmFkZHIuYzo5MjY6XHRcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcbm1tL2RhbW9uL3ZhZGRyLmMtOTI3LVx0Y2FzZSBEQU1PU19NSUdSQVRFX0NPTEQ6XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDcxNzQKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiAyMTcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBEQU1PTiBIb3RuZXNzIFNjb3JlIENhbGN1bGF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCBhIHBhdGNoIHRoYXQgZnVuZGFtZW50YWxseSBhbHRlcnMgaG93IHRoZSBgZGFtb25faG90X3Njb3JlYCBpcyBjb21wdXRlZC4gVGhpcyBpcyBhIGNydWNpYWwgZnVuY3Rpb24sIGFzIGl04oCZcyB1c2VkIGluIERBTU9OIG9wZXJhdGlvbnMsIHNwZWNpZmljYWxseSB3aXRoaW4gdGhlIHBoeXNpY2FsIGFuZCB2aXJ0dWFsIGFkZHJlc3Mgc3BhY2UgbWFuYWdlbWVudCBzY2hlbWVzIChgZGFtb25fcGFfc2NoZW1lX3Njb3JlYCwgYGRhbW9uX3ZhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fY29sZF9zY29yZWAgYXJlIHRoZSBrZXkgZnVuY3Rpb25zIGNhbGxpbmcgYGRhbW9uX2hvdF9zY29yZWApLiBTaW5jZSB0aGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UsIGEgY2xvc2VyIGxvb2sgaXMgd2FycmFudGVkLgoKRmlyc3QsIEkgbmVlZCB0byBsaXN0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgdGhhdCBlbmFibGUgb3IgY29uZmlndXJlIHRoZSBEQU1PTiBzeXN0ZW0sIHNvIHRoZXkmIzM5O3JlIGltcG9ydGFudCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgY29udGV4dCBhbmQgcG90ZW50aWFsIGltcGFjdCBvZiB0aGUgY2hhbmdlLgoKTm93LCBmb2N1c2luZyBvbiB0aGUgY29yZSBzeW1ib2xzOiBgZGFtb25faG90X3Njb3JlYCwgYGRhbW9uX2NvbGRfc2NvcmVgLCBgZGFtb25fcGFfc2NoZW1lX3Njb3JlYCwgYW5kIGBkYW1vbl92YV9zY2hlbWVfc2NvcmVgLiBJJiMzOTt2ZSBjb25maXJtZWQgdGhhdCBgZGFtb25faG90X3Njb3JlYCBpcyBpbmRlZWQgcmVhY2hhYmxlOyBpdCYjMzk7cyBhY3RpdmVseSBjYWxsZWQgZHVyaW5nIERBTU9OIHNjaGVtZSBhcHBsaWNhdGlvbi4gR2l2ZW4gdGhhdCB0aGUgaG90bmVzcyBzY29yZSBkaXJlY3RseSBpbmZsdWVuY2VzIG1lbW9yeSBtYW5hZ2VtZW50IGRlY2lzaW9ucywgZnV6emluZyB0aGlzIGFyZWEgaXMgZGVmaW5pdGVseSBhIHdvcnRod2hpbGUgaW52ZXN0bWVudC4gSXQmIzM5O3MgYSBmdW5jdGlvbmFsIGNoYW5nZSB3aXRoIHRoZSBwb3RlbnRpYWwgdG8gaW50cm9kdWNlIGludGVyZXN0aW5nIGJlaGF2aW9yYWwgc2hpZnRzIGluIG1lbW9yeSBhY2Nlc3MgcGF0dGVybnMgYW5kIHRodXMgcGVyZm9ybWFuY2UuCgpGaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJiMzOTt0IG1pc3NlZCBhbnkgb3RoZXIgcG90ZW50aWFsbHkgcmVsYXRlZCBjb25maWd1cmF0aW9ucy4gSSBuZWVkIHRvIGxlYXZlIG5vIHN0b25lIHVudHVybmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgREFNT04mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDttbS9kYW1vbi8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7bW0vZGFtb24vS2NvbmZpZz0zPW1lbnUgXCYjMzQ7RGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1wmIzM0O1xubW0vZGFtb24vS2NvbmZpZy00LVxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxubW0vZGFtb24vS2NvbmZpZy02LVx0Ym9vbCBcJiMzNDtEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxubW0vZGFtb24vS2NvbmZpZzoxNTpjb25maWcgREFNT05fREVCVUdfU0FOSVRZXG5tbS9kYW1vbi9LY29uZmlnLTE2LVx0Ym9vbCBcJiMzNDtDaGVjayBzYW5pdHkgb2YgREFNT04gY29kZVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMjUtXG5tbS9kYW1vbi9LY29uZmlnOjI2OmNvbmZpZyBEQU1PTl9LVU5JVF9URVNUXG5tbS9kYW1vbi9LY29uZmlnLTI3LVx0Ym9vbCBcJiMzNDtUZXN0IGZvciBkYW1vblwmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy0zNy1cbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXG5tbS9kYW1vbi9LY29uZmlnLTM5LVx0Ym9vbCBcJiMzNDtEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxubW0vZGFtb24vS2NvbmZpZzo0Nzpjb25maWcgREFNT05fUEFERFJcbm1tL2RhbW9uL0tjb25maWctNDgtXHRib29sIFwmIzM0O0RhdGEgYWNjZXNzIG1vbml0b3Jpbmcgb3BlcmF0aW9ucyBmb3IgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgc3BhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTU1LVxubW0vZGFtb24vS2NvbmZpZzo1Njpjb25maWcgREFNT05fVkFERFJfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy01Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgREFNT04gb3BlcmF0aW9uc1wmIzM0OyBpZiAhS1VOSVRfQUxMX1RFU1RTXG4tLVxubW0vZGFtb24vS2NvbmZpZy02Ny1cbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXG5tbS9kYW1vbi9LY29uZmlnLTY5LVx0Ym9vbCBcJiMzNDtEQU1PTiBzeXNmcyBpbnRlcmZhY2VcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxubW0vZGFtb24vS2NvbmZpZzo3Njpjb25maWcgREFNT05fU1lTRlNfS1VOSVRfVEVTVFxubW0vZGFtb24vS2NvbmZpZy03Ny1cdGJvb2wgXCYjMzQ7VGVzdCBmb3IgZGFtb24gc3lzZnMgaW50ZXJmYWNlXCYjMzQ7IGlmICFLVU5JVF9BTExfVEVTVFNcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTg3LVxubW0vZGFtb24vS2NvbmZpZzo4ODpjb25maWcgREFNT05fUkVDTEFJTVxubW0vZGFtb24vS2NvbmZpZy04OS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgcmVjbGFpbSAoREFNT05fUkVDTEFJTSlcJiMzNDtcbi0tXG5tbS9kYW1vbi9LY29uZmlnLTk5LVxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXG5tbS9kYW1vbi9LY29uZmlnLTEwMS1cdGJvb2wgXCYjMzQ7QnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVwmIzM0O1xuLS1cbm1tL2RhbW9uL0tjb25maWctMTA3LVxubW0vZGFtb24vS2NvbmZpZzoxMDg6Y29uZmlnIERBTU9OX1NUQVRcbm1tL2RhbW9uL0tjb25maWctMTA5LVx0Ym9vbCBcJiMzNDtCdWlsZCBkYXRhIGFjY2VzcyBtb25pdG9yaW5nIHN0YXQgKERBTU9OX1NUQVQpXCYjMzQ7XG4tLVxubW0vZGFtb24vS2NvbmZpZy0xMTUtXG5tbS9kYW1vbi9LY29uZmlnOjExNjpjb25maWcgREFNT05fU1RBVF9FTkFCTEVEX0RFRkFVTFRcbm1tL2RhbW9uL0tjb25maWctMTE3LVx0Ym9vbCBcJiMzNDtFbmFibGUgREFNT05fU1RBVCBieSBkZWZhdWx0XCYjMzQ7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzE5IDE2OjQ5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDg1MDYKCQkJCQkJCW91dHB1dDogMjMxCgkJCQkJCQl0aG91Z2h0czogMjI5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IERBTU9OIEZ1enppbmcgU3RyYXRlZ3kqKgoKT2theSwgc28gSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdG8gZWZmZWN0aXZlbHkgZnV6eiB0aGlzIERBTU9OIHBhdGNoLiBJIG5lZWQgdG8gbWFrZSBhYnNvbHV0ZWx5IGNlcnRhaW4gdGhhdCB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IGlzIHJvYnVzdCwgZXNwZWNpYWxseSB0aGUgdXBkYXRlZCBob3RuZXNzIHNjb3JpbmcgY2FsY3VsYXRpb24uIFRoYXQgbWVhbnMgSeKAmW0gZ29pbmcgdG8gZXhwbGljaXRseSBlbmFibGUgYWxsIHRoZSBjcml0aWNhbCBEQU1PTiBmZWF0dXJlcyB3aXRoaW4gdGhlIGZ1enppbmcgc2V0dXAg4oCTIEkmIzM5O2xsIGRlZmluaXRlbHkgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBgREFNT05fU1lTRlNgLCBgREFNT05fUkVDTEFJTWAsIGFuZCBgREFNT05fTFJVX1NPUlRgIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGVzc2VudGlhbCB0byBleHBvc2UgYWxsIHBvdGVudGlhbCBjb2RlIHBhdGhzIGFuZCBpbnRlcmFjdGlvbnMgZm9yIHRoZSBmdXp6ZXIuCgpUaGUgcmVhbCBtZWF0IG9mIHRoZSBwYXRjaCBpcyB0aGUgY2hhbmdlIHRvIGBkYW1vbl9ob3Rfc2NvcmVgLiBTcGVjaWZpY2FsbHksIGl0JiMzOTtzIHJlcGxhY2luZyB0aGUgb2xkIGByLSZndDtucl9hY2Nlc3Nlc2Agd2l0aCBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluIHRoZSBgZnJlcV9zdWJzY29yZWAgY2FsY3VsYXRpb24uIFRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgaG90bmVzcy9jb2xkbmVzcyBkZXRlcm1pbmF0aW9uLCB3aGljaCBpbiB0dXJuIGZlZWRzIGludG8gaG93IHRoZSBkaWZmZXJlbnQgREFNT04gc2NoZW1lcywgbGlrZSByZWNsYWltIG9yIExSVSBzb3J0aW5nLCBhcmUgYXBwbGllZC4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgc3ViamVjdCBpdCB0byBhIHJpZ29yb3VzIGZ1enppbmcgcmVnaW1lLiBUaGVyZWZvcmUsIG15IGZvY3VzIGZvciB0YXJnZXRlZCBmdXp6aW5nIHdpbGwgYmUgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSYjMzk7bSBlc3BlY2lhbGx5IGNvbmNlcm5lZCBhYm91dCBlZGdlIGNhc2VzIGludHJvZHVjZWQgYnkgdGhlIG5ldyBjYWxjdWxhdGlvbiBtZXRob2QuIFdlIGhhdmUgdG8gZW5zdXJlIGl0IGRvZXNuJiMzOTt0IGxlYWQgdG8gaXNzdWVzIGxpa2UgZGl2aXNpb24gYnkgemVybywgaW50ZWdlciBvdmVyZmxvd3MsIG9yIGFueSBvdGhlciB1bmV4cGVjdGVkIGJlaGF2aW9ycyB0aGF0IG1pZ2h0IGNvbXByb21pc2UgdGhlIGludGVncml0eSBvZiB0aGUgbWVtb3J5IG1vbml0b3Jpbmcgc3lzdGVtLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8xOSAxNjo0OTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7REFNT04mIzM0OywKICAgICYjMzQ7REFNT05fVkFERFImIzM0OywKICAgICYjMzQ7REFNT05fUEFERFImIzM0OywKICAgICYjMzQ7REFNT05fU1lTRlMmIzM0OywKICAgICYjMzQ7REFNT05fUkVDTEFJTSYjMzQ7LAogICAgJiMzNDtEQU1PTl9MUlVfU09SVCYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2RhbW9uX2hvdF9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl9jb2xkX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3BhX3NjaGVtZV9zY29yZSYjMzQ7LAogICAgJiMzNDtkYW1vbl92YV9zY2hlbWVfc2NvcmUmIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24mIzM5O3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IHRydWUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogWwogICAgJiMzNDtEQU1PTiYjMzQ7LAogICAgJiMzNDtEQU1PTl9WQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9QQUREUiYjMzQ7LAogICAgJiMzNDtEQU1PTl9TWVNGUyYjMzQ7LAogICAgJiMzNDtEQU1PTl9SRUNMQUlNJiMzNDssCiAgICAmIzM0O0RBTU9OX0xSVV9TT1JUJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7ZGFtb25faG90X3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX2NvbGRfc2NvcmUmIzM0OywKICAgICYjMzQ7ZGFtb25fcGFfc2NoZW1lX3Njb3JlJiMzNDssCiAgICAmIzM0O2RhbW9uX3ZhX3NjaGVtZV9zY29yZSYjMzQ7CiAgXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVx1MDAzZW5yX2FjY2Vzc2VzYC4gVGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlIGluIHRoZSBjb3JlIGxvZ2ljIG9mIHRoZSBEYXRhIEFjY2VzcyBNT05pdG9yIChEQU1PTikgZnJhbWV3b3JrLCBhZmZlY3RpbmcgaG93IG1lbW9yeSByZWdpb25zIGFyZSBzY29yZWQgZm9yIGhvdG5lc3MvY29sZG5lc3MgYW5kIHN1YnNlcXVlbnRseSBob3cgbWVtb3J5IG1hbmFnZW1lbnQgc2NoZW1lcyBhcmUgYXBwbGllZC4gSXQgc2hvdWxkIGJlIGZ1enplZCB0byBlbnN1cmUgdGhlIG5ldyBjYWxjdWxhdGlvbiBkb2VzbiYjMzk7dCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNC45MDE3NjA2NDZaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyOTIzODk2NTA2MiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fUkVDTEFJTVwiLFxuICAgIFwiREFNT05fTFJVX1NPUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9ob3Rfc2NvcmVcIixcbiAgICBcImRhbW9uX2NvbGRfc2NvcmVcIixcbiAgICBcImRhbW9uX3BhX3NjaGVtZV9zY29yZVwiLFxuICAgIFwiZGFtb25fdmFfc2NoZW1lX3Njb3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJ3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNC45MDE4MDkxODZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYzMzg4NDA3NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IGZmMGI1NzQwY2Y2YjJhNDBjNjViZGU4OTJlYjRhY2UzNDdiMzVmYmFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFN1biBKdWwgMTkgMTY6NDk6MjMgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vb3BzLWNvbW1vbi5jIGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXFxuaW5kZXggZTU5ZjUyNjhkNTAzY2YuLmQ3ZDdmMTAwMzg5YjAxIDEwMDY0NFxcbi0tLSBhL21tL2RhbW9uL29wcy1jb21tb24uY1xcbisrKyBiL21tL2RhbW9uL29wcy1jb21tb24uY1xcbkBAIC0xMTEsOCArMTExLDkgQEAgaW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbiBcXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXFx1MDAzZXF1b3RhLndlaWdodF9hZ2U7XFxuIFxcdGludCBob3RuZXNzO1xcbiBcXG4tXFx0ZnJlcV9zdWJzY29yZSA9IHItXFx1MDAzZW5yX2FjY2Vzc2VzICogREFNT05fTUFYX1NVQlNDT1JFIC9cXG4tXFx0XFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcXHUwMDI2Yy1cXHUwMDNlYXR0cnMpO1xcbitcXHRmcmVxX3N1YnNjb3JlID0gbXVsdF9mcmFjKGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpLFxcbitcXHRcXHRcXHREQU1PTl9NQVhfU1VCU0NPUkUsXFxuK1xcdFxcdFxcdGRhbW9uX25yX3NhbXBsZXNfcGVyX2FnZ3IoXFx1MDAyNmMtXFx1MDAzZWF0dHJzKSk7XFxuIFxcbiBcXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cXHUwMDNlYWdlICogYy1cXHUwMDNlYXR0cnMuYWdncl9pbnRlcnZhbCAvIDEwMDAwMDA7XFxuIFxcdGlmIChhZ2VfaW5fc2VjKVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNS41MzYzODkxNjJaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NjA0MzI4MTE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9SRUNMQUlNXCIsXG4gICAgXCJEQU1PTl9MUlVfU09SVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX2hvdF9zY29yZVwiLFxuICAgIFwiZGFtb25fY29sZF9zY29yZVwiLFxuICAgIFwiZGFtb25fcGFfc2NoZW1lX3Njb3JlXCIsXG4gICAgXCJkYW1vbl92YV9zY2hlbWVfc2NvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVxcdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24ndCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyLlxuWW91ciBqb2IgaXMgdG8gcmV2aWV3IGEgcHJvdmlkZWQgcGF0Y2ggc2VyaWVzIGFuZCBkZXRlcm1pbmVcbmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC5cblxuSU1QT1JUQU5UOiBUaGUgY2hhbmdlcyBoYXZlIEFMUkVBRFkgYmVlbiBhcHBsaWVkIGFuZCBjb21taXR0ZWQgYXMgdGhlIEhFQUQgY29tbWl0IGluXG55b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHlcbnVzZSB5b3VyIGNvZGUgYWNjZXNzIHRvb2xzIHRvIGV4YW1pbmUgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSBhbmQgY29uZmlybSBhbnkgYXNzdW1wdGlvbnMuXG5cblJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6XG4tIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIEtjb25maWcgZmlsZXMsIG9yIGNvZGUgY29tbWVudHMuXG4tIFB1cmVseSBkZWNvcmF0aXZlIGNoYW5nZXMsIHN1Y2ggYXMgbG9nZ2luZyAoZS5nLiwgcHJfZXJyLCBwcmludGspIG9yIHRyYWNlcG9pbnRzLlxuLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuXG4tIENvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVSxcbmV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cblxuSWYgaXQgbW9kaWZpZXMgcmVhY2hhYmxlIGNvcmUga2VybmVsIGxvZ2ljLCBkcml2ZXJzLCBvciBhcmNoaXRlY3R1cmVzLCB1c2UgeW91ciBjb2RlIHNlYXJjaFxudG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuXG5cbldoZW4gcmV0dXJuaW5nIFdvcnRoRnV6emluZz10cnVlLCB5b3UgTVVTVCBBTFNPOlxuMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy5cbiAgIEF2b2lkIGxpc3RpbmcgZ2VuZXJpYyBob3QtcGF0aCBmdW5jdGlvbnMgdG8gcHJldmVudCBza2V3ZWQgdGVzdCBkaXN0cmlidXRpb25zLlxuMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuXG4gICBHbyBhbmQgbG9vayBpbnRvIHRoZSBLY29uZmlnIGZpbGVzIGFuZCBjaGVjayBmb3IgaWZkZWZzIGFyb3VuZCB0aGUgY29kZSwgZG8gbm90IG1ha2UgYXNzdW1wdGlvbnMuXG4gICBEbyBub3QgbGlzdCB0b28gZ2VuZXJpYyBjb25maWdzICh3ZSBhbHJlYWR5IGhhdmUgdGhlbSBlbmFibGVkKS4gT25seSBsaXN0IHRob3NlIHRoYXRcbiAgIHNwZWNpZmljYWxseSBjb3ZlciB0aGUgbW9kaWZpZWQgY29kZS4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzIG91dHB1dCBhcnJheSxcbiAgIGFuZCBETyBOT1QgYWRkIGEgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgZmYwYjU3NDBjZjZiMmE0MGM2NWJkZTg5MmViNGFjZTM0N2IzNWZiYVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBTdW4gSnVsIDE5IDE2OjQ5OjIzIDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvbW0vZGFtb24vb3BzLWNvbW1vbi5jIGIvbW0vZGFtb24vb3BzLWNvbW1vbi5jXG5pbmRleCBlNTlmNTI2OGQ1MDNjZi4uZDdkN2YxMDAzODliMDEgMTAwNjQ0XG4tLS0gYS9tbS9kYW1vbi9vcHMtY29tbW9uLmNcbisrKyBiL21tL2RhbW9uL29wcy1jb21tb24uY1xuQEAgLTExMSw4ICsxMTEsOSBAQCBpbnQgZGFtb25faG90X3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXG4gXHR1bnNpZ25lZCBpbnQgYWdlX3dlaWdodCA9IHMtXHUwMDNlcXVvdGEud2VpZ2h0X2FnZTtcbiBcdGludCBob3RuZXNzO1xuIFxuLVx0ZnJlcV9zdWJzY29yZSA9IHItXHUwMDNlbnJfYWNjZXNzZXMgKiBEQU1PTl9NQVhfU1VCU0NPUkUgL1xuLVx0XHRkYW1vbl9ucl9zYW1wbGVzX3Blcl9hZ2dyKFx1MDAyNmMtXHUwMDNlYXR0cnMpO1xuK1x0ZnJlcV9zdWJzY29yZSA9IG11bHRfZnJhYyhkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSxcbitcdFx0XHREQU1PTl9NQVhfU1VCU0NPUkUsXG4rXHRcdFx0ZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSk7XG4gXG4gXHRhZ2VfaW5fc2VjID0gKHVuc2lnbmVkIGxvbmcpci1cdTAwM2VhZ2UgKiBjLVx1MDAzZWF0dHJzLmFnZ3JfaW50ZXJ2YWwgLyAxMDAwMDAwO1xuIFx0aWYgKGFnZV9pbl9zZWMpXG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0xOVQxNjo0OToyNS41MzY0MDM0NzJaIiwiU2VxIjozLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo1MTUxMzYwNTc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkFuYWx5emluZyB0aGUgREFNT04gSG90IFNjb3JlIE1vZGlmaWNhdGlvbioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLCBzcGVjaWZpY2FsbHkgaG93IGl0J3MgYWx0ZXJpbmcgdGhlIGBkYW1vbl9ob3Rfc2NvcmVgIGZ1bmN0aW9uLiBJdCBzZWVtcyB0aGV5J3JlIGNoYW5naW5nIHRoZSB3YXkgdGhlIGBmcmVxX3N1YnNjb3JlYCBpcyBjYWxjdWxhdGVkLiBQcmV2aW91c2x5LCBpdCB3YXMgYSBzdHJhaWdodGZvcndhcmQgcmF0aW86IGByLVx1MDAzZW5yX2FjY2Vzc2VzYCB0aW1lcyBhIGNvbnN0YW50IChgREFNT05fTUFYX1NVQlNDT1JFYCksIGFsbCBkaXZpZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2FtcGxlcyBwZXIgYWdncmVnYXRpb24gd2luZG93IChgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKWApLiBBIHNpbXBsZSBjb3VudCBzY2FsZWQgdG8gYSBtYXhpbXVtIHN1YnNjb3JlLlxuXG5Ob3csIGluc3RlYWQgb2YgYHItXHUwMDNlbnJfYWNjZXNzZXNgLCB0aGUgbmV3IGNhbGN1bGF0aW9uIGlzIHVzaW5nIGBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksIERBTU9OX01BWF9TVUJTQ09SRSwgZGFtb25fbnJfc2FtcGxlc19wZXJfYWdncihcdTAwMjZjLVx1MDAzZWF0dHJzKSlgLiBUaGF0IGBtdWx0X2ZyYWNgIGZ1bmN0aW9uIGxpa2VseSBoYW5kbGVzIGEgbXVsdGlwbGljYXRpb24gYW5kIGRpdmlzaW9uLCBrZWVwaW5nIHRoZSByZXN1bHQgd2l0aGluIHRoZSBhY2NlcHRhYmxlIHJhbmdlLiBUaGUga2V5IGlzIHRoaXMgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBmdW5jdGlvbi4gSXQgcmVwbGFjZXMgYSBzaW1wbGUgYG5yX2FjY2Vzc2VzYCB3aXRoIHNvbWV0aGluZyB0aGF0IGxvb2tzIGxpa2UgaXQncyBjYWxjdWxhdGluZyBhIG1vdmluZyBzdW0sIHByZXN1bWFibHkgd2VpZ2h0ZWQgaW4gc29tZSB3YXkgYmFzZWQgb24gdGhlIHJlY2VudCBhY2Nlc3MgY291bnRzLlxuXG5JIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzIG5ldyBhY2Nlc3MgY291bnRlci4gVGhlIG9sZCBtZXRob2Qgc2VlbXMgcHJldHR5IGJhc2ljLiBUaGlzIG1vdmUgdG8gYSBtb3Zpbmcgc3VtIHN1Z2dlc3RzIHRoZXkncmUgdHJ5aW5nIHRvIG1ha2UgdGhlIGhvdCBzY29yZSBjYWxjdWxhdGlvbiBtb3JlIHJlc3BvbnNpdmUgdG8gcmVjZW50IGFjY2VzcyBwYXR0ZXJucywgcmF0aGVyIHRoYW4gYmVpbmcgb3Zlcmx5IGluZmx1ZW5jZWQgYnkgYSBzaW5nbGUgaW5pdGlhbCBidXJzdCBvciBhIGxvbmctYWdvIGhpZ2ggbnVtYmVyIG9mIGFjY2Vzc2VzLiBJdOKAmXMgbWFraW5nIHRoZSBob3Qgc2NvcmUgbW9yZSBkeW5hbWljIGFuZCBsZXNzIHN0YXRpYy4gSXQncyBwcm9iYWJseSByZWxhdGVkIHRvIGZpbHRlcmluZyBvciBzbW9vdGhpbmcsIGJ1dCBpdCdzIGltcG9ydGFudCB0byB1bmRlcnN0YW5kICpob3cqIGl0J3MgZG9pbmcgaXQuXG5cbkknbSBnb2luZyB0byBoYXZlIHRvIGRpdmUgaW50byB0aGUgZGVmaW5pdGlvbiBvZiBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGFuZCBpdHMgaW50ZXJhY3Rpb25zIHdpdGggdGhlIERBTU9OIGRhdGEgc3RydWN0dXJlcyB0byBmdWxseSBncmFzcCB3aGF0J3MgZ29pbmcgb24gaGVyZS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIG1vdmluZyBzdW0ncyB3ZWlnaHRpbmcsIHdpbmRvdyBzaXplLCBhbmQgaW1wYWN0IG9uIHRoZSBob3Qgc2NvcmUncyByZXNwb25zaXZlbmVzcy5cblxuXG4iLCJJbnB1dFRva2VucyI6MTkyNSwiT3V0cHV0VG9rZW5zIjo2NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2MSwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjMwLjY4Nzc2NjU0OFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0MzYxNDM5NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25faG90X3Njb3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXFxuLS1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xMDUtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XFxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcXHRpbnQgaG90bmVzcyA9IGRhbW9uX2hvdF9zY29yZShjLCByLCBzKTtcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oPTE1PWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVxcdFxcdFxcdHN0cnVjdCBkYW1vcyAqcyk7XFxubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmgtMTgtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKTtcXG4tLVxcbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cXHRjYXNlIERBTU9TX0xSVV9QUklPOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDIxOlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyMi1cXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyNC1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDI1OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3ZhZGRyLmM6OTI2OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi92YWRkci5jLTkyNy1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzEuMTIzOTE1MjI4WiIsIlNlcSI6NSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEwNjU0NTc5OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJtbS9kYW1vbi9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwibW0vZGFtb24vY29yZS5jPTI0ND1zdGF0aWMgdW5zaWduZWQgbG9uZyBkYW1vbl9tdnN1bSh1bnNpZ25lZCBsb25nIGN1cnJlbnRfbnIsXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMjUwLS8qKlxcbm1tL2RhbW9uL2NvcmUuYzoyNTE6ICogZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0oKSAtIFJldHVybnMgbW92aW5nIHN1bSBhY2Nlc3MgZnJlcXVlbmN5IHNjb3JlLlxcbm1tL2RhbW9uL2NvcmUuYy0yNTItICogQHI6XFx0XFx0UmVnaW9uIHRvIGdldCB0aGUgYWNjZXNzIGZyZXF1ZW5jeSBvZi5cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yNjMtICovXFxubW0vZGFtb24vY29yZS5jOjI2NDp1bnNpZ25lZCBpbnQgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0oc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9jb3JlLmMtMjY1LVxcdFxcdHN0cnVjdCBkYW1vbl9jdHggKmN0eClcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0yMjc0PXN0YXRpYyBib29sIF9fZGFtb3NfdmFsaWRfdGFyZ2V0KHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsIHN0cnVjdCBkYW1vcyAqcyxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yMjc3LVxcdHVuc2lnbmVkIGxvbmcgc3o7XFxubW0vZGFtb24vY29yZS5jOjIyNzg6XFx0dW5zaWduZWQgaW50IG5yX2FjY2Vzc2VzID0gZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyk7XFxubW0vZGFtb24vY29yZS5jLTIyNzktXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmM9MjU3MD1zdGF0aWMgdm9pZCBkYW1vc19hcHBseV9zY2hlbWUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3RhcmdldCAqdCxcXG4tLVxcbm1tL2RhbW9uL2NvcmUuYy0yNjAyLVxcdFxcdH1cXG5tbS9kYW1vbi9jb3JlLmM6MjYwMzpcXHRcXHRucl9hY2Nlc3NlcyA9IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKHIsIGMpO1xcbm1tL2RhbW9uL2NvcmUuYy0yNjA0LVxcdFxcdGRvX3RyYWNlID0gdHJ1ZTtcXG4tLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYz0xMDQ9aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTExMy1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTE0OlxcdGZyZXFfc3Vic2NvcmUgPSBtdWx0X2ZyYWMoZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYyksXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTExNS1cXHRcXHRcXHREQU1PTl9NQVhfU1VCU0NPUkUsXFxuLS1cXG5tbS9kYW1vbi9zeXNmcy1zY2hlbWVzLmM9MTYwPXN0YXRpYyBzdHJ1Y3QgZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbiAqZGFtb25fc3lzZnNfc2NoZW1lX3JlZ2lvbl9hbGxvYyhcXG4tLVxcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNjgtXFx0c3lzZnNfcmVnaW9uLVxcdTAwM2VhciA9IHJlZ2lvbi1cXHUwMDNlYXI7XFxubW0vZGFtb24vc3lzZnMtc2NoZW1lcy5jOjE2OTpcXHRzeXNmc19yZWdpb24tXFx1MDAzZW5yX2FjY2Vzc2VzID0gZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ocmVnaW9uLCBjdHgpO1xcbm1tL2RhbW9uL3N5c2ZzLXNjaGVtZXMuYy0xNzAtXFx0c3lzZnNfcmVnaW9uLVxcdTAwM2VhZ2UgPSByZWdpb24tXFx1MDAzZWFnZTtcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaD02NjQ9c3RhdGljIHZvaWQgZGFtb25fdGVzdF9tdnN1bShzdHJ1Y3Qga3VuaXQgKnRlc3QpXFxuLS1cXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjg4LS8qXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjY4OTogKiBUZXN0IGRhbW9uX25yX2FjY2Vzc2VzX212c3VtKCksIHdoaWNoIHdyYXBzIGRhbW9uX212c3VtKCkgd2l0aCB0aGVcXG5tbS9kYW1vbi90ZXN0cy9jb3JlLWt1bml0LmgtNjkwLSAqIG1vbml0b3JpbmcgaW50ZXJ2YWxzIG9mIHRoZSBjb250ZXh0LiAgV2l0aCBhIHNhbXBsZSBpbnRlcnZhbCBvZiAxIGFuZCBhblxcbi0tXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oPTY5Nj1zdGF0aWMgdm9pZCBkYW1vbl90ZXN0X25yX2FjY2Vzc2VzX212c3VtKHN0cnVjdCBrdW5pdCAqdGVzdClcXG4tLVxcbm1tL2RhbW9uL3Rlc3RzL2NvcmUta3VuaXQuaC03MjgtXFx0XFx0S1VOSVRfRVhQRUNUX0VRKHRlc3QsICh1bnNpZ25lZCBpbnQpaW5wdXRfZXhwZWN0c1tpICsgNF0sXFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oOjcyOTpcXHRcXHRcXHRcXHRkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bShyLCBjKSk7XFxubW0vZGFtb24vdGVzdHMvY29yZS1rdW5pdC5oLTczMC1cXHR9XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjMxLjIzMDQ2NjQ2NloiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQxNDY4MTYzOTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCBmcmFtZWQgZnJvbSBteSBleHBlcnQgcGVyc3BlY3RpdmU6XG5cbioqREFNT04gU2NvcmUgUmVmaW5lbWVudCoqXG5cbkFscmlnaHQsIHNvIHRoZSBwYXRjaCBpcyB0d2Vha2luZyBob3cgd2UgY2FsY3VsYXRlIHRoZSBgZGFtb25faG90X3Njb3JlYC4gRXNzZW50aWFsbHksIHdlJ3JlIHNoaWZ0aW5nIGZyb20gdXNpbmcgdGhlIGRpcmVjdCBgci1cdTAwM2Vucl9hY2Nlc3Nlc2AgY291bnQgdG8gbGV2ZXJhZ2luZyBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW0ociwgYylgLiBUaGlzIGlzIGEgcHJldHR5IHNpZ25pZmljYW50LCBhbGJlaXQgZnVuY3Rpb25hbCwgY2hhbmdlIHdpdGhpbiB0aGUgREFNT04gc3Vic3lzdGVtLiBHaXZlbiBteSBmYW1pbGlhcml0eSB3aXRoIERBTU9OJ3Mgcm9sZSBhcyBhIGNvcmUgbWVtb3J5IG1hbmFnZW1lbnQgZWxlbWVudCwgdGhpcyBjYXRjaGVzIG15IGF0dGVudGlvbi5cblxuTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMgdGhhdCB0aGlzIGlzbid0IGp1c3QgYSBtaW5vciBvcHRpbWl6YXRpb24uIFRoaXMgcG90ZW50aWFsbHkgaW1wbGllcyB3ZSdyZSBpbXByb3ZpbmcgdGhlIGFjY3VyYWN5IG9yIGJlaGF2aW9yIG9mIHRoZSBob3RuZXNzIHNjb3JpbmcsIG9yIHRoYXQgdGhlIHByZXZpb3VzIG1ldGhvZCB3YXNuJ3QgcHJvdmlkaW5nIGEgZ29vZCBzaWduYWwuIEVpdGhlciB3YXksIHRoaXMgYWZmZWN0cyBhIGNydWNpYWwgcGFydCBvZiBob3cgd2UgbW9uaXRvciBhbmQgbWFuYWdlIGRhdGEgYWNjZXNzIHBhdHRlcm5zLiBJJ2xsIG5lZWQgdG8gZGlnIGludG8gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIG5ldyBhY2Nlc3MgY291bnQgZnVuY3Rpb24sIGZpZ3VyZSBvdXQgdGhlIGBtdnN1bWAncyBzbW9vdGhpbmcgYmVoYXZpb3IgYW5kIGhvdyBpdCBkaWZmZXJzIGZyb20gdGhlIHN0cmFpZ2h0IGNvdW50LlxuXG5GaXJzdCB0aGluZ3MgZmlyc3Q6IEknbSBkaXZpbmcgaW50byB0aGUgS2NvbmZpZyB0byBjb25maXJtIHRoZSByZXF1aXJlZCBjb25maWd1cmF0aW9ucyBhcmUgZW5hYmxlZC4gTGV0J3MgbWFrZSBzdXJlIHRoZSBjaGFuZ2UgaXMgcHJvcGVybHkgaW50ZWdyYXRlZCBhbmQgZG9lc24ndCBpbnRyb2R1Y2UgYW55IGJ1aWxkIGlzc3VlcyBvciBjb21wYXRpYmlsaXR5IGNvbmNlcm5zLlxuXG5cbiIsIklucHV0VG9rZW5zIjo0MjcxLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6ODAsIlRvb2xDYWxscyI6WyJncmVwcGVyIiwiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjM1LjM3NzI4NDc4NFoiLCJTZXEiOjcsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTExOTQwOTcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERBTU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjM1LjUyODUwNjU4MVoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMxNTQ1NjgwNTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBzdW1tYXJ5LCBhcyB0aG91Z2ggSSdtIHRoaW5raW5nIHRocm91Z2ggdGhpcyBwcm9jZXNzOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIGBkYW1vbl9ob3Rfc2NvcmVgIEZ1bmN0aW9uKipcblxuQWxyaWdodCwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGRhbW9uX2hvdF9zY29yZWAgZnVuY3Rpb24uIEkgcmVtZW1iZXIgc2VlaW5nIHRoYXQgbmFtZSBmbG9hdGluZyBhcm91bmQgcmVjZW50bHksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0IGJldHRlci4gRmlyc3QgdGhpbmdzIGZpcnN0OiBJIGtub3cgaXQncyBiZWVuIG1vZGlmaWVkLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGxvY2F0aW9uIGlzIGBtbS9kYW1vbi9vcHMtY29tbW9uLmNgLiBOb3csIHRoZSBrZXkgcXVlc3Rpb24gaXMsICp1bmRlciB3aGF0IHNwZWNpZmljIGNvbmZpZ3VyYXRpb25zKiBkb2VzIHRoaXMgcGFydGljdWxhciBgb3BzLWNvbW1vbi5jYCBmaWxlIGdldCBidWlsdD8gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIHJlbGV2YW50IEtjb25maWcgb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzIHRvIGZ1bGx5IGdyYXNwIHdoZW4gYW5kIHdoZXJlIHRoaXMgZnVuY3Rpb24gY29tZXMgaW50byBwbGF5LiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIHN0YXJ0IHRyYWNpbmcgdGhvc2UgZGVwZW5kZW5jaWVzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzkwLCJPdXRwdXRUb2tlbnMiOjI4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzguNjgzMDc3MDAxWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzOTU0NzQ1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJvcHMtY29tbW9uXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9NYWtlZmlsZT0zPW9iai15XFx0XFx0XFx0XFx0Oj0gY29yZS5vXFxubW0vZGFtb24vTWFrZWZpbGU6NDpvYmotJChDT05GSUdfREFNT05fVkFERFIpXFx0Kz0gb3BzLWNvbW1vbi5vIHZhZGRyLm9cXG5tbS9kYW1vbi9NYWtlZmlsZTo1Om9iai0kKENPTkZJR19EQU1PTl9QQUREUilcXHQrPSBvcHMtY29tbW9uLm8gcGFkZHIub1xcbm1tL2RhbW9uL01ha2VmaWxlLTYtb2JqLSQoQ09ORklHX0RBTU9OX1NZU0ZTKVxcdCs9IHN5c2ZzLWNvbW1vbi5vIHN5c2ZzLXNjaGVtZXMubyBzeXNmcy5vXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMTktLyogZm9yIGRhbW9uX2dldF9mb2xpbygpIHVzZWQgYnkgbm9kZSBlbGlnaWJsZSBtZW1vcnkgbWV0cmljcyAqL1xcbm1tL2RhbW9uL2NvcmUuYzoyMDojaW5jbHVkZSBcXFwib3BzLWNvbW1vbi5oXFxcIlxcbm1tL2RhbW9uL2NvcmUuYy0yMS1cXG4tLVxcbm1tL2RhbW9uL2NvcmUuYz0yODIzPXN0YXRpYyB1bnNpZ25lZCBsb25nIGRhbW9zX2dldF9ub2RlX21lbWNnX3VzZWRfYnAoXFxuLS1cXG5tbS9kYW1vbi9jb3JlLmMtMjg3NC0gKlxcbm1tL2RhbW9uL2NvcmUuYzoyODc1OiAqIE5vdGU6IFRoaXMgZnVuY3Rpb24gcmVxdWlyZXMgZGFtb25fZ2V0X2ZvbGlvKCkgZnJvbSBvcHMtY29tbW9uLmMsIHdoaWNoIGlzXFxubW0vZGFtb24vY29yZS5jLTI4NzYtICogb25seSBhdmFpbGFibGUgd2hlbiBDT05GSUdfREFNT05fUEFERFIgaXMgZW5hYmxlZC4gSXQgYWxzbyByZXF1aXJlcyB0aGVcXG4tLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xNC0jaW5jbHVkZSBcXFwiLi4vaW50ZXJuYWwuaFxcXCJcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmM6MTU6I2luY2x1ZGUgXFxcIm9wcy1jb21tb24uaFxcXCJcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTYtXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTE2LSNpbmNsdWRlIFxcXCIuLi9pbnRlcm5hbC5oXFxcIlxcbm1tL2RhbW9uL3BhZGRyLmM6MTc6I2luY2x1ZGUgXFxcIm9wcy1jb21tb24uaFxcXCJcXG5tbS9kYW1vbi9wYWRkci5jLTE4LVxcbi0tXFxubW0vZGFtb24vdmFkZHIuYy0xNy0jaW5jbHVkZSBcXFwiLi4vaW50ZXJuYWwuaFxcXCJcXG5tbS9kYW1vbi92YWRkci5jOjE4OiNpbmNsdWRlIFxcXCJvcHMtY29tbW9uLmhcXFwiXFxubW0vZGFtb24vdmFkZHIuYy0xOS1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6MzguODIyNjI5MTg4WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM3OTIyMjk5MjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqREFNT04gQ29uZmlndXJhdGlvbiBUaG91Z2h0cyoqXG5cbk9rYXksIHNvIGxvb2tpbmcgYXQgdGhpcywgaXQgc2VlbXMgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZC4gVGhlIGBvcHMtY29tbW9uLm9gIG9iamVjdCBmaWxlIGdldHMgYnVpbHQgb25seSBpZiBlaXRoZXIgYENPTkZJR19EQU1PTl9WQUREUmAgb3IgYENPTkZJR19EQU1PTl9QQUREUmAgaXMgZW5hYmxlZC4gVGhhdCBtYWtlcyBzZW5zZSwgdGhvc2UgYXJlIHRoZSB2aXJ0dWFsIGFuZCBwaHlzaWNhbCBhZGRyZXNzIG1vbml0b3Igb3B0aW9ucywgcmVzcGVjdGl2ZWx5LiBUaGVyZWZvcmUsIHRvIGVuc3VyZSB0aGF0IGNvbXBvbmVudCBpcyBwcmVzZW50LCB3ZSBkZWZpbml0ZWx5IG5lZWQgdG8gZW5hYmxlIGBEQU1PTmAsIGBEQU1PTl9WQUREUmAsIGFuZCBgREFNT05fUEFERFJgLiBTZWVtcyBsaWtlIGEgbWluaW1hbCBzZXQgb2YgbmVjZXNzYXJ5IGNvbmZpZ3MgdG8ga2VlcCBpbiBtaW5kIHRvIGtlZXAgREFNT04gc3VwcG9ydCBwcmVzZW50LlxuXG5BbmQgb2YgY291cnNlLCB3ZSdyZSBsaWtlbHkgZ29pbmcgdG8gd2FudCB0aGUgYWJpbGl0eSB0byBjb25maWd1cmUgREFNT04gZnJvbSB1c2Vyc3BhY2UsIHNvIHdlIHByb2JhYmx5IHNob3VsZCBhbHNvIGVuYWJsZSBgREFNT05fU1lTRlNgIGFzIGEgbWF0dGVyIG9mIGNvdXJzZS4gVGhpcyBpcyB0aGUgY29tbW9uIGFwcHJvYWNoLiBOb3csIGp1c3QgdG8gYmUgdGhvcm91Z2ggYW5kIHRvIHVuZGVyc3RhbmQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGVzZSBzZXR0aW5ncyBpbiBwcmFjdGljZSwgbGV0J3MgdGFrZSBhIGxvb2sgYXQgdGhlIGNhbGxlcnMgb2YgYGRhbW9uX2hvdF9zY29yZWAuIFVuZGVyc3RhbmRpbmcgaG93IHRoYXQgZnVuY3Rpb24gaXMgdXNlZCBzaG91bGQgcmV2ZWFsIGEgbG90IGFib3V0IGhvdyB0aGVzZSBjb25maWd1cmF0aW9ucyBpbnRlcmFjdCBhdCBydW50aW1lLCBhbmQgaW4gdHVybiBob3cgREFNT04ncyBwZXJmb3JtYW5jZSBjb3VsZCBiZSB0d2Vha2VkLlxuXG5cbiIsIklucHV0VG9rZW5zIjo2MTE3LCJPdXRwdXRUb2tlbnMiOjMxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDIuNjE0ODYxMjY0WiIsIlNlcSI6MTEsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMTYxMTc1NDcsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGFtb25faG90X3Njb3JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9vcHMtY29tbW9uLmM9NzM9dm9pZCBkYW1vbl9wbWRwX21rb2xkKHBtZF90ICpwbWQsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHIpXFxuLS1cXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTAzLVxcbm1tL2RhbW9uL29wcy1jb21tb24uYzoxMDQ6aW50IGRhbW9uX2hvdF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbm1tL2RhbW9uL29wcy1jb21tb24uYy0xMDUtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jPTE1MD1pbnQgZGFtb25fY29sZF9zY29yZShzdHJ1Y3QgZGFtb25fY3R4ICpjLCBzdHJ1Y3QgZGFtb25fcmVnaW9uICpyLFxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5jLTE1Mi17XFxubW0vZGFtb24vb3BzLWNvbW1vbi5jOjE1MzpcXHRpbnQgaG90bmVzcyA9IGRhbW9uX2hvdF9zY29yZShjLCByLCBzKTtcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmMtMTU0LVxcbi0tXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oPTE1PWludCBkYW1vbl9jb2xkX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmMsIHN0cnVjdCBkYW1vbl9yZWdpb24gKnIsXFxubW0vZGFtb24vb3BzLWNvbW1vbi5oLTE2LVxcdFxcdFxcdHN0cnVjdCBkYW1vcyAqcyk7XFxubW0vZGFtb24vb3BzLWNvbW1vbi5oOjE3OmludCBkYW1vbl9ob3Rfc2NvcmUoc3RydWN0IGRhbW9uX2N0eCAqYywgc3RydWN0IGRhbW9uX3JlZ2lvbiAqcixcXG5tbS9kYW1vbi9vcHMtY29tbW9uLmgtMTgtXFx0XFx0XFx0c3RydWN0IGRhbW9zICpzKTtcXG4tLVxcbm1tL2RhbW9uL3BhZGRyLmM9NDE0PXN0YXRpYyBpbnQgZGFtb25fcGFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyMC1cXHRjYXNlIERBTU9TX0xSVV9QUklPOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDIxOlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyMi1cXHRjYXNlIERBTU9TX0xSVV9ERVBSSU86XFxuLS1cXG5tbS9kYW1vbi9wYWRkci5jLTQyNC1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3BhZGRyLmM6NDI1OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi9wYWRkci5jLTQyNi1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG4tLVxcbm1tL2RhbW9uL3ZhZGRyLmM9OTE4PXN0YXRpYyBpbnQgZGFtb25fdmFfc2NoZW1lX3Njb3JlKHN0cnVjdCBkYW1vbl9jdHggKmNvbnRleHQsXFxuLS1cXG5tbS9kYW1vbi92YWRkci5jLTkyNS1cXHRjYXNlIERBTU9TX01JR1JBVEVfSE9UOlxcbm1tL2RhbW9uL3ZhZGRyLmM6OTI2OlxcdFxcdHJldHVybiBkYW1vbl9ob3Rfc2NvcmUoY29udGV4dCwgciwgc2NoZW1lKTtcXG5tbS9kYW1vbi92YWRkci5jLTkyNy1cXHRjYXNlIERBTU9TX01JR1JBVEVfQ09MRDpcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDIuNzMwOTg0MDkxWiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjQ2NTE4MDYxMjcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBEQU1PTiBIb3RuZXNzIFNjb3JlIENhbGN1bGF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBwYXRjaCB0aGF0IGZ1bmRhbWVudGFsbHkgYWx0ZXJzIGhvdyB0aGUgYGRhbW9uX2hvdF9zY29yZWAgaXMgY29tcHV0ZWQuIFRoaXMgaXMgYSBjcnVjaWFsIGZ1bmN0aW9uLCBhcyBpdOKAmXMgdXNlZCBpbiBEQU1PTiBvcGVyYXRpb25zLCBzcGVjaWZpY2FsbHkgd2l0aGluIHRoZSBwaHlzaWNhbCBhbmQgdmlydHVhbCBhZGRyZXNzIHNwYWNlIG1hbmFnZW1lbnQgc2NoZW1lcyAoYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGBkYW1vbl92YV9zY2hlbWVfc2NvcmVgLCBhbmQgYGRhbW9uX2NvbGRfc2NvcmVgIGFyZSB0aGUga2V5IGZ1bmN0aW9ucyBjYWxsaW5nIGBkYW1vbl9ob3Rfc2NvcmVgKS4gU2luY2UgdGhpcyBpcyBhIGZ1bmN0aW9uYWwgY2hhbmdlLCBhIGNsb3NlciBsb29rIGlzIHdhcnJhbnRlZC5cblxuRmlyc3QsIEkgbmVlZCB0byBsaXN0IHRoZSByZWxldmFudCBjb25maWd1cmF0aW9uczogYERBTU9OYCwgYERBTU9OX1ZBRERSYCwgYERBTU9OX1BBRERSYCwgYW5kIGBEQU1PTl9TWVNGU2AuIFRoZXNlIGFyZSB0aGUgZmxhZ3MgdGhhdCBlbmFibGUgb3IgY29uZmlndXJlIHRoZSBEQU1PTiBzeXN0ZW0sIHNvIHRoZXkncmUgaW1wb3J0YW50IGZvciB1bmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IGFuZCBwb3RlbnRpYWwgaW1wYWN0IG9mIHRoZSBjaGFuZ2UuXG5cbk5vdywgZm9jdXNpbmcgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSd2ZSBjb25maXJtZWQgdGhhdCBgZGFtb25faG90X3Njb3JlYCBpcyBpbmRlZWQgcmVhY2hhYmxlOyBpdCdzIGFjdGl2ZWx5IGNhbGxlZCBkdXJpbmcgREFNT04gc2NoZW1lIGFwcGxpY2F0aW9uLiBHaXZlbiB0aGF0IHRoZSBob3RuZXNzIHNjb3JlIGRpcmVjdGx5IGluZmx1ZW5jZXMgbWVtb3J5IG1hbmFnZW1lbnQgZGVjaXNpb25zLCBmdXp6aW5nIHRoaXMgYXJlYSBpcyBkZWZpbml0ZWx5IGEgd29ydGh3aGlsZSBpbnZlc3RtZW50LiBJdCdzIGEgZnVuY3Rpb25hbCBjaGFuZ2Ugd2l0aCB0aGUgcG90ZW50aWFsIHRvIGludHJvZHVjZSBpbnRlcmVzdGluZyBiZWhhdmlvcmFsIHNoaWZ0cyBpbiBtZW1vcnkgYWNjZXNzIHBhdHRlcm5zIGFuZCB0aHVzIHBlcmZvcm1hbmNlLlxuXG5GaW5hbGx5LCBqdXN0IHRvIGJlIHRob3JvdWdoLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgYW5kIG1ha2Ugc3VyZSBJIGhhdmVuJ3QgbWlzc2VkIGFueSBvdGhlciBwb3RlbnRpYWxseSByZWxhdGVkIGNvbmZpZ3VyYXRpb25zLiBJIG5lZWQgdG8gbGVhdmUgbm8gc3RvbmUgdW50dXJuZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjcxNzQsIk91dHB1dFRva2VucyI6MjgsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMTcsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NDcuMzgyNzkyMzU4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NDk5MDIyOTAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIERBTU9OXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIm1tL2RhbW9uL1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJtbS9kYW1vbi9LY29uZmlnPTM9bWVudSBcXFwiRGF0YSBBY2Nlc3MgTW9uaXRvcmluZ1xcXCJcXG5tbS9kYW1vbi9LY29uZmlnLTQtXFxubW0vZGFtb24vS2NvbmZpZzo1OmNvbmZpZyBEQU1PTlxcbm1tL2RhbW9uL0tjb25maWctNi1cXHRib29sIFxcXCJEQU1PTjogRGF0YSBBY2Nlc3MgTW9uaXRvcmluZyBGcmFtZXdvcmtcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTE0LVxcbm1tL2RhbW9uL0tjb25maWc6MTU6Y29uZmlnIERBTU9OX0RFQlVHX1NBTklUWVxcbm1tL2RhbW9uL0tjb25maWctMTYtXFx0Ym9vbCBcXFwiQ2hlY2sgc2FuaXR5IG9mIERBTU9OIGNvZGVcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTI1LVxcbm1tL2RhbW9uL0tjb25maWc6MjY6Y29uZmlnIERBTU9OX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTI3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTM3LVxcbm1tL2RhbW9uL0tjb25maWc6Mzg6Y29uZmlnIERBTU9OX1ZBRERSXFxubW0vZGFtb24vS2NvbmZpZy0zOS1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHZpcnR1YWwgYWRkcmVzcyBzcGFjZXNcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTQ2LVxcbm1tL2RhbW9uL0tjb25maWc6NDc6Y29uZmlnIERBTU9OX1BBRERSXFxubW0vZGFtb24vS2NvbmZpZy00OC1cXHRib29sIFxcXCJEYXRhIGFjY2VzcyBtb25pdG9yaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBwaHlzaWNhbCBhZGRyZXNzIHNwYWNlXFxcIlxcbi0tXFxubW0vZGFtb24vS2NvbmZpZy01NS1cXG5tbS9kYW1vbi9LY29uZmlnOjU2OmNvbmZpZyBEQU1PTl9WQUREUl9LVU5JVF9URVNUXFxubW0vZGFtb24vS2NvbmZpZy01Ny1cXHRib29sIFxcXCJUZXN0IGZvciBEQU1PTiBvcGVyYXRpb25zXFxcIiBpZiAhS1VOSVRfQUxMX1RFU1RTXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTY3LVxcbm1tL2RhbW9uL0tjb25maWc6Njg6Y29uZmlnIERBTU9OX1NZU0ZTXFxubW0vZGFtb24vS2NvbmZpZy02OS1cXHRib29sIFxcXCJEQU1PTiBzeXNmcyBpbnRlcmZhY2VcXFwiXFxuLS1cXG5tbS9kYW1vbi9LY29uZmlnLTc1LVxcbm1tL2RhbW9uL0tjb25maWc6NzY6Y29uZmlnIERBTU9OX1NZU0ZTX0tVTklUX1RFU1RcXG5tbS9kYW1vbi9LY29uZmlnLTc3LVxcdGJvb2wgXFxcIlRlc3QgZm9yIGRhbW9uIHN5c2ZzIGludGVyZmFjZVxcXCIgaWYgIUtVTklUX0FMTF9URVNUU1xcbi0tXFxubW0vZGFtb24vS2NvbmZpZy04Ny1cXG5tbS9kYW1vbi9LY29uZmlnOjg4OmNvbmZpZyBEQU1PTl9SRUNMQUlNXFxubW0vZGFtb24vS2NvbmZpZy04OS1cXHRib29sIFxcXCJCdWlsZCBEQU1PTi1iYXNlZCByZWNsYWltIChEQU1PTl9SRUNMQUlNKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctOTktXFxubW0vZGFtb24vS2NvbmZpZzoxMDA6Y29uZmlnIERBTU9OX0xSVV9TT1JUXFxubW0vZGFtb24vS2NvbmZpZy0xMDEtXFx0Ym9vbCBcXFwiQnVpbGQgREFNT04tYmFzZWQgTFJVLWxpc3RzIHNvcnRpbmcgKERBTU9OX0xSVV9TT1JUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTA3LVxcbm1tL2RhbW9uL0tjb25maWc6MTA4OmNvbmZpZyBEQU1PTl9TVEFUXFxubW0vZGFtb24vS2NvbmZpZy0xMDktXFx0Ym9vbCBcXFwiQnVpbGQgZGF0YSBhY2Nlc3MgbW9uaXRvcmluZyBzdGF0IChEQU1PTl9TVEFUKVxcXCJcXG4tLVxcbm1tL2RhbW9uL0tjb25maWctMTE1LVxcbm1tL2RhbW9uL0tjb25maWc6MTE2OmNvbmZpZyBEQU1PTl9TVEFUX0VOQUJMRURfREVGQVVMVFxcbm1tL2RhbW9uL0tjb25maWctMTE3LVxcdGJvb2wgXFxcIkVuYWJsZSBEQU1PTl9TVEFUIGJ5IGRlZmF1bHRcXFwiXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTE5VDE2OjQ5OjQ3LjgzMjY5OTUxOFoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MTY3MTU5MzY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IERBTU9OIEZ1enppbmcgU3RyYXRlZ3kqKlxuXG5Pa2F5LCBzbyBJJ20gdGhpbmtpbmcgYWJvdXQgaG93IHRvIGVmZmVjdGl2ZWx5IGZ1enogdGhpcyBEQU1PTiBwYXRjaC4gSSBuZWVkIHRvIG1ha2UgYWJzb2x1dGVseSBjZXJ0YWluIHRoYXQgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBpcyByb2J1c3QsIGVzcGVjaWFsbHkgdGhlIHVwZGF0ZWQgaG90bmVzcyBzY29yaW5nIGNhbGN1bGF0aW9uLiBUaGF0IG1lYW5zIEnigJltIGdvaW5nIHRvIGV4cGxpY2l0bHkgZW5hYmxlIGFsbCB0aGUgY3JpdGljYWwgREFNT04gZmVhdHVyZXMgd2l0aGluIHRoZSBmdXp6aW5nIHNldHVwIOKAkyBJJ2xsIGRlZmluaXRlbHkgaW5jbHVkZSBgREFNT05gLCBgREFNT05fVkFERFJgLCBgREFNT05fUEFERFJgLCBgREFNT05fU1lTRlNgLCBgREFNT05fUkVDTEFJTWAsIGFuZCBgREFNT05fTFJVX1NPUlRgIGNvbmZpZ3VyYXRpb25zLiBUaGlzIGlzIGVzc2VudGlhbCB0byBleHBvc2UgYWxsIHBvdGVudGlhbCBjb2RlIHBhdGhzIGFuZCBpbnRlcmFjdGlvbnMgZm9yIHRoZSBmdXp6ZXIuXG5cblRoZSByZWFsIG1lYXQgb2YgdGhlIHBhdGNoIGlzIHRoZSBjaGFuZ2UgdG8gYGRhbW9uX2hvdF9zY29yZWAuIFNwZWNpZmljYWxseSwgaXQncyByZXBsYWNpbmcgdGhlIG9sZCBgci1cdTAwM2Vucl9hY2Nlc3Nlc2Agd2l0aCBgZGFtb25fbnJfYWNjZXNzZXNfbXZzdW1gIGluIHRoZSBgZnJlcV9zdWJzY29yZWAgY2FsY3VsYXRpb24uIFRoaXMgZGlyZWN0bHkgaW1wYWN0cyB0aGUgaG90bmVzcy9jb2xkbmVzcyBkZXRlcm1pbmF0aW9uLCB3aGljaCBpbiB0dXJuIGZlZWRzIGludG8gaG93IHRoZSBkaWZmZXJlbnQgREFNT04gc2NoZW1lcywgbGlrZSByZWNsYWltIG9yIExSVSBzb3J0aW5nLCBhcmUgYXBwbGllZC4gSSBuZWVkIHRvIHplcm8gaW4gb24gdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGNoYW5nZSBhbmQgc3ViamVjdCBpdCB0byBhIHJpZ29yb3VzIGZ1enppbmcgcmVnaW1lLiBUaGVyZWZvcmUsIG15IGZvY3VzIGZvciB0YXJnZXRlZCBmdXp6aW5nIHdpbGwgYmUgb24gdGhlIGNvcmUgc3ltYm9sczogYGRhbW9uX2hvdF9zY29yZWAsIGBkYW1vbl9jb2xkX3Njb3JlYCwgYGRhbW9uX3BhX3NjaGVtZV9zY29yZWAsIGFuZCBgZGFtb25fdmFfc2NoZW1lX3Njb3JlYC4gSSdtIGVzcGVjaWFsbHkgY29uY2VybmVkIGFib3V0IGVkZ2UgY2FzZXMgaW50cm9kdWNlZCBieSB0aGUgbmV3IGNhbGN1bGF0aW9uIG1ldGhvZC4gV2UgaGF2ZSB0byBlbnN1cmUgaXQgZG9lc24ndCBsZWFkIHRvIGlzc3VlcyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8sIGludGVnZXIgb3ZlcmZsb3dzLCBvciBhbnkgb3RoZXIgdW5leHBlY3RlZCBiZWhhdmlvcnMgdGhhdCBtaWdodCBjb21wcm9taXNlIHRoZSBpbnRlZ3JpdHkgb2YgdGhlIG1lbW9yeSBtb25pdG9yaW5nIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6ODUwNiwiT3V0cHV0VG9rZW5zIjoyMzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMjksIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMTlUMTY6NDk6NTMuOTk5ODYxMzMxWiIsIlNlcSI6MTUsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InNldC1yZXN1bHRzIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQwODUyMjU2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJEQU1PTlwiLFxuICAgIFwiREFNT05fVkFERFJcIixcbiAgICBcIkRBTU9OX1BBRERSXCIsXG4gICAgXCJEQU1PTl9TWVNGU1wiLFxuICAgIFwiREFNT05fUkVDTEFJTVwiLFxuICAgIFwiREFNT05fTFJVX1NPUlRcIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJkYW1vbl9ob3Rfc2NvcmVcIixcbiAgICBcImRhbW9uX2NvbGRfc2NvcmVcIixcbiAgICBcImRhbW9uX3BhX3NjaGVtZV9zY29yZVwiLFxuICAgIFwiZGFtb25fdmFfc2NoZW1lX3Njb3JlXCJcbiAgXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIGNhbGN1bGF0aW9uIG9mIHRoZSBob3RuZXNzIHNjb3JlIChgZnJlcV9zdWJzY29yZWApIGluIGBkYW1vbl9ob3Rfc2NvcmVgIGJ5IHVzaW5nIGBkYW1vbl9ucl9hY2Nlc3Nlc19tdnN1bWAgaW5zdGVhZCBvZiBgci1cXHUwMDNlbnJfYWNjZXNzZXNgLiBUaGlzIGlzIGEgZnVuY3Rpb25hbCBjaGFuZ2UgaW4gdGhlIGNvcmUgbG9naWMgb2YgdGhlIERhdGEgQWNjZXNzIE1PTml0b3IgKERBTU9OKSBmcmFtZXdvcmssIGFmZmVjdGluZyBob3cgbWVtb3J5IHJlZ2lvbnMgYXJlIHNjb3JlZCBmb3IgaG90bmVzcy9jb2xkbmVzcyBhbmQgc3Vic2VxdWVudGx5IGhvdyBtZW1vcnkgbWFuYWdlbWVudCBzY2hlbWVzIGFyZSBhcHBsaWVkLiBJdCBzaG91bGQgYmUgZnV6emVkIHRvIGVuc3VyZSB0aGUgbmV3IGNhbGN1bGF0aW9uIGRvZXNuJ3QgaW50cm9kdWNlIGJ1Z3MgbGlrZSBkaXZpc2lvbiBieSB6ZXJvIG9yIGludGVnZXIgb3ZlcmZsb3dzLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IFtcbiAgICBcIkRBTU9OXCIsXG4gICAgXCJEQU1PTl9WQUREUlwiLFxuICAgIFwiREFNT05fUEFERFJcIixcbiAgICBcIkRBTU9OX1NZU0ZTXCIsXG4gICAgXCJEQU1PTl9SRUNMQUlNXCIsXG4gICAgXCJEQU1PTl9MUlVfU09SVFwiXG4gIF0sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtcbiAgICBcImRhbW9uX2hvdF9zY29yZVwiLFxuICAgIFwiZGFtb25fY29sZF9zY29yZVwiLFxuICAgIFwiZGFtb25fcGFfc2NoZW1lX3Njb3JlXCIsXG4gICAgXCJkYW1vbl92YV9zY2hlbWVfc2NvcmVcIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGhvdG5lc3Mgc2NvcmUgKGBmcmVxX3N1YnNjb3JlYCkgaW4gYGRhbW9uX2hvdF9zY29yZWAgYnkgdXNpbmcgYGRhbW9uX25yX2FjY2Vzc2VzX212c3VtYCBpbnN0ZWFkIG9mIGByLVxcdTAwM2Vucl9hY2Nlc3Nlc2AuIFRoaXMgaXMgYSBmdW5jdGlvbmFsIGNoYW5nZSBpbiB0aGUgY29yZSBsb2dpYyBvZiB0aGUgRGF0YSBBY2Nlc3MgTU9OaXRvciAoREFNT04pIGZyYW1ld29yaywgYWZmZWN0aW5nIGhvdyBtZW1vcnkgcmVnaW9ucyBhcmUgc2NvcmVkIGZvciBob3RuZXNzL2NvbGRuZXNzIGFuZCBzdWJzZXF1ZW50bHkgaG93IG1lbW9yeSBtYW5hZ2VtZW50IHNjaGVtZXMgYXJlIGFwcGxpZWQuIEl0IHNob3VsZCBiZSBmdXp6ZWQgdG8gZW5zdXJlIHRoZSBuZXcgY2FsY3VsYXRpb24gZG9lc24ndCBpbnRyb2R1Y2UgYnVncyBsaWtlIGRpdmlzaW9uIGJ5IHplcm8gb3IgaW50ZWdlciBvdmVyZmxvd3MuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfV07CgkJCWlmICghcmF3RGF0YSB8fCByYXdEYXRhLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSk7CgkJCWRyYXdEdXJhdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCQlkcmF3VG9rZW5Db25zdW1wdGlvbkNoYXJ0KHJhd0RhdGEpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1N1bW1hcnlUYWJsZXMocmF3RGF0YSkgewoJCQljb25zdCBzdGF0cyA9IHsKCQkJCWxsbTogeyBjb3VudDogMCwgdG9rZW5zOiAwLCBkdXJhdGlvbjogMCB9LAoJCQkJdG9vbDogeyBjb3VudDogMCwgZHVyYXRpb246IDAgfQoJCQl9OwoKCQkJcmF3RGF0YS5mb3JFYWNoKHMgPT4gewoJCQkJY29uc3QgZHVyID0gcy5EdXJhdGlvbiAvIDEwMDAwMDAwMDA7IAoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIpIHsKCQkJCQlzdGF0cy5sbG0uY291bnQrKzsKCQkJCQlzdGF0cy5sbG0udG9rZW5zICs9IChzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zKTsKCQkJCQlzdGF0cy5sbG0uZHVyYXRpb24gKz0gZHVyOwoJCQkJfSBlbHNlIGlmIChzLlR5cGUgPT09ICJ0b29sIikgewoJCQkJCXN0YXRzLnRvb2wuY291bnQrKzsKCQkJCQlzdGF0cy50b29sLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0KCQkJfSk7CgoJCQljb25zdCBhdmdMbG1EdXIgPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS5kdXJhdGlvbiAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z0xsbVRva2VuID0gc3RhdHMubGxtLmNvdW50ID4gMCA/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-workflow69c7s[1] Phase: Succeeded StartedAt: 2026-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 16:50:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 16:50:06 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2] Phase: Succeeded StartedAt: 2026-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},"patched":{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 16:50:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:06 +0000 UTC FinishedAt: 2026-07-19 16:50:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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-workflow69c7s/series-workflow69c7s-convert-artifact-3975404268/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:16 +0000 UTC FinishedAt: 2026-07-19 17:13:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:16 +0000 UTC FinishedAt: 2026-07-19 17:13:16 +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:*ab1978cb-41c8-49a9-9d11-2ef79903e010,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-workflow69c7s/series-workflow69c7s-convert-artifact-3975404268/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": "7891b7b9-0556-46f3-b0f0-e56fbe6f3bea", "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-workflow69c7s/series-workflow69c7s-build-action-3172025626/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 16:50:16 +0000 UTC FinishedAt: 2026-07-19 17:13:06 +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:*ab1978cb-41c8-49a9-9d11-2ef79903e010,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-workflow69c7s/series-workflow69c7s-convert-artifact-3975404268/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": "7891b7b9-0556-46f3-b0f0-e56fbe6f3bea", "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-workflow69c7s/series-workflow69c7s-build-action-3172025626/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:16 +0000 UTC FinishedAt: 2026-07-19 17:13:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:16 +0000 UTC FinishedAt: 2026-07-19 17:13:16 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:16 +0000 UTC FinishedAt: 2026-07-19 17:13:37 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:16 +0000 UTC FinishedAt: 2026-07-19 17:13:29 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-workflow69c7s/series-workflow69c7s-convert-artifact-2193396395/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:37 +0000 UTC FinishedAt: 2026-07-19 17:15:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:13:37 +0000 UTC FinishedAt: 2026-07-19 17:15:41 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7891b7b9-0556-46f3-b0f0-e56fbe6f3bea,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-workflow69c7s/series-workflow69c7s-build-action-3172025626/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-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:15:51 +0000 UTC FinishedAt: 2026-07-19 17:15:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:15:51 +0000 UTC FinishedAt: 2026-07-19 17:15:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:15:51 +0000 UTC FinishedAt: 2026-07-19 17:57:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:15:51 +0000 UTC FinishedAt: 2026-07-19 17:57:28 +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:*ab1978cb-41c8-49a9-9d11-2ef79903e010,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-workflow69c7s/series-workflow69c7s-convert-artifact-2193396395/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": "a13355ac-3236-4f70-a700-0ac75a2e2067", "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-workflow69c7s/series-workflow69c7s-build-action-2745582287/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:15:51 +0000 UTC FinishedAt: 2026-07-19 17:57:18 +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:*ab1978cb-41c8-49a9-9d11-2ef79903e010,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-workflow69c7s/series-workflow69c7s-convert-artifact-2193396395/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": "a13355ac-3236-4f70-a700-0ac75a2e2067", "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-workflow69c7s/series-workflow69c7s-build-action-2745582287/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:57:28 +0000 UTC FinishedAt: 2026-07-19 17:57:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:57:28 +0000 UTC FinishedAt: 2026-07-19 17:57:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:57:28 +0000 UTC FinishedAt: 2026-07-19 17:59:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:57:28 +0000 UTC FinishedAt: 2026-07-19 17:59:39 +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:*a13355ac-3236-4f70-a700-0ac75a2e2067,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-workflow69c7s/series-workflow69c7s-build-action-2745582287/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-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"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:*7891b7b9-0556-46f3-b0f0-e56fbe6f3bea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a13355ac-3236-4f70-a700-0ac75a2e2067,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-workflow69c7s/series-workflow69c7s-build-action-3172025626/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-workflow69c7s/series-workflow69c7s-build-action-2745582287/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 17:59:59 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 17:59:53 +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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"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-workflow69c7s/series-workflow69c7s-convert-artifact-2351011780/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 17:59:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 17:59:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:49 +0000 UTC FinishedAt: 2026-07-19 17:59:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:59 +0000 UTC FinishedAt: 2026-07-19 21:03:57 +0000 UTC Input: nil Output: nil --------- Name: series-workflow69c7s[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"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":["damon_hot_score","damon_cold_score","damon_pa_scheme_score","damon_va_scheme_score"],"skip_cover_check":true},patched:{"arch":"amd64","commit_hash":"56b9d68cf62f5e79ac9035dde02c3a68d0c6e091","config_name":"upstream-apparmor-kasan.config","enable_configs":["DAMON","DAMON_VADDR","DAMON_PADDR","DAMON_SYSFS","DAMON_RECLAIM","DAMON_LRU_SORT"],"series_id":"01380884-3fbb-4f0f-812c-2fd72ba91c95","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-07-19 17:59:59 +0000 UTC FinishedAt: 2026-07-19 21:03:48 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*7891b7b9-0556-46f3-b0f0-e56fbe6f3bea,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*a13355ac-3236-4f70-a700-0ac75a2e2067,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-workflow69c7s/series-workflow69c7s-build-action-3172025626/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-workflow69c7s/series-workflow69c7s-build-action-2745582287/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-workflow69c7s/series-workflow69c7s-convert-artifact-2351011780/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,}