Name: series-workflowhqzh9 Phase: Succeeded StartedAt: 2026-07-31 22:24:49 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[0] Phase: Succeeded StartedAt: 2026-07-31 22:24:49 +0000 UTC FinishedAt: 2026-07-31 22:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[0].run-triage Phase: Succeeded StartedAt: 2026-07-31 22:24:49 +0000 UTC FinishedAt: 2026-07-31 22:40:04 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "bca038b5-e478-4659-990f-b88254dbc23d" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_vcpu_pmu_event_info" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MGY5ZjVjZTZjZmE2NTQyYjM2OGU2YTUxYzliMDk1MWRlZTcyMDUxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjI6Mzg6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jXG5AQCAtMTIsNyAmIzQzOzEyLDkgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2t2bV9ob3N0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ub3NwZWMuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9vdmVyZmxvdy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9zbGFiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20vY3NyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20va3ZtX2lzYS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjYXNtL2t2bV92Y3B1X3NiaS5oXHUwMDNlXG5AQCAtNDc5LDEzICYjNDM7NDgxLDE0IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdFx0XHQgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKVxuIHtcbiBcdHN0cnVjdCByaXNjdl9wbXVfZXZlbnRfaW5mbyAqZWluZm8gPSBOVUxMO1xuLVx0aW50IHNobWVtX3NpemUgPSBudW1fZXZlbnRzICogc2l6ZW9mKCplaW5mbyk7XG4mIzQzO1x0c2l6ZV90IHNobWVtX3NpemU7XG4gXHRncGFfdCBzaG1lbTtcbiBcdHUzMiBlaWR4LCBldHlwZTtcbiBcdHU2NCBlY29uZmlnO1xuIFx0aW50IHJldDtcbiBcbi1cdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpIHx8IG51bV9ldmVudHMgPT0gMCkpIHtcbiYjNDM7XHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFx1MDAyNiAoU1pfMTYgLSAxKSkgfHwgbnVtX2V2ZW50cyA9PSAwIHx8XG4mIzQzO1x0ICAgIGNoZWNrX211bF9vdmVyZmxvdyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwgXHUwMDI2c2htZW1fc2l6ZSkpIHtcbiBcdFx0cmV0ID0gU0JJX0VSUl9JTlZBTElEX1BBUkFNO1xuIFx0XHRnb3RvIG91dDtcbiBcdH1cbkBAIC01MDAsNyAmIzQzOzUwMyw4IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdH1cbiBcdH1cbiBcbi1cdGVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRlaW5mbyA9IGt2Y2FsbG9jKG51bV9ldmVudHMsIHNpemVvZigqZWluZm8pLFxuJiM0MztcdFx0XHQgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOKTtcbiBcdGlmICghZWluZm8pIHtcbiBcdFx0cmV0ID0gU0JJX0VSUl9GQUlMVVJFO1xuIFx0XHRnb3RvIG91dDtcbkBAIC01MTIsNyAmIzQzOzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdGdvdG8gZnJlZV9tZW07XG4gXHR9XG4gXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnVtX2V2ZW50czsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXHUwMDNjIG51bV9ldmVudHM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGVpZHggPSBlaW5mb1tpXS5ldmVudF9pZHg7XG4gXHRcdGV0eXBlID0ga3ZtX3BtdV9nZXRfcGVyZl9ldmVudF90eXBlKGVpZHgpO1xuIFx0XHRlY29uZmlnID0ga3ZtX3BtdV9nZXRfcGVyZl9ldmVudF9jb25maWcoZWlkeCwgZWluZm9baV0uZXZlbnRfZGF0YSk7XG5AQCAtNTI1LDcgJiM0Mzs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUztcbiBcbiBmcmVlX21lbTpcbi1cdGtmcmVlKGVpbmZvKTtcbiYjNDM7XHRrdmZyZWUoZWluZm8pO1xuIG91dDpcbiBcdHJldGRhdGEtXHUwMDNlZXJyX3ZhbCA9IHJldDtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciBvdmVyZmxvdyBhbmQgY2hhbmdlcyBtZW1vcnkgYWxsb2NhdGlvbiBsb2dpYyBpbiB0aGUgUklTQy1WIEtWTSBQTVUgU0JJIGhhbmRsZXIuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSBhIGd1ZXN0IFZNIGV4ZWN1dGluZyBhbiBlY2FsbCBpbnN0cnVjdGlvbiwgbWFraW5nIGl0IGhpZ2hseSBmdXp6YWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQwZjlmNWNlNmNmYTY1NDJiMzY4ZTZhNTFjOWIwOTUxZGVlNzIwNTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzMSAyMjozODo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jCmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYwpAQCAtMTIsNyAmIzQzOzEyLDkgQEAKICNpbmNsdWRlICZsdDtsaW51eC9lcnIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rdm1faG9zdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L25vc3BlYy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9vdmVyZmxvdy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3BlcmYvcmlzY3ZfcG11LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKICNpbmNsdWRlICZsdDthc20vY3NyLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7YXNtL2t2bV9pc2EuaCZndDsKICNpbmNsdWRlICZsdDthc20va3ZtX3ZjcHVfc2JpLmgmZ3Q7CkBAIC00NzksMTMgJiM0Mzs0ODEsMTQgQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3cKIAkJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKQogewogCXN0cnVjdCByaXNjdl9wbXVfZXZlbnRfaW5mbyAqZWluZm8gPSBOVUxMOwotCWludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pOwomIzQzOwlzaXplX3Qgc2htZW1fc2l6ZTsKIAlncGFfdCBzaG1lbTsKIAl1MzIgZWlkeCwgZXR5cGU7CiAJdTY0IGVjb25maWc7CiAJaW50IHJldDsKIAotCWlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgJmFtcDsgKFNaXzE2IC0gMSkgfHwgbnVtX2V2ZW50cyA9PSAwKSkgewomIzQzOwlpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93ICZhbXA7IChTWl8xNiAtIDEpKSB8fCBudW1fZXZlbnRzID09IDAgfHwKJiM0MzsJICAgIGNoZWNrX211bF9vdmVyZmxvdyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwgJmFtcDtzaG1lbV9zaXplKSkgewogCQlyZXQgPSBTQklfRVJSX0lOVkFMSURfUEFSQU07CiAJCWdvdG8gb3V0OwogCX0KQEAgLTUwMCw3ICYjNDM7NTAzLDggQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3cKIAkJfQogCX0KIAotCWVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTsKJiM0MzsJZWluZm8gPSBrdmNhbGxvYyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwKJiM0MzsJCQkgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOKTsKIAlpZiAoIWVpbmZvKSB7CiAJCXJldCA9IFNCSV9FUlJfRkFJTFVSRTsKIAkJZ290byBvdXQ7CkBAIC01MTIsNyAmIzQzOzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93CiAJCWdvdG8gZnJlZV9tZW07CiAJfQogCi0JZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBudW1fZXZlbnRzOyBpJiM0MzsmIzQzOykgewomIzQzOwlmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgJmx0OyBudW1fZXZlbnRzOyBpJiM0MzsmIzQzOykgewogCQllaWR4ID0gZWluZm9baV0uZXZlbnRfaWR4OwogCQlldHlwZSA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfdHlwZShlaWR4KTsKIAkJZWNvbmZpZyA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfY29uZmlnKGVpZHgsIGVpbmZvW2ldLmV2ZW50X2RhdGEpOwpAQCAtNTI1LDcgJiM0Mzs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdwogCQlyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUzsKIAogZnJlZV9tZW06Ci0Ja2ZyZWUoZWluZm8pOwomIzQzOwlrdmZyZWUoZWluZm8pOwogb3V0OgogCXJldGRhdGEtJmd0O2Vycl92YWwgPSByZXQ7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2NAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDI4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBNVSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jYC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBpc3N1ZSB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IGZvciBwZXJmb3JtYW5jZSBldmVudHMuIFRoZXkmIzM5O3JlIGRvaW5nIGEgY2hlY2sgZm9yIGBudW1fZXZlbnRzICogc2l6ZW9mKCplaW5mbylgIGFuZCB0aGVuIHN3aXRjaGluZyBmcm9tIGBremFsbG9jYCB0byBga3ZjYWxsb2NgIHdpdGggc29tZSBleHRyYSBmbGFnczogYEdGUF9LRVJORUxfQUNDT1VOVCB8IF9fR0ZQX05PV0FSTmAuICBUaGV5IGFsc28gdXBkYXRlZCB0aGUgbG9vcCB2YXJpYWJsZSBgaWAgdG8gYHVuc2lnbmVkIGxvbmdgIGluIHRoZSBwcm9jZXNzLiBUaGlzIGlzIGdvb2QsIHJlYWxseSB0aWdodGVuaW5nIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBsb2dpYywgcHJldmVudGluZyBpbnRlZ2VyIG92ZXJmbG93IGFuZCBtaXRpZ2F0aW5nIHRoZSByaXNrIG9mIG91dC1vZi1tZW1vcnkgZXJyb3JzIHdoaWNoLCB3aGVuIGRlYWxpbmcgd2l0aCBwZXJmb3JtYW5jZSBldmVudHMsIGNvdWxkIGJlIHByb2JsZW1hdGljLgoKTXkgbWluZCBpbW1lZGlhdGVseSBqdW1wcyB0byBmdXp6aW5nLiBJcyB0aGlzIHNvbWV0aGluZyB3ZSBjYW4gdGhyb3cgYXQgc3l6a2FsbGVyPyBJdCYjMzk7cyBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c3VhbGx5IHg4NiBmb2N1c2VkIGZvciB0aGF0IHBhcnRpY3VsYXIgdG9vbCwgYnV0IHdhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBSSVNDLVYgc3VwcG9ydCBub3csIHNvIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUuIENydWNpYWxseSwgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSB0YXJnZXRpbmcgaXMgYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC4gVGhhdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQgdG8gaW52ZXN0aWdhdGUuCgpJIG5lZWQgdG8gbmFpbCBkb3duIHRoZSBjb25maWcgb3B0aW9ucyB0aGF0IGVuYWJsZSB0aGlzIGNvZGUgcGF0aC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBidWlsZCBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgYGFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlYCBvciBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25maWd1cmF0aW9uIGtub2JzIHRoYXQgbmVlZCB0byBiZSBmbGlwcGVkIHRvIGdldCB0aGlzIGB2Y3B1X3BtdS5jYCBmaWxlIGNvbXBpbGVkIGludG8gdGhlIEtWTSBpbWFnZS4gIEtub3dpbmcgdGhlIGV4YWN0IGJ1aWxkIHJlcXVpcmVtZW50cyBpcyBrZXkgdG8gbWFraW5nIHRoaXMgZnV6emluZyBpbnZlc3RpZ2F0aW9uIGFjdGlvbmFibGUuIElmIHdlIGNhbiBnZXQgYSBtaW5pbWFsLCBmdXp6YWJsZSBjb25maWd1cmF0aW9uLCB3ZSYjMzk7cmUgaW4gYnVzaW5lc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNwdV9wbXUubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0yOD1rdm0teSAmIzQzOz0gdmNwdV9vbmVyZWcub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6Mjk6a3ZtLSQoQ09ORklHX1JJU0NWX1BNVV9TQkkpICYjNDM7PSB2Y3B1X3BtdS5vXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZS0zMC1rdm0teSAmIzQzOz0gdmNwdV9zYmkub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NzAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGluaXRpYWwgdGhvdWdodHMsIGV4cHJlc3NlZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlLCBhcyBhIHNlYXNvbmVkIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcGVyOgoKKipJbml0aWFsIENvbmZpZ3VyYXRpb24gQ29uc2lkZXJhdGlvbnMgZm9yIFJJU0MtVioqCgpBbHJpZ2h0LCBzbyB0aGUgcHJvamVjdCYjMzk7cyByZXF1aXJlbWVudHMgYXJlIGJlY29taW5nIGNsZWFyZXIuIEl0IHNlZW1zIHByZXR0eSBsaWtlbHkgdGhhdCB3ZSYjMzk7cmUgZ29pbmcgdG8gbmVlZCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIOKAkyB0aGF0JiMzOTtzIGEgZ2l2ZW4uIEFuZCBvZiBjb3Vyc2UsIGBDT05GSUdfS1ZNYCBmb3IgUklTQy1WIGlzIHByYWN0aWNhbGx5IHN0YW5kYXJkIHRoZXNlIGRheXMsIHBhcnRpY3VsYXJseSBnaXZlbiB0aGUgdHJlbmQgdG93YXJkcyB2aXJ0dWFsaXphdGlvbi4gQmVmb3JlIGRpdmluZyBpbiB0b28gZGVlcCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoYXQgYENPTkZJR19SSVNDVl9QTVVfU0JJYCBmbGFnIHdpdGhpbiB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIGZpbGVzLiBHb3R0YSBtYWtlIHN1cmUgaXQmIzM5O3Mgc2V0IHVwIHRoZSB3YXkgSSBleHBlY3QsIGFuZCB0aGF0IHRoZSBkZXBlbmRlbmNpZXMgYXJlIGFsbCBhY2NvdW50ZWQgZm9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSSVNDVl9QTVVfU0JJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnPTg4PWNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXG4tLVxuZHJpdmVycy9wZXJmL0tjb25maWctOTctXG5kcml2ZXJzL3BlcmYvS2NvbmZpZzo5ODpjb25maWcgUklTQ1ZfUE1VX1NCSVxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXHRkZXBlbmRzIG9uIFJJU0NWX1BNVSBcdTAwMjZcdTAwMjYgUklTQ1ZfU0JJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg5NwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkRlcGVuZGVuY2llcyBhbmQgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBQZXJmb3JtYW5jZSBNb25pdG9yaW5nKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBzeXN0ZW0gaXMgdGVsbGluZyBtZSB0aGF0IGBSSVNDVl9QTVVfU0JJYCByZWxpZXMgb24gYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1NCSWAuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZSBTQkkgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGludGVyZmFjZSwgYW5kIHRoZSBQTVUgaXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0LiBUaGUgU0JJIHRoZW4gbGlrZWx5IGV4cG9zZXMgdGhlIFBNVSBkYXRhLgoKTm93LCB0aGUgc3lzdGVtIGhpZ2hsaWdodHMgdGhhdCBgS1ZNYCBpcyBhbHNvIG5lZWRlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uIHRvIHdvcmssIEkmIzM5O2QgYmV0dGVyIGNvbmZpcm0gd2hlcmUgdG8gZW5hYmxlIGBLVk1gIGluIHRoZSBgS2NvbmZpZ2AuCgpTbywgdGhlIG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgIHRvIHZlcmlmeSB0aGUgbmVjZXNzYXJ5IGBLVk1gIHNldHRpbmdzIGFuZCBkZXBlbmRlbmNpZXMuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHN1cHBvcnQgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW5mcmFzdHJ1Y3R1cmUgSSYjMzk7bSBzZXR0aW5nIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyODQKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgQ29uZmlndXJhdGlvbiBDb251bmRydW0qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IHBvaW50cyB0b3dhcmRzIGEgbmVlZCBmb3IgYEtWTWAsIGBSSVNDVl9QTVVfU0JJYCwgYFJJU0NWX1BNVWAsIGFuZCBgUklTQ1ZfU0JJYCB0byBnZXQgdGhpcyB0aGluZyBodW1taW5nLiBCdXQsIGJhc2VkIG9uIG15IHBhc3QgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIHNvcnRzIG9mIHRoaW5ncywgdGhlIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfU0JJYCBvcHRpb25zIGFyZSBsaWtlbHkgZWl0aGVyIHByZS1lbmFibGVkIGJ5IGRlZmF1bHQgb3IgYSB0cml2aWFsIGluY2x1c2lvbi4gU28sIGJlZm9yZSBJIGdvIGRvd24gYSByYWJiaXQgaG9sZSwgbGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoZSBzdGF0dXMgb2YgdGhvc2UgdHdvLiBJdCBtYWtlcyBzZW5zZSB0byBjaGVjayB0aGUgZWFzeSB3aW5zIGZpcnN0LiBJJiMzOTtsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlnIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUklTQ1ZfUE1VJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxuZHJpdmVycy9wZXJmL0tjb25maWctNzktXHRkZXBlbmRzIG9uIFJJU0NWXG4tLVxuZHJpdmVycy9wZXJmL0tjb25maWctODctXG5kcml2ZXJzL3BlcmYvS2NvbmZpZzo4ODpjb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxuZHJpdmVycy9wZXJmL0tjb25maWctODktXHRkZXBlbmRzIG9uIFJJU0NWX1BNVVxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6OTg6Y29uZmlnIFJJU0NWX1BNVV9TQklcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk5LVx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXHUwMDI2XHUwMDI2IFJJU0NWX1NCSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzE2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byB0aGUgUklTQy1WIFNCSSBMYW5kc2NhcGUqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYFJJU0NWX1NCSWAgc2l0dWF0aW9uLiBUaGVyZSYjMzk7cyBhIGxvdCBvZiBhY3Rpdml0eSBpbiB0aGlzIGFyZWEsIGFuZCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O20gdXAtdG8tZGF0ZS4gSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBjdXJyZW50IHN0YXRlLiBXaGF0IGFyZSB0aGUga2V5IGltcGxlbWVudGF0aW9ucz8gQXJlIHRoZXJlIGFueSBicmVha2luZyBjaGFuZ2VzIEkgc2hvdWxkIGtub3cgYWJvdXQ/IEFuZCBtb3N0IGltcG9ydGFudGx5LCB3aGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBteSBjdXJyZW50IHdvcms/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgY29udGV4dCBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSXMgdGhpcyBmb3IgYSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgdmFyaWFudCwgb3IgaXMgdGhpcyBhIGdlbmVyYWwgb3ZlcnZpZXc/IEFyZSB0aGVyZSBzcGVjaWZpYyBleHRlbnNpb25zIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQ/IExldCYjMzk7cyBnZXQgdG8gaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSSVNDVl9TQkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9LY29uZmlnPTI3Nj1jb25maWcgUklTQ1ZfTV9NT0RFXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTI4NC0jIHNldCBpZiB3ZSBhcmUgcnVubmluZyBpbiBTLW1vZGUgYW5kIGNhbiB1c2UgU0JJIGNhbGxzXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjg1OmNvbmZpZyBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODYtXHRib29sXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTkzMz1jb25maWcgUklTQ1ZfVkVDVE9SX01JU0FMSUdORURcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctOTM5LVxuYXJjaC9yaXNjdi9LY29uZmlnOjk0MDpjb25maWcgUklTQ1ZfU0JJX0ZXRlRfREVMRUdBVEVfTUlTQUxJR05FRFxuYXJjaC9yaXNjdi9LY29uZmlnLTk0MS1cdGJvb2wgXCYjMzQ7UmVxdWVzdCBmaXJtd2FyZSBkZWxlZ2F0aW9uIG9mIHVuYWxpZ25lZCBhY2Nlc3MgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDU5PXNvdXJjZSBcJiMzNDtrZXJuZWwvS2NvbmZpZy5oelwmIzM0O1xuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjAtXG5hcmNoL3Jpc2N2L0tjb25maWc6MTA2MTpjb25maWcgUklTQ1ZfU0JJX1YwMVxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjItXHRib29sIFwmIzM0O1NCSSB2MC4xIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL2NwdWlkbGUvS2NvbmZpZy5yaXNjdi01LVxuZHJpdmVycy9jcHVpZGxlL0tjb25maWcucmlzY3Y6Njpjb25maWcgUklTQ1ZfU0JJX0NQVUlETEVcbmRyaXZlcnMvY3B1aWRsZS9LY29uZmlnLnJpc2N2LTctXHRib29sIFwmIzM0O1JJU0MtViBTQkkgQ1BVIGlkbGUgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWc9MzgxPWNvbmZpZyBCQ003NDExMF9NQUlMQk9YXG4tLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWctMzkwLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWc6MzkxOmNvbmZpZyBSSVNDVl9TQklfTVBYWV9NQk9YXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZy0zOTItXHR0cmlzdGF0ZSBcJiMzNDtSSVNDLVYgU0JJIE1lc3NhZ2UgUHJveHkgKE1QWFkpIE1haWxib3hcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM2MwoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBSSVNDVl9TQkkgTWFjcm8qKgoKT2theSwgc28gYFJJU0NWX1NCSWAuLi50aGF0JiMzOTtzIGEgYm9vbGVhbiwgYW5kIGxpa2VseSBjb250cm9sbGVkIGJ5IHNvbWUgb3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5nLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0JiMzOTtzIHRyYWNlIGJhY2sgd2hlcmUgdGhpcyBpcyBkZWZpbmVkIGFuZCB3aGF0JiMzOTtzIGNhdXNpbmcgaXQgdG8gYmUgc2V0IChvciBub3Qgc2V0KS4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBzZWxlY3Rpb24gY3JpdGVyaWEgZm9yIHRoaXMgbWFjcm8gaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgY29uZmlndXJhdGlvbiBvZiB0aGUgUklTQy1WIHN5c3RlbS4gVGltZSB0byBkaWcgaW50byB0aGUgYnVpbGQgc3lzdGVtIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIHRvIHNlZSB3aGF0JiMzOTtzIGRyaXZpbmcgYFJJU0NWX1NCSWAuIEdvdHRhIGZpbmQgdGhlICYjMzQ7d2hhdCBlbmFibGVzIHRoZSBgUklTQ1ZfU0JJYCYjMzQ7IHRyaWdnZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBSSVNDVl9TQkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9LY29uZmlnPTExODM9Y29uZmlnIFJJU0NWX1VTRVJfQ0ZJXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTExODgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6MTE4OTpcdHNlbGVjdCBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMTkwLVx0c2VsZWN0IEFSQ0hfSEFTX1VTRVJfU0hBRE9XX1NUQUNLXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLnNvY3M9ODc9Y29uZmlnIEFSQ0hfVklSVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk1LVx0c2VsZWN0IFBNX0dFTkVSSUNfRE9NQUlOU19PRiBpZiBQTSBcdTAwMjZcdTAwMjYgT0ZcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzOjk2Olx0c2VsZWN0IFJJU0NWX1NCSV9DUFVJRExFIGlmIENQVV9JRExFIFx1MDAyNlx1MDAyNiBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzY4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZToKCioqRGVsdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIHRoZSBwcm9ncmFtJiMzOTtzIGJlaGF2aW9yIGhpbmdlcyBvbiB0aGlzIGBSSVNDVl9TQklgIHNldHRpbmcuIFRoYXQgcmluZ3MgYSBiZWxsLCBJIHRoaW5rIGBSSVNDVl9TQklgIGlzIHRpZWQgdG8gd2hldGhlciB3ZSYjMzk7cmUgb3BlcmF0aW5nIGluIFMtbW9kZS4gTWFrZXMgc2Vuc2U7IFNCSSAoU3VwZXJ2aXNvciBCaW5hcnkgSW50ZXJmYWNlKSBpcyB1c3VhbGx5IHRoZSBicmlkZ2UgZm9yIHByaXZpbGVnZWQgb3BlcmF0aW9ucyBmcm9tIFMtbW9kZSB0byB0aGUgdW5kZXJseWluZyBmaXJtd2FyZSBvciBtYWNoaW5lIG1vZGUuIFRvIGNvbmZpcm0gbXkgaHVuY2gsIEkgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsJiMzOTtzIGNvbmZpZ3VyYXRpb24uIFRoZSBiZXN0IHBsYWNlIHRvIGZpbmQgdGhlIGRlZmluaXRpb24gb2YgYFJJU0NWX1NCSWAsIGdpdmVuIHRoZSBjb250ZXh0IG9mIGEgUklTQy1WIHN5c3RlbSwgaXMgZGVmaW5pdGVseSBgYXJjaC9yaXNjdi9LY29uZmlnYC4gVGltZSB0byBjb25zdWx0IHRoYXQgS2NvbmZpZyBmaWxlLiBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggaXQmIzM5O3MgZGVmaW5lZCBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhhdCBoYXMgZm9yIHRoZSBzeXN0ZW0mIzM5O3MgcnVudGltZSBiZWhhdmlvci4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgYmlnZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlZmF1bHQgeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctMjc4LVx0ZGVwZW5kcyBvbiAhTU1VXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjc5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMjgwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0yODU9Y29uZmlnIFJJU0NWX1NCSVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy0yODctXHRkZXBlbmRzIG9uICFSSVNDVl9NX01PREVcbmFyY2gvcmlzY3YvS2NvbmZpZzoyODg6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODktXG5hcmNoL3Jpc2N2L0tjb25maWc9MjkwPWNvbmZpZyBNTVVcbmFyY2gvcmlzY3YvS2NvbmZpZy0yOTEtXHRib29sIFwmIzM0O01NVS1iYXNlZCBQYWdlZCBNZW1vcnkgTWFuYWdlbWVudCBTdXBwb3J0XCYjMzQ7XG5hcmNoL3Jpc2N2L0tjb25maWc6MjkyOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMjkzLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz01NTM9Y29uZmlnIFJJU0NWX0lTQV9DXG5hcmNoL3Jpc2N2L0tjb25maWctNTU0LVx0Ym9vbCBcJiMzNDtFbWl0IGNvbXByZXNzZWQgaW5zdHJ1Y3Rpb25zIHdoZW4gYnVpbGRpbmcgTGludXhcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzo1NTU6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy01NTYtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTU2ND1jb25maWcgUklTQ1ZfSVNBX1NVUE1cbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNTY2LVx0ZGVwZW5kcyBvbiA2NEJJVFxuYXJjaC9yaXNjdi9LY29uZmlnOjU2NzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTU2OC1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NTc1PWNvbmZpZyBSSVNDVl9JU0FfU1ZOQVBPVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy01NzgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NTc5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNTgwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz01OTQ9Y29uZmlnIFJJU0NWX0lTQV9TVlBCTVRcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNTk3LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjU5ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTU5OS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjExPWNvbmZpZyBUT09MQ0hBSU5fSEFTX1ZcbmFyY2gvcmlzY3YvS2NvbmZpZy02MTItXHRib29sXG5hcmNoL3Jpc2N2L0tjb25maWc6NjEzOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNjE0LVx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltdilcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjE5PWNvbmZpZyBSSVNDVl9JU0FfVlxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy02MjMtXHRzZWxlY3QgRFlOQU1JQ19TSUdGUkFNRVxuYXJjaC9yaXNjdi9LY29uZmlnOjYyNDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTYyNS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjMyPWNvbmZpZyBSSVNDVl9JU0FfVl9ERUZBVUxUX0VOQUJMRVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy02MzQtXHRkZXBlbmRzIG9uIFJJU0NWX0lTQV9WXG5hcmNoL3Jpc2N2L0tjb25maWc6NjM1Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNjM2LVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz02NTE9Y29uZmlnIFJJU0NWX0lTQV9WX1BSRUVNUFRJVkVcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNjU0LVx0ZGVwZW5kcyBvbiBSSVNDVl9JU0FfVlxuYXJjaC9yaXNjdi9LY29uZmlnOjY1NTpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY1Ni1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjY1PWNvbmZpZyBSSVNDVl9JU0FfWkFXUlNcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNjY3LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjY2ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY2OS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9Njc2PWNvbmZpZyBUT09MQ0hBSU5fSEFTX1pBQkhBXG5hcmNoL3Jpc2N2L0tjb25maWctNjc3LVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjY3ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY3OS1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemFiaGEpXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTY4Mz1jb25maWcgUklTQ1ZfSVNBX1pBQkhBXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTY4Ni1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo2ODc6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy02ODgtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTY5ND1jb25maWcgVE9PTENIQUlOX0hBU19aQUNBU1xuYXJjaC9yaXNjdi9LY29uZmlnLTY5NS1cdGJvb2xcbmFyY2gvcmlzY3YvS2NvbmZpZzo2OTY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy02OTctXHRkZXBlbmRzIG9uICE2NEJJVCB8fCAkKGNjLW9wdGlvbiwtbWFiaT1scDY0IC1tYXJjaD1ydjY0aW1hX3phY2FzKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MDE9Y29uZmlnIFJJU0NWX0lTQV9aQUNBU1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy03MDMtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NzA0Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzA1LVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MTE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJCXG5hcmNoL3Jpc2N2L0tjb25maWctNzEyLVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjcxMzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTcxNC1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJiKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MjY9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJBXG5hcmNoL3Jpc2N2L0tjb25maWctNzI3LVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjcyODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTcyOS1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJhKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MzQ9Y29uZmlnIFJJU0NWX0lTQV9aQkFcbmFyY2gvcmlzY3YvS2NvbmZpZy03MzUtXHRib29sIFwmIzM0O1piYSBleHRlbnNpb24gc3VwcG9ydCBmb3IgYml0IG1hbmlwdWxhdGlvbiBpbnN0cnVjdGlvbnNcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzo3MzY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy03MzctXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTc0Nj1jb25maWcgUklTQ1ZfSVNBX1pCQlxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy03NDgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NzQ5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzUwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03NjE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJDXG5hcmNoL3Jpc2N2L0tjb25maWctNzYyLVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjc2MzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTc2NC1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJjKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03Njk9Y29uZmlnIFJJU0NWX0lTQV9aQkNcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNzczLVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjc3NDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTc3NS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9Nzg0PWNvbmZpZyBUT09MQ0hBSU5fSEFTX1pCS0JcbmFyY2gvcmlzY3YvS2NvbmZpZy03ODUtXHRib29sXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzg2Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzg3LVx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmtiKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03OTI9Y29uZmlnIFJJU0NWX0lTQV9aQktCXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTc5NS1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo3OTY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy03OTctXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTgwNj1jb25maWcgUklTQ1ZfSVNBX1pJQ0JPTVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy04MDktXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6ODEwOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctODExLVx0c2VsZWN0IFJJU0NWX0RNQV9OT05DT0hFUkVOVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz04MjM9Y29uZmlnIFJJU0NWX0lTQV9aSUNCT1pcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctODI1LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjgyNjpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTgyNy1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9ODM1PWNvbmZpZyBSSVNDVl9JU0FfWklDQk9QXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTgzOC1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo4Mzk6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy04NDAtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTg1MD1jb25maWcgUklTQ1ZfSVNBX1NWUlNXNjBUNTlCXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTg1My1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo4NTQ6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy04NTUtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTg5Mj1jb25maWcgRlBVXG5hcmNoL3Jpc2N2L0tjb25maWctODkzLVx0Ym9vbCBcJiMzNDtGUFUgc3VwcG9ydFwmIzM0O1xuYXJjaC9yaXNjdi9LY29uZmlnOjg5NDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTg5NS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9OTAyPWNvbmZpZyBJUlFfU1RBQ0tTXG5hcmNoL3Jpc2N2L0tjb25maWctOTAzLVx0Ym9vbCBcJiMzNDtJbmRlcGVuZGVudCBpcnEgXHUwMDI2IHNvZnRpcnEgc3RhY2tzXCYjMzQ7IGlmIEVYUEVSVFxuYXJjaC9yaXNjdi9LY29uZmlnOjkwNDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTkwNS1cdHNlbGVjdCBIQVZFX0lSUV9FWElUX09OX0lSUV9TVEFDS1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDY4PWNvbmZpZyBSSVNDVl9CT09UX1NQSU5XQUlUXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNzAtXHRkZXBlbmRzIG9uIFNNUFxuYXJjaC9yaXNjdi9LY29uZmlnOjEwNzE6XHRkZWZhdWx0IHkgaWYgUklTQ1ZfU0JJX1YwMSB8fCBSSVNDVl9NX01PREVcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMDcyLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjAyLVx0ICBkb2VzIG5vdCBnZXQgcHJvdGVjdGlvbiBcJiMzNDtmb3IgZnJlZVwmIzM0Oy5cbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjAzOlx0ICBkZWZhdWx0IHkuXG5hcmNoL3Jpc2N2L0tjb25maWctMTIwNC1cbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9MTI1NT1jb25maWcgRUZJXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNTgtXHRkZXBlbmRzIG9uIE1NVVxuYXJjaC9yaXNjdi9LY29uZmlnOjEyNTk6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjYwLVx0c2VsZWN0IEFSQ0hfU1VQUE9SVFNfQUNQSSBpZiA2NEJJVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMjc1PWNvbmZpZyBETUlcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctMTI3Ny1cdGRlcGVuZHMgb24gRUZJXG5hcmNoL3Jpc2N2L0tjb25maWc6MTI3ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNzktXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTEzMDg9Y29uZmlnIFJJU0NWX0lTQV9GQUxMQkFDS1xuYXJjaC9yaXNjdi9LY29uZmlnLTEzMDktXHRib29sIFwmIzM0O1Blcm1pdCBmYWxsaW5nIGJhY2sgdG8gcGFyc2luZyByaXNjdixpc2EgZm9yIGV4dGVuc2lvbiBzdXBwb3J0IGJ5IGRlZmF1bHRcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMzEwOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMTMxMS1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk0MQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyBSSVNDLVYgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIGxldCYjMzk7cyBicmVhayBkb3duIHRoZXNlIFJJU0MtViBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgYFJJU0NWX1NCSWAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGlmIHdlJiMzOTtyZSAqbm90KiBpbiBgUklTQ1ZfTV9NT0RFYC4gRnVydGhlcm1vcmUsIGBSSVNDVl9NX01PREVgIHNlZW1zIHRvIGJlIGVuYWJsZWQgaWYgdGhlcmUmIzM5O3Mgbm8gTWVtb3J5IE1hbmFnZW1lbnQgVW5pdCAoYE1NVWApLiBTbywgaWYgdGhlIHRhcmdldCBpcyBhIHR5cGljYWwga2VybmVsIHdpdGggYW4gTU1VLCBgUklTQ1ZfU0JJYCBzaG91bGQgYmUgc2V0IHRvICYjMzk7eSYjMzk7LCB3aGljaCBtYWtlcyBzZW5zZS4gSSB3b3VsZCBleHBlY3QgdGhhdC4gTm93LCBJJiMzOTttIGN1cmlvdXMgYWJvdXQgYFJJU0NWX1BNVWAuIElzIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBzdXBwb3J0IGVuYWJsZWQgYnkgZGVmYXVsdD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQsIG15IGludHVpdGlvbiBpcyB0ZWxsaW5nIG1lIGl0IHdpbGwgZGVwZW5kIG9uIHRoZSBvdmVyYXJjaGluZyBgUklTQ1ZgIG9wdGlvbiwgbm90IGEgZGVmYXVsdCAmIzM5O3kmIzM5Oy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJJU0NWX1BNVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BlcmYvS2NvbmZpZz03ND1jb25maWcgQVJNX1hTQ0FMRV9QTVVcbi0tXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy03Ny1cbmRyaXZlcnMvcGVyZi9LY29uZmlnOjc4OmNvbmZpZyBSSVNDVl9QTVVcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVx0ZGVwZW5kcyBvbiBSSVNDVlxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6ODg6Y29uZmlnIFJJU0NWX1BNVV9MRUdBQ1lcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg5LVx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcbi0tXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05Ny1cbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05OS1cdGRlcGVuZHMgb24gUklTQ1ZfUE1VIFx1MDAyNlx1MDAyNiBSSVNDVl9TQklcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTQyMgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk5hdmlnYXRpbmcgdGhlIFJJU0MtViBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhlcmUmIzM5O3Mgbm8gYXV0b21hdGljIGVuYWJsaW5nIG9mIGBkZWZhdWx0IHlgIGZvciB0aGUgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0LiBUaGF0IG1lYW5zIEkgbmVlZCB0byBiZSBleHBsaWNpdCBhYm91dCBlbmFibGluZyBib3RoIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfUE1VX1NCSWAuIEp1c3QgbWFraW5nIGEgbWVudGFsIG5vdGUgb2YgdGhhdC4gTm93LCBhIHF1aWNrIHF1ZXN0aW9uIHBvcHMgdXA6IGlzIGBSSVNDVl9QTVVgIGRlZmluZWQgYXMgYSBib29sZWFuIG9yIGEgdHJpc3RhdGU/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQgYmVmb3JlIEkgbW92ZSBmb3J3YXJkLCBvciBJIGNvdWxkIHJ1biBpbnRvIHByb2JsZW1zLiBCZXN0IHByYWN0aWNlLCBsZXQmIzM5O3MgaGVhZCBvdmVyIHRvIGBkcml2ZXJzL3BlcmYvS2NvbmZpZ2AsIHByb2JhYmx5IGFyb3VuZCBsaW5lIDc4IG9yIHNvLCB0byBnZXQgdGhlIGRlZmluaXRpdmUgYW5zd2VyIG9uIHRoYXQuIEkmIzM5O2xsIHRha2UgYSBxdWljayBzY2FuIHRoZXJlIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA3NTpcdFx0ZGVwZW5kcyBvbiBBUk1fUE1VIFx1MDAyNlx1MDAyNiBDUFVfWFNDQUxFXG4gIDc2Olx0XHRkZWZfYm9vbCB5XG4gIDc3Olx0XG4gIDc4Olx0Y29uZmlnIFJJU0NWX1BNVVxuICA3OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVlxuICA4MDpcdFx0Ym9vbCBcJiMzNDtSSVNDLVYgUE1VIGZyYW1ld29ya1wmIzM0O1xuICA4MTpcdFx0ZGVmYXVsdCB5XG4gIDgyOlx0XHRoZWxwXG4gIDgzOlx0XHQgIFNheSB5IGlmIHlvdSB3YW50IHRvIHVzZSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvcnMgb24gUklTQ1YtYmFzZWRcbiAgODQ6XHRcdCAgc3lzdGVtcy4gVGhpcyBwcm92aWRlcyB0aGUgY29yZSBQTVUgZnJhbWV3b3JrIHRoYXQgYWJzdHJhY3RzIGNvbW1vblxuICA4NTpcdFx0ICBQTVUgZnVuY3Rpb25hbGl0aWVzIGluIGEgY29yZSBsaWJyYXJ5IHNvIHRoYXQgZGlmZmVyZW50IFBNVSBkcml2ZXJzXG4gIDg2Olx0XHQgIGNhbiByZXVzZSBpdC5cbiAgODc6XHRcbiAgODg6XHRjb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxuICA4OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcbiAgOTA6XHRcdGJvb2wgXCYjMzQ7UklTQy1WIGxlZ2FjeSBQTVUgaW1wbGVtZW50YXRpb25cJiMzNDtcbiAgOTE6XHRcdGRlZmF1bHQgeVxuICA5MjpcdFx0aGVscFxuICA5MzpcdFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGxlZ2FjeSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvclxuICA5NDpcdFx0ICBpbXBsZW1lbnRhdGlvbiBvbiBSSVNDLVYgYmFzZWQgc3lzdGVtcy4gVGhpcyBvbmx5IGFsbG93cyBjb3VudGluZ1xuICA5NTpcdFx0ICBvZiBjeWNsZS9pbnN0cnVjdGlvbiBjb3VudGVyIGFuZCBkb2VzbiYjMzk7dCBzdXBwb3J0IGNvdW50ZXIgb3ZlcmZsb3csXG4gIDk2Olx0XHQgIG9yIHByb2dyYW1tYWJsZSBjb3VudGVycy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZS5cbiAgOTc6XHRcbiAgOTg6XHRjb25maWcgUklTQ1ZfUE1VX1NCSVxuICA5OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXHUwMDI2XHUwMDI2IFJJU0NWX1NCSVxuIDEwMDpcdFx0Ym9vbCBcJiMzNDtSSVNDLVYgUE1VIGJhc2VkIG9uIFNCSSBQTVUgZXh0ZW5zaW9uXCYjMzQ7XG4gMTAxOlx0XHRkZWZhdWx0IHlcbiAxMDI6XHRcdGhlbHBcbiAxMDM6XHRcdCAgU2F5IHkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvclxuIDEwNDpcdFx0ICB1c2luZyBTQkkgUE1VIGV4dGVuc2lvbiBvbiBSSVNDLVYgYmFzZWQgc3lzdGVtcy4gVGhpcyBvcHRpb24gcHJvdmlkZXNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipSSVNDLVYgUE1VIENvbmZpZ3VyYXRpb24gLSBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKQWxyaWdodCwgc28gYFJJU0NWX1BNVWAgYW5kIGBSSVNDVl9QTVVfU0JJYCBhcmUgYm90aCBzZXQgdG8gYGRlZmF1bHQgeWAuIFRoYXQmIzM5O3MgZ29vZDsgaXQgc2ltcGxpZmllcyB0aGluZ3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHdlJiMzOTtyZSBsaWtlbHkgc2V0IHVwIGZvciBzb21lIGJhc2ljIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcuJiMzNDsgVGhpcyBpbXBsaWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgcmVxdWlyZWQgaGFyZHdhcmUgc3VwcG9ydCwgb3IgYXQgbGVhc3QgYSBtaW5pbWFsIHNvZnR3YXJlIGVtdWxhdGlvbi4KClRoZXJlZm9yZSwgYmVjYXVzZSBvZiB0aG9zZSBkZWZhdWx0cywgdGhlIHJlc3QgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZC4gQXNzdW1pbmcgd2Ugd2FudCB0byBzdXBwb3J0IEtWTSAod2hpY2gsIGdpdmVuIHRoZSBjb250ZXh0LCBzZWVtcyBoaWdobHkgbGlrZWx5KSwgdGhlIG9ubHkgZnVydGhlciBjb25zaWRlcmF0aW9uIGhlcmUgaXMgYXJvdW5kIEtWTSBjb25maWd1cmF0aW9uLgoKTXkgcHJpbWFyeSBmb2N1cyBzaGlmdHMgdG8gdGhlIGBLVk1gIG9wdGlvbiwgd2hpY2ggd2lsbCBiZSB0aGUgaGVhcnQgb2YgdGhlIHZpcnR1YWxpemF0aW9uIHByb2Nlc3MgaGVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBLVk0gc3VwcG9ydCBpcyBlbmFibGVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgS2NvbmZpZyBpbiBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIEkmIzM5O2xsIHByb2JhYmx5IHNjYW4gZm9yIGRlcGVuZGVuY2llcyBhbmQgYW55IGNvbmRpdGlvbmFsIGxvZ2ljIHRoZXJlLCBqdXN0IHRvIGNvbmZpcm0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiAgIDI6XHQjXG4gICAzOlx0IyBLVk0gY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRzb3VyY2UgXCYjMzQ7dmlydC9rdm0vS2NvbmZpZ1wmIzM0O1xuICAgNzpcdFxuICAgODpcdG1lbnVjb25maWcgVklSVFVBTElaQVRJT05cbiAgIDk6XHRcdGJvb2wgXCYjMzQ7VmlydHVhbGl6YXRpb25cJiMzNDtcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cbiAgMTI6XHRcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXG4gIDEzOlx0XHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBzYXkgTiwgYWxsIG9wdGlvbnMgaW4gdGhpcyBzdWJtZW51IHdpbGwgYmUgc2tpcHBlZCBhbmRcbiAgMTY6XHRcdCAgZGlzYWJsZWQuXG4gIDE3Olx0XG4gIDE4Olx0aWYgVklSVFVBTElaQVRJT05cbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgS1ZNXG4gIDIxOlx0XHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFx1MDAyNlx1MDAyNiBNTVVcbiAgMjM6XHRcdHNlbGVjdCBIQVZFX0tWTV9JUlFDSElQXG4gIDI0Olx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRX1JPVVRJTkdcbiAgMjU6XHRcdHNlbGVjdCBIQVZFX0tWTV9NU0lcbiAgMjY6XHRcdHNlbGVjdCBIQVZFX0tWTV9SRUFET05MWV9NRU1cbiAgMjc6XHRcdHNlbGVjdCBIQVZFX0tWTV9ESVJUWV9SSU5HX0FDUV9SRUxcbiAgMjg6XHRcdHNlbGVjdCBLVk1fQ09NTU9OXG4gIDI5Olx0XHRzZWxlY3QgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG4gIDMwOlx0XHRzZWxlY3QgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA4NDQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFJJU0MtViBLVk0gUE1VIEV2ZW50IEluZm9ybWF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBpbnRvIGhvdyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgZXZlbnRzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBlbnZpcm9ubWVudC4gQ2xlYXJseSwgdW5kZXJzdGFuZGluZyBib3RoIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGlzIGNyaXRpY2FsIGhlcmUuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb24gYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC4KCkxldCYjMzk7cyBzZWUsIGl0JiMzOTtzIGxvY2F0ZWQgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNgLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMsIGlzIHRoaXMgZnVuY3Rpb24gYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhlIGZ1bmN0aW9uJiMzOTtzIHNpZ25hdHVyZSBsb29rcyBsaWtlIHRoaXMsIGl0IHRha2VzIGEgYHN0cnVjdCBrdm1fdmNwdSAqdmNwdWAsIGFuZCBhIGhhbmRmdWwgb2YgYHVuc2lnbmVkIGxvbmdgIHZhbHVlczogYHNhZGRyX2xvd2AsIGBzYWRkcl9oaWdoYCwgYG51bV9ldmVudHNgLCBhbmQgYGZsYWdzYC4gRmluYWxseSwgdGhlcmUmIzM5O3MgYHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhYC4gU28sIHdoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbj8gSSBzdXNwZWN0IGl0JiMzOTtzIGdvaW5nIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIFN5c3RlbSBCb290IEludGVyZmFjZSAoU0JJKS4gTGV0JiMzOTtzIHRyYWNlIGl0IGFuZCBzZWUgaWYgaXQgaXMgY2FsbGVkIGZyb20gYGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyYC4gVGhhdCYjMzk7cyBpbiBgYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmNgLiBUaW1lIHRvIGRpdmUgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmM9NDI3PWludCBrdm1fcmlzY3ZfdmNwdV9wbXVfc25hcHNob3Rfc2V0X3NobWVtKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3csXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYy00NzgtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jOjQ3OTppbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdyxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDgwLVx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIHNhZGRyX2hpZ2gsIHVuc2lnbmVkIGxvbmcgbnVtX2V2ZW50cyxcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYz0xNj1zdGF0aWMgaW50IGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bixcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYy03Ni1cdGNhc2UgU0JJX0VYVF9QTVVfRVZFTlRfR0VUX0lORk86XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYzo3NzpcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8odmNwdSwgY3AtXHUwMDNlYTAsIGNwLVx1MDAzZWExLCBjcC1cdTAwM2VhMiwgY3AtXHUwMDNlYTMsIHJldGRhdGEpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmMtNzgtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTcxNwoJCQkJCQkJb3V0cHV0OiA5NgoJCQkJCQkJdGhvdWdodHM6IDExOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGlzIGlzIHJlbGF0ZWQgdG8gdGhlIGBTQklfRVhUX1BNVV9FVkVOVF9HRVRfSU5GT2AgaGFuZGxlci4gSXQmIzM5O3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGd1ZXN0IGV4ZWN1dGVzIGFuIGBlY2FsbGAgaW5zdHJ1Y3Rpb24gd2l0aCB0aGUgcmlnaHQgU0JJIGV4dGVuc2lvbiBhbmQgZnVuY3Rpb24gSURzLiBBbmQgc2luY2UgU3l6a2FsbGVyIGFscmVhZHkgZnV6emVzIEtWTSBieSBjcmVhdGluZyBWTXMgYW5kIGV4ZWN1dGluZyBpbnN0cnVjdGlvbnMsIGluY2x1ZGluZyBgZWNhbGxgLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdXp6YWJsZSB0YXJnZXQuCgpUaGUgcHJpbWFyeSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuICBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZCBmb3IgZnV6emluZywgYW5kIGl0IGxvb2tzIGxpa2UgYEtWTWAgaXMgdGhlIGNydWNpYWwgb25lLiBgVklSVFVBTElaQVRJT05gIGlzIGluIHRoZSBtZW51Y29uZmlnLCBidXQgYEtWTWAgaXMgc3VmZmljaWVudCwgc28gSSYjMzk7bGwganVzdCBsaXN0IGBLVk1gLgoKSSBkb3VibGUtY2hlY2tlZCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AgaXMgKm5vdCogYSBzdGF0aWMgZnVuY3Rpb247IGl0JiMzOTtzIGRlZmluZWQgYXMgYSByZWd1bGFyIGBpbnRgIGZ1bmN0aW9uIGluIGB2Y3B1X3BtdS5jYC4gVGhhdCBtZWFucyBpdCYjMzk7cyBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgZmlsZSBhbmQgaXMgbW9yZSByZWFkaWx5IGZ1enphYmxlLgoKTG9va2luZyBhdCB0aGUgY29kZSBjaGFuZ2UsIGl0IHNlZW1zIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuCgpJIGFsc28gbG9va2VkIGludG8gdGhlIGRlZmF1bHQgY29uZmlncy4gYFJJU0NWX1BNVV9TQklgLCBgUklTQ1ZfUE1VYCwgYW5kIGBSSVNDVl9TQklgIGFyZSBhbGwgZGVmYXVsdC1lbmFibGVkLiBCdXQgYWdhaW4sIGBLVk1gIGlzIHRoZSBtYWluIGVuYWJsZXIgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHJldmlldyB0aGUgcGF0Y2ggaXRzZWxmLiBJdCYjMzk7cyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLiBUaGV5JiMzOTtyZSBmaXhpbmcgYW4gaW50ZWdlciBvdmVyZmxvdyB2dWxuZXJhYmlsaXR5IGFuZCBjaGFuZ2luZyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gZnJvbSBga3phbGxvY2AgdG8gYGt2Y2FsbG9jYC4gIFRoaXMgaXMgYSBnb29kIHNpZ247IGl0JiMzOTtzIHRvdWNoaW5nIG1lbW9yeSBhbGxvY2F0aW9uLCB3aGljaCBpcyBhIGNvbW1vbiBzb3VyY2Ugb2YgYnVncy4KClRoZSBjb2RlIGlzIGFic29sdXRlbHkgcmVhY2hhYmxlIHZpYSBLVk0gb24gUklTQy1WLiBTeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBmdXp6aW5nIHRoaXMuICBUaGUgY29yZSBmdW5jdGlvbiBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLiAgVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgYEtWTWAuCgpUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8gc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LiBJJiMzOTtsbCBtYXJrIHRoaXMgYXMgd29ydGggZnV6emluZywgc3BlY2lmeSBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGFzIHRoZSBmb2N1cyBzeW1ib2wsIGFuZCBsaXN0IGBLVk1gIGFzIHRoZSBlbmFibGVkIGNvbmZpZy4gTXkgcmVhc29uaW5nIHdpbGwgYmU6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0My44NTc2MDgzNDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA4ODU2NDAxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM4OjQzLjg1NzYzNjU3M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2NDM5MzQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDBmOWY1Y2U2Y2ZhNjU0MmIzNjhlNmE1MWM5YjA5NTFkZWU3MjA1MVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAzMSAyMjozODo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xcbmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcXG5AQCAtMTIsNyArMTIsOSBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZXJyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rdm1faG9zdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbm9zcGVjLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9vdmVyZmxvdy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS9jc3IuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS9rdm1faXNhLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2Nhc20va3ZtX3ZjcHVfc2JpLmhcXHUwMDNlXFxuQEAgLTQ3OSwxMyArNDgxLDE0IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XFxuIFxcdFxcdFxcdFxcdCAgdW5zaWduZWQgbG9uZyBmbGFncywgc3RydWN0IGt2bV92Y3B1X3NiaV9yZXR1cm4gKnJldGRhdGEpXFxuIHtcXG4gXFx0c3RydWN0IHJpc2N2X3BtdV9ldmVudF9pbmZvICplaW5mbyA9IE5VTEw7XFxuLVxcdGludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pO1xcbitcXHRzaXplX3Qgc2htZW1fc2l6ZTtcXG4gXFx0Z3BhX3Qgc2htZW07XFxuIFxcdHUzMiBlaWR4LCBldHlwZTtcXG4gXFx0dTY0IGVjb25maWc7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFxcdTAwMjYgKFNaXzE2IC0gMSkgfHwgbnVtX2V2ZW50cyA9PSAwKSkge1xcbitcXHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFxcdTAwMjYgKFNaXzE2IC0gMSkpIHx8IG51bV9ldmVudHMgPT0gMCB8fFxcbitcXHQgICAgY2hlY2tfbXVsX292ZXJmbG93KG51bV9ldmVudHMsIHNpemVvZigqZWluZm8pLCBcXHUwMDI2c2htZW1fc2l6ZSkpIHtcXG4gXFx0XFx0cmV0ID0gU0JJX0VSUl9JTlZBTElEX1BBUkFNO1xcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFx0fVxcbkBAIC01MDAsNyArNTAzLDggQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3dcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbi1cXHRlaW5mbyA9IGt6YWxsb2Moc2htZW1fc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuK1xcdGVpbmZvID0ga3ZjYWxsb2MobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksXFxuK1xcdFxcdFxcdCBHRlBfS0VSTkVMX0FDQ09VTlQgfCBfX0dGUF9OT1dBUk4pO1xcbiBcXHRpZiAoIWVpbmZvKSB7XFxuIFxcdFxcdHJldCA9IFNCSV9FUlJfRkFJTFVSRTtcXG4gXFx0XFx0Z290byBvdXQ7XFxuQEAgLTUxMiw3ICs1MTYsNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xcbiBcXHRcXHRnb3RvIGZyZWVfbWVtO1xcbiBcXHR9XFxuIFxcbi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG51bV9ldmVudHM7IGkrKykge1xcbitcXHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXFx1MDAzYyBudW1fZXZlbnRzOyBpKyspIHtcXG4gXFx0XFx0ZWlkeCA9IGVpbmZvW2ldLmV2ZW50X2lkeDtcXG4gXFx0XFx0ZXR5cGUgPSBrdm1fcG11X2dldF9wZXJmX2V2ZW50X3R5cGUoZWlkeCk7XFxuIFxcdFxcdGVjb25maWcgPSBrdm1fcG11X2dldF9wZXJmX2V2ZW50X2NvbmZpZyhlaWR4LCBlaW5mb1tpXS5ldmVudF9kYXRhKTtcXG5AQCAtNTI1LDcgKzUyOSw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XFxuIFxcdFxcdHJldCA9IFNCSV9FUlJfSU5WQUxJRF9BRERSRVNTO1xcbiBcXG4gZnJlZV9tZW06XFxuLVxcdGtmcmVlKGVpbmZvKTtcXG4rXFx0a3ZmcmVlKGVpbmZvKTtcXG4gb3V0OlxcbiBcXHRyZXRkYXRhLVxcdTAwM2VlcnJfdmFsID0gcmV0O1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NDQuMTY0ODQ4NjQ4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjI3ODEzMDg1MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIG92ZXJmbG93IGFuZCBjaGFuZ2VzIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljIGluIHRoZSBSSVNDLVYgS1ZNIFBNVSBTQkkgaGFuZGxlci4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIGEgZ3Vlc3QgVk0gZXhlY3V0aW5nIGFuIGVjYWxsIGluc3RydWN0aW9uLCBtYWtpbmcgaXQgaGlnaGx5IGZ1enphYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MGY5ZjVjZTZjZmE2NTQyYjM2OGU2YTUxYzliMDk1MWRlZTcyMDUxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjI6Mzg6NDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xuaW5kZXggYmI0NmRjYmZiMjRkYS4uOGUxZjZhYmI4NGUyMCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbkBAIC0xMiw3ICsxMiw5IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXJyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rdm1faG9zdC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbm9zcGVjLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9vdmVyZmxvdy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9jc3IuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9rdm1faXNhLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20va3ZtX3ZjcHVfc2JpLmhcdTAwM2VcbkBAIC00NzksMTMgKzQ4MSwxNCBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIGZsYWdzLCBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSlcbiB7XG4gXHRzdHJ1Y3QgcmlzY3ZfcG11X2V2ZW50X2luZm8gKmVpbmZvID0gTlVMTDtcbi1cdGludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pO1xuK1x0c2l6ZV90IHNobWVtX3NpemU7XG4gXHRncGFfdCBzaG1lbTtcbiBcdHUzMiBlaWR4LCBldHlwZTtcbiBcdHU2NCBlY29uZmlnO1xuIFx0aW50IHJldDtcbiBcbi1cdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpIHx8IG51bV9ldmVudHMgPT0gMCkpIHtcbitcdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpKSB8fCBudW1fZXZlbnRzID09IDAgfHxcbitcdCAgICBjaGVja19tdWxfb3ZlcmZsb3cobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksIFx1MDAyNnNobWVtX3NpemUpKSB7XG4gXHRcdHJldCA9IFNCSV9FUlJfSU5WQUxJRF9QQVJBTTtcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG5AQCAtNTAwLDcgKzUwMyw4IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdH1cbiBcdH1cbiBcbi1cdGVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTtcbitcdGVpbmZvID0ga3ZjYWxsb2MobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksXG4rXHRcdFx0IEdGUF9LRVJORUxfQUNDT1VOVCB8IF9fR0ZQX05PV0FSTik7XG4gXHRpZiAoIWVpbmZvKSB7XG4gXHRcdHJldCA9IFNCSV9FUlJfRkFJTFVSRTtcbiBcdFx0Z290byBvdXQ7XG5AQCAtNTEyLDcgKzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdGdvdG8gZnJlZV9tZW07XG4gXHR9XG4gXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnVtX2V2ZW50czsgaSsrKSB7XG4rXHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXHUwMDNjIG51bV9ldmVudHM7IGkrKykge1xuIFx0XHRlaWR4ID0gZWluZm9baV0uZXZlbnRfaWR4O1xuIFx0XHRldHlwZSA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfdHlwZShlaWR4KTtcbiBcdFx0ZWNvbmZpZyA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfY29uZmlnKGVpZHgsIGVpbmZvW2ldLmV2ZW50X2RhdGEpO1xuQEAgLTUyNSw3ICs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUztcbiBcbiBmcmVlX21lbTpcbi1cdGtmcmVlKGVpbmZvKTtcbitcdGt2ZnJlZShlaW5mbyk7XG4gb3V0OlxuIFx0cmV0ZGF0YS1cdTAwM2VlcnJfdmFsID0gcmV0O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NDQuMTY0ODUwMjQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYwNzMwNDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBNVSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBpc3N1ZSB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IGZvciBwZXJmb3JtYW5jZSBldmVudHMuIFRoZXkncmUgZG9pbmcgYSBjaGVjayBmb3IgYG51bV9ldmVudHMgKiBzaXplb2YoKmVpbmZvKWAgYW5kIHRoZW4gc3dpdGNoaW5nIGZyb20gYGt6YWxsb2NgIHRvIGBrdmNhbGxvY2Agd2l0aCBzb21lIGV4dHJhIGZsYWdzOiBgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOYC4gIFRoZXkgYWxzbyB1cGRhdGVkIHRoZSBsb29wIHZhcmlhYmxlIGBpYCB0byBgdW5zaWduZWQgbG9uZ2AgaW4gdGhlIHByb2Nlc3MuIFRoaXMgaXMgZ29vZCwgcmVhbGx5IHRpZ2h0ZW5pbmcgdXAgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljLCBwcmV2ZW50aW5nIGludGVnZXIgb3ZlcmZsb3cgYW5kIG1pdGlnYXRpbmcgdGhlIHJpc2sgb2Ygb3V0LW9mLW1lbW9yeSBlcnJvcnMgd2hpY2gsIHdoZW4gZGVhbGluZyB3aXRoIHBlcmZvcm1hbmNlIGV2ZW50cywgY291bGQgYmUgcHJvYmxlbWF0aWMuXG5cbk15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gZnV6emluZy4gSXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIHRocm93IGF0IHN5emthbGxlcj8gSXQncyBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c3VhbGx5IHg4NiBmb2N1c2VkIGZvciB0aGF0IHBhcnRpY3VsYXIgdG9vbCwgYnV0IHdhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBSSVNDLVYgc3VwcG9ydCBub3csIHNvIGl0J3MgYSBnb29kIGNhbmRpZGF0ZS4gQ3J1Y2lhbGx5LCB0aGUgZnVuY3Rpb24gd2UncmUgdGFyZ2V0aW5nIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuIFRoYXQncyB0aGUgZW50cnkgcG9pbnQgdG8gaW52ZXN0aWdhdGUuXG5cbkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIGNvbmZpZyBvcHRpb25zIHRoYXQgZW5hYmxlIHRoaXMgY29kZSBwYXRoLiBMZXQncyBkaWcgaW50byB0aGUgYnVpbGQgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGBhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZWAgb3IgYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXhhY3QgY29uZmlndXJhdGlvbiBrbm9icyB0aGF0IG5lZWQgdG8gYmUgZmxpcHBlZCB0byBnZXQgdGhpcyBgdmNwdV9wbXUuY2AgZmlsZSBjb21waWxlZCBpbnRvIHRoZSBLVk0gaW1hZ2UuICBLbm93aW5nIHRoZSBleGFjdCBidWlsZCByZXF1aXJlbWVudHMgaXMga2V5IHRvIG1ha2luZyB0aGlzIGZ1enppbmcgaW52ZXN0aWdhdGlvbiBhY3Rpb25hYmxlLiBJZiB3ZSBjYW4gZ2V0IGEgbWluaW1hbCwgZnV6emFibGUgY29uZmlndXJhdGlvbiwgd2UncmUgaW4gYnVzaW5lc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjQsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0OS43NzIxNTgwNzRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1MTMyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNwdV9wbXUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9Mjg9a3ZtLXkgKz0gdmNwdV9vbmVyZWcub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjI5Omt2bS0kKENPTkZJR19SSVNDVl9QTVVfU0JJKSArPSB2Y3B1X3BtdS5vXFxuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtMzAta3ZtLXkgKz0gdmNwdV9zYmkub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0OS44MTY2NzYxMTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTY1NjMxNTM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBpbml0aWFsIHRob3VnaHRzLCBleHByZXNzZWQgZnJvbSBhIGZpcnN0LXBlcnNvbiBwZXJzcGVjdGl2ZSwgYXMgYSBzZWFzb25lZCBlbWJlZGRlZCBzeXN0ZW1zIGRldmVsb3BlcjpcblxuKipJbml0aWFsIENvbmZpZ3VyYXRpb24gQ29uc2lkZXJhdGlvbnMgZm9yIFJJU0MtVioqXG5cbkFscmlnaHQsIHNvIHRoZSBwcm9qZWN0J3MgcmVxdWlyZW1lbnRzIGFyZSBiZWNvbWluZyBjbGVhcmVyLiBJdCBzZWVtcyBwcmV0dHkgbGlrZWx5IHRoYXQgd2UncmUgZ29pbmcgdG8gbmVlZCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIOKAkyB0aGF0J3MgYSBnaXZlbi4gQW5kIG9mIGNvdXJzZSwgYENPTkZJR19LVk1gIGZvciBSSVNDLVYgaXMgcHJhY3RpY2FsbHkgc3RhbmRhcmQgdGhlc2UgZGF5cywgcGFydGljdWxhcmx5IGdpdmVuIHRoZSB0cmVuZCB0b3dhcmRzIHZpcnR1YWxpemF0aW9uLiBCZWZvcmUgZGl2aW5nIGluIHRvbyBkZWVwLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIGZsYWcgd2l0aGluIHRoZSBLY29uZmlnIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEdvdHRhIG1ha2Ugc3VyZSBpdCdzIHNldCB1cCB0aGUgd2F5IEkgZXhwZWN0LCBhbmQgdGhhdCB0aGUgZGVwZW5kZW5jaWVzIGFyZSBhbGwgYWNjb3VudGVkIGZvci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM4OjU0Ljc4MjMwOTgxOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk5NTI2NDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVfU0JJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BlcmYvS2NvbmZpZz04OD1jb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6OTg6Y29uZmlnIFJJU0NWX1BNVV9TQklcXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05OS1cXHRkZXBlbmRzIG9uIFJJU0NWX1BNVSBcXHUwMDI2XFx1MDAyNiBSSVNDVl9TQklcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NTYuNDgxODQyNjk0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2MzIwMjk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqRGVwZW5kZW5jaWVzIGFuZCBLVk0gQ29uZmlndXJhdGlvbiBmb3IgUklTQy1WIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBzeXN0ZW0gaXMgdGVsbGluZyBtZSB0aGF0IGBSSVNDVl9QTVVfU0JJYCByZWxpZXMgb24gYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1NCSWAuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZSBTQkkgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGludGVyZmFjZSwgYW5kIHRoZSBQTVUgaXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0LiBUaGUgU0JJIHRoZW4gbGlrZWx5IGV4cG9zZXMgdGhlIFBNVSBkYXRhLlxuXG5Ob3csIHRoZSBzeXN0ZW0gaGlnaGxpZ2h0cyB0aGF0IGBLVk1gIGlzIGFsc28gbmVlZGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24gdG8gd29yaywgSSdkIGJldHRlciBjb25maXJtIHdoZXJlIHRvIGVuYWJsZSBgS1ZNYCBpbiB0aGUgYEtjb25maWdgLlxuXG5TbywgdGhlIG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgIHRvIHZlcmlmeSB0aGUgbmVjZXNzYXJ5IGBLVk1gIHNldHRpbmdzIGFuZCBkZXBlbmRlbmNpZXMuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHN1cHBvcnQgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW5mcmFzdHJ1Y3R1cmUgSSdtIHNldHRpbmcgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4OTcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo1OS43NDUwNDgzMjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI2OTcyNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo1OS43ODc3NDk5ODRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTc2NzE1NTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBDb25maWd1cmF0aW9uIENvbnVuZHJ1bSoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IHBvaW50cyB0b3dhcmRzIGEgbmVlZCBmb3IgYEtWTWAsIGBSSVNDVl9QTVVfU0JJYCwgYFJJU0NWX1BNVWAsIGFuZCBgUklTQ1ZfU0JJYCB0byBnZXQgdGhpcyB0aGluZyBodW1taW5nLiBCdXQsIGJhc2VkIG9uIG15IHBhc3QgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIHNvcnRzIG9mIHRoaW5ncywgdGhlIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfU0JJYCBvcHRpb25zIGFyZSBsaWtlbHkgZWl0aGVyIHByZS1lbmFibGVkIGJ5IGRlZmF1bHQgb3IgYSB0cml2aWFsIGluY2x1c2lvbi4gU28sIGJlZm9yZSBJIGdvIGRvd24gYSByYWJiaXQgaG9sZSwgbGV0J3MgcXVpY2tseSB2ZXJpZnkgdGhlIHN0YXR1cyBvZiB0aG9zZSB0d28uIEl0IG1ha2VzIHNlbnNlIHRvIGNoZWNrIHRoZSBlYXN5IHdpbnMgZmlyc3QuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjg0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MDIuNzY0NDY5Nzc5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzMxNTk5NjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctNzctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gUklTQ1ZcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjg4OmNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuZHJpdmVycy9wZXJmL0tjb25maWctODktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjA0LjQ5NjA3NjQxNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjE3MDM1MzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIExhbmRzY2FwZSoqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYFJJU0NWX1NCSWAgc2l0dWF0aW9uLiBUaGVyZSdzIGEgbG90IG9mIGFjdGl2aXR5IGluIHRoaXMgYXJlYSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIHVwLXRvLWRhdGUuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgY3VycmVudCBzdGF0ZS4gV2hhdCBhcmUgdGhlIGtleSBpbXBsZW1lbnRhdGlvbnM/IEFyZSB0aGVyZSBhbnkgYnJlYWtpbmcgY2hhbmdlcyBJIHNob3VsZCBrbm93IGFib3V0PyBBbmQgbW9zdCBpbXBvcnRhbnRseSwgd2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBmb3IgbXkgY3VycmVudCB3b3JrPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIGNvbnRleHQgSSdtIGRlYWxpbmcgd2l0aC4gSXMgdGhpcyBmb3IgYSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgdmFyaWFudCwgb3IgaXMgdGhpcyBhIGdlbmVyYWwgb3ZlcnZpZXc/IEFyZSB0aGVyZSBzcGVjaWZpYyBleHRlbnNpb25zIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQ/IExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcxNiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjA3LjcxMzExNTAyNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NzYyMzA3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUklTQ1ZfU0JJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODQtIyBzZXQgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gUy1tb2RlIGFuZCBjYW4gdXNlIFNCSSBjYWxsc1xcbmFyY2gvcmlzY3YvS2NvbmZpZzoyODU6Y29uZmlnIFJJU0NWX1NCSVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODYtXFx0Ym9vbFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTkzMz1jb25maWcgUklTQ1ZfVkVDVE9SX01JU0FMSUdORURcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy05MzktXFxuYXJjaC9yaXNjdi9LY29uZmlnOjk0MDpjb25maWcgUklTQ1ZfU0JJX0ZXRlRfREVMRUdBVEVfTUlTQUxJR05FRFxcbmFyY2gvcmlzY3YvS2NvbmZpZy05NDEtXFx0Ym9vbCBcXFwiUmVxdWVzdCBmaXJtd2FyZSBkZWxlZ2F0aW9uIG9mIHVuYWxpZ25lZCBhY2Nlc3MgZXhjZXB0aW9uc1xcXCJcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDU5PXNvdXJjZSBcXFwia2VybmVsL0tjb25maWcuaHpcXFwiXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjAtXFxuYXJjaC9yaXNjdi9LY29uZmlnOjEwNjE6Y29uZmlnIFJJU0NWX1NCSV9WMDFcXG5hcmNoL3Jpc2N2L0tjb25maWctMTA2Mi1cXHRib29sIFxcXCJTQkkgdjAuMSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9jcHVpZGxlL0tjb25maWcucmlzY3YtNS1cXG5kcml2ZXJzL2NwdWlkbGUvS2NvbmZpZy5yaXNjdjo2OmNvbmZpZyBSSVNDVl9TQklfQ1BVSURMRVxcbmRyaXZlcnMvY3B1aWRsZS9LY29uZmlnLnJpc2N2LTctXFx0Ym9vbCBcXFwiUklTQy1WIFNCSSBDUFUgaWRsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZz0zODE9Y29uZmlnIEJDTTc0MTEwX01BSUxCT1hcXG4tLVxcbmRyaXZlcnMvbWFpbGJveC9LY29uZmlnLTM5MC1cXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZzozOTE6Y29uZmlnIFJJU0NWX1NCSV9NUFhZX01CT1hcXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZy0zOTItXFx0dHJpc3RhdGUgXFxcIlJJU0MtViBTQkkgTWVzc2FnZSBQcm94eSAoTVBYWSkgTWFpbGJveFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MDkuMjgwNzQ0MTgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NTg2OTQzODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBSSVNDVl9TQkkgTWFjcm8qKlxuXG5Pa2F5LCBzbyBgUklTQ1ZfU0JJYC4uLnRoYXQncyBhIGJvb2xlYW4sIGFuZCBsaWtlbHkgY29udHJvbGxlZCBieSBzb21lIG90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCdzIHRyYWNlIGJhY2sgd2hlcmUgdGhpcyBpcyBkZWZpbmVkIGFuZCB3aGF0J3MgY2F1c2luZyBpdCB0byBiZSBzZXQgKG9yIG5vdCBzZXQpLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhpcyBtYWNybyBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIG9mIHRoZSBSSVNDLVYgc3lzdGVtLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gc2VlIHdoYXQncyBkcml2aW5nIGBSSVNDVl9TQklgLiBHb3R0YSBmaW5kIHRoZSBcIndoYXQgZW5hYmxlcyB0aGUgYFJJU0NWX1NCSWBcIiB0cmlnZ2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzYzLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MTIuMTM5NDQyNDg5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTUzMzEyNzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBSSVNDVl9TQklcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTExODgtXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMTg5OlxcdHNlbGVjdCBSSVNDVl9TQklcXG5hcmNoL3Jpc2N2L0tjb25maWctMTE5MC1cXHRzZWxlY3QgQVJDSF9IQVNfVVNFUl9TSEFET1dfU1RBQ0tcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzPTg3PWNvbmZpZyBBUkNIX1ZJUlRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk1LVxcdHNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlNfT0YgaWYgUE0gXFx1MDAyNlxcdTAwMjYgT0ZcXG5hcmNoL3Jpc2N2L0tjb25maWcuc29jczo5NjpcXHRzZWxlY3QgUklTQ1ZfU0JJX0NQVUlETEUgaWYgQ1BVX0lETEUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuYXJjaC9yaXNjdi9LY29uZmlnLnNvY3MtOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToxMy42OTI3NjI5NTZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE3OTA0MTEyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqRGVsdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgc28gdGhlIHByb2dyYW0ncyBiZWhhdmlvciBoaW5nZXMgb24gdGhpcyBgUklTQ1ZfU0JJYCBzZXR0aW5nLiBUaGF0IHJpbmdzIGEgYmVsbCwgSSB0aGluayBgUklTQ1ZfU0JJYCBpcyB0aWVkIHRvIHdoZXRoZXIgd2UncmUgb3BlcmF0aW5nIGluIFMtbW9kZS4gTWFrZXMgc2Vuc2U7IFNCSSAoU3VwZXJ2aXNvciBCaW5hcnkgSW50ZXJmYWNlKSBpcyB1c3VhbGx5IHRoZSBicmlkZ2UgZm9yIHByaXZpbGVnZWQgb3BlcmF0aW9ucyBmcm9tIFMtbW9kZSB0byB0aGUgdW5kZXJseWluZyBmaXJtd2FyZSBvciBtYWNoaW5lIG1vZGUuIFRvIGNvbmZpcm0gbXkgaHVuY2gsIEkgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsJ3MgY29uZmlndXJhdGlvbi4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGUgZGVmaW5pdGlvbiBvZiBgUklTQ1ZfU0JJYCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgYSBSSVNDLVYgc3lzdGVtLCBpcyBkZWZpbml0ZWx5IGBhcmNoL3Jpc2N2L0tjb25maWdgLiBUaW1lIHRvIGNvbnN1bHQgdGhhdCBLY29uZmlnIGZpbGUuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGl0J3MgZGVmaW5lZCBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhhdCBoYXMgZm9yIHRoZSBzeXN0ZW0ncyBydW50aW1lIGJlaGF2aW9yLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBiaWdnZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc2OCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjE2Ljg3MTgwNjQ5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3NDgyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVmYXVsdCB5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yNzgtXFx0ZGVwZW5kcyBvbiAhTU1VXFxuYXJjaC9yaXNjdi9LY29uZmlnOjI3OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctMjgwLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0yODU9Y29uZmlnIFJJU0NWX1NCSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTI4Ny1cXHRkZXBlbmRzIG9uICFSSVNDVl9NX01PREVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjg4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODktXFxuYXJjaC9yaXNjdi9LY29uZmlnPTI5MD1jb25maWcgTU1VXFxuYXJjaC9yaXNjdi9LY29uZmlnLTI5MS1cXHRib29sIFxcXCJNTVUtYmFzZWQgUGFnZWQgTWVtb3J5IE1hbmFnZW1lbnQgU3VwcG9ydFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6MjkyOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yOTMtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTU1Mz1jb25maWcgUklTQ1ZfSVNBX0NcXG5hcmNoL3Jpc2N2L0tjb25maWctNTU0LVxcdGJvb2wgXFxcIkVtaXQgY29tcHJlc3NlZCBpbnN0cnVjdGlvbnMgd2hlbiBidWlsZGluZyBMaW51eFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6NTU1OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01NTYtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTU2ND1jb25maWcgUklTQ1ZfSVNBX1NVUE1cXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01NjYtXFx0ZGVwZW5kcyBvbiA2NEJJVFxcbmFyY2gvcmlzY3YvS2NvbmZpZzo1Njc6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTU2OC1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NTc1PWNvbmZpZyBSSVNDVl9JU0FfU1ZOQVBPVFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTU3OC1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjU3OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNTgwLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz01OTQ9Y29uZmlnIFJJU0NWX0lTQV9TVlBCTVRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01OTctXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzo1OTg6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTU5OS1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NjExPWNvbmZpZyBUT09MQ0hBSU5fSEFTX1ZcXG5hcmNoL3Jpc2N2L0tjb25maWctNjEyLVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NjEzOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02MTQtXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltdilcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02MTk9Y29uZmlnIFJJU0NWX0lTQV9WXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNjIzLVxcdHNlbGVjdCBEWU5BTUlDX1NJR0ZSQU1FXFxuYXJjaC9yaXNjdi9LY29uZmlnOjYyNDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjI1LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02MzI9Y29uZmlnIFJJU0NWX0lTQV9WX0RFRkFVTFRfRU5BQkxFXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNjM0LVxcdGRlcGVuZHMgb24gUklTQ1ZfSVNBX1ZcXG5hcmNoL3Jpc2N2L0tjb25maWc6NjM1OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02MzYtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTY1MT1jb25maWcgUklTQ1ZfSVNBX1ZfUFJFRU1QVElWRVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY1NC1cXHRkZXBlbmRzIG9uIFJJU0NWX0lTQV9WXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY1NTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjU2LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02NjU9Y29uZmlnIFJJU0NWX0lTQV9aQVdSU1xcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY2Ny1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY2ODpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjY5LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02NzY9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkFCSEFcXG5hcmNoL3Jpc2N2L0tjb25maWctNjc3LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6Njc4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02NzktXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YWJoYSlcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02ODM9Y29uZmlnIFJJU0NWX0lTQV9aQUJIQVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY4Ni1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY4NzpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjg4LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02OTQ9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkFDQVNcXG5hcmNoL3Jpc2N2L0tjb25maWctNjk1LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6Njk2OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02OTctXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YWNhcylcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03MDE9Y29uZmlnIFJJU0NWX0lTQV9aQUNBU1xcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTcwMy1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjcwNDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzA1LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03MTE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJCXFxuYXJjaC9yaXNjdi9LY29uZmlnLTcxMi1cXHRib29sXFxuYXJjaC9yaXNjdi9LY29uZmlnOjcxMzpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzE0LVxcdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJiKVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTcyNj1jb25maWcgVE9PTENIQUlOX0hBU19aQkFcXG5hcmNoL3Jpc2N2L0tjb25maWctNzI3LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzI4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03MjktXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmEpXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzM0PWNvbmZpZyBSSVNDVl9JU0FfWkJBXFxuYXJjaC9yaXNjdi9LY29uZmlnLTczNS1cXHRib29sIFxcXCJaYmEgZXh0ZW5zaW9uIHN1cHBvcnQgZm9yIGJpdCBtYW5pcHVsYXRpb24gaW5zdHJ1Y3Rpb25zXFxcIlxcbmFyY2gvcmlzY3YvS2NvbmZpZzo3MzY6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTczNy1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzQ2PWNvbmZpZyBSSVNDVl9JU0FfWkJCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzQ4LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzQ5OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NTAtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTc2MT1jb25maWcgVE9PTENIQUlOX0hBU19aQkNcXG5hcmNoL3Jpc2N2L0tjb25maWctNzYyLVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzYzOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NjQtXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmMpXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzY5PWNvbmZpZyBSSVNDVl9JU0FfWkJDXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzczLVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzc0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NzUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTc4ND1jb25maWcgVE9PTENIQUlOX0hBU19aQktCXFxuYXJjaC9yaXNjdi9LY29uZmlnLTc4NS1cXHRib29sXFxuYXJjaC9yaXNjdi9LY29uZmlnOjc4NjpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzg3LVxcdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJrYilcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03OTI9Y29uZmlnIFJJU0NWX0lTQV9aQktCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzk1LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzk2OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03OTctXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTgwNj1jb25maWcgUklTQ1ZfSVNBX1pJQ0JPTVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTgwOS1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjgxMDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctODExLVxcdHNlbGVjdCBSSVNDVl9ETUFfTk9OQ09IRVJFTlRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz04MjM9Y29uZmlnIFJJU0NWX0lTQV9aSUNCT1pcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04MjUtXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzo4MjY6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTgyNy1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9ODM1PWNvbmZpZyBSSVNDVl9JU0FfWklDQk9QXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctODM4LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODM5OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04NDAtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTg1MD1jb25maWcgUklTQ1ZfSVNBX1NWUlNXNjBUNTlCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctODUzLVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODU0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04NTUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTg5Mj1jb25maWcgRlBVXFxuYXJjaC9yaXNjdi9LY29uZmlnLTg5My1cXHRib29sIFxcXCJGUFUgc3VwcG9ydFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODk0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04OTUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTkwMj1jb25maWcgSVJRX1NUQUNLU1xcbmFyY2gvcmlzY3YvS2NvbmZpZy05MDMtXFx0Ym9vbCBcXFwiSW5kZXBlbmRlbnQgaXJxIFxcdTAwMjYgc29mdGlycSBzdGFja3NcXFwiIGlmIEVYUEVSVFxcbmFyY2gvcmlzY3YvS2NvbmZpZzo5MDQ6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTkwNS1cXHRzZWxlY3QgSEFWRV9JUlFfRVhJVF9PTl9JUlFfU1RBQ0tcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDY4PWNvbmZpZyBSSVNDVl9CT09UX1NQSU5XQUlUXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctMTA3MC1cXHRkZXBlbmRzIG9uIFNNUFxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMDcxOlxcdGRlZmF1bHQgeSBpZiBSSVNDVl9TQklfVjAxIHx8IFJJU0NWX01fTU9ERVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMDcyLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEyMDItXFx0ICBkb2VzIG5vdCBnZXQgcHJvdGVjdGlvbiBcXFwiZm9yIGZyZWVcXFwiLlxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjAzOlxcdCAgZGVmYXVsdCB5LlxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjA0LVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTEyNTU9Y29uZmlnIEVGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNTgtXFx0ZGVwZW5kcyBvbiBNTVVcXG5hcmNoL3Jpc2N2L0tjb25maWc6MTI1OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctMTI2MC1cXHRzZWxlY3QgQVJDSF9TVVBQT1JUU19BQ1BJIGlmIDY0QklUXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9MTI3NT1jb25maWcgRE1JXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctMTI3Ny1cXHRkZXBlbmRzIG9uIEVGSVxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjc4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjc5LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMzA4PWNvbmZpZyBSSVNDVl9JU0FfRkFMTEJBQ0tcXG5hcmNoL3Jpc2N2L0tjb25maWctMTMwOS1cXHRib29sIFxcXCJQZXJtaXQgZmFsbGluZyBiYWNrIHRvIHBhcnNpbmcgcmlzY3YsaXNhIGZvciBleHRlbnNpb24gc3VwcG9ydCBieSBkZWZhdWx0XFxcIlxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMzEwOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMzExLVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MTYuOTE0NTU4NDc4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTIwNTY5MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIFJJU0MtViBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayBkb3duIHRoZXNlIFJJU0MtViBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgYFJJU0NWX1NCSWAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGlmIHdlJ3JlICpub3QqIGluIGBSSVNDVl9NX01PREVgLiBGdXJ0aGVybW9yZSwgYFJJU0NWX01fTU9ERWAgc2VlbXMgdG8gYmUgZW5hYmxlZCBpZiB0aGVyZSdzIG5vIE1lbW9yeSBNYW5hZ2VtZW50IFVuaXQgKGBNTVVgKS4gU28sIGlmIHRoZSB0YXJnZXQgaXMgYSB0eXBpY2FsIGtlcm5lbCB3aXRoIGFuIE1NVSwgYFJJU0NWX1NCSWAgc2hvdWxkIGJlIHNldCB0byAneScsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHdvdWxkIGV4cGVjdCB0aGF0LiBOb3csIEknbSBjdXJpb3VzIGFib3V0IGBSSVNDVl9QTVVgLiBJcyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgc3VwcG9ydCBlbmFibGVkIGJ5IGRlZmF1bHQ/IExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0LCBteSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCB3aWxsIGRlcGVuZCBvbiB0aGUgb3ZlcmFyY2hpbmcgYFJJU0NWYCBvcHRpb24sIG5vdCBhIGRlZmF1bHQgJ3knLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTQxLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MjAuNTI2NjE4MzI0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU4OTk0Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctNzctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gUklTQ1ZcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjg4OmNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuZHJpdmVycy9wZXJmL0tjb25maWctODktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjIyLjA4NTYyMjU5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTcwMDI4NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTmF2aWdhdGluZyB0aGUgUklTQy1WIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQncyBjbGVhciB0aGVyZSdzIG5vIGF1dG9tYXRpYyBlbmFibGluZyBvZiBgZGVmYXVsdCB5YCBmb3IgdGhlIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdC4gVGhhdCBtZWFucyBJIG5lZWQgdG8gYmUgZXhwbGljaXQgYWJvdXQgZW5hYmxpbmcgYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1BNVV9TQklgLiBKdXN0IG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIHRoYXQuIE5vdywgYSBxdWljayBxdWVzdGlvbiBwb3BzIHVwOiBpcyBgUklTQ1ZfUE1VYCBkZWZpbmVkIGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0IGJlZm9yZSBJIG1vdmUgZm9yd2FyZCwgb3IgSSBjb3VsZCBydW4gaW50byBwcm9ibGVtcy4gQmVzdCBwcmFjdGljZSwgbGV0J3MgaGVhZCBvdmVyIHRvIGBkcml2ZXJzL3BlcmYvS2NvbmZpZ2AsIHByb2JhYmx5IGFyb3VuZCBsaW5lIDc4IG9yIHNvLCB0byBnZXQgdGhlIGRlZmluaXRpdmUgYW5zd2VyIG9uIHRoYXQuIEknbGwgdGFrZSBhIHF1aWNrIHNjYW4gdGhlcmUgYW5kIHNlZSB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTQyMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjI1LjM4MjYyODU1MVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3BlcmYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA3NSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA3NTpcXHRcXHRkZXBlbmRzIG9uIEFSTV9QTVUgXFx1MDAyNlxcdTAwMjYgQ1BVX1hTQ0FMRVxcbiAgNzY6XFx0XFx0ZGVmX2Jvb2wgeVxcbiAgNzc6XFx0XFxuICA3ODpcXHRjb25maWcgUklTQ1ZfUE1VXFxuICA3OTpcXHRcXHRkZXBlbmRzIG9uIFJJU0NWXFxuICA4MDpcXHRcXHRib29sIFxcXCJSSVNDLVYgUE1VIGZyYW1ld29ya1xcXCJcXG4gIDgxOlxcdFxcdGRlZmF1bHQgeVxcbiAgODI6XFx0XFx0aGVscFxcbiAgODM6XFx0XFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgQ1BVIHBlcmZvcm1hbmNlIG1vbml0b3JzIG9uIFJJU0NWLWJhc2VkXFxuICA4NDpcXHRcXHQgIHN5c3RlbXMuIFRoaXMgcHJvdmlkZXMgdGhlIGNvcmUgUE1VIGZyYW1ld29yayB0aGF0IGFic3RyYWN0cyBjb21tb25cXG4gIDg1OlxcdFxcdCAgUE1VIGZ1bmN0aW9uYWxpdGllcyBpbiBhIGNvcmUgbGlicmFyeSBzbyB0aGF0IGRpZmZlcmVudCBQTVUgZHJpdmVyc1xcbiAgODY6XFx0XFx0ICBjYW4gcmV1c2UgaXQuXFxuICA4NzpcXHRcXG4gIDg4OlxcdGNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuICA4OTpcXHRcXHRkZXBlbmRzIG9uIFJJU0NWX1BNVVxcbiAgOTA6XFx0XFx0Ym9vbCBcXFwiUklTQy1WIGxlZ2FjeSBQTVUgaW1wbGVtZW50YXRpb25cXFwiXFxuICA5MTpcXHRcXHRkZWZhdWx0IHlcXG4gIDkyOlxcdFxcdGhlbHBcXG4gIDkzOlxcdFxcdCAgU2F5IHkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBsZWdhY3kgQ1BVIHBlcmZvcm1hbmNlIG1vbml0b3JcXG4gIDk0OlxcdFxcdCAgaW1wbGVtZW50YXRpb24gb24gUklTQy1WIGJhc2VkIHN5c3RlbXMuIFRoaXMgb25seSBhbGxvd3MgY291bnRpbmdcXG4gIDk1OlxcdFxcdCAgb2YgY3ljbGUvaW5zdHJ1Y3Rpb24gY291bnRlciBhbmQgZG9lc24ndCBzdXBwb3J0IGNvdW50ZXIgb3ZlcmZsb3csXFxuICA5NjpcXHRcXHQgIG9yIHByb2dyYW1tYWJsZSBjb3VudGVycy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZS5cXG4gIDk3OlxcdFxcbiAgOTg6XFx0Y29uZmlnIFJJU0NWX1BNVV9TQklcXG4gIDk5OlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfUE1VIFxcdTAwMjZcXHUwMDI2IFJJU0NWX1NCSVxcbiAxMDA6XFx0XFx0Ym9vbCBcXFwiUklTQy1WIFBNVSBiYXNlZCBvbiBTQkkgUE1VIGV4dGVuc2lvblxcXCJcXG4gMTAxOlxcdFxcdGRlZmF1bHQgeVxcbiAxMDI6XFx0XFx0aGVscFxcbiAxMDM6XFx0XFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIENQVSBwZXJmb3JtYW5jZSBtb25pdG9yXFxuIDEwNDpcXHRcXHQgIHVzaW5nIFNCSSBQTVUgZXh0ZW5zaW9uIG9uIFJJU0MtViBiYXNlZCBzeXN0ZW1zLiBUaGlzIG9wdGlvbiBwcm92aWRlc1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyNS4zODI3MDEyMzFaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3NjgxNTk3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUklTQy1WIFBNVSBDb25maWd1cmF0aW9uIC0gQSBRdWljayBBc3Nlc3NtZW50KipcblxuQWxyaWdodCwgc28gYFJJU0NWX1BNVWAgYW5kIGBSSVNDVl9QTVVfU0JJYCBhcmUgYm90aCBzZXQgdG8gYGRlZmF1bHQgeWAuIFRoYXQncyBnb29kOyBpdCBzaW1wbGlmaWVzIHRoaW5ncy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiT2theSwgd2UncmUgbGlrZWx5IHNldCB1cCBmb3Igc29tZSBiYXNpYyBwZXJmb3JtYW5jZSBtb25pdG9yaW5nLlwiIFRoaXMgaW1wbGllcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIHJlcXVpcmVkIGhhcmR3YXJlIHN1cHBvcnQsIG9yIGF0IGxlYXN0IGEgbWluaW1hbCBzb2Z0d2FyZSBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgYmVjYXVzZSBvZiB0aG9zZSBkZWZhdWx0cywgdGhlIHJlc3QgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZC4gQXNzdW1pbmcgd2Ugd2FudCB0byBzdXBwb3J0IEtWTSAod2hpY2gsIGdpdmVuIHRoZSBjb250ZXh0LCBzZWVtcyBoaWdobHkgbGlrZWx5KSwgdGhlIG9ubHkgZnVydGhlciBjb25zaWRlcmF0aW9uIGhlcmUgaXMgYXJvdW5kIEtWTSBjb25maWd1cmF0aW9uLlxuXG5NeSBwcmltYXJ5IGZvY3VzIHNoaWZ0cyB0byB0aGUgYEtWTWAgb3B0aW9uLCB3aGljaCB3aWxsIGJlIHRoZSBoZWFydCBvZiB0aGUgdmlydHVhbGl6YXRpb24gcHJvY2VzcyBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEtWTSBzdXBwb3J0IGlzIGVuYWJsZWQsIHNvIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIEtjb25maWcgaW4gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgLiBJJ2xsIHByb2JhYmx5IHNjYW4gZm9yIGRlcGVuZGVuY2llcyBhbmQgYW55IGNvbmRpdGlvbmFsIGxvZ2ljIHRoZXJlLCBqdXN0IHRvIGNvbmZpcm0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMTI5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyOC44NTk1MjA0NjlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA4NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0c291cmNlIFxcXCJ2aXJ0L2t2bS9LY29uZmlnXFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXFxuICAgOTpcXHRcXHRib29sIFxcXCJWaXJ0dWFsaXphdGlvblxcXCJcXG4gIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cXG4gIDEyOlxcdFxcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXFxuICAxMzpcXHRcXHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgSWYgeW91IHNheSBOLCBhbGwgb3B0aW9ucyBpbiB0aGlzIHN1Ym1lbnUgd2lsbCBiZSBza2lwcGVkIGFuZFxcbiAgMTY6XFx0XFx0ICBkaXNhYmxlZC5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0aWYgVklSVFVBTElaQVRJT05cXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEtWTVxcbiAgMjE6XFx0XFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgMjM6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUUNISVBcXG4gIDI0OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFfUk9VVElOR1xcbiAgMjU6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxcbiAgMjY6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxcbiAgMjc6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxcbiAgMjg6XFx0XFx0c2VsZWN0IEtWTV9DT01NT05cXG4gIDI5OlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG4gIDMwOlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyOC44NTk1ODI2NjlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYxMjIyODM4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUklTQy1WIEtWTSBQTVUgRXZlbnQgSW5mb3JtYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBpbnRvIGhvdyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgZXZlbnRzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBlbnZpcm9ubWVudC4gQ2xlYXJseSwgdW5kZXJzdGFuZGluZyBib3RoIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGlzIGNyaXRpY2FsIGhlcmUuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb24gYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC5cblxuTGV0J3Mgc2VlLCBpdCdzIGxvY2F0ZWQgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNgLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMsIGlzIHRoaXMgZnVuY3Rpb24gYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJlIGxvb2tzIGxpa2UgdGhpcywgaXQgdGFrZXMgYSBgc3RydWN0IGt2bV92Y3B1ICp2Y3B1YCwgYW5kIGEgaGFuZGZ1bCBvZiBgdW5zaWduZWQgbG9uZ2AgdmFsdWVzOiBgc2FkZHJfbG93YCwgYHNhZGRyX2hpZ2hgLCBgbnVtX2V2ZW50c2AsIGFuZCBgZmxhZ3NgLiBGaW5hbGx5LCB0aGVyZSdzIGBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YWAuIFNvLCB3aGF0IGNhbGxzIHRoaXMgZnVuY3Rpb24/IEkgc3VzcGVjdCBpdCdzIGdvaW5nIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIFN5c3RlbSBCb290IEludGVyZmFjZSAoU0JJKS4gTGV0J3MgdHJhY2UgaXQgYW5kIHNlZSBpZiBpdCBpcyBjYWxsZWQgZnJvbSBga3ZtX3NiaV9leHRfcG11X2hhbmRsZXJgLiBUaGF0J3MgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jYC4gVGltZSB0byBkaXZlIGluIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDg0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjMzLjQ3MTgxMzkxWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Mjg0NjMyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYz00Mjc9aW50IGt2bV9yaXNjdl92Y3B1X3BtdV9zbmFwc2hvdF9zZXRfc2htZW0oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdyxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDc4LVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmM6NDc5OmludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93LFxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDgwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgbG9uZyBzYWRkcl9oaWdoLCB1bnNpZ25lZCBsb25nIG51bV9ldmVudHMsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYz0xNj1zdGF0aWMgaW50IGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bixcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jLTc2LVxcdGNhc2UgU0JJX0VYVF9QTVVfRVZFTlRfR0VUX0lORk86XFxuYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmM6Nzc6XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8odmNwdSwgY3AtXFx1MDAzZWEwLCBjcC1cXHUwMDNlYTEsIGNwLVxcdTAwM2VhMiwgY3AtXFx1MDAzZWEzLCByZXRkYXRhKTtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYy03OC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MzMuNTE0NjY0NzA5WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMzU4MjgwOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyoqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgYFNCSV9FWFRfUE1VX0VWRU5UX0dFVF9JTkZPYCBoYW5kbGVyLiBJdCdzIHRyaWdnZXJlZCB3aGVuIHRoZSBndWVzdCBleGVjdXRlcyBhbiBgZWNhbGxgIGluc3RydWN0aW9uIHdpdGggdGhlIHJpZ2h0IFNCSSBleHRlbnNpb24gYW5kIGZ1bmN0aW9uIElEcy4gQW5kIHNpbmNlIFN5emthbGxlciBhbHJlYWR5IGZ1enplcyBLVk0gYnkgY3JlYXRpbmcgVk1zIGFuZCBleGVjdXRpbmcgaW5zdHJ1Y3Rpb25zLCBpbmNsdWRpbmcgYGVjYWxsYCwgdGhpcyBpcyBkZWZpbml0ZWx5IGEgZnV6emFibGUgdGFyZ2V0LlxuXG5UaGUgcHJpbWFyeSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuICBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZCBmb3IgZnV6emluZywgYW5kIGl0IGxvb2tzIGxpa2UgYEtWTWAgaXMgdGhlIGNydWNpYWwgb25lLiBgVklSVFVBTElaQVRJT05gIGlzIGluIHRoZSBtZW51Y29uZmlnLCBidXQgYEtWTWAgaXMgc3VmZmljaWVudCwgc28gSSdsbCBqdXN0IGxpc3QgYEtWTWAuXG5cbkkgZG91YmxlLWNoZWNrZWQsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGlzICpub3QqIGEgc3RhdGljIGZ1bmN0aW9uOyBpdCdzIGRlZmluZWQgYXMgYSByZWd1bGFyIGBpbnRgIGZ1bmN0aW9uIGluIGB2Y3B1X3BtdS5jYC4gVGhhdCBtZWFucyBpdCdzIGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIGl0cyBmaWxlIGFuZCBpcyBtb3JlIHJlYWRpbHkgZnV6emFibGUuXG5cbkxvb2tpbmcgYXQgdGhlIGNvZGUgY2hhbmdlLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiBiZWluZyBtb2RpZmllZCBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLlxuXG5JIGFsc28gbG9va2VkIGludG8gdGhlIGRlZmF1bHQgY29uZmlncy4gYFJJU0NWX1BNVV9TQklgLCBgUklTQ1ZfUE1VYCwgYW5kIGBSSVNDVl9TQklgIGFyZSBhbGwgZGVmYXVsdC1lbmFibGVkLiBCdXQgYWdhaW4sIGBLVk1gIGlzIHRoZSBtYWluIGVuYWJsZXIgaGVyZS5cblxuTm93LCBsZXQncyByZXZpZXcgdGhlIHBhdGNoIGl0c2VsZi4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLiBUaGV5J3JlIGZpeGluZyBhbiBpbnRlZ2VyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgYW5kIGNoYW5naW5nIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBmcm9tIGBremFsbG9jYCB0byBga3ZjYWxsb2NgLiAgVGhpcyBpcyBhIGdvb2Qgc2lnbjsgaXQncyB0b3VjaGluZyBtZW1vcnkgYWxsb2NhdGlvbiwgd2hpY2ggaXMgYSBjb21tb24gc291cmNlIG9mIGJ1Z3MuXG5cblRoZSBjb2RlIGlzIGFic29sdXRlbHkgcmVhY2hhYmxlIHZpYSBLVk0gb24gUklTQy1WLiBTeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBmdXp6aW5nIHRoaXMuICBUaGUgY29yZSBmdW5jdGlvbiBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLiAgVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgYEtWTWAuXG5cblRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4gSSdsbCBtYXJrIHRoaXMgYXMgd29ydGggZnV6emluZywgc3BlY2lmeSBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGFzIHRoZSBmb2N1cyBzeW1ib2wsIGFuZCBsaXN0IGBLVk1gIGFzIHRoZSBlbmFibGVkIGNvbmZpZy4gTXkgcmVhc29uaW5nIHdpbGwgYmU6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MTE3MTcsIk91dHB1dFRva2VucyI6OTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjQ2Ljg3Mjk0ODg4OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczMjA1Mjc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIG92ZXJmbG93IGFuZCBjaGFuZ2VzIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljIGluIHRoZSBSSVNDLVYgS1ZNIFBNVSBTQkkgaGFuZGxlci4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIGEgZ3Vlc3QgVk0gZXhlY3V0aW5nIGFuIGVjYWxsIGluc3RydWN0aW9uLCBtYWtpbmcgaXQgaGlnaGx5IGZ1enphYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[0].run-triage(0) Phase: Succeeded StartedAt: 2026-07-31 22:24:49 +0000 UTC FinishedAt: 2026-07-31 22:39:48 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "", "targets": [ { "base": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "" }, "patched": { "arch": "amd64", "tree_name": "kvm-next", "tree_url": "https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/", "commit_hash": "a204badd8432f93b7e862e7dac6db0fe3d65f370", "config_name": "upstream-apparmor-kasan.config", "enable_configs": [ "KVM" ], "series_id": "bca038b5-e478-4659-990f-b88254dbc23d" }, "track": "KASAN", "fuzz": { "focus": [ "kvm" ], "focus_symbols": [ "kvm_riscv_vcpu_pmu_event_info" ], "corpus_urls": [ "https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db" ], "skip_cover_check": false, "bug_title_re": "" }, "retest": null } ], "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MW08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCA0MGY5ZjVjZTZjZmE2NTQyYjM2OGU2YTUxYzliMDk1MWRlZTcyMDUxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjI6Mzg6NDMgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0XG4tLS0gYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jXG5AQCAtMTIsNyAmIzQzOzEyLDkgQEBcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9lcnIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2xpbnV4L2t2bV9ob3N0LmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9ub3NwZWMuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9vdmVyZmxvdy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFx1MDAzZVxuJiM0MzsjaW5jbHVkZSBcdTAwM2NsaW51eC9zbGFiLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20vY3NyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20va3ZtX2lzYS5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjYXNtL2t2bV92Y3B1X3NiaS5oXHUwMDNlXG5AQCAtNDc5LDEzICYjNDM7NDgxLDE0IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdFx0XHQgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKVxuIHtcbiBcdHN0cnVjdCByaXNjdl9wbXVfZXZlbnRfaW5mbyAqZWluZm8gPSBOVUxMO1xuLVx0aW50IHNobWVtX3NpemUgPSBudW1fZXZlbnRzICogc2l6ZW9mKCplaW5mbyk7XG4mIzQzO1x0c2l6ZV90IHNobWVtX3NpemU7XG4gXHRncGFfdCBzaG1lbTtcbiBcdHUzMiBlaWR4LCBldHlwZTtcbiBcdHU2NCBlY29uZmlnO1xuIFx0aW50IHJldDtcbiBcbi1cdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpIHx8IG51bV9ldmVudHMgPT0gMCkpIHtcbiYjNDM7XHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFx1MDAyNiAoU1pfMTYgLSAxKSkgfHwgbnVtX2V2ZW50cyA9PSAwIHx8XG4mIzQzO1x0ICAgIGNoZWNrX211bF9vdmVyZmxvdyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwgXHUwMDI2c2htZW1fc2l6ZSkpIHtcbiBcdFx0cmV0ID0gU0JJX0VSUl9JTlZBTElEX1BBUkFNO1xuIFx0XHRnb3RvIG91dDtcbiBcdH1cbkBAIC01MDAsNyAmIzQzOzUwMyw4IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdH1cbiBcdH1cbiBcbi1cdGVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTtcbiYjNDM7XHRlaW5mbyA9IGt2Y2FsbG9jKG51bV9ldmVudHMsIHNpemVvZigqZWluZm8pLFxuJiM0MztcdFx0XHQgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOKTtcbiBcdGlmICghZWluZm8pIHtcbiBcdFx0cmV0ID0gU0JJX0VSUl9GQUlMVVJFO1xuIFx0XHRnb3RvIG91dDtcbkBAIC01MTIsNyAmIzQzOzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdGdvdG8gZnJlZV9tZW07XG4gXHR9XG4gXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnVtX2V2ZW50czsgaSYjNDM7JiM0MzspIHtcbiYjNDM7XHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXHUwMDNjIG51bV9ldmVudHM7IGkmIzQzOyYjNDM7KSB7XG4gXHRcdGVpZHggPSBlaW5mb1tpXS5ldmVudF9pZHg7XG4gXHRcdGV0eXBlID0ga3ZtX3BtdV9nZXRfcGVyZl9ldmVudF90eXBlKGVpZHgpO1xuIFx0XHRlY29uZmlnID0ga3ZtX3BtdV9nZXRfcGVyZl9ldmVudF9jb25maWcoZWlkeCwgZWluZm9baV0uZXZlbnRfZGF0YSk7XG5AQCAtNTI1LDcgJiM0Mzs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUztcbiBcbiBmcmVlX21lbTpcbi1cdGtmcmVlKGVpbmZvKTtcbiYjNDM7XHRrdmZyZWUoZWluZm8pO1xuIG91dDpcbiBcdHJldGRhdGEtXHUwMDNlZXJyX3ZhbCA9IHJldDtcbiBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozODwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4xbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5iZXN0LWV4cGVuc2l2ZTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFsKICAgICYjMzQ7S1ZNJiMzNDsKICBdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFsKICAgICYjMzQ7a3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8mIzM0OwogIF0sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggZml4ZXMgYW4gaW50ZWdlciBvdmVyZmxvdyBhbmQgY2hhbmdlcyBtZW1vcnkgYWxsb2NhdGlvbiBsb2dpYyBpbiB0aGUgUklTQy1WIEtWTSBQTVUgU0JJIGhhbmRsZXIuIFRoaXMgY29kZSBpcyByZWFjaGFibGUgZnJvbSBhIGd1ZXN0IFZNIGV4ZWN1dGluZyBhbiBlY2FsbCBpbnN0cnVjdGlvbiwgbWFraW5nIGl0IGhpZ2hseSBmdXp6YWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiB0cnVlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDQwZjlmNWNlNmNmYTY1NDJiMzY4ZTZhNTFjOWIwOTUxZGVlNzIwNTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgRnJpIEp1bCAzMSAyMjozODo0MyAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMgYi9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jCmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0Ci0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMKJiM0MzsmIzQzOyYjNDM7IGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYwpAQCAtMTIsNyAmIzQzOzEyLDkgQEAKICNpbmNsdWRlICZsdDtsaW51eC9lcnIuaCZndDsKICNpbmNsdWRlICZsdDtsaW51eC9rdm1faG9zdC5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L25vc3BlYy5oJmd0OwomIzQzOyNpbmNsdWRlICZsdDtsaW51eC9vdmVyZmxvdy5oJmd0OwogI2luY2x1ZGUgJmx0O2xpbnV4L3BlcmYvcmlzY3ZfcG11LmgmZ3Q7CiYjNDM7I2luY2x1ZGUgJmx0O2xpbnV4L3NsYWIuaCZndDsKICNpbmNsdWRlICZsdDthc20vY3NyLmgmZ3Q7CiAjaW5jbHVkZSAmbHQ7YXNtL2t2bV9pc2EuaCZndDsKICNpbmNsdWRlICZsdDthc20va3ZtX3ZjcHVfc2JpLmgmZ3Q7CkBAIC00NzksMTMgJiM0Mzs0ODEsMTQgQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3cKIAkJCQkgIHVuc2lnbmVkIGxvbmcgZmxhZ3MsIHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhKQogewogCXN0cnVjdCByaXNjdl9wbXVfZXZlbnRfaW5mbyAqZWluZm8gPSBOVUxMOwotCWludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pOwomIzQzOwlzaXplX3Qgc2htZW1fc2l6ZTsKIAlncGFfdCBzaG1lbTsKIAl1MzIgZWlkeCwgZXR5cGU7CiAJdTY0IGVjb25maWc7CiAJaW50IHJldDsKIAotCWlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgJmFtcDsgKFNaXzE2IC0gMSkgfHwgbnVtX2V2ZW50cyA9PSAwKSkgewomIzQzOwlpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93ICZhbXA7IChTWl8xNiAtIDEpKSB8fCBudW1fZXZlbnRzID09IDAgfHwKJiM0MzsJICAgIGNoZWNrX211bF9vdmVyZmxvdyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwgJmFtcDtzaG1lbV9zaXplKSkgewogCQlyZXQgPSBTQklfRVJSX0lOVkFMSURfUEFSQU07CiAJCWdvdG8gb3V0OwogCX0KQEAgLTUwMCw3ICYjNDM7NTAzLDggQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3cKIAkJfQogCX0KIAotCWVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTsKJiM0MzsJZWluZm8gPSBrdmNhbGxvYyhudW1fZXZlbnRzLCBzaXplb2YoKmVpbmZvKSwKJiM0MzsJCQkgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOKTsKIAlpZiAoIWVpbmZvKSB7CiAJCXJldCA9IFNCSV9FUlJfRkFJTFVSRTsKIAkJZ290byBvdXQ7CkBAIC01MTIsNyAmIzQzOzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93CiAJCWdvdG8gZnJlZV9tZW07CiAJfQogCi0JZm9yIChpbnQgaSA9IDA7IGkgJmx0OyBudW1fZXZlbnRzOyBpJiM0MzsmIzQzOykgewomIzQzOwlmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgJmx0OyBudW1fZXZlbnRzOyBpJiM0MzsmIzQzOykgewogCQllaWR4ID0gZWluZm9baV0uZXZlbnRfaWR4OwogCQlldHlwZSA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfdHlwZShlaWR4KTsKIAkJZWNvbmZpZyA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfY29uZmlnKGVpZHgsIGVpbmZvW2ldLmV2ZW50X2RhdGEpOwpAQCAtNTI1LDcgJiM0Mzs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdwogCQlyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUzsKIAogZnJlZV9tZW06Ci0Ja2ZyZWUoZWluZm8pOwomIzQzOwlrdmZyZWUoZWluZm8pOwogb3V0OgogCXJldGRhdGEtJmd0O2Vycl92YWwgPSByZXQ7CiAKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc2NAoJCQkJCQkJb3V0cHV0OiAzNQoJCQkJCQkJdGhvdWdodHM6IDI4MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBNVSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgcGF0Y2ggZm9yIGBhcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jYC4gSXQmIzM5O3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBpc3N1ZSB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IGZvciBwZXJmb3JtYW5jZSBldmVudHMuIFRoZXkmIzM5O3JlIGRvaW5nIGEgY2hlY2sgZm9yIGBudW1fZXZlbnRzICogc2l6ZW9mKCplaW5mbylgIGFuZCB0aGVuIHN3aXRjaGluZyBmcm9tIGBremFsbG9jYCB0byBga3ZjYWxsb2NgIHdpdGggc29tZSBleHRyYSBmbGFnczogYEdGUF9LRVJORUxfQUNDT1VOVCB8IF9fR0ZQX05PV0FSTmAuICBUaGV5IGFsc28gdXBkYXRlZCB0aGUgbG9vcCB2YXJpYWJsZSBgaWAgdG8gYHVuc2lnbmVkIGxvbmdgIGluIHRoZSBwcm9jZXNzLiBUaGlzIGlzIGdvb2QsIHJlYWxseSB0aWdodGVuaW5nIHVwIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBsb2dpYywgcHJldmVudGluZyBpbnRlZ2VyIG92ZXJmbG93IGFuZCBtaXRpZ2F0aW5nIHRoZSByaXNrIG9mIG91dC1vZi1tZW1vcnkgZXJyb3JzIHdoaWNoLCB3aGVuIGRlYWxpbmcgd2l0aCBwZXJmb3JtYW5jZSBldmVudHMsIGNvdWxkIGJlIHByb2JsZW1hdGljLgoKTXkgbWluZCBpbW1lZGlhdGVseSBqdW1wcyB0byBmdXp6aW5nLiBJcyB0aGlzIHNvbWV0aGluZyB3ZSBjYW4gdGhyb3cgYXQgc3l6a2FsbGVyPyBJdCYjMzk7cyBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c3VhbGx5IHg4NiBmb2N1c2VkIGZvciB0aGF0IHBhcnRpY3VsYXIgdG9vbCwgYnV0IHdhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBSSVNDLVYgc3VwcG9ydCBub3csIHNvIGl0JiMzOTtzIGEgZ29vZCBjYW5kaWRhdGUuIENydWNpYWxseSwgdGhlIGZ1bmN0aW9uIHdlJiMzOTtyZSB0YXJnZXRpbmcgaXMgYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC4gVGhhdCYjMzk7cyB0aGUgZW50cnkgcG9pbnQgdG8gaW52ZXN0aWdhdGUuCgpJIG5lZWQgdG8gbmFpbCBkb3duIHRoZSBjb25maWcgb3B0aW9ucyB0aGF0IGVuYWJsZSB0aGlzIGNvZGUgcGF0aC4gTGV0JiMzOTtzIGRpZyBpbnRvIHRoZSBidWlsZCBwcm9jZXNzLCBzcGVjaWZpY2FsbHkgYGFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlYCBvciBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25maWd1cmF0aW9uIGtub2JzIHRoYXQgbmVlZCB0byBiZSBmbGlwcGVkIHRvIGdldCB0aGlzIGB2Y3B1X3BtdS5jYCBmaWxlIGNvbXBpbGVkIGludG8gdGhlIEtWTSBpbWFnZS4gIEtub3dpbmcgdGhlIGV4YWN0IGJ1aWxkIHJlcXVpcmVtZW50cyBpcyBrZXkgdG8gbWFraW5nIHRoaXMgZnV6emluZyBpbnZlc3RpZ2F0aW9uIGFjdGlvbmFibGUuIElmIHdlIGNhbiBnZXQgYSBtaW5pbWFsLCBmdXp6YWJsZSBjb25maWd1cmF0aW9uLCB3ZSYjMzk7cmUgaW4gYnVzaW5lc3MuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmNwdV9wbXUubyYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtLyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZT0yOD1rdm0teSAmIzQzOz0gdmNwdV9vbmVyZWcub1xuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU6Mjk6a3ZtLSQoQ09ORklHX1JJU0NWX1BNVV9TQkkpICYjNDM7PSB2Y3B1X3BtdS5vXG5hcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZS0zMC1rdm0teSAmIzQzOz0gdmNwdV9zYmkub1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDM1NzAKCQkJCQkJCW91dHB1dDogMjgKCQkJCQkJCXRob3VnaHRzOiA0OQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIGluaXRpYWwgdGhvdWdodHMsIGV4cHJlc3NlZCBmcm9tIGEgZmlyc3QtcGVyc29uIHBlcnNwZWN0aXZlLCBhcyBhIHNlYXNvbmVkIGVtYmVkZGVkIHN5c3RlbXMgZGV2ZWxvcGVyOgoKKipJbml0aWFsIENvbmZpZ3VyYXRpb24gQ29uc2lkZXJhdGlvbnMgZm9yIFJJU0MtVioqCgpBbHJpZ2h0LCBzbyB0aGUgcHJvamVjdCYjMzk7cyByZXF1aXJlbWVudHMgYXJlIGJlY29taW5nIGNsZWFyZXIuIEl0IHNlZW1zIHByZXR0eSBsaWtlbHkgdGhhdCB3ZSYjMzk7cmUgZ29pbmcgdG8gbmVlZCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIOKAkyB0aGF0JiMzOTtzIGEgZ2l2ZW4uIEFuZCBvZiBjb3Vyc2UsIGBDT05GSUdfS1ZNYCBmb3IgUklTQy1WIGlzIHByYWN0aWNhbGx5IHN0YW5kYXJkIHRoZXNlIGRheXMsIHBhcnRpY3VsYXJseSBnaXZlbiB0aGUgdHJlbmQgdG93YXJkcyB2aXJ0dWFsaXphdGlvbi4gQmVmb3JlIGRpdmluZyBpbiB0b28gZGVlcCwgSSBzaG91bGQgZG91YmxlLWNoZWNrIHRoYXQgYENPTkZJR19SSVNDVl9QTVVfU0JJYCBmbGFnIHdpdGhpbiB0aGUgS2NvbmZpZyBjb25maWd1cmF0aW9uIGZpbGVzLiBHb3R0YSBtYWtlIHN1cmUgaXQmIzM5O3Mgc2V0IHVwIHRoZSB3YXkgSSBleHBlY3QsIGFuZCB0aGF0IHRoZSBkZXBlbmRlbmNpZXMgYXJlIGFsbCBhY2NvdW50ZWQgZm9yLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSSVNDVl9QTVVfU0JJJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnPTg4PWNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXG4tLVxuZHJpdmVycy9wZXJmL0tjb25maWctOTctXG5kcml2ZXJzL3BlcmYvS2NvbmZpZzo5ODpjb25maWcgUklTQ1ZfUE1VX1NCSVxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXHRkZXBlbmRzIG9uIFJJU0NWX1BNVSBcdTAwMjZcdTAwMjYgUklTQ1ZfU0JJXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzg8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMzg5NwoJCQkJCQkJb3V0cHV0OiAzMQoJCQkJCQkJdGhvdWdodHM6IDU3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246CgoqKkRlcGVuZGVuY2llcyBhbmQgS1ZNIENvbmZpZ3VyYXRpb24gZm9yIFJJU0MtViBQZXJmb3JtYW5jZSBNb25pdG9yaW5nKioKCkFscmlnaHQsIGxldCYjMzk7cyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBzeXN0ZW0gaXMgdGVsbGluZyBtZSB0aGF0IGBSSVNDVl9QTVVfU0JJYCByZWxpZXMgb24gYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1NCSWAuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZSBTQkkgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGludGVyZmFjZSwgYW5kIHRoZSBQTVUgaXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0LiBUaGUgU0JJIHRoZW4gbGlrZWx5IGV4cG9zZXMgdGhlIFBNVSBkYXRhLgoKTm93LCB0aGUgc3lzdGVtIGhpZ2hsaWdodHMgdGhhdCBgS1ZNYCBpcyBhbHNvIG5lZWRlZCBmb3IgdGhpcyBjb25maWd1cmF0aW9uIHRvIHdvcmssIEkmIzM5O2QgYmV0dGVyIGNvbmZpcm0gd2hlcmUgdG8gZW5hYmxlIGBLVk1gIGluIHRoZSBgS2NvbmZpZ2AuCgpTbywgdGhlIG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgIHRvIHZlcmlmeSB0aGUgbmVjZXNzYXJ5IGBLVk1gIHNldHRpbmdzIGFuZCBkZXBlbmRlbmNpZXMuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHN1cHBvcnQgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW5mcmFzdHJ1Y3R1cmUgSSYjMzk7bSBzZXR0aW5nIHVwLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBLVk0mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3Jpc2N2L2t2bS8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0xOS1cbmFyY2gvcmlzY3Yva3ZtL0tjb25maWc6MjA6Y29uZmlnIEtWTVxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cdHRyaXN0YXRlIFwmIzM0O0tlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFwmIzM0O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM4PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQyODQKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiA3MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipLZXJuZWwgQ29uZmlndXJhdGlvbiBDb251bmRydW0qKgoKQWxyaWdodCwgbGV0JiMzOTtzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IHBvaW50cyB0b3dhcmRzIGEgbmVlZCBmb3IgYEtWTWAsIGBSSVNDVl9QTVVfU0JJYCwgYFJJU0NWX1BNVWAsIGFuZCBgUklTQ1ZfU0JJYCB0byBnZXQgdGhpcyB0aGluZyBodW1taW5nLiBCdXQsIGJhc2VkIG9uIG15IHBhc3QgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIHNvcnRzIG9mIHRoaW5ncywgdGhlIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfU0JJYCBvcHRpb25zIGFyZSBsaWtlbHkgZWl0aGVyIHByZS1lbmFibGVkIGJ5IGRlZmF1bHQgb3IgYSB0cml2aWFsIGluY2x1c2lvbi4gU28sIGJlZm9yZSBJIGdvIGRvd24gYSByYWJiaXQgaG9sZSwgbGV0JiMzOTtzIHF1aWNrbHkgdmVyaWZ5IHRoZSBzdGF0dXMgb2YgdGhvc2UgdHdvLiBJdCBtYWtlcyBzZW5zZSB0byBjaGVjayB0aGUgZWFzeSB3aW5zIGZpcnN0LiBJJiMzOTtsbCB0YWtlIGEgbG9vayBhdCB0aGUgY29uZmlnIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgUklTQ1ZfUE1VJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7JiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxuZHJpdmVycy9wZXJmL0tjb25maWctNzktXHRkZXBlbmRzIG9uIFJJU0NWXG4tLVxuZHJpdmVycy9wZXJmL0tjb25maWctODctXG5kcml2ZXJzL3BlcmYvS2NvbmZpZzo4ODpjb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxuZHJpdmVycy9wZXJmL0tjb25maWctODktXHRkZXBlbmRzIG9uIFJJU0NWX1BNVVxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6OTg6Y29uZmlnIFJJU0NWX1BNVV9TQklcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk5LVx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXHUwMDI2XHUwMDI2IFJJU0NWX1NCSVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NzE2CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOgoKKipEaXZpbmcgaW50byB0aGUgUklTQy1WIFNCSSBMYW5kc2NhcGUqKgoKUmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYFJJU0NWX1NCSWAgc2l0dWF0aW9uLiBUaGVyZSYjMzk7cyBhIGxvdCBvZiBhY3Rpdml0eSBpbiB0aGlzIGFyZWEsIGFuZCBJIHdhbnQgdG8gbWFrZSBzdXJlIEkmIzM5O20gdXAtdG8tZGF0ZS4gSSBuZWVkIHRvIHF1aWNrbHkgYXNzZXNzIHRoZSBjdXJyZW50IHN0YXRlLiBXaGF0IGFyZSB0aGUga2V5IGltcGxlbWVudGF0aW9ucz8gQXJlIHRoZXJlIGFueSBicmVha2luZyBjaGFuZ2VzIEkgc2hvdWxkIGtub3cgYWJvdXQ/IEFuZCBtb3N0IGltcG9ydGFudGx5LCB3aGF0IGFyZSB0aGUgaW1wbGljYXRpb25zIGZvciBteSBjdXJyZW50IHdvcms/IEkgbmVlZCB0byBxdWlja2x5IGRldGVybWluZSB0aGUgY29udGV4dCBJJiMzOTttIGRlYWxpbmcgd2l0aC4gSXMgdGhpcyBmb3IgYSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgdmFyaWFudCwgb3IgaXMgdGhpcyBhIGdlbmVyYWwgb3ZlcnZpZXc/IEFyZSB0aGVyZSBzcGVjaWZpYyBleHRlbnNpb25zIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQ/IExldCYjMzk7cyBnZXQgdG8gaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2NvbmZpZyBSSVNDVl9TQkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9LY29uZmlnPTI3Nj1jb25maWcgUklTQ1ZfTV9NT0RFXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTI4NC0jIHNldCBpZiB3ZSBhcmUgcnVubmluZyBpbiBTLW1vZGUgYW5kIGNhbiB1c2UgU0JJIGNhbGxzXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjg1OmNvbmZpZyBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODYtXHRib29sXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTkzMz1jb25maWcgUklTQ1ZfVkVDVE9SX01JU0FMSUdORURcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctOTM5LVxuYXJjaC9yaXNjdi9LY29uZmlnOjk0MDpjb25maWcgUklTQ1ZfU0JJX0ZXRlRfREVMRUdBVEVfTUlTQUxJR05FRFxuYXJjaC9yaXNjdi9LY29uZmlnLTk0MS1cdGJvb2wgXCYjMzQ7UmVxdWVzdCBmaXJtd2FyZSBkZWxlZ2F0aW9uIG9mIHVuYWxpZ25lZCBhY2Nlc3MgZXhjZXB0aW9uc1wmIzM0O1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDU5PXNvdXJjZSBcJiMzNDtrZXJuZWwvS2NvbmZpZy5oelwmIzM0O1xuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjAtXG5hcmNoL3Jpc2N2L0tjb25maWc6MTA2MTpjb25maWcgUklTQ1ZfU0JJX1YwMVxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjItXHRib29sIFwmIzM0O1NCSSB2MC4xIHN1cHBvcnRcJiMzNDtcbi0tXG5kcml2ZXJzL2NwdWlkbGUvS2NvbmZpZy5yaXNjdi01LVxuZHJpdmVycy9jcHVpZGxlL0tjb25maWcucmlzY3Y6Njpjb25maWcgUklTQ1ZfU0JJX0NQVUlETEVcbmRyaXZlcnMvY3B1aWRsZS9LY29uZmlnLnJpc2N2LTctXHRib29sIFwmIzM0O1JJU0MtViBTQkkgQ1BVIGlkbGUgRHJpdmVyXCYjMzQ7XG4tLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWc9MzgxPWNvbmZpZyBCQ003NDExMF9NQUlMQk9YXG4tLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWctMzkwLVxuZHJpdmVycy9tYWlsYm94L0tjb25maWc6MzkxOmNvbmZpZyBSSVNDVl9TQklfTVBYWV9NQk9YXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZy0zOTItXHR0cmlzdGF0ZSBcJiMzNDtSSVNDLVYgU0JJIE1lc3NhZ2UgUHJveHkgKE1QWFkpIE1haWxib3hcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNTM2MwoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDMwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2Vzcywgc3VtbWFyaXplZCBhcyB5b3UgcmVxdWVzdGVkOgoKKipJbnZlc3RpZ2F0aW5nIHRoZSBSSVNDVl9TQkkgTWFjcm8qKgoKT2theSwgc28gYFJJU0NWX1NCSWAuLi50aGF0JiMzOTtzIGEgYm9vbGVhbiwgYW5kIGxpa2VseSBjb250cm9sbGVkIGJ5IHNvbWUgb3RoZXIgY29uZmlndXJhdGlvbiBzZXR0aW5nLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgbGV0JiMzOTtzIHRyYWNlIGJhY2sgd2hlcmUgdGhpcyBpcyBkZWZpbmVkIGFuZCB3aGF0JiMzOTtzIGNhdXNpbmcgaXQgdG8gYmUgc2V0IChvciBub3Qgc2V0KS4gVW5kZXJzdGFuZGluZyB0aGUgZGVwZW5kZW5jaWVzIGFuZCBzZWxlY3Rpb24gY3JpdGVyaWEgZm9yIHRoaXMgbWFjcm8gaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIG92ZXJhbGwgY29uZmlndXJhdGlvbiBvZiB0aGUgUklTQy1WIHN5c3RlbS4gVGltZSB0byBkaWcgaW50byB0aGUgYnVpbGQgc3lzdGVtIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzIHRvIHNlZSB3aGF0JiMzOTtzIGRyaXZpbmcgYFJJU0NWX1NCSWAuIEdvdHRhIGZpbmQgdGhlICYjMzQ7d2hhdCBlbmFibGVzIHRoZSBgUklTQ1ZfU0JJYCYjMzQ7IHRyaWdnZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NlbGVjdCBSSVNDVl9TQkkmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDsmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9LY29uZmlnPTExODM9Y29uZmlnIFJJU0NWX1VTRVJfQ0ZJXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTExODgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6MTE4OTpcdHNlbGVjdCBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMTkwLVx0c2VsZWN0IEFSQ0hfSEFTX1VTRVJfU0hBRE9XX1NUQUNLXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLnNvY3M9ODc9Y29uZmlnIEFSQ0hfVklSVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk1LVx0c2VsZWN0IFBNX0dFTkVSSUNfRE9NQUlOU19PRiBpZiBQTSBcdTAwMjZcdTAwMjYgT0ZcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzOjk2Olx0c2VsZWN0IFJJU0NWX1NCSV9DUFVJRExFIGlmIENQVV9JRExFIFx1MDAyNlx1MDAyNiBSSVNDVl9TQklcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk3LVx0aGVscFxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA1NzY4CgkJCQkJCQlvdXRwdXQ6IDI5CgkJCQkJCQl0aG91Z2h0czogNDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBpc3N1ZToKCioqRGVsdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHNvIHRoZSBwcm9ncmFtJiMzOTtzIGJlaGF2aW9yIGhpbmdlcyBvbiB0aGlzIGBSSVNDVl9TQklgIHNldHRpbmcuIFRoYXQgcmluZ3MgYSBiZWxsLCBJIHRoaW5rIGBSSVNDVl9TQklgIGlzIHRpZWQgdG8gd2hldGhlciB3ZSYjMzk7cmUgb3BlcmF0aW5nIGluIFMtbW9kZS4gTWFrZXMgc2Vuc2U7IFNCSSAoU3VwZXJ2aXNvciBCaW5hcnkgSW50ZXJmYWNlKSBpcyB1c3VhbGx5IHRoZSBicmlkZ2UgZm9yIHByaXZpbGVnZWQgb3BlcmF0aW9ucyBmcm9tIFMtbW9kZSB0byB0aGUgdW5kZXJseWluZyBmaXJtd2FyZSBvciBtYWNoaW5lIG1vZGUuIFRvIGNvbmZpcm0gbXkgaHVuY2gsIEkgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsJiMzOTtzIGNvbmZpZ3VyYXRpb24uIFRoZSBiZXN0IHBsYWNlIHRvIGZpbmQgdGhlIGRlZmluaXRpb24gb2YgYFJJU0NWX1NCSWAsIGdpdmVuIHRoZSBjb250ZXh0IG9mIGEgUklTQy1WIHN5c3RlbSwgaXMgZGVmaW5pdGVseSBgYXJjaC9yaXNjdi9LY29uZmlnYC4gVGltZSB0byBjb25zdWx0IHRoYXQgS2NvbmZpZyBmaWxlLiBJJiMzOTtsbCBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGV4YWN0IGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggaXQmIzM5O3MgZGVmaW5lZCBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhhdCBoYXMgZm9yIHRoZSBzeXN0ZW0mIzM5O3MgcnVudGltZSBiZWhhdmlvci4gVW5kZXJzdGFuZGluZyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGlzIGNydWNpYWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgYmlnZ2VyIHBpY3R1cmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2RlZmF1bHQgeSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3YvS2NvbmZpZyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDthcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctMjc4LVx0ZGVwZW5kcyBvbiAhTU1VXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjc5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMjgwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0yODU9Y29uZmlnIFJJU0NWX1NCSVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy0yODctXHRkZXBlbmRzIG9uICFSSVNDVl9NX01PREVcbmFyY2gvcmlzY3YvS2NvbmZpZzoyODg6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODktXG5hcmNoL3Jpc2N2L0tjb25maWc9MjkwPWNvbmZpZyBNTVVcbmFyY2gvcmlzY3YvS2NvbmZpZy0yOTEtXHRib29sIFwmIzM0O01NVS1iYXNlZCBQYWdlZCBNZW1vcnkgTWFuYWdlbWVudCBTdXBwb3J0XCYjMzQ7XG5hcmNoL3Jpc2N2L0tjb25maWc6MjkyOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMjkzLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz01NTM9Y29uZmlnIFJJU0NWX0lTQV9DXG5hcmNoL3Jpc2N2L0tjb25maWctNTU0LVx0Ym9vbCBcJiMzNDtFbWl0IGNvbXByZXNzZWQgaW5zdHJ1Y3Rpb25zIHdoZW4gYnVpbGRpbmcgTGludXhcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzo1NTU6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy01NTYtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTU2ND1jb25maWcgUklTQ1ZfSVNBX1NVUE1cbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNTY2LVx0ZGVwZW5kcyBvbiA2NEJJVFxuYXJjaC9yaXNjdi9LY29uZmlnOjU2NzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTU2OC1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NTc1PWNvbmZpZyBSSVNDVl9JU0FfU1ZOQVBPVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy01NzgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NTc5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNTgwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz01OTQ9Y29uZmlnIFJJU0NWX0lTQV9TVlBCTVRcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNTk3LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjU5ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTU5OS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjExPWNvbmZpZyBUT09MQ0hBSU5fSEFTX1ZcbmFyY2gvcmlzY3YvS2NvbmZpZy02MTItXHRib29sXG5hcmNoL3Jpc2N2L0tjb25maWc6NjEzOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNjE0LVx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltdilcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjE5PWNvbmZpZyBSSVNDVl9JU0FfVlxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy02MjMtXHRzZWxlY3QgRFlOQU1JQ19TSUdGUkFNRVxuYXJjaC9yaXNjdi9LY29uZmlnOjYyNDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTYyNS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjMyPWNvbmZpZyBSSVNDVl9JU0FfVl9ERUZBVUxUX0VOQUJMRVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy02MzQtXHRkZXBlbmRzIG9uIFJJU0NWX0lTQV9WXG5hcmNoL3Jpc2N2L0tjb25maWc6NjM1Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNjM2LVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz02NTE9Y29uZmlnIFJJU0NWX0lTQV9WX1BSRUVNUFRJVkVcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNjU0LVx0ZGVwZW5kcyBvbiBSSVNDVl9JU0FfVlxuYXJjaC9yaXNjdi9LY29uZmlnOjY1NTpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY1Ni1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9NjY1PWNvbmZpZyBSSVNDVl9JU0FfWkFXUlNcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNjY3LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjY2ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY2OS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9Njc2PWNvbmZpZyBUT09MQ0hBSU5fSEFTX1pBQkhBXG5hcmNoL3Jpc2N2L0tjb25maWctNjc3LVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjY3ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTY3OS1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemFiaGEpXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTY4Mz1jb25maWcgUklTQ1ZfSVNBX1pBQkhBXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTY4Ni1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo2ODc6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy02ODgtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTY5ND1jb25maWcgVE9PTENIQUlOX0hBU19aQUNBU1xuYXJjaC9yaXNjdi9LY29uZmlnLTY5NS1cdGJvb2xcbmFyY2gvcmlzY3YvS2NvbmZpZzo2OTY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy02OTctXHRkZXBlbmRzIG9uICE2NEJJVCB8fCAkKGNjLW9wdGlvbiwtbWFiaT1scDY0IC1tYXJjaD1ydjY0aW1hX3phY2FzKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MDE9Y29uZmlnIFJJU0NWX0lTQV9aQUNBU1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy03MDMtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NzA0Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzA1LVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MTE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJCXG5hcmNoL3Jpc2N2L0tjb25maWctNzEyLVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjcxMzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTcxNC1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJiKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MjY9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJBXG5hcmNoL3Jpc2N2L0tjb25maWctNzI3LVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjcyODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTcyOS1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJhKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03MzQ9Y29uZmlnIFJJU0NWX0lTQV9aQkFcbmFyY2gvcmlzY3YvS2NvbmZpZy03MzUtXHRib29sIFwmIzM0O1piYSBleHRlbnNpb24gc3VwcG9ydCBmb3IgYml0IG1hbmlwdWxhdGlvbiBpbnN0cnVjdGlvbnNcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzo3MzY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy03MzctXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTc0Nj1jb25maWcgUklTQ1ZfSVNBX1pCQlxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy03NDgtXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6NzQ5Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzUwLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03NjE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJDXG5hcmNoL3Jpc2N2L0tjb25maWctNzYyLVx0Ym9vbFxuYXJjaC9yaXNjdi9LY29uZmlnOjc2MzpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTc2NC1cdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJjKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03Njk9Y29uZmlnIFJJU0NWX0lTQV9aQkNcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctNzczLVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjc3NDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTc3NS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9Nzg0PWNvbmZpZyBUT09MQ0hBSU5fSEFTX1pCS0JcbmFyY2gvcmlzY3YvS2NvbmZpZy03ODUtXHRib29sXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzg2Olx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctNzg3LVx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmtiKVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz03OTI9Y29uZmlnIFJJU0NWX0lTQV9aQktCXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTc5NS1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo3OTY6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy03OTctXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTgwNj1jb25maWcgUklTQ1ZfSVNBX1pJQ0JPTVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy04MDktXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXG5hcmNoL3Jpc2N2L0tjb25maWc6ODEwOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctODExLVx0c2VsZWN0IFJJU0NWX0RNQV9OT05DT0hFUkVOVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz04MjM9Y29uZmlnIFJJU0NWX0lTQV9aSUNCT1pcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctODI1LVx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxuYXJjaC9yaXNjdi9LY29uZmlnOjgyNjpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTgyNy1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9ODM1PWNvbmZpZyBSSVNDVl9JU0FfWklDQk9QXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTgzOC1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo4Mzk6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy04NDAtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTg1MD1jb25maWcgUklTQ1ZfSVNBX1NWUlNXNjBUNTlCXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTg1My1cdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcbmFyY2gvcmlzY3YvS2NvbmZpZzo4NTQ6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy04NTUtXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTg5Mj1jb25maWcgRlBVXG5hcmNoL3Jpc2N2L0tjb25maWctODkzLVx0Ym9vbCBcJiMzNDtGUFUgc3VwcG9ydFwmIzM0O1xuYXJjaC9yaXNjdi9LY29uZmlnOjg5NDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTg5NS1cdGhlbHBcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9OTAyPWNvbmZpZyBJUlFfU1RBQ0tTXG5hcmNoL3Jpc2N2L0tjb25maWctOTAzLVx0Ym9vbCBcJiMzNDtJbmRlcGVuZGVudCBpcnEgXHUwMDI2IHNvZnRpcnEgc3RhY2tzXCYjMzQ7IGlmIEVYUEVSVFxuYXJjaC9yaXNjdi9LY29uZmlnOjkwNDpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTkwNS1cdHNlbGVjdCBIQVZFX0lSUV9FWElUX09OX0lSUV9TVEFDS1xuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDY4PWNvbmZpZyBSSVNDVl9CT09UX1NQSU5XQUlUXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNzAtXHRkZXBlbmRzIG9uIFNNUFxuYXJjaC9yaXNjdi9LY29uZmlnOjEwNzE6XHRkZWZhdWx0IHkgaWYgUklTQ1ZfU0JJX1YwMSB8fCBSSVNDVl9NX01PREVcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMDcyLVx0aGVscFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjAyLVx0ICBkb2VzIG5vdCBnZXQgcHJvdGVjdGlvbiBcJiMzNDtmb3IgZnJlZVwmIzM0Oy5cbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjAzOlx0ICBkZWZhdWx0IHkuXG5hcmNoL3Jpc2N2L0tjb25maWctMTIwNC1cbi0tXG5hcmNoL3Jpc2N2L0tjb25maWc9MTI1NT1jb25maWcgRUZJXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNTgtXHRkZXBlbmRzIG9uIE1NVVxuYXJjaC9yaXNjdi9LY29uZmlnOjEyNTk6XHRkZWZhdWx0IHlcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjYwLVx0c2VsZWN0IEFSQ0hfU1VQUE9SVFNfQUNQSSBpZiA2NEJJVFxuLS1cbmFyY2gvcmlzY3YvS2NvbmZpZz0xMjc1PWNvbmZpZyBETUlcbi0tXG5hcmNoL3Jpc2N2L0tjb25maWctMTI3Ny1cdGRlcGVuZHMgb24gRUZJXG5hcmNoL3Jpc2N2L0tjb25maWc6MTI3ODpcdGRlZmF1bHQgeVxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNzktXHRoZWxwXG4tLVxuYXJjaC9yaXNjdi9LY29uZmlnPTEzMDg9Y29uZmlnIFJJU0NWX0lTQV9GQUxMQkFDS1xuYXJjaC9yaXNjdi9LY29uZmlnLTEzMDktXHRib29sIFwmIzM0O1Blcm1pdCBmYWxsaW5nIGJhY2sgdG8gcGFyc2luZyByaXNjdixpc2EgZm9yIGV4dGVuc2lvbiBzdXBwb3J0IGJ5IGRlZmF1bHRcJiMzNDtcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMzEwOlx0ZGVmYXVsdCB5XG5hcmNoL3Jpc2N2L0tjb25maWctMTMxMS1cdGhlbHBcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk0MQoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDk4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkV4YW1pbmluZyBSSVNDLVYgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIGxldCYjMzk7cyBicmVhayBkb3duIHRoZXNlIFJJU0MtViBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgYFJJU0NWX1NCSWAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGlmIHdlJiMzOTtyZSAqbm90KiBpbiBgUklTQ1ZfTV9NT0RFYC4gRnVydGhlcm1vcmUsIGBSSVNDVl9NX01PREVgIHNlZW1zIHRvIGJlIGVuYWJsZWQgaWYgdGhlcmUmIzM5O3Mgbm8gTWVtb3J5IE1hbmFnZW1lbnQgVW5pdCAoYE1NVWApLiBTbywgaWYgdGhlIHRhcmdldCBpcyBhIHR5cGljYWwga2VybmVsIHdpdGggYW4gTU1VLCBgUklTQ1ZfU0JJYCBzaG91bGQgYmUgc2V0IHRvICYjMzk7eSYjMzk7LCB3aGljaCBtYWtlcyBzZW5zZS4gSSB3b3VsZCBleHBlY3QgdGhhdC4gTm93LCBJJiMzOTttIGN1cmlvdXMgYWJvdXQgYFJJU0NWX1BNVWAuIElzIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBzdXBwb3J0IGVuYWJsZWQgYnkgZGVmYXVsdD8gTGV0IG1lIGp1c3QgZG91YmxlLWNoZWNrIHRoYXQsIG15IGludHVpdGlvbiBpcyB0ZWxsaW5nIG1lIGl0IHdpbGwgZGVwZW5kIG9uIHRoZSBvdmVyYXJjaGluZyBgUklTQ1ZgIG9wdGlvbiwgbm90IGEgZGVmYXVsdCAmIzM5O3kmIzM5Oy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7Y29uZmlnIFJJU0NWX1BNVSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0OyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL3BlcmYvS2NvbmZpZz03ND1jb25maWcgQVJNX1hTQ0FMRV9QTVVcbi0tXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy03Ny1cbmRyaXZlcnMvcGVyZi9LY29uZmlnOjc4OmNvbmZpZyBSSVNDVl9QTVVcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVx0ZGVwZW5kcyBvbiBSSVNDVlxuLS1cbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxuZHJpdmVycy9wZXJmL0tjb25maWc6ODg6Y29uZmlnIFJJU0NWX1BNVV9MRUdBQ1lcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg5LVx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcbi0tXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05Ny1cbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05OS1cdGRlcGVuZHMgb24gUklTQ1ZfUE1VIFx1MDAyNlx1MDAyNiBSSVNDVl9TQklcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogOTQyMgoJCQkJCQkJb3V0cHV0OiAzMwoJCQkJCQkJdGhvdWdodHM6IDY4CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk5hdmlnYXRpbmcgdGhlIFJJU0MtViBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgQ29uZmlndXJhdGlvbioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQmIzM5O3MgY2xlYXIgdGhlcmUmIzM5O3Mgbm8gYXV0b21hdGljIGVuYWJsaW5nIG9mIGBkZWZhdWx0IHlgIGZvciB0aGUgUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBVbml0LiBUaGF0IG1lYW5zIEkgbmVlZCB0byBiZSBleHBsaWNpdCBhYm91dCBlbmFibGluZyBib3RoIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfUE1VX1NCSWAuIEp1c3QgbWFraW5nIGEgbWVudGFsIG5vdGUgb2YgdGhhdC4gTm93LCBhIHF1aWNrIHF1ZXN0aW9uIHBvcHMgdXA6IGlzIGBSSVNDVl9QTVVgIGRlZmluZWQgYXMgYSBib29sZWFuIG9yIGEgdHJpc3RhdGU/IEkgbmVlZCB0byBjbGFyaWZ5IHRoYXQgYmVmb3JlIEkgbW92ZSBmb3J3YXJkLCBvciBJIGNvdWxkIHJ1biBpbnRvIHByb2JsZW1zLiBCZXN0IHByYWN0aWNlLCBsZXQmIzM5O3MgaGVhZCBvdmVyIHRvIGBkcml2ZXJzL3BlcmYvS2NvbmZpZ2AsIHByb2JhYmx5IGFyb3VuZCBsaW5lIDc4IG9yIHNvLCB0byBnZXQgdGhlIGRlZmluaXRpdmUgYW5zd2VyIG9uIHRoYXQuIEkmIzM5O2xsIHRha2UgYSBxdWljayBzY2FuIHRoZXJlIGFuZCBzZWUgd2hhdCYjMzk7cyB3aGF0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvcGVyZi9LY29uZmlnJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzUsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICA3NTpcdFx0ZGVwZW5kcyBvbiBBUk1fUE1VIFx1MDAyNlx1MDAyNiBDUFVfWFNDQUxFXG4gIDc2Olx0XHRkZWZfYm9vbCB5XG4gIDc3Olx0XG4gIDc4Olx0Y29uZmlnIFJJU0NWX1BNVVxuICA3OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVlxuICA4MDpcdFx0Ym9vbCBcJiMzNDtSSVNDLVYgUE1VIGZyYW1ld29ya1wmIzM0O1xuICA4MTpcdFx0ZGVmYXVsdCB5XG4gIDgyOlx0XHRoZWxwXG4gIDgzOlx0XHQgIFNheSB5IGlmIHlvdSB3YW50IHRvIHVzZSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvcnMgb24gUklTQ1YtYmFzZWRcbiAgODQ6XHRcdCAgc3lzdGVtcy4gVGhpcyBwcm92aWRlcyB0aGUgY29yZSBQTVUgZnJhbWV3b3JrIHRoYXQgYWJzdHJhY3RzIGNvbW1vblxuICA4NTpcdFx0ICBQTVUgZnVuY3Rpb25hbGl0aWVzIGluIGEgY29yZSBsaWJyYXJ5IHNvIHRoYXQgZGlmZmVyZW50IFBNVSBkcml2ZXJzXG4gIDg2Olx0XHQgIGNhbiByZXVzZSBpdC5cbiAgODc6XHRcbiAgODg6XHRjb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxuICA4OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcbiAgOTA6XHRcdGJvb2wgXCYjMzQ7UklTQy1WIGxlZ2FjeSBQTVUgaW1wbGVtZW50YXRpb25cJiMzNDtcbiAgOTE6XHRcdGRlZmF1bHQgeVxuICA5MjpcdFx0aGVscFxuICA5MzpcdFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIGxlZ2FjeSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvclxuICA5NDpcdFx0ICBpbXBsZW1lbnRhdGlvbiBvbiBSSVNDLVYgYmFzZWQgc3lzdGVtcy4gVGhpcyBvbmx5IGFsbG93cyBjb3VudGluZ1xuICA5NTpcdFx0ICBvZiBjeWNsZS9pbnN0cnVjdGlvbiBjb3VudGVyIGFuZCBkb2VzbiYjMzk7dCBzdXBwb3J0IGNvdW50ZXIgb3ZlcmZsb3csXG4gIDk2Olx0XHQgIG9yIHByb2dyYW1tYWJsZSBjb3VudGVycy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZS5cbiAgOTc6XHRcbiAgOTg6XHRjb25maWcgUklTQ1ZfUE1VX1NCSVxuICA5OTpcdFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXHUwMDI2XHUwMDI2IFJJU0NWX1NCSVxuIDEwMDpcdFx0Ym9vbCBcJiMzNDtSSVNDLVYgUE1VIGJhc2VkIG9uIFNCSSBQTVUgZXh0ZW5zaW9uXCYjMzQ7XG4gMTAxOlx0XHRkZWZhdWx0IHlcbiAxMDI6XHRcdGhlbHBcbiAxMDM6XHRcdCAgU2F5IHkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBDUFUgcGVyZm9ybWFuY2UgbW9uaXRvclxuIDEwNDpcdFx0ICB1c2luZyBTQkkgUE1VIGV4dGVuc2lvbiBvbiBSSVNDLVYgYmFzZWQgc3lzdGVtcy4gVGhpcyBvcHRpb24gcHJvdmlkZXNcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAxMjkKCQkJCQkJCW91dHB1dDogMzYKCQkJCQkJCXRob3VnaHRzOiA1NQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipSSVNDLVYgUE1VIENvbmZpZ3VyYXRpb24gLSBBIFF1aWNrIEFzc2Vzc21lbnQqKgoKQWxyaWdodCwgc28gYFJJU0NWX1BNVWAgYW5kIGBSSVNDVl9QTVVfU0JJYCBhcmUgYm90aCBzZXQgdG8gYGRlZmF1bHQgeWAuIFRoYXQmIzM5O3MgZ29vZDsgaXQgc2ltcGxpZmllcyB0aGluZ3MuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCAmIzM0O09rYXksIHdlJiMzOTtyZSBsaWtlbHkgc2V0IHVwIGZvciBzb21lIGJhc2ljIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcuJiMzNDsgVGhpcyBpbXBsaWVzIHRoZSBwcmVzZW5jZSBvZiB0aGUgcmVxdWlyZWQgaGFyZHdhcmUgc3VwcG9ydCwgb3IgYXQgbGVhc3QgYSBtaW5pbWFsIHNvZnR3YXJlIGVtdWxhdGlvbi4KClRoZXJlZm9yZSwgYmVjYXVzZSBvZiB0aG9zZSBkZWZhdWx0cywgdGhlIHJlc3QgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZC4gQXNzdW1pbmcgd2Ugd2FudCB0byBzdXBwb3J0IEtWTSAod2hpY2gsIGdpdmVuIHRoZSBjb250ZXh0LCBzZWVtcyBoaWdobHkgbGlrZWx5KSwgdGhlIG9ubHkgZnVydGhlciBjb25zaWRlcmF0aW9uIGhlcmUgaXMgYXJvdW5kIEtWTSBjb25maWd1cmF0aW9uLgoKTXkgcHJpbWFyeSBmb2N1cyBzaGlmdHMgdG8gdGhlIGBLVk1gIG9wdGlvbiwgd2hpY2ggd2lsbCBiZSB0aGUgaGVhcnQgb2YgdGhlIHZpcnR1YWxpemF0aW9uIHByb2Nlc3MgaGVyZS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBLVk0gc3VwcG9ydCBpcyBlbmFibGVkLCBzbyBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayB0aGUgS2NvbmZpZyBpbiBgYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ2AuIEkmIzM5O2xsIHByb2JhYmx5IHNjYW4gZm9yIGRlcGVuZGVuY2llcyBhbmQgYW55IGNvbmRpdGlvbmFsIGxvZ2ljIHRoZXJlLCBqdXN0IHRvIGNvbmZpcm0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMzAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7ICAgMTpcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcbiAgIDI6XHQjXG4gICAzOlx0IyBLVk0gY29uZmlndXJhdGlvblxuICAgNDpcdCNcbiAgIDU6XHRcbiAgIDY6XHRzb3VyY2UgXCYjMzQ7dmlydC9rdm0vS2NvbmZpZ1wmIzM0O1xuICAgNzpcdFxuICAgODpcdG1lbnVjb25maWcgVklSVFVBTElaQVRJT05cbiAgIDk6XHRcdGJvb2wgXCYjMzQ7VmlydHVhbGl6YXRpb25cJiMzNDtcbiAgMTA6XHRcdGhlbHBcbiAgMTE6XHRcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cbiAgMTI6XHRcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXG4gIDEzOlx0XHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXG4gIDE0Olx0XG4gIDE1Olx0XHQgIElmIHlvdSBzYXkgTiwgYWxsIG9wdGlvbnMgaW4gdGhpcyBzdWJtZW51IHdpbGwgYmUgc2tpcHBlZCBhbmRcbiAgMTY6XHRcdCAgZGlzYWJsZWQuXG4gIDE3Olx0XG4gIDE4Olx0aWYgVklSVFVBTElaQVRJT05cbiAgMTk6XHRcbiAgMjA6XHRjb25maWcgS1ZNXG4gIDIxOlx0XHR0cmlzdGF0ZSBcJiMzNDtLZXJuZWwtYmFzZWQgVmlydHVhbCBNYWNoaW5lIChLVk0pIHN1cHBvcnRcJiMzNDtcbiAgMjI6XHRcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFx1MDAyNlx1MDAyNiBNTVVcbiAgMjM6XHRcdHNlbGVjdCBIQVZFX0tWTV9JUlFDSElQXG4gIDI0Olx0XHRzZWxlY3QgSEFWRV9LVk1fSVJRX1JPVVRJTkdcbiAgMjU6XHRcdHNlbGVjdCBIQVZFX0tWTV9NU0lcbiAgMjY6XHRcdHNlbGVjdCBIQVZFX0tWTV9SRUFET05MWV9NRU1cbiAgMjc6XHRcdHNlbGVjdCBIQVZFX0tWTV9ESVJUWV9SSU5HX0FDUV9SRUxcbiAgMjg6XHRcdHNlbGVjdCBLVk1fQ09NTU9OXG4gIDI5Olx0XHRzZWxlY3QgS1ZNX0dFTkVSSUNfRElSVFlMT0dfUkVBRF9QUk9URUNUXG4gIDMwOlx0XHRzZWxlY3QgS1ZNX0dFTkVSSUNfSEFSRFdBUkVfRU5BQkxJTkdcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTA4NDQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIFJJU0MtViBLVk0gUE1VIEV2ZW50IEluZm9ybWF0aW9uKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBpbnRvIGhvdyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgZXZlbnRzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBlbnZpcm9ubWVudC4gQ2xlYXJseSwgdW5kZXJzdGFuZGluZyBib3RoIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGlzIGNyaXRpY2FsIGhlcmUuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb24gYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC4KCkxldCYjMzk7cyBzZWUsIGl0JiMzOTtzIGxvY2F0ZWQgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNgLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMsIGlzIHRoaXMgZnVuY3Rpb24gYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhlIGZ1bmN0aW9uJiMzOTtzIHNpZ25hdHVyZSBsb29rcyBsaWtlIHRoaXMsIGl0IHRha2VzIGEgYHN0cnVjdCBrdm1fdmNwdSAqdmNwdWAsIGFuZCBhIGhhbmRmdWwgb2YgYHVuc2lnbmVkIGxvbmdgIHZhbHVlczogYHNhZGRyX2xvd2AsIGBzYWRkcl9oaWdoYCwgYG51bV9ldmVudHNgLCBhbmQgYGZsYWdzYC4gRmluYWxseSwgdGhlcmUmIzM5O3MgYHN0cnVjdCBrdm1fdmNwdV9zYmlfcmV0dXJuICpyZXRkYXRhYC4gU28sIHdoYXQgY2FsbHMgdGhpcyBmdW5jdGlvbj8gSSBzdXNwZWN0IGl0JiMzOTtzIGdvaW5nIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIFN5c3RlbSBCb290IEludGVyZmFjZSAoU0JJKS4gTGV0JiMzOTtzIHRyYWNlIGl0IGFuZCBzZWUgaWYgaXQgaXMgY2FsbGVkIGZyb20gYGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyYC4gVGhhdCYjMzk7cyBpbiBgYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmNgLiBUaW1lIHRvIGRpdmUgaW4hCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA3LzMxIDIyOjM5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaC9yaXNjdi9rdm0vJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmM9NDI3PWludCBrdm1fcmlzY3ZfdmNwdV9wbXVfc25hcHNob3Rfc2V0X3NobWVtKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3csXG4tLVxuYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYy00NzgtXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jOjQ3OTppbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdyxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDgwLVx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIHNhZGRyX2hpZ2gsIHVuc2lnbmVkIGxvbmcgbnVtX2V2ZW50cyxcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYz0xNj1zdGF0aWMgaW50IGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bixcbi0tXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYy03Ni1cdGNhc2UgU0JJX0VYVF9QTVVfRVZFTlRfR0VUX0lORk86XG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYzo3NzpcdFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8odmNwdSwgY3AtXHUwMDNlYTAsIGNwLVx1MDAzZWExLCBjcC1cdTAwM2VhMiwgY3AtXHUwMDNlYTMsIHJldGRhdGEpO1xuYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmMtNzgtXHRcdGJyZWFrO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wNy8zMSAyMjozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTcxNwoJCQkJCQkJb3V0cHV0OiA5NgoJCQkJCQkJdGhvdWdodHM6IDExOTQKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRnV6emluZyBUYXJnZXQgSWRlbnRpZmljYXRpb246IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKioKCk9rYXksIHNvIEkmIzM5O3ZlIGNvbmZpcm1lZCB0aGlzIGlzIHJlbGF0ZWQgdG8gdGhlIGBTQklfRVhUX1BNVV9FVkVOVF9HRVRfSU5GT2AgaGFuZGxlci4gSXQmIzM5O3MgdHJpZ2dlcmVkIHdoZW4gdGhlIGd1ZXN0IGV4ZWN1dGVzIGFuIGBlY2FsbGAgaW5zdHJ1Y3Rpb24gd2l0aCB0aGUgcmlnaHQgU0JJIGV4dGVuc2lvbiBhbmQgZnVuY3Rpb24gSURzLiBBbmQgc2luY2UgU3l6a2FsbGVyIGFscmVhZHkgZnV6emVzIEtWTSBieSBjcmVhdGluZyBWTXMgYW5kIGV4ZWN1dGluZyBpbnN0cnVjdGlvbnMsIGluY2x1ZGluZyBgZWNhbGxgLCB0aGlzIGlzIGRlZmluaXRlbHkgYSBmdXp6YWJsZSB0YXJnZXQuCgpUaGUgcHJpbWFyeSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuICBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZCBmb3IgZnV6emluZywgYW5kIGl0IGxvb2tzIGxpa2UgYEtWTWAgaXMgdGhlIGNydWNpYWwgb25lLiBgVklSVFVBTElaQVRJT05gIGlzIGluIHRoZSBtZW51Y29uZmlnLCBidXQgYEtWTWAgaXMgc3VmZmljaWVudCwgc28gSSYjMzk7bGwganVzdCBsaXN0IGBLVk1gLgoKSSBkb3VibGUtY2hlY2tlZCwgYW5kIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AgaXMgKm5vdCogYSBzdGF0aWMgZnVuY3Rpb247IGl0JiMzOTtzIGRlZmluZWQgYXMgYSByZWd1bGFyIGBpbnRgIGZ1bmN0aW9uIGluIGB2Y3B1X3BtdS5jYC4gVGhhdCBtZWFucyBpdCYjMzk7cyBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZSBpdHMgZmlsZSBhbmQgaXMgbW9yZSByZWFkaWx5IGZ1enphYmxlLgoKTG9va2luZyBhdCB0aGUgY29kZSBjaGFuZ2UsIGl0IHNlZW1zIHRoZSBvbmx5IGZ1bmN0aW9uIGJlaW5nIG1vZGlmaWVkIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuCgpJIGFsc28gbG9va2VkIGludG8gdGhlIGRlZmF1bHQgY29uZmlncy4gYFJJU0NWX1BNVV9TQklgLCBgUklTQ1ZfUE1VYCwgYW5kIGBSSVNDVl9TQklgIGFyZSBhbGwgZGVmYXVsdC1lbmFibGVkLiBCdXQgYWdhaW4sIGBLVk1gIGlzIHRoZSBtYWluIGVuYWJsZXIgaGVyZS4KCk5vdywgbGV0JiMzOTtzIHJldmlldyB0aGUgcGF0Y2ggaXRzZWxmLiBJdCYjMzk7cyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLiBUaGV5JiMzOTtyZSBmaXhpbmcgYW4gaW50ZWdlciBvdmVyZmxvdyB2dWxuZXJhYmlsaXR5IGFuZCBjaGFuZ2luZyB0aGUgbWVtb3J5IGFsbG9jYXRpb24gZnJvbSBga3phbGxvY2AgdG8gYGt2Y2FsbG9jYC4gIFRoaXMgaXMgYSBnb29kIHNpZ247IGl0JiMzOTtzIHRvdWNoaW5nIG1lbW9yeSBhbGxvY2F0aW9uLCB3aGljaCBpcyBhIGNvbW1vbiBzb3VyY2Ugb2YgYnVncy4KClRoZSBjb2RlIGlzIGFic29sdXRlbHkgcmVhY2hhYmxlIHZpYSBLVk0gb24gUklTQy1WLiBTeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBmdXp6aW5nIHRoaXMuICBUaGUgY29yZSBmdW5jdGlvbiBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLiAgVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgYEtWTWAuCgpUaGVyZWZvcmUsIEkmIzM5O20gZ29pbmcgdG8gc2V0IHRoZSByZXN1bHRzIGFjY29yZGluZ2x5LiBJJiMzOTtsbCBtYXJrIHRoaXMgYXMgd29ydGggZnV6emluZywgc3BlY2lmeSBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGFzIHRoZSBmb2N1cyBzeW1ib2wsIGFuZCBsaXN0IGBLVk1gIGFzIHRoZSBlbmFibGVkIGNvbmZpZy4gTXkgcmVhc29uaW5nIHdpbGwgYmU6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDsKCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDcvMzEgMjI6Mzk8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5zZXQtcmVzdWx0czwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBbCiAgICAmIzM0O0tWTSYjMzQ7CiAgXSwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbCiAgICAmIzM0O2t2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvJiMzNDsKICBdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogdHJ1ZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPC90Ym9keT4KCTwvdGFibGU+CgoJPGRpdiBpZD0ibGxtX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5MTE0gQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBUb2tlbnM8L3RoPgoJCQkJCTx0aD5BdmcgVG9rZW5zPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9ImxsbV9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9InRvb2xfc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPlRvb2wgQ2FsbHMgU3VtbWFyeTo8L2NhcHRpb24+CgkJCTx0aGVhZD4KCQkJCTx0cj4KCQkJCQk8dGg+VG90YWwgQ2FsbHM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0idG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHkiPjwvdGJvZHk+CgkJPC90YWJsZT4KCTwvZGl2PgoKCTxkaXYgaWQ9ImR1cmF0aW9uX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCTxkaXYgaWQ9InRva2VuX2NoYXJ0X2RpdiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtYXJnaW46IDIwcHggMDsgYm9yZGVyOiAxcHg7Ij48L2Rpdj4KCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIj48L3NjcmlwdD4KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KCQlnb29nbGUubG9hZCgidmlzdWFsaXphdGlvbiIsICIxIiwge3BhY2thZ2VzOlsiY29yZWNoYXJ0Il19KTsKCQlnb29nbGUuc2V0T25Mb2FkQ2FsbGJhY2soZHJhd0NoYXJ0cyk7CgoJCWZ1bmN0aW9uIGRyYXdDaGFydHMoKSB7CgkJCWNvbnN0IHJhd0RhdGEgPSBbeyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0My44NTc2MDgzNDNaIiwiU2VxIjowLCJOZXN0aW5nIjowLCJUeXBlIjoiZmxvdyIsIk5hbWUiOiJwYXRjaC10cmlhZ2UiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MzA4ODU2NDAxNSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM4OjQzLjg1NzYzNjU3M1oiLCJTZXEiOjEsIk5lc3RpbmciOjEsIlR5cGUiOiJhY3Rpb24iLCJOYW1lIjoicmVhZC1wYXRjaC1kaWZmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MzA2NDM5MzQ1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJQYXRjaERpZmZcIjogXCJjb21taXQgNDBmOWY1Y2U2Y2ZhNjU0MmIzNjhlNmE1MWM5YjA5NTFkZWU3MjA1MVxcbkF1dGhvcjogc3l6LWNsdXN0ZXIgXFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXFx1MDAzZVxcbkRhdGU6ICAgRnJpIEp1bCAzMSAyMjozODo0MyAyMDI2ICswMDAwXFxuXFxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xcblxcbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xcbmluZGV4IGJiNDZkY2JmYjI0ZGEuLjhlMWY2YWJiODRlMjAgMTAwNjQ0XFxuLS0tIGEvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcXG5AQCAtMTIsNyArMTIsOSBAQFxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvZXJyLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2NsaW51eC9rdm1faG9zdC5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvbm9zcGVjLmhcXHUwMDNlXFxuKyNpbmNsdWRlIFxcdTAwM2NsaW51eC9vdmVyZmxvdy5oXFx1MDAzZVxcbiAjaW5jbHVkZSBcXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFxcdTAwM2VcXG4rI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3NsYWIuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS9jc3IuaFxcdTAwM2VcXG4gI2luY2x1ZGUgXFx1MDAzY2FzbS9rdm1faXNhLmhcXHUwMDNlXFxuICNpbmNsdWRlIFxcdTAwM2Nhc20va3ZtX3ZjcHVfc2JpLmhcXHUwMDNlXFxuQEAgLTQ3OSwxMyArNDgxLDE0IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XFxuIFxcdFxcdFxcdFxcdCAgdW5zaWduZWQgbG9uZyBmbGFncywgc3RydWN0IGt2bV92Y3B1X3NiaV9yZXR1cm4gKnJldGRhdGEpXFxuIHtcXG4gXFx0c3RydWN0IHJpc2N2X3BtdV9ldmVudF9pbmZvICplaW5mbyA9IE5VTEw7XFxuLVxcdGludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pO1xcbitcXHRzaXplX3Qgc2htZW1fc2l6ZTtcXG4gXFx0Z3BhX3Qgc2htZW07XFxuIFxcdHUzMiBlaWR4LCBldHlwZTtcXG4gXFx0dTY0IGVjb25maWc7XFxuIFxcdGludCByZXQ7XFxuIFxcbi1cXHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFxcdTAwMjYgKFNaXzE2IC0gMSkgfHwgbnVtX2V2ZW50cyA9PSAwKSkge1xcbitcXHRpZiAoZmxhZ3MgIT0gMCB8fCAoc2FkZHJfbG93IFxcdTAwMjYgKFNaXzE2IC0gMSkpIHx8IG51bV9ldmVudHMgPT0gMCB8fFxcbitcXHQgICAgY2hlY2tfbXVsX292ZXJmbG93KG51bV9ldmVudHMsIHNpemVvZigqZWluZm8pLCBcXHUwMDI2c2htZW1fc2l6ZSkpIHtcXG4gXFx0XFx0cmV0ID0gU0JJX0VSUl9JTlZBTElEX1BBUkFNO1xcbiBcXHRcXHRnb3RvIG91dDtcXG4gXFx0fVxcbkBAIC01MDAsNyArNTAzLDggQEAgaW50IGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgdW5zaWduZWQgbG9uZyBzYWRkcl9sb3dcXG4gXFx0XFx0fVxcbiBcXHR9XFxuIFxcbi1cXHRlaW5mbyA9IGt6YWxsb2Moc2htZW1fc2l6ZSwgR0ZQX0tFUk5FTCk7XFxuK1xcdGVpbmZvID0ga3ZjYWxsb2MobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksXFxuK1xcdFxcdFxcdCBHRlBfS0VSTkVMX0FDQ09VTlQgfCBfX0dGUF9OT1dBUk4pO1xcbiBcXHRpZiAoIWVpbmZvKSB7XFxuIFxcdFxcdHJldCA9IFNCSV9FUlJfRkFJTFVSRTtcXG4gXFx0XFx0Z290byBvdXQ7XFxuQEAgLTUxMiw3ICs1MTYsNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xcbiBcXHRcXHRnb3RvIGZyZWVfbWVtO1xcbiBcXHR9XFxuIFxcbi1cXHRmb3IgKGludCBpID0gMDsgaSBcXHUwMDNjIG51bV9ldmVudHM7IGkrKykge1xcbitcXHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXFx1MDAzYyBudW1fZXZlbnRzOyBpKyspIHtcXG4gXFx0XFx0ZWlkeCA9IGVpbmZvW2ldLmV2ZW50X2lkeDtcXG4gXFx0XFx0ZXR5cGUgPSBrdm1fcG11X2dldF9wZXJmX2V2ZW50X3R5cGUoZWlkeCk7XFxuIFxcdFxcdGVjb25maWcgPSBrdm1fcG11X2dldF9wZXJmX2V2ZW50X2NvbmZpZyhlaWR4LCBlaW5mb1tpXS5ldmVudF9kYXRhKTtcXG5AQCAtNTI1LDcgKzUyOSw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XFxuIFxcdFxcdHJldCA9IFNCSV9FUlJfSU5WQUxJRF9BRERSRVNTO1xcbiBcXG4gZnJlZV9tZW06XFxuLVxcdGtmcmVlKGVpbmZvKTtcXG4rXFx0a3ZmcmVlKGVpbmZvKTtcXG4gb3V0OlxcbiBcXHRyZXRkYXRhLVxcdTAwM2VlcnJfdmFsID0gcmV0O1xcbiBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NDQuMTY0ODQ4NjQ4WiIsIlNlcSI6MiwiTmVzdGluZyI6MSwiVHlwZSI6ImFnZW50IiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiYmVzdC1leHBlbnNpdmUiLCJEdXJhdGlvbiI6NjI3ODEzMDg1MzAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIG92ZXJmbG93IGFuZCBjaGFuZ2VzIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljIGluIHRoZSBSSVNDLVYgS1ZNIFBNVSBTQkkgaGFuZGxlci4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIGEgZ3Vlc3QgVk0gZXhlY3V0aW5nIGFuIGVjYWxsIGluc3RydWN0aW9uLCBtYWtpbmcgaXQgaGlnaGx5IGZ1enphYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCA0MGY5ZjVjZTZjZmE2NTQyYjM2OGU2YTUxYzliMDk1MWRlZTcyMDUxXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIEZyaSBKdWwgMzEgMjI6Mzg6NDMgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2t2bS92Y3B1X3BtdS5jIGIvYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY1xuaW5kZXggYmI0NmRjYmZiMjRkYS4uOGUxZjZhYmI4NGUyMCAxMDA2NDRcbi0tLSBhL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbisrKyBiL2FyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNcbkBAIC0xMiw3ICsxMiw5IEBAXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvZXJyLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2NsaW51eC9rdm1faG9zdC5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvbm9zcGVjLmhcdTAwM2VcbisjaW5jbHVkZSBcdTAwM2NsaW51eC9vdmVyZmxvdy5oXHUwMDNlXG4gI2luY2x1ZGUgXHUwMDNjbGludXgvcGVyZi9yaXNjdl9wbXUuaFx1MDAzZVxuKyNpbmNsdWRlIFx1MDAzY2xpbnV4L3NsYWIuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9jc3IuaFx1MDAzZVxuICNpbmNsdWRlIFx1MDAzY2FzbS9rdm1faXNhLmhcdTAwM2VcbiAjaW5jbHVkZSBcdTAwM2Nhc20va3ZtX3ZjcHVfc2JpLmhcdTAwM2VcbkBAIC00NzksMTMgKzQ4MSwxNCBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRcdFx0ICB1bnNpZ25lZCBsb25nIGZsYWdzLCBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YSlcbiB7XG4gXHRzdHJ1Y3QgcmlzY3ZfcG11X2V2ZW50X2luZm8gKmVpbmZvID0gTlVMTDtcbi1cdGludCBzaG1lbV9zaXplID0gbnVtX2V2ZW50cyAqIHNpemVvZigqZWluZm8pO1xuK1x0c2l6ZV90IHNobWVtX3NpemU7XG4gXHRncGFfdCBzaG1lbTtcbiBcdHUzMiBlaWR4LCBldHlwZTtcbiBcdHU2NCBlY29uZmlnO1xuIFx0aW50IHJldDtcbiBcbi1cdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpIHx8IG51bV9ldmVudHMgPT0gMCkpIHtcbitcdGlmIChmbGFncyAhPSAwIHx8IChzYWRkcl9sb3cgXHUwMDI2IChTWl8xNiAtIDEpKSB8fCBudW1fZXZlbnRzID09IDAgfHxcbitcdCAgICBjaGVja19tdWxfb3ZlcmZsb3cobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksIFx1MDAyNnNobWVtX3NpemUpKSB7XG4gXHRcdHJldCA9IFNCSV9FUlJfSU5WQUxJRF9QQVJBTTtcbiBcdFx0Z290byBvdXQ7XG4gXHR9XG5AQCAtNTAwLDcgKzUwMyw4IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdH1cbiBcdH1cbiBcbi1cdGVpbmZvID0ga3phbGxvYyhzaG1lbV9zaXplLCBHRlBfS0VSTkVMKTtcbitcdGVpbmZvID0ga3ZjYWxsb2MobnVtX2V2ZW50cywgc2l6ZW9mKCplaW5mbyksXG4rXHRcdFx0IEdGUF9LRVJORUxfQUNDT1VOVCB8IF9fR0ZQX05PV0FSTik7XG4gXHRpZiAoIWVpbmZvKSB7XG4gXHRcdHJldCA9IFNCSV9FUlJfRkFJTFVSRTtcbiBcdFx0Z290byBvdXQ7XG5AQCAtNTEyLDcgKzUxNiw3IEBAIGludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93XG4gXHRcdGdvdG8gZnJlZV9tZW07XG4gXHR9XG4gXG4tXHRmb3IgKGludCBpID0gMDsgaSBcdTAwM2MgbnVtX2V2ZW50czsgaSsrKSB7XG4rXHRmb3IgKHVuc2lnbmVkIGxvbmcgaSA9IDA7IGkgXHUwMDNjIG51bV9ldmVudHM7IGkrKykge1xuIFx0XHRlaWR4ID0gZWluZm9baV0uZXZlbnRfaWR4O1xuIFx0XHRldHlwZSA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfdHlwZShlaWR4KTtcbiBcdFx0ZWNvbmZpZyA9IGt2bV9wbXVfZ2V0X3BlcmZfZXZlbnRfY29uZmlnKGVpZHgsIGVpbmZvW2ldLmV2ZW50X2RhdGEpO1xuQEAgLTUyNSw3ICs1MjksNyBAQCBpbnQga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvd1xuIFx0XHRyZXQgPSBTQklfRVJSX0lOVkFMSURfQUREUkVTUztcbiBcbiBmcmVlX21lbTpcbi1cdGtmcmVlKGVpbmZvKTtcbitcdGt2ZnJlZShlaW5mbyk7XG4gb3V0OlxuIFx0cmV0ZGF0YS1cdTAwM2VlcnJfdmFsID0gcmV0O1xuIFxuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NDQuMTY0ODUwMjQ4WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTYwNzMwNDI1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgYSBSSVNDLVYgS1ZNIFBNVSBQYXRjaCBmb3IgRnV6emluZyBQb3RlbnRpYWwqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGZvciBgYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuY2AuIEl0J3MgcHJldHR5IHN0cmFpZ2h0Zm9yd2FyZCwgYWRkcmVzc2luZyBhIHBvdGVudGlhbCBvdmVyZmxvdyBpc3N1ZSB3aGVuIGFsbG9jYXRpbmcgbWVtb3J5IGZvciBwZXJmb3JtYW5jZSBldmVudHMuIFRoZXkncmUgZG9pbmcgYSBjaGVjayBmb3IgYG51bV9ldmVudHMgKiBzaXplb2YoKmVpbmZvKWAgYW5kIHRoZW4gc3dpdGNoaW5nIGZyb20gYGt6YWxsb2NgIHRvIGBrdmNhbGxvY2Agd2l0aCBzb21lIGV4dHJhIGZsYWdzOiBgR0ZQX0tFUk5FTF9BQ0NPVU5UIHwgX19HRlBfTk9XQVJOYC4gIFRoZXkgYWxzbyB1cGRhdGVkIHRoZSBsb29wIHZhcmlhYmxlIGBpYCB0byBgdW5zaWduZWQgbG9uZ2AgaW4gdGhlIHByb2Nlc3MuIFRoaXMgaXMgZ29vZCwgcmVhbGx5IHRpZ2h0ZW5pbmcgdXAgdGhlIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljLCBwcmV2ZW50aW5nIGludGVnZXIgb3ZlcmZsb3cgYW5kIG1pdGlnYXRpbmcgdGhlIHJpc2sgb2Ygb3V0LW9mLW1lbW9yeSBlcnJvcnMgd2hpY2gsIHdoZW4gZGVhbGluZyB3aXRoIHBlcmZvcm1hbmNlIGV2ZW50cywgY291bGQgYmUgcHJvYmxlbWF0aWMuXG5cbk15IG1pbmQgaW1tZWRpYXRlbHkganVtcHMgdG8gZnV6emluZy4gSXMgdGhpcyBzb21ldGhpbmcgd2UgY2FuIHRocm93IGF0IHN5emthbGxlcj8gSXQncyBSSVNDLVYgS1ZNLCB3aGljaCBpcyB1c3VhbGx5IHg4NiBmb2N1c2VkIGZvciB0aGF0IHBhcnRpY3VsYXIgdG9vbCwgYnV0IHdhaXQsIHN5emthbGxlciAqZG9lcyogaGF2ZSBSSVNDLVYgc3VwcG9ydCBub3csIHNvIGl0J3MgYSBnb29kIGNhbmRpZGF0ZS4gQ3J1Y2lhbGx5LCB0aGUgZnVuY3Rpb24gd2UncmUgdGFyZ2V0aW5nIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuIFRoYXQncyB0aGUgZW50cnkgcG9pbnQgdG8gaW52ZXN0aWdhdGUuXG5cbkkgbmVlZCB0byBuYWlsIGRvd24gdGhlIGNvbmZpZyBvcHRpb25zIHRoYXQgZW5hYmxlIHRoaXMgY29kZSBwYXRoLiBMZXQncyBkaWcgaW50byB0aGUgYnVpbGQgcHJvY2Vzcywgc3BlY2lmaWNhbGx5IGBhcmNoL3Jpc2N2L2t2bS9NYWtlZmlsZWAgb3IgYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgZXhhY3QgY29uZmlndXJhdGlvbiBrbm9icyB0aGF0IG5lZWQgdG8gYmUgZmxpcHBlZCB0byBnZXQgdGhpcyBgdmNwdV9wbXUuY2AgZmlsZSBjb21waWxlZCBpbnRvIHRoZSBLVk0gaW1hZ2UuICBLbm93aW5nIHRoZSBleGFjdCBidWlsZCByZXF1aXJlbWVudHMgaXMga2V5IHRvIG1ha2luZyB0aGlzIGZ1enppbmcgaW52ZXN0aWdhdGlvbiBhY3Rpb25hYmxlLiBJZiB3ZSBjYW4gZ2V0IGEgbWluaW1hbCwgZnV6emFibGUgY29uZmlndXJhdGlvbiwgd2UncmUgaW4gYnVzaW5lc3MuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3NjQsIk91dHB1dFRva2VucyI6MzUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyODAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0OS43NzIxNTgwNzRaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1MTMyMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwidmNwdV9wbXUub1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGU9Mjg9a3ZtLXkgKz0gdmNwdV9vbmVyZWcub1xcbmFyY2gvcmlzY3Yva3ZtL01ha2VmaWxlOjI5Omt2bS0kKENPTkZJR19SSVNDVl9QTVVfU0JJKSArPSB2Y3B1X3BtdS5vXFxuYXJjaC9yaXNjdi9rdm0vTWFrZWZpbGUtMzAta3ZtLXkgKz0gdmNwdV9zYmkub1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo0OS44MTY2NzYxMTNaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0OTY1NjMxNTM2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSBpbml0aWFsIHRob3VnaHRzLCBleHByZXNzZWQgZnJvbSBhIGZpcnN0LXBlcnNvbiBwZXJzcGVjdGl2ZSwgYXMgYSBzZWFzb25lZCBlbWJlZGRlZCBzeXN0ZW1zIGRldmVsb3BlcjpcblxuKipJbml0aWFsIENvbmZpZ3VyYXRpb24gQ29uc2lkZXJhdGlvbnMgZm9yIFJJU0MtVioqXG5cbkFscmlnaHQsIHNvIHRoZSBwcm9qZWN0J3MgcmVxdWlyZW1lbnRzIGFyZSBiZWNvbWluZyBjbGVhcmVyLiBJdCBzZWVtcyBwcmV0dHkgbGlrZWx5IHRoYXQgd2UncmUgZ29pbmcgdG8gbmVlZCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIOKAkyB0aGF0J3MgYSBnaXZlbi4gQW5kIG9mIGNvdXJzZSwgYENPTkZJR19LVk1gIGZvciBSSVNDLVYgaXMgcHJhY3RpY2FsbHkgc3RhbmRhcmQgdGhlc2UgZGF5cywgcGFydGljdWxhcmx5IGdpdmVuIHRoZSB0cmVuZCB0b3dhcmRzIHZpcnR1YWxpemF0aW9uLiBCZWZvcmUgZGl2aW5nIGluIHRvbyBkZWVwLCBJIHNob3VsZCBkb3VibGUtY2hlY2sgdGhhdCBgQ09ORklHX1JJU0NWX1BNVV9TQklgIGZsYWcgd2l0aGluIHRoZSBLY29uZmlnIGNvbmZpZ3VyYXRpb24gZmlsZXMuIEdvdHRhIG1ha2Ugc3VyZSBpdCdzIHNldCB1cCB0aGUgd2F5IEkgZXhwZWN0LCBhbmQgdGhhdCB0aGUgZGVwZW5kZW5jaWVzIGFyZSBhbGwgYWNjb3VudGVkIGZvci5cblxuXG4iLCJJbnB1dFRva2VucyI6MzU3MCwiT3V0cHV0VG9rZW5zIjoyOCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQ5LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM4OjU0Ljc4MjMwOTgxOVoiLCJTZXEiOjYsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNjk5NTI2NDc1LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVfU0JJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL3BlcmYvS2NvbmZpZz04OD1jb25maWcgUklTQ1ZfUE1VX0xFR0FDWVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6OTg6Y29uZmlnIFJJU0NWX1BNVV9TQklcXG5kcml2ZXJzL3BlcmYvS2NvbmZpZy05OS1cXHRkZXBlbmRzIG9uIFJJU0NWX1BNVSBcXHUwMDI2XFx1MDAyNiBSSVNDVl9TQklcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzg6NTYuNDgxODQyNjk0WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzI2MzIwMjk0MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIGZyYW1lZCBhcyBteSBvd246XG5cbioqRGVwZW5kZW5jaWVzIGFuZCBLVk0gQ29uZmlndXJhdGlvbiBmb3IgUklTQy1WIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcqKlxuXG5BbHJpZ2h0LCBsZXQncyBicmVhayB0aGlzIGRvd24uIEl0IHNlZW1zIHByZXR0eSBzdHJhaWdodGZvcndhcmQuIFRoZSBzeXN0ZW0gaXMgdGVsbGluZyBtZSB0aGF0IGBSSVNDVl9QTVVfU0JJYCByZWxpZXMgb24gYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1NCSWAuIFRoYXQgbWFrZXMgc2Vuc2U7IHRoZSBTQkkgcHJvdmlkZXMgdGhlIHN0YW5kYXJkIGludGVyZmFjZSwgYW5kIHRoZSBQTVUgaXMgdGhlIHVuZGVybHlpbmcgaGFyZHdhcmUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyB1bml0LiBUaGUgU0JJIHRoZW4gbGlrZWx5IGV4cG9zZXMgdGhlIFBNVSBkYXRhLlxuXG5Ob3csIHRoZSBzeXN0ZW0gaGlnaGxpZ2h0cyB0aGF0IGBLVk1gIGlzIGFsc28gbmVlZGVkIGZvciB0aGlzIGNvbmZpZ3VyYXRpb24gdG8gd29yaywgSSdkIGJldHRlciBjb25maXJtIHdoZXJlIHRvIGVuYWJsZSBgS1ZNYCBpbiB0aGUgYEtjb25maWdgLlxuXG5TbywgdGhlIG5leHQgc3RlcCBpcyB0byBkaXZlIGludG8gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgIHRvIHZlcmlmeSB0aGUgbmVjZXNzYXJ5IGBLVk1gIHNldHRpbmdzIGFuZCBkZXBlbmRlbmNpZXMuIEdvdHRhIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGlzIGluIHBsYWNlIHRvIHN1cHBvcnQgdGhlIHBlcmZvcm1hbmNlIG1vbml0b3JpbmcgaW5mcmFzdHJ1Y3R1cmUgSSdtIHNldHRpbmcgdXAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjM4OTcsIk91dHB1dFRva2VucyI6MzEsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1NywiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo1OS43NDUwNDgzMjVaIiwiU2VxIjo4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI2OTcyNDksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiY29uZmlnIEtWTVwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZz0xOD1pZiBWSVJUVUFMSVpBVElPTlxcbmFyY2gvcmlzY3Yva3ZtL0tjb25maWctMTktXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZzoyMDpjb25maWcgS1ZNXFxuYXJjaC9yaXNjdi9rdm0vS2NvbmZpZy0yMS1cXHR0cmlzdGF0ZSBcXFwiS2VybmVsLWJhc2VkIFZpcnR1YWwgTWFjaGluZSAoS1ZNKSBzdXBwb3J0XFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozODo1OS43ODc3NDk5ODRaIiwiU2VxIjo5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoyOTc2NzE1NTI2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKktlcm5lbCBDb25maWd1cmF0aW9uIENvbnVuZHJ1bSoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBhc3Nlc3NtZW50IHBvaW50cyB0b3dhcmRzIGEgbmVlZCBmb3IgYEtWTWAsIGBSSVNDVl9QTVVfU0JJYCwgYFJJU0NWX1BNVWAsIGFuZCBgUklTQ1ZfU0JJYCB0byBnZXQgdGhpcyB0aGluZyBodW1taW5nLiBCdXQsIGJhc2VkIG9uIG15IHBhc3QgZXhwZXJpZW5jZSB3aXRoIHRoZXNlIHNvcnRzIG9mIHRoaW5ncywgdGhlIGBSSVNDVl9QTVVgIGFuZCBgUklTQ1ZfU0JJYCBvcHRpb25zIGFyZSBsaWtlbHkgZWl0aGVyIHByZS1lbmFibGVkIGJ5IGRlZmF1bHQgb3IgYSB0cml2aWFsIGluY2x1c2lvbi4gU28sIGJlZm9yZSBJIGdvIGRvd24gYSByYWJiaXQgaG9sZSwgbGV0J3MgcXVpY2tseSB2ZXJpZnkgdGhlIHN0YXR1cyBvZiB0aG9zZSB0d28uIEl0IG1ha2VzIHNlbnNlIHRvIGNoZWNrIHRoZSBlYXN5IHdpbnMgZmlyc3QuIEknbGwgdGFrZSBhIGxvb2sgYXQgdGhlIGNvbmZpZyBhbmQgc2VlIHdoYXQncyB3aGF0LlxuXG5cbiIsIklucHV0VG9rZW5zIjo0Mjg0LCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MDIuNzY0NDY5Nzc5WiIsIlNlcSI6MTAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNzMxNTk5NjA0LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctNzctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gUklTQ1ZcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjg4OmNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuZHJpdmVycy9wZXJmL0tjb25maWctODktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjA0LjQ5NjA3NjQxNFoiLCJTZXEiOjExLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjE3MDM1MzUyLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlLCBhbmQgd3JpdHRlbiBpbiB0aGUgZmlyc3QgcGVyc29uOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIExhbmRzY2FwZSoqXG5cblJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgYFJJU0NWX1NCSWAgc2l0dWF0aW9uLiBUaGVyZSdzIGEgbG90IG9mIGFjdGl2aXR5IGluIHRoaXMgYXJlYSwgYW5kIEkgd2FudCB0byBtYWtlIHN1cmUgSSdtIHVwLXRvLWRhdGUuIEkgbmVlZCB0byBxdWlja2x5IGFzc2VzcyB0aGUgY3VycmVudCBzdGF0ZS4gV2hhdCBhcmUgdGhlIGtleSBpbXBsZW1lbnRhdGlvbnM/IEFyZSB0aGVyZSBhbnkgYnJlYWtpbmcgY2hhbmdlcyBJIHNob3VsZCBrbm93IGFib3V0PyBBbmQgbW9zdCBpbXBvcnRhbnRseSwgd2hhdCBhcmUgdGhlIGltcGxpY2F0aW9ucyBmb3IgbXkgY3VycmVudCB3b3JrPyBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgdGhlIGNvbnRleHQgSSdtIGRlYWxpbmcgd2l0aC4gSXMgdGhpcyBmb3IgYSBzcGVjaWZpYyBhcmNoaXRlY3R1cmUgdmFyaWFudCwgb3IgaXMgdGhpcyBhIGdlbmVyYWwgb3ZlcnZpZXc/IEFyZSB0aGVyZSBzcGVjaWZpYyBleHRlbnNpb25zIEkgc2hvdWxkIGJlIGxvb2tpbmcgYXQ/IExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDcxNiwiT3V0cHV0VG9rZW5zIjoyNSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjA3LjcxMzExNTAyNVoiLCJTZXEiOjEyLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTU2NzYyMzA3NiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgUklTQ1ZfU0JJXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcIlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODQtIyBzZXQgaWYgd2UgYXJlIHJ1bm5pbmcgaW4gUy1tb2RlIGFuZCBjYW4gdXNlIFNCSSBjYWxsc1xcbmFyY2gvcmlzY3YvS2NvbmZpZzoyODU6Y29uZmlnIFJJU0NWX1NCSVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODYtXFx0Ym9vbFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTkzMz1jb25maWcgUklTQ1ZfVkVDVE9SX01JU0FMSUdORURcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy05MzktXFxuYXJjaC9yaXNjdi9LY29uZmlnOjk0MDpjb25maWcgUklTQ1ZfU0JJX0ZXRlRfREVMRUdBVEVfTUlTQUxJR05FRFxcbmFyY2gvcmlzY3YvS2NvbmZpZy05NDEtXFx0Ym9vbCBcXFwiUmVxdWVzdCBmaXJtd2FyZSBkZWxlZ2F0aW9uIG9mIHVuYWxpZ25lZCBhY2Nlc3MgZXhjZXB0aW9uc1xcXCJcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDU5PXNvdXJjZSBcXFwia2VybmVsL0tjb25maWcuaHpcXFwiXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEwNjAtXFxuYXJjaC9yaXNjdi9LY29uZmlnOjEwNjE6Y29uZmlnIFJJU0NWX1NCSV9WMDFcXG5hcmNoL3Jpc2N2L0tjb25maWctMTA2Mi1cXHRib29sIFxcXCJTQkkgdjAuMSBzdXBwb3J0XFxcIlxcbi0tXFxuZHJpdmVycy9jcHVpZGxlL0tjb25maWcucmlzY3YtNS1cXG5kcml2ZXJzL2NwdWlkbGUvS2NvbmZpZy5yaXNjdjo2OmNvbmZpZyBSSVNDVl9TQklfQ1BVSURMRVxcbmRyaXZlcnMvY3B1aWRsZS9LY29uZmlnLnJpc2N2LTctXFx0Ym9vbCBcXFwiUklTQy1WIFNCSSBDUFUgaWRsZSBEcml2ZXJcXFwiXFxuLS1cXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZz0zODE9Y29uZmlnIEJDTTc0MTEwX01BSUxCT1hcXG4tLVxcbmRyaXZlcnMvbWFpbGJveC9LY29uZmlnLTM5MC1cXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZzozOTE6Y29uZmlnIFJJU0NWX1NCSV9NUFhZX01CT1hcXG5kcml2ZXJzL21haWxib3gvS2NvbmZpZy0zOTItXFx0dHJpc3RhdGUgXFxcIlJJU0MtViBTQkkgTWVzc2FnZSBQcm94eSAoTVBYWSkgTWFpbGJveFxcXCJcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MDkuMjgwNzQ0MTgyWiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI4NTg2OTQzODcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIHN1bW1hcml6ZWQgYXMgeW91IHJlcXVlc3RlZDpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBSSVNDVl9TQkkgTWFjcm8qKlxuXG5Pa2F5LCBzbyBgUklTQ1ZfU0JJYC4uLnRoYXQncyBhIGJvb2xlYW4sIGFuZCBsaWtlbHkgY29udHJvbGxlZCBieSBzb21lIG90aGVyIGNvbmZpZ3VyYXRpb24gc2V0dGluZy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIGxldCdzIHRyYWNlIGJhY2sgd2hlcmUgdGhpcyBpcyBkZWZpbmVkIGFuZCB3aGF0J3MgY2F1c2luZyBpdCB0byBiZSBzZXQgKG9yIG5vdCBzZXQpLiBVbmRlcnN0YW5kaW5nIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHNlbGVjdGlvbiBjcml0ZXJpYSBmb3IgdGhpcyBtYWNybyBpcyBjcml0aWNhbCBmb3IgdW5kZXJzdGFuZGluZyB0aGUgb3ZlcmFsbCBjb25maWd1cmF0aW9uIG9mIHRoZSBSSVNDLVYgc3lzdGVtLiBUaW1lIHRvIGRpZyBpbnRvIHRoZSBidWlsZCBzeXN0ZW0gYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMgdG8gc2VlIHdoYXQncyBkcml2aW5nIGBSSVNDVl9TQklgLiBHb3R0YSBmaW5kIHRoZSBcIndoYXQgZW5hYmxlcyB0aGUgYFJJU0NWX1NCSWBcIiB0cmlnZ2VyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo1MzYzLCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MTIuMTM5NDQyNDg5WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTUzMzEyNzQ3LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInNlbGVjdCBSSVNDVl9TQklcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTExODgtXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMTg5OlxcdHNlbGVjdCBSSVNDVl9TQklcXG5hcmNoL3Jpc2N2L0tjb25maWctMTE5MC1cXHRzZWxlY3QgQVJDSF9IQVNfVVNFUl9TSEFET1dfU1RBQ0tcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzPTg3PWNvbmZpZyBBUkNIX1ZJUlRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy5zb2NzLTk1LVxcdHNlbGVjdCBQTV9HRU5FUklDX0RPTUFJTlNfT0YgaWYgUE0gXFx1MDAyNlxcdTAwMjYgT0ZcXG5hcmNoL3Jpc2N2L0tjb25maWcuc29jczo5NjpcXHRzZWxlY3QgUklTQ1ZfU0JJX0NQVUlETEUgaWYgQ1BVX0lETEUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuYXJjaC9yaXNjdi9LY29uZmlnLnNvY3MtOTctXFx0aGVscFxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToxMy42OTI3NjI5NTZaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzE3OTA0MTEyMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgaXNzdWU6XG5cbioqRGVsdmluZyBpbnRvIHRoZSBSSVNDLVYgU0JJIEltcGxlbWVudGF0aW9uKipcblxuT2theSwgc28gdGhlIHByb2dyYW0ncyBiZWhhdmlvciBoaW5nZXMgb24gdGhpcyBgUklTQ1ZfU0JJYCBzZXR0aW5nLiBUaGF0IHJpbmdzIGEgYmVsbCwgSSB0aGluayBgUklTQ1ZfU0JJYCBpcyB0aWVkIHRvIHdoZXRoZXIgd2UncmUgb3BlcmF0aW5nIGluIFMtbW9kZS4gTWFrZXMgc2Vuc2U7IFNCSSAoU3VwZXJ2aXNvciBCaW5hcnkgSW50ZXJmYWNlKSBpcyB1c3VhbGx5IHRoZSBicmlkZ2UgZm9yIHByaXZpbGVnZWQgb3BlcmF0aW9ucyBmcm9tIFMtbW9kZSB0byB0aGUgdW5kZXJseWluZyBmaXJtd2FyZSBvciBtYWNoaW5lIG1vZGUuIFRvIGNvbmZpcm0gbXkgaHVuY2gsIEkgbmVlZCB0byBkaWcgaW50byB0aGUga2VybmVsJ3MgY29uZmlndXJhdGlvbi4gVGhlIGJlc3QgcGxhY2UgdG8gZmluZCB0aGUgZGVmaW5pdGlvbiBvZiBgUklTQ1ZfU0JJYCwgZ2l2ZW4gdGhlIGNvbnRleHQgb2YgYSBSSVNDLVYgc3lzdGVtLCBpcyBkZWZpbml0ZWx5IGBhcmNoL3Jpc2N2L0tjb25maWdgLiBUaW1lIHRvIGNvbnN1bHQgdGhhdCBLY29uZmlnIGZpbGUuIEknbGwgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBleGFjdCBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGl0J3MgZGVmaW5lZCBhbmQgd2hhdCBpbXBsaWNhdGlvbnMgdGhhdCBoYXMgZm9yIHRoZSBzeXN0ZW0ncyBydW50aW1lIGJlaGF2aW9yLiBVbmRlcnN0YW5kaW5nIHRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgaXMgY3J1Y2lhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBiaWdnZXIgcGljdHVyZS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTc2OCwiT3V0cHV0VG9rZW5zIjoyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjE2Ljg3MTgwNjQ5OFoiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDI3NDgyNDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZGVmYXVsdCB5XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2gvcmlzY3YvS2NvbmZpZ1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJhcmNoL3Jpc2N2L0tjb25maWc9Mjc2PWNvbmZpZyBSSVNDVl9NX01PREVcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yNzgtXFx0ZGVwZW5kcyBvbiAhTU1VXFxuYXJjaC9yaXNjdi9LY29uZmlnOjI3OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctMjgwLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0yODU9Y29uZmlnIFJJU0NWX1NCSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTI4Ny1cXHRkZXBlbmRzIG9uICFSSVNDVl9NX01PREVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Mjg4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yODktXFxuYXJjaC9yaXNjdi9LY29uZmlnPTI5MD1jb25maWcgTU1VXFxuYXJjaC9yaXNjdi9LY29uZmlnLTI5MS1cXHRib29sIFxcXCJNTVUtYmFzZWQgUGFnZWQgTWVtb3J5IE1hbmFnZW1lbnQgU3VwcG9ydFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6MjkyOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0yOTMtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTU1Mz1jb25maWcgUklTQ1ZfSVNBX0NcXG5hcmNoL3Jpc2N2L0tjb25maWctNTU0LVxcdGJvb2wgXFxcIkVtaXQgY29tcHJlc3NlZCBpbnN0cnVjdGlvbnMgd2hlbiBidWlsZGluZyBMaW51eFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6NTU1OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01NTYtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTU2ND1jb25maWcgUklTQ1ZfSVNBX1NVUE1cXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01NjYtXFx0ZGVwZW5kcyBvbiA2NEJJVFxcbmFyY2gvcmlzY3YvS2NvbmZpZzo1Njc6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTU2OC1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NTc1PWNvbmZpZyBSSVNDVl9JU0FfU1ZOQVBPVFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTU3OC1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjU3OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNTgwLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz01OTQ9Y29uZmlnIFJJU0NWX0lTQV9TVlBCTVRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy01OTctXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzo1OTg6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTU5OS1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NjExPWNvbmZpZyBUT09MQ0hBSU5fSEFTX1ZcXG5hcmNoL3Jpc2N2L0tjb25maWctNjEyLVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NjEzOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02MTQtXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltdilcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02MTk9Y29uZmlnIFJJU0NWX0lTQV9WXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNjIzLVxcdHNlbGVjdCBEWU5BTUlDX1NJR0ZSQU1FXFxuYXJjaC9yaXNjdi9LY29uZmlnOjYyNDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjI1LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02MzI9Y29uZmlnIFJJU0NWX0lTQV9WX0RFRkFVTFRfRU5BQkxFXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNjM0LVxcdGRlcGVuZHMgb24gUklTQ1ZfSVNBX1ZcXG5hcmNoL3Jpc2N2L0tjb25maWc6NjM1OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02MzYtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTY1MT1jb25maWcgUklTQ1ZfSVNBX1ZfUFJFRU1QVElWRVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY1NC1cXHRkZXBlbmRzIG9uIFJJU0NWX0lTQV9WXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY1NTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjU2LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02NjU9Y29uZmlnIFJJU0NWX0lTQV9aQVdSU1xcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY2Ny1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY2ODpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjY5LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02NzY9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkFCSEFcXG5hcmNoL3Jpc2N2L0tjb25maWctNjc3LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6Njc4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02NzktXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YWJoYSlcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02ODM9Y29uZmlnIFJJU0NWX0lTQV9aQUJIQVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTY4Ni1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjY4NzpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNjg4LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz02OTQ9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkFDQVNcXG5hcmNoL3Jpc2N2L0tjb25maWctNjk1LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6Njk2OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy02OTctXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YWNhcylcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03MDE9Y29uZmlnIFJJU0NWX0lTQV9aQUNBU1xcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTcwMy1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjcwNDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzA1LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03MTE9Y29uZmlnIFRPT0xDSEFJTl9IQVNfWkJCXFxuYXJjaC9yaXNjdi9LY29uZmlnLTcxMi1cXHRib29sXFxuYXJjaC9yaXNjdi9LY29uZmlnOjcxMzpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzE0LVxcdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJiKVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTcyNj1jb25maWcgVE9PTENIQUlOX0hBU19aQkFcXG5hcmNoL3Jpc2N2L0tjb25maWctNzI3LVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzI4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03MjktXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmEpXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzM0PWNvbmZpZyBSSVNDVl9JU0FfWkJBXFxuYXJjaC9yaXNjdi9LY29uZmlnLTczNS1cXHRib29sIFxcXCJaYmEgZXh0ZW5zaW9uIHN1cHBvcnQgZm9yIGJpdCBtYW5pcHVsYXRpb24gaW5zdHJ1Y3Rpb25zXFxcIlxcbmFyY2gvcmlzY3YvS2NvbmZpZzo3MzY6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTczNy1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzQ2PWNvbmZpZyBSSVNDVl9JU0FfWkJCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzQ4LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzQ5OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NTAtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTc2MT1jb25maWcgVE9PTENIQUlOX0hBU19aQkNcXG5hcmNoL3Jpc2N2L0tjb25maWctNzYyLVxcdGJvb2xcXG5hcmNoL3Jpc2N2L0tjb25maWc6NzYzOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NjQtXFx0ZGVwZW5kcyBvbiAhNjRCSVQgfHwgJChjYy1vcHRpb24sLW1hYmk9bHA2NCAtbWFyY2g9cnY2NGltYV96YmMpXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9NzY5PWNvbmZpZyBSSVNDVl9JU0FfWkJDXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzczLVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzc0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03NzUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTc4ND1jb25maWcgVE9PTENIQUlOX0hBU19aQktCXFxuYXJjaC9yaXNjdi9LY29uZmlnLTc4NS1cXHRib29sXFxuYXJjaC9yaXNjdi9LY29uZmlnOjc4NjpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctNzg3LVxcdGRlcGVuZHMgb24gITY0QklUIHx8ICQoY2Mtb3B0aW9uLC1tYWJpPWxwNjQgLW1hcmNoPXJ2NjRpbWFfemJrYilcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz03OTI9Y29uZmlnIFJJU0NWX0lTQV9aQktCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctNzk1LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6Nzk2OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy03OTctXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTgwNj1jb25maWcgUklTQ1ZfSVNBX1pJQ0JPTVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTgwOS1cXHRkZXBlbmRzIG9uIFJJU0NWX0FMVEVSTkFUSVZFXFxuYXJjaC9yaXNjdi9LY29uZmlnOjgxMDpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctODExLVxcdHNlbGVjdCBSSVNDVl9ETUFfTk9OQ09IRVJFTlRcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz04MjM9Y29uZmlnIFJJU0NWX0lTQV9aSUNCT1pcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04MjUtXFx0ZGVwZW5kcyBvbiBSSVNDVl9BTFRFUk5BVElWRVxcbmFyY2gvcmlzY3YvS2NvbmZpZzo4MjY6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTgyNy1cXHRoZWxwXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9ODM1PWNvbmZpZyBSSVNDVl9JU0FfWklDQk9QXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctODM4LVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODM5OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04NDAtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTg1MD1jb25maWcgUklTQ1ZfSVNBX1NWUlNXNjBUNTlCXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctODUzLVxcdGRlcGVuZHMgb24gUklTQ1ZfQUxURVJOQVRJVkVcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODU0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04NTUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTg5Mj1jb25maWcgRlBVXFxuYXJjaC9yaXNjdi9LY29uZmlnLTg5My1cXHRib29sIFxcXCJGUFUgc3VwcG9ydFxcXCJcXG5hcmNoL3Jpc2N2L0tjb25maWc6ODk0OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy04OTUtXFx0aGVscFxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTkwMj1jb25maWcgSVJRX1NUQUNLU1xcbmFyY2gvcmlzY3YvS2NvbmZpZy05MDMtXFx0Ym9vbCBcXFwiSW5kZXBlbmRlbnQgaXJxIFxcdTAwMjYgc29mdGlycSBzdGFja3NcXFwiIGlmIEVYUEVSVFxcbmFyY2gvcmlzY3YvS2NvbmZpZzo5MDQ6XFx0ZGVmYXVsdCB5XFxuYXJjaC9yaXNjdi9LY29uZmlnLTkwNS1cXHRzZWxlY3QgSEFWRV9JUlFfRVhJVF9PTl9JUlFfU1RBQ0tcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMDY4PWNvbmZpZyBSSVNDVl9CT09UX1NQSU5XQUlUXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctMTA3MC1cXHRkZXBlbmRzIG9uIFNNUFxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMDcxOlxcdGRlZmF1bHQgeSBpZiBSSVNDVl9TQklfVjAxIHx8IFJJU0NWX01fTU9ERVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMDcyLVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMTgzPWNvbmZpZyBSSVNDVl9VU0VSX0NGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEyMDItXFx0ICBkb2VzIG5vdCBnZXQgcHJvdGVjdGlvbiBcXFwiZm9yIGZyZWVcXFwiLlxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjAzOlxcdCAgZGVmYXVsdCB5LlxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjA0LVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnPTEyNTU9Y29uZmlnIEVGSVxcbi0tXFxuYXJjaC9yaXNjdi9LY29uZmlnLTEyNTgtXFx0ZGVwZW5kcyBvbiBNTVVcXG5hcmNoL3Jpc2N2L0tjb25maWc6MTI1OTpcXHRkZWZhdWx0IHlcXG5hcmNoL3Jpc2N2L0tjb25maWctMTI2MC1cXHRzZWxlY3QgQVJDSF9TVVBQT1JUU19BQ1BJIGlmIDY0QklUXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWc9MTI3NT1jb25maWcgRE1JXFxuLS1cXG5hcmNoL3Jpc2N2L0tjb25maWctMTI3Ny1cXHRkZXBlbmRzIG9uIEVGSVxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMjc4OlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMjc5LVxcdGhlbHBcXG4tLVxcbmFyY2gvcmlzY3YvS2NvbmZpZz0xMzA4PWNvbmZpZyBSSVNDVl9JU0FfRkFMTEJBQ0tcXG5hcmNoL3Jpc2N2L0tjb25maWctMTMwOS1cXHRib29sIFxcXCJQZXJtaXQgZmFsbGluZyBiYWNrIHRvIHBhcnNpbmcgcmlzY3YsaXNhIGZvciBleHRlbnNpb24gc3VwcG9ydCBieSBkZWZhdWx0XFxcIlxcbmFyY2gvcmlzY3YvS2NvbmZpZzoxMzEwOlxcdGRlZmF1bHQgeVxcbmFyY2gvcmlzY3YvS2NvbmZpZy0xMzExLVxcdGhlbHBcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MTYuOTE0NTU4NDc4WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjM2MTIwNTY5MTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRXhhbWluaW5nIFJJU0MtViBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5Pa2F5LCBsZXQncyBicmVhayBkb3duIHRoZXNlIFJJU0MtViBrZXJuZWwgY29uZmlndXJhdGlvbnMuIEl0IGxvb2tzIGxpa2UgYFJJU0NWX1NCSWAgaXMgZW5hYmxlZCBieSBkZWZhdWx0IGlmIHdlJ3JlICpub3QqIGluIGBSSVNDVl9NX01PREVgLiBGdXJ0aGVybW9yZSwgYFJJU0NWX01fTU9ERWAgc2VlbXMgdG8gYmUgZW5hYmxlZCBpZiB0aGVyZSdzIG5vIE1lbW9yeSBNYW5hZ2VtZW50IFVuaXQgKGBNTVVgKS4gU28sIGlmIHRoZSB0YXJnZXQgaXMgYSB0eXBpY2FsIGtlcm5lbCB3aXRoIGFuIE1NVSwgYFJJU0NWX1NCSWAgc2hvdWxkIGJlIHNldCB0byAneScsIHdoaWNoIG1ha2VzIHNlbnNlLiBJIHdvdWxkIGV4cGVjdCB0aGF0LiBOb3csIEknbSBjdXJpb3VzIGFib3V0IGBSSVNDVl9QTVVgLiBJcyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgc3VwcG9ydCBlbmFibGVkIGJ5IGRlZmF1bHQ/IExldCBtZSBqdXN0IGRvdWJsZS1jaGVjayB0aGF0LCBteSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCB3aWxsIGRlcGVuZCBvbiB0aGUgb3ZlcmFyY2hpbmcgYFJJU0NWYCBvcHRpb24sIG5vdCBhIGRlZmF1bHQgJ3knLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTQxLCJPdXRwdXRUb2tlbnMiOjI2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MjAuNTI2NjE4MzI0WiIsIlNlcSI6MTgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNTU4OTk0Nzg2LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcImNvbmZpZyBSSVNDVl9QTVVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvcGVyZi9LY29uZmlnPTc0PWNvbmZpZyBBUk1fWFNDQUxFX1BNVVxcbi0tXFxuZHJpdmVycy9wZXJmL0tjb25maWctNzctXFxuZHJpdmVycy9wZXJmL0tjb25maWc6Nzg6Y29uZmlnIFJJU0NWX1BNVVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTc5LVxcdGRlcGVuZHMgb24gUklTQ1ZcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTg3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjg4OmNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuZHJpdmVycy9wZXJmL0tjb25maWctODktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVVcXG4tLVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnLTk3LVxcbmRyaXZlcnMvcGVyZi9LY29uZmlnOjk4OmNvbmZpZyBSSVNDVl9QTVVfU0JJXFxuZHJpdmVycy9wZXJmL0tjb25maWctOTktXFx0ZGVwZW5kcyBvbiBSSVNDVl9QTVUgXFx1MDAyNlxcdTAwMjYgUklTQ1ZfU0JJXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjIyLjA4NTYyMjU5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjMyOTcwMDI4NTEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTmF2aWdhdGluZyB0aGUgUklTQy1WIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdCBDb25maWd1cmF0aW9uKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBhbmQgaXQncyBjbGVhciB0aGVyZSdzIG5vIGF1dG9tYXRpYyBlbmFibGluZyBvZiBgZGVmYXVsdCB5YCBmb3IgdGhlIFBlcmZvcm1hbmNlIE1vbml0b3JpbmcgVW5pdC4gVGhhdCBtZWFucyBJIG5lZWQgdG8gYmUgZXhwbGljaXQgYWJvdXQgZW5hYmxpbmcgYm90aCBgUklTQ1ZfUE1VYCBhbmQgYFJJU0NWX1BNVV9TQklgLiBKdXN0IG1ha2luZyBhIG1lbnRhbCBub3RlIG9mIHRoYXQuIE5vdywgYSBxdWljayBxdWVzdGlvbiBwb3BzIHVwOiBpcyBgUklTQ1ZfUE1VYCBkZWZpbmVkIGFzIGEgYm9vbGVhbiBvciBhIHRyaXN0YXRlPyBJIG5lZWQgdG8gY2xhcmlmeSB0aGF0IGJlZm9yZSBJIG1vdmUgZm9yd2FyZCwgb3IgSSBjb3VsZCBydW4gaW50byBwcm9ibGVtcy4gQmVzdCBwcmFjdGljZSwgbGV0J3MgaGVhZCBvdmVyIHRvIGBkcml2ZXJzL3BlcmYvS2NvbmZpZ2AsIHByb2JhYmx5IGFyb3VuZCBsaW5lIDc4IG9yIHNvLCB0byBnZXQgdGhlIGRlZmluaXRpdmUgYW5zd2VyIG9uIHRoYXQuIEknbGwgdGFrZSBhIHF1aWNrIHNjYW4gdGhlcmUgYW5kIHNlZSB3aGF0J3Mgd2hhdC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTQyMiwiT3V0cHV0VG9rZW5zIjozMywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY4LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjI1LjM4MjYyODU1MVoiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MDk4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL3BlcmYvS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiA3NSxcbiAgXCJMaW5lQ291bnRcIjogMzBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiICA3NTpcXHRcXHRkZXBlbmRzIG9uIEFSTV9QTVUgXFx1MDAyNlxcdTAwMjYgQ1BVX1hTQ0FMRVxcbiAgNzY6XFx0XFx0ZGVmX2Jvb2wgeVxcbiAgNzc6XFx0XFxuICA3ODpcXHRjb25maWcgUklTQ1ZfUE1VXFxuICA3OTpcXHRcXHRkZXBlbmRzIG9uIFJJU0NWXFxuICA4MDpcXHRcXHRib29sIFxcXCJSSVNDLVYgUE1VIGZyYW1ld29ya1xcXCJcXG4gIDgxOlxcdFxcdGRlZmF1bHQgeVxcbiAgODI6XFx0XFx0aGVscFxcbiAgODM6XFx0XFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgQ1BVIHBlcmZvcm1hbmNlIG1vbml0b3JzIG9uIFJJU0NWLWJhc2VkXFxuICA4NDpcXHRcXHQgIHN5c3RlbXMuIFRoaXMgcHJvdmlkZXMgdGhlIGNvcmUgUE1VIGZyYW1ld29yayB0aGF0IGFic3RyYWN0cyBjb21tb25cXG4gIDg1OlxcdFxcdCAgUE1VIGZ1bmN0aW9uYWxpdGllcyBpbiBhIGNvcmUgbGlicmFyeSBzbyB0aGF0IGRpZmZlcmVudCBQTVUgZHJpdmVyc1xcbiAgODY6XFx0XFx0ICBjYW4gcmV1c2UgaXQuXFxuICA4NzpcXHRcXG4gIDg4OlxcdGNvbmZpZyBSSVNDVl9QTVVfTEVHQUNZXFxuICA4OTpcXHRcXHRkZXBlbmRzIG9uIFJJU0NWX1BNVVxcbiAgOTA6XFx0XFx0Ym9vbCBcXFwiUklTQy1WIGxlZ2FjeSBQTVUgaW1wbGVtZW50YXRpb25cXFwiXFxuICA5MTpcXHRcXHRkZWZhdWx0IHlcXG4gIDkyOlxcdFxcdGhlbHBcXG4gIDkzOlxcdFxcdCAgU2F5IHkgaWYgeW91IHdhbnQgdG8gdXNlIHRoZSBsZWdhY3kgQ1BVIHBlcmZvcm1hbmNlIG1vbml0b3JcXG4gIDk0OlxcdFxcdCAgaW1wbGVtZW50YXRpb24gb24gUklTQy1WIGJhc2VkIHN5c3RlbXMuIFRoaXMgb25seSBhbGxvd3MgY291bnRpbmdcXG4gIDk1OlxcdFxcdCAgb2YgY3ljbGUvaW5zdHJ1Y3Rpb24gY291bnRlciBhbmQgZG9lc24ndCBzdXBwb3J0IGNvdW50ZXIgb3ZlcmZsb3csXFxuICA5NjpcXHRcXHQgIG9yIHByb2dyYW1tYWJsZSBjb3VudGVycy4gSXQgd2lsbCBiZSByZW1vdmVkIGluIGZ1dHVyZS5cXG4gIDk3OlxcdFxcbiAgOTg6XFx0Y29uZmlnIFJJU0NWX1BNVV9TQklcXG4gIDk5OlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfUE1VIFxcdTAwMjZcXHUwMDI2IFJJU0NWX1NCSVxcbiAxMDA6XFx0XFx0Ym9vbCBcXFwiUklTQy1WIFBNVSBiYXNlZCBvbiBTQkkgUE1VIGV4dGVuc2lvblxcXCJcXG4gMTAxOlxcdFxcdGRlZmF1bHQgeVxcbiAxMDI6XFx0XFx0aGVscFxcbiAxMDM6XFx0XFx0ICBTYXkgeSBpZiB5b3Ugd2FudCB0byB1c2UgdGhlIENQVSBwZXJmb3JtYW5jZSBtb25pdG9yXFxuIDEwNDpcXHRcXHQgIHVzaW5nIFNCSSBQTVUgZXh0ZW5zaW9uIG9uIFJJU0MtViBiYXNlZCBzeXN0ZW1zLiBUaGlzIG9wdGlvbiBwcm92aWRlc1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyNS4zODI3MDEyMzFaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzQ3NjgxNTk3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgaGVyZSdzIG15IHRha2Ugb24gdGhvc2UgdGhvdWdodHMsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqUklTQy1WIFBNVSBDb25maWd1cmF0aW9uIC0gQSBRdWljayBBc3Nlc3NtZW50KipcblxuQWxyaWdodCwgc28gYFJJU0NWX1BNVWAgYW5kIGBSSVNDVl9QTVVfU0JJYCBhcmUgYm90aCBzZXQgdG8gYGRlZmF1bHQgeWAuIFRoYXQncyBnb29kOyBpdCBzaW1wbGlmaWVzIHRoaW5ncy4gTXkgaW1tZWRpYXRlIHRob3VnaHQgaXMsIFwiT2theSwgd2UncmUgbGlrZWx5IHNldCB1cCBmb3Igc29tZSBiYXNpYyBwZXJmb3JtYW5jZSBtb25pdG9yaW5nLlwiIFRoaXMgaW1wbGllcyB0aGUgcHJlc2VuY2Ugb2YgdGhlIHJlcXVpcmVkIGhhcmR3YXJlIHN1cHBvcnQsIG9yIGF0IGxlYXN0IGEgbWluaW1hbCBzb2Z0d2FyZSBlbXVsYXRpb24uXG5cblRoZXJlZm9yZSwgYmVjYXVzZSBvZiB0aG9zZSBkZWZhdWx0cywgdGhlIHJlc3QgaXMgZmFpcmx5IHN0cmFpZ2h0Zm9yd2FyZC4gQXNzdW1pbmcgd2Ugd2FudCB0byBzdXBwb3J0IEtWTSAod2hpY2gsIGdpdmVuIHRoZSBjb250ZXh0LCBzZWVtcyBoaWdobHkgbGlrZWx5KSwgdGhlIG9ubHkgZnVydGhlciBjb25zaWRlcmF0aW9uIGhlcmUgaXMgYXJvdW5kIEtWTSBjb25maWd1cmF0aW9uLlxuXG5NeSBwcmltYXJ5IGZvY3VzIHNoaWZ0cyB0byB0aGUgYEtWTWAgb3B0aW9uLCB3aGljaCB3aWxsIGJlIHRoZSBoZWFydCBvZiB0aGUgdmlydHVhbGl6YXRpb24gcHJvY2VzcyBoZXJlLiBJIG5lZWQgdG8gbWFrZSBzdXJlIEtWTSBzdXBwb3J0IGlzIGVuYWJsZWQsIHNvIEknbGwgbmVlZCB0byBkb3VibGUgY2hlY2sgdGhlIEtjb25maWcgaW4gYGFyY2gvcmlzY3Yva3ZtL0tjb25maWdgLiBJJ2xsIHByb2JhYmx5IHNjYW4gZm9yIGRlcGVuZGVuY2llcyBhbmQgYW55IGNvbmRpdGlvbmFsIGxvZ2ljIHRoZXJlLCBqdXN0IHRvIGNvbmZpcm0uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEwMTI5LCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyOC44NTk1MjA0NjlaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NjA4NjAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiYXJjaC9yaXNjdi9rdm0vS2NvbmZpZ1wiLFxuICBcIkZpcnN0TGluZVwiOiAxLFxuICBcIkxpbmVDb3VudFwiOiAzMFxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgICAxOlxcdCMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjBcXG4gICAyOlxcdCNcXG4gICAzOlxcdCMgS1ZNIGNvbmZpZ3VyYXRpb25cXG4gICA0OlxcdCNcXG4gICA1OlxcdFxcbiAgIDY6XFx0c291cmNlIFxcXCJ2aXJ0L2t2bS9LY29uZmlnXFxcIlxcbiAgIDc6XFx0XFxuICAgODpcXHRtZW51Y29uZmlnIFZJUlRVQUxJWkFUSU9OXFxuICAgOTpcXHRcXHRib29sIFxcXCJWaXJ0dWFsaXphdGlvblxcXCJcXG4gIDEwOlxcdFxcdGhlbHBcXG4gIDExOlxcdFxcdCAgU2F5IFkgaGVyZSB0byBnZXQgdG8gc2VlIG9wdGlvbnMgZm9yIHVzaW5nIHlvdXIgTGludXggaG9zdCB0byBydW5cXG4gIDEyOlxcdFxcdCAgb3RoZXIgb3BlcmF0aW5nIHN5c3RlbXMgaW5zaWRlIHZpcnR1YWwgbWFjaGluZXMgKGd1ZXN0cykuXFxuICAxMzpcXHRcXHQgIFRoaXMgb3B0aW9uIGFsb25lIGRvZXMgbm90IGFkZCBhbnkga2VybmVsIGNvZGUuXFxuICAxNDpcXHRcXG4gIDE1OlxcdFxcdCAgSWYgeW91IHNheSBOLCBhbGwgb3B0aW9ucyBpbiB0aGlzIHN1Ym1lbnUgd2lsbCBiZSBza2lwcGVkIGFuZFxcbiAgMTY6XFx0XFx0ICBkaXNhYmxlZC5cXG4gIDE3OlxcdFxcbiAgMTg6XFx0aWYgVklSVFVBTElaQVRJT05cXG4gIDE5OlxcdFxcbiAgMjA6XFx0Y29uZmlnIEtWTVxcbiAgMjE6XFx0XFx0dHJpc3RhdGUgXFxcIktlcm5lbC1iYXNlZCBWaXJ0dWFsIE1hY2hpbmUgKEtWTSkgc3VwcG9ydFxcXCJcXG4gIDIyOlxcdFxcdGRlcGVuZHMgb24gUklTQ1ZfU0JJIFxcdTAwMjZcXHUwMDI2IE1NVVxcbiAgMjM6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0lSUUNISVBcXG4gIDI0OlxcdFxcdHNlbGVjdCBIQVZFX0tWTV9JUlFfUk9VVElOR1xcbiAgMjU6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX01TSVxcbiAgMjY6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX1JFQURPTkxZX01FTVxcbiAgMjc6XFx0XFx0c2VsZWN0IEhBVkVfS1ZNX0RJUlRZX1JJTkdfQUNRX1JFTFxcbiAgMjg6XFx0XFx0c2VsZWN0IEtWTV9DT01NT05cXG4gIDI5OlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19ESVJUWUxPR19SRUFEX1BST1RFQ1RcXG4gIDMwOlxcdFxcdHNlbGVjdCBLVk1fR0VORVJJQ19IQVJEV0FSRV9FTkFCTElOR1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wNy0zMVQyMjozOToyOC44NTk1ODI2NjlaIiwiU2VxIjoyMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDYxMjIyODM4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgUklTQy1WIEtWTSBQTVUgRXZlbnQgSW5mb3JtYXRpb24qKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBpbnRvIGhvdyBQZXJmb3JtYW5jZSBNb25pdG9yaW5nIFVuaXQgKFBNVSkgZXZlbnRzIGFyZSBoYW5kbGVkIHdpdGhpbiB0aGUgUklTQy1WIEtWTSBlbnZpcm9ubWVudC4gQ2xlYXJseSwgdW5kZXJzdGFuZGluZyBib3RoIGBLVk1gIGFuZCBgVklSVFVBTElaQVRJT05gIGlzIGNyaXRpY2FsIGhlcmUuIE15IGltbWVkaWF0ZSBmb2N1cyBpcyBvbiB0aGUgZnVuY3Rpb24gYGt2bV9yaXNjdl92Y3B1X3BtdV9ldmVudF9pbmZvYC5cblxuTGV0J3Mgc2VlLCBpdCdzIGxvY2F0ZWQgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmNgLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMsIGlzIHRoaXMgZnVuY3Rpb24gYWNjZXNzaWJsZSBmcm9tIHVzZXJzcGFjZT8gVGhlIGZ1bmN0aW9uJ3Mgc2lnbmF0dXJlIGxvb2tzIGxpa2UgdGhpcywgaXQgdGFrZXMgYSBgc3RydWN0IGt2bV92Y3B1ICp2Y3B1YCwgYW5kIGEgaGFuZGZ1bCBvZiBgdW5zaWduZWQgbG9uZ2AgdmFsdWVzOiBgc2FkZHJfbG93YCwgYHNhZGRyX2hpZ2hgLCBgbnVtX2V2ZW50c2AsIGFuZCBgZmxhZ3NgLiBGaW5hbGx5LCB0aGVyZSdzIGBzdHJ1Y3Qga3ZtX3ZjcHVfc2JpX3JldHVybiAqcmV0ZGF0YWAuIFNvLCB3aGF0IGNhbGxzIHRoaXMgZnVuY3Rpb24/IEkgc3VzcGVjdCBpdCdzIGdvaW5nIHRvIGJlIHJlbGF0ZWQgdG8gdGhlIFN5c3RlbSBCb290IEludGVyZmFjZSAoU0JJKS4gTGV0J3MgdHJhY2UgaXQgYW5kIHNlZSBpZiBpdCBpcyBjYWxsZWQgZnJvbSBga3ZtX3NiaV9leHRfcG11X2hhbmRsZXJgLiBUaGF0J3MgaW4gYGFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jYC4gVGltZSB0byBkaXZlIGluIVxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDg0NCwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3MiwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjMzLjQ3MTgxMzkxWiIsIlNlcSI6MjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Mjg0NjMyOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3Jpc2N2L2t2bS9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiYXJjaC9yaXNjdi9rdm0vdmNwdV9wbXUuYz00Mjc9aW50IGt2bV9yaXNjdl92Y3B1X3BtdV9zbmFwc2hvdF9zZXRfc2htZW0oc3RydWN0IGt2bV92Y3B1ICp2Y3B1LCB1bnNpZ25lZCBsb25nIHNhZGRyX2xvdyxcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDc4LVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmM6NDc5OmludCBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyhzdHJ1Y3Qga3ZtX3ZjcHUgKnZjcHUsIHVuc2lnbmVkIGxvbmcgc2FkZHJfbG93LFxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfcG11LmMtNDgwLVxcdFxcdFxcdFxcdCAgdW5zaWduZWQgbG9uZyBzYWRkcl9oaWdoLCB1bnNpZ25lZCBsb25nIG51bV9ldmVudHMsXFxuLS1cXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYz0xNj1zdGF0aWMgaW50IGt2bV9zYmlfZXh0X3BtdV9oYW5kbGVyKHN0cnVjdCBrdm1fdmNwdSAqdmNwdSwgc3RydWN0IGt2bV9ydW4gKnJ1bixcXG4tLVxcbmFyY2gvcmlzY3Yva3ZtL3ZjcHVfc2JpX3BtdS5jLTc2LVxcdGNhc2UgU0JJX0VYVF9QTVVfRVZFTlRfR0VUX0lORk86XFxuYXJjaC9yaXNjdi9rdm0vdmNwdV9zYmlfcG11LmM6Nzc6XFx0XFx0cmV0ID0ga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm8odmNwdSwgY3AtXFx1MDAzZWEwLCBjcC1cXHUwMDNlYTEsIGNwLVxcdTAwM2VhMiwgY3AtXFx1MDAzZWEzLCByZXRkYXRhKTtcXG5hcmNoL3Jpc2N2L2t2bS92Y3B1X3NiaV9wbXUuYy03OC1cXHRcXHRicmVhaztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDctMzFUMjI6Mzk6MzMuNTE0NjY0NzA5WiIsIlNlcSI6MjUsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjEzMzU4MjgwOTAwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZ1enppbmcgVGFyZ2V0IElkZW50aWZpY2F0aW9uOiBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mbyoqXG5cbk9rYXksIHNvIEkndmUgY29uZmlybWVkIHRoaXMgaXMgcmVsYXRlZCB0byB0aGUgYFNCSV9FWFRfUE1VX0VWRU5UX0dFVF9JTkZPYCBoYW5kbGVyLiBJdCdzIHRyaWdnZXJlZCB3aGVuIHRoZSBndWVzdCBleGVjdXRlcyBhbiBgZWNhbGxgIGluc3RydWN0aW9uIHdpdGggdGhlIHJpZ2h0IFNCSSBleHRlbnNpb24gYW5kIGZ1bmN0aW9uIElEcy4gQW5kIHNpbmNlIFN5emthbGxlciBhbHJlYWR5IGZ1enplcyBLVk0gYnkgY3JlYXRpbmcgVk1zIGFuZCBleGVjdXRpbmcgaW5zdHJ1Y3Rpb25zLCBpbmNsdWRpbmcgYGVjYWxsYCwgdGhpcyBpcyBkZWZpbml0ZWx5IGEgZnV6emFibGUgdGFyZ2V0LlxuXG5UaGUgcHJpbWFyeSBmdW5jdGlvbiB0byBmb2N1cyBvbiBoZXJlIGlzIGBrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb2AuICBJIG5lZWQgdG8gbWFrZSBzdXJlIHRoZSByaWdodCBrZXJuZWwgY29uZmlncyBhcmUgZW5hYmxlZCBmb3IgZnV6emluZywgYW5kIGl0IGxvb2tzIGxpa2UgYEtWTWAgaXMgdGhlIGNydWNpYWwgb25lLiBgVklSVFVBTElaQVRJT05gIGlzIGluIHRoZSBtZW51Y29uZmlnLCBidXQgYEtWTWAgaXMgc3VmZmljaWVudCwgc28gSSdsbCBqdXN0IGxpc3QgYEtWTWAuXG5cbkkgZG91YmxlLWNoZWNrZWQsIGFuZCBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGlzICpub3QqIGEgc3RhdGljIGZ1bmN0aW9uOyBpdCdzIGRlZmluZWQgYXMgYSByZWd1bGFyIGBpbnRgIGZ1bmN0aW9uIGluIGB2Y3B1X3BtdS5jYC4gVGhhdCBtZWFucyBpdCdzIGFjY2Vzc2libGUgZnJvbSBvdXRzaWRlIGl0cyBmaWxlIGFuZCBpcyBtb3JlIHJlYWRpbHkgZnV6emFibGUuXG5cbkxvb2tpbmcgYXQgdGhlIGNvZGUgY2hhbmdlLCBpdCBzZWVtcyB0aGUgb25seSBmdW5jdGlvbiBiZWluZyBtb2RpZmllZCBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLlxuXG5JIGFsc28gbG9va2VkIGludG8gdGhlIGRlZmF1bHQgY29uZmlncy4gYFJJU0NWX1BNVV9TQklgLCBgUklTQ1ZfUE1VYCwgYW5kIGBSSVNDVl9TQklgIGFyZSBhbGwgZGVmYXVsdC1lbmFibGVkLiBCdXQgYWdhaW4sIGBLVk1gIGlzIHRoZSBtYWluIGVuYWJsZXIgaGVyZS5cblxuTm93LCBsZXQncyByZXZpZXcgdGhlIHBhdGNoIGl0c2VsZi4gSXQncyBhIGNsZWFyIGZ1bmN0aW9uYWwgY2hhbmdlLiBUaGV5J3JlIGZpeGluZyBhbiBpbnRlZ2VyIG92ZXJmbG93IHZ1bG5lcmFiaWxpdHkgYW5kIGNoYW5naW5nIHRoZSBtZW1vcnkgYWxsb2NhdGlvbiBmcm9tIGBremFsbG9jYCB0byBga3ZjYWxsb2NgLiAgVGhpcyBpcyBhIGdvb2Qgc2lnbjsgaXQncyB0b3VjaGluZyBtZW1vcnkgYWxsb2NhdGlvbiwgd2hpY2ggaXMgYSBjb21tb24gc291cmNlIG9mIGJ1Z3MuXG5cblRoZSBjb2RlIGlzIGFic29sdXRlbHkgcmVhY2hhYmxlIHZpYSBLVk0gb24gUklTQy1WLiBTeXprYWxsZXIgaXMgY2FwYWJsZSBvZiBmdXp6aW5nIHRoaXMuICBUaGUgY29yZSBmdW5jdGlvbiBpcyBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gLiAgVGhlIHJlbGV2YW50IGNvbmZpZyBvcHRpb24gaXMgYEtWTWAuXG5cblRoZXJlZm9yZSwgSSdtIGdvaW5nIHRvIHNldCB0aGUgcmVzdWx0cyBhY2NvcmRpbmdseS4gSSdsbCBtYXJrIHRoaXMgYXMgd29ydGggZnV6emluZywgc3BlY2lmeSBga3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9gIGFzIHRoZSBmb2N1cyBzeW1ib2wsIGFuZCBsaXN0IGBLVk1gIGFzIHRoZSBlbmFibGVkIGNvbmZpZy4gTXkgcmVhc29uaW5nIHdpbGwgYmU6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCJcblxuXG4iLCJJbnB1dFRva2VucyI6MTE3MTcsIk91dHB1dFRva2VucyI6OTYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMTk0LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA3LTMxVDIyOjM5OjQ2Ljg3Mjk0ODg4OVoiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjczMjA1Mjc5LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXG4gICAgXCJLVk1cIlxuICBdLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXG4gICAgXCJrdm1fcmlzY3ZfdmNwdV9wbXVfZXZlbnRfaW5mb1wiXG4gIF0sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIGZpeGVzIGFuIGludGVnZXIgb3ZlcmZsb3cgYW5kIGNoYW5nZXMgbWVtb3J5IGFsbG9jYXRpb24gbG9naWMgaW4gdGhlIFJJU0MtViBLVk0gUE1VIFNCSSBoYW5kbGVyLiBUaGlzIGNvZGUgaXMgcmVhY2hhYmxlIGZyb20gYSBndWVzdCBWTSBleGVjdXRpbmcgYW4gZWNhbGwgaW5zdHJ1Y3Rpb24sIG1ha2luZyBpdCBoaWdobHkgZnV6emFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IHRydWVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW1xuICAgIFwiS1ZNXCJcbiAgXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW1xuICAgIFwia3ZtX3Jpc2N2X3ZjcHVfcG11X2V2ZW50X2luZm9cIlxuICBdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBmaXhlcyBhbiBpbnRlZ2VyIG92ZXJmbG93IGFuZCBjaGFuZ2VzIG1lbW9yeSBhbGxvY2F0aW9uIGxvZ2ljIGluIHRoZSBSSVNDLVYgS1ZNIFBNVSBTQkkgaGFuZGxlci4gVGhpcyBjb2RlIGlzIHJlYWNoYWJsZSBmcm9tIGEgZ3Vlc3QgVk0gZXhlY3V0aW5nIGFuIGVjYWxsIGluc3RydWN0aW9uLCBtYWtpbmcgaXQgaGlnaGx5IGZ1enphYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiB0cnVlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+IHsKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOyAKCQkJCWlmIChzLlR5cGUgPT09ICJsbG0iKSB7CgkJCQkJc3RhdHMubGxtLmNvdW50Kys7CgkJCQkJc3RhdHMubGxtLnRva2VucyArPSAocy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2Vucyk7CgkJCQkJc3RhdHMubGxtLmR1cmF0aW9uICs9IGR1cjsKCQkJCX0gZWxzZSBpZiAocy5UeXBlID09PSAidG9vbCIpIHsKCQkJCQlzdGF0cy50b29sLmNvdW50Kys7CgkJCQkJc3RhdHMudG9vbC5kdXJhdGlvbiArPSBkdXI7CgkJCQl9CgkJCX0pOwoKCQkJY29uc3QgYXZnTGxtRHVyID0gc3RhdHMubGxtLmNvdW50ID4gMCA/IChzdGF0cy5sbG0uZHVyYXRpb24gLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdMbG1Ub2tlbiA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLnRva2VucyAvIHN0YXRzLmxsbS5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgkJCWNvbnN0IGF2Z1Rvb2xEdXIgPSBzdGF0cy50b29sLmNvdW50ID4gMCA/IChzdGF0cy50b29sLmR1cmF0aW9uIC8gc3RhdHMudG9vbC5jb3VudCkudG9GaXhlZCgyKSA6IDA7CgoJCQljb25zdCBsbG1TdW1hcnlDZWxscyA9IFtzdGF0cy5sbG0uY291bnQsIHN0YXRzLmxsbS50b2tlbnMsIGF2Z0xsbVRva2VuLCBzdGF0cy5sbG0uZHVyYXRpb24sIGF2Z0xsbUR1cl07CgkJCWNvbnN0IHRvb2xTdW1tYXJ5Q2VsbHMgPSBbc3RhdHMudG9vbC5jb3VudCwgc3RhdHMudG9vbC5kdXJhdGlvbiwgYXZnVG9vbER1cl07CgoJCQljb25zdCBsbG1TdW1tYXJ5Qm9keSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsbG1fc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCWxsbVN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCBsbG1UciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RyJyk7CgkJCWxsbVN1bWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQlsbG1Uci5hcHBlbmRDaGlsZCh0ZCk7CgkJCX0pOwoJCQlsbG1TdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZChsbG1Ucik7CgoJCQljb25zdCB0b29sU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9vbF9zdW1tYXJ5X3N0YXRzX2JvZHknKTsKCQkJdG9vbFN1bW1hcnlCb2R5LmlubmVySFRNTCA9ICIiOwoJCQljb25zdCB0b29sVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQl0b29sU3VtbWFyeUNlbGxzLmZvckVhY2goY2VsbCA9PiB7CgkJCQljb25zdCB0ZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7CgkJCQl0ZC50ZXh0Q29udGVudCA9IGNlbGw7CgkJCQl0b29sVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJdG9vbFN1bW1hcnlCb2R5LmFwcGVuZENoaWxkKHRvb2xUcik7CgkJfQoKCQlmdW5jdGlvbiBkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGZpbHRlcmVkU3RlcHMgPSByYXdEYXRhLmZpbHRlcihkID0+IFsibGxtIiwgInRvb2wiXS5pbmNsdWRlcyhkLlR5cGUpKTsKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnRHVyYXRpb24nKTsKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsgCgoJCQlmaWx0ZXJlZFN0ZXBzLmZvckVhY2gocyA9PiB7CgkJCQkKCQkJCWNvbnN0IGR1ciA9IHMuRHVyYXRpb24gLyAxMDAwMDAwMDAwOwoJCQkJbGV0IHRvb2x0aXAgPSBzLk5hbWU7CgkJCQlpZiAocy5UeXBlID09PSAibGxtIiAmJiBzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgkJCQlkYXRhLmFkZFJvdyhbYCR7cy5TZXF9YCwgZHVyLCB0b29sdGlwXSk7CgkJCX0pOwoKCQkJY29uc3Qgb3B0aW9ucyA9IHsKCQkJCXRpdGxlOiAnVGltZSBDb25zdW1wdGlvbiBvZiBMTE0vVG9vbCBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNL1Rvb2wgU3RlcHMnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnU2Vjb25kcycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHVyYXRpb25fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKSB7CgkJCWNvbnN0IGxsbVN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBkLlR5cGUgPT09ICJsbG0iKTsKCQkJaWYgKGxsbVN0ZXBzLmxlbmd0aCA9PT0gMCkgcmV0dXJuOwoKCQkJY29uc3QgZGF0YSA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5EYXRhVGFibGUoKTsKCQkJZGF0YS5hZGRDb2x1bW4oJ3N0cmluZycsICdTdGVwJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKCdudW1iZXInLCAnVG9rZW5zJyk7CQkJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3N0eWxlJ30pOwkKCQkJZGF0YS5hZGRDb2x1bW4oe3R5cGU6ICdzdHJpbmcnLCByb2xlOiAndG9vbHRpcCd9KTsJCgoJCQljb25zdCBhZ2VudENvbG9ycyA9IHt9OwoJCQljb25zdCBwYWxldHRlID0gWycjNDI4NUY0JywgJyNEQjQ0MzcnLCAnI0Y0QjQwMCcsICcjMEY5RDU4JywgJyNBQjQ3QkMnLCAnIzAwQUNDMSddOwoJCQlsZXQgY29sb3JJZHggPSAwOwoJCQljb25zdCBhZ2VudExMTUNvdW50cyA9IHt9OwoJCQlsbG1TdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJaWYgKCFhZ2VudENvbG9yc1tzLk5hbWVdKSB7CgkJCQkJYWdlbnRDb2xvcnNbcy5OYW1lXSA9IHBhbGV0dGVbY29sb3JJZHggJSBwYWxldHRlLmxlbmd0aF07CgkJCQkJY29sb3JJZHgrKzsKCQkJCX0KCgkJCQlhZ2VudExMTUNvdW50c1tzLk5hbWVdID0gKGFnZW50TExNQ291bnRzW3MuTmFtZV0gfHwgMCkgKyAxOwoJCQkJY29uc3QgbGFiZWwgPSBgJHtzLk5hbWV9LSR7YWdlbnRMTE1Db3VudHNbcy5OYW1lXX1gOwoJCQkJY29uc3QgdG90YWxUb2tlbnMgPSBzLklucHV0VG9rZW5zICsgcy5PdXRwdXRUb2tlbnMgKyBzLk91dHB1dFRob3VnaHRzVG9rZW5zOwoJCQkJY29uc3Qgc3R5bGUgPSBgY29sb3I6ICR7YWdlbnRDb2xvcnNbcy5OYW1lXX1gOwoJCQkJbGV0IHRvb2x0aXAgPSBgVG90YWwgVG9rZW5zOiAke3RvdGFsVG9rZW5zfVxuKEluOiAke3MuSW5wdXRUb2tlbnN9LCBPdXQ6ICR7cy5PdXRwdXRUb2tlbnN9LCBUaG91Z2h0czogJHtzLk91dHB1dFRob3VnaHRzVG9rZW5zfSlgOwoJCQkJaWYgKHMuVG9vbENhbGxzICYmIHMuVG9vbENhbGxzLmxlbmd0aCA+IDApIHsKCQkJCQl0b29sdGlwICs9IGBcblRvb2xzOiAke3MuVG9vbENhbGxzLmpvaW4oJywgJyl9YDsKCQkJCX0KCgkJCQlkYXRhLmFkZFJvdyhbbGFiZWwsIHRvdGFsVG9rZW5zLCBzdHlsZSwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1Rva2VuIENvbnN1bXB0aW9uIGJ5IExMTSBDYWxscycsCgkJCQloQXhpczogewoJCQkJCXRpdGxlOiAnTExNIENhbGwgU2VxdWVuY2UnLAoJCQkJfSwKCQkJCXZBeGlzOiB7IHRpdGxlOiAnQ29uc3VtZWQgVG9rZW5zJyB9LAoJCQkJbGVnZW5kOiB7IHBvc2l0aW9uOiAnbm9uZScgfSwKCQkJCWJhcjogeyBncm91cFdpZHRoOiAnNzUlJyB9LAoJCQkJY2hhcnRBcmVhOiB7IHdpZHRoOiAnODUlJywgaGVpZ2h0OiAnNzAlJyB9LAoJCQkJaGVpZ2h0OiA0MDAKCQkJfTsKCgkJCWNvbnN0IGNoYXJ0ID0gbmV3IGdvb2dsZS52aXN1YWxpemF0aW9uLkNvbHVtbkNoYXJ0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b2tlbl9jaGFydF9kaXYnKSk7CgkJCWNoYXJ0LmRyYXcoZGF0YSwgb3B0aW9ucyk7CgkJfQoJCWxldCBhbGxFeHBhbmRlZCA9IGZhbHNlOwoJCWZ1bmN0aW9uIHRvZ2dsZUFsbERldGFpbHMoKSB7CgkJCWFsbEV4cGFuZGVkID0gIWFsbEV4cGFuZGVkOwoJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkZXRhaWxzJykuZm9yRWFjaChkID0+IHsKCQkJCWlmIChhbGxFeHBhbmRlZCkgZC5zZXRBdHRyaWJ1dGUoJ29wZW4nLCAnJyk7CgkJCQllbHNlIGQucmVtb3ZlQXR0cmlidXRlKCdvcGVuJyk7CgkJCX0pOwoJCX0KCTwvc2NyaXB0PgoKCjwvYm9keT4KPC9odG1sPgo=" },ValueFrom:&ValueFrom{Path:/output/result.json,JSONPath:,JQFilter:,Parameter:,Default:nil,Supplied:nil,Event:,Expression:,ConfigMapKeyRef:nil,},GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[1] Phase: Succeeded StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 22:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[1].abort-on-skip-outcome Phase: Skipped StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 22:40:04 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2] Phase: Succeeded StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN) Phase: Succeeded StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:element,Default:nil,Value:*{"base":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"fuzz":{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},"patched":{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},"retest":null,"track":"KASAN"},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0] Phase: Succeeded StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 22:40:14 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[0].save-base-req Phase: Succeeded StartedAt: 2026-07-31 22:40:04 +0000 UTC FinishedAt: 2026-07-31 22:40:08 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflowhqzh9/series-workflowhqzh9-convert-artifact-1454343750/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1] Phase: Succeeded StartedAt: 2026-07-31 22:40:14 +0000 UTC FinishedAt: 2026-07-31 23:01:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build Phase: Succeeded StartedAt: 2026-07-31 22:40:14 +0000 UTC FinishedAt: 2026-07-31 23:01:05 +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:*113150ad-796e-4e10-ba3c-fb2ab176cdde,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-workflowhqzh9/series-workflowhqzh9-convert-artifact-1454343750/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": "6ea6658e-02a9-4768-a777-4f5a82d0daf4", "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-workflowhqzh9/series-workflowhqzh9-build-action-2728154076/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[1].base-build(0) Phase: Succeeded StartedAt: 2026-07-31 22:40:14 +0000 UTC FinishedAt: 2026-07-31 23:00:54 +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:*113150ad-796e-4e10-ba3c-fb2ab176cdde,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-workflowhqzh9/series-workflowhqzh9-convert-artifact-1454343750/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": "6ea6658e-02a9-4768-a777-4f5a82d0daf4", "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-workflowhqzh9/series-workflowhqzh9-build-action-2728154076/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2] Phase: Succeeded StartedAt: 2026-07-31 23:01:05 +0000 UTC FinishedAt: 2026-07-31 23:01:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[2].abort-if-base-build-failed Phase: Skipped StartedAt: 2026-07-31 23:01:05 +0000 UTC FinishedAt: 2026-07-31 23:01:05 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3] Phase: Succeeded StartedAt: 2026-07-31 23:01:05 +0000 UTC FinishedAt: 2026-07-31 23:01:40 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[3].save-patched-req Phase: Succeeded StartedAt: 2026-07-31 23:01:05 +0000 UTC FinishedAt: 2026-07-31 23:01:27 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:data,Default:nil,Value:*{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},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-workflowhqzh9/series-workflowhqzh9-convert-artifact-3510005145/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4] Phase: Succeeded StartedAt: 2026-07-31 23:01:40 +0000 UTC FinishedAt: 2026-07-31 23:03:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[4].boot-test-base Phase: Succeeded StartedAt: 2026-07-31 23:01:40 +0000 UTC FinishedAt: 2026-07-31 23:03:32 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6ea6658e-02a9-4768-a777-4f5a82d0daf4,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-workflowhqzh9/series-workflowhqzh9-build-action-2728154076/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-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5] Phase: Succeeded StartedAt: 2026-07-31 23:03:42 +0000 UTC FinishedAt: 2026-07-31 23:03:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[5].abort-if-base-boot-failed Phase: Skipped StartedAt: 2026-07-31 23:03:42 +0000 UTC FinishedAt: 2026-07-31 23:03:42 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6] Phase: Succeeded StartedAt: 2026-07-31 23:03:42 +0000 UTC FinishedAt: 2026-07-31 23:26:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build Phase: Succeeded StartedAt: 2026-07-31 23:03:42 +0000 UTC FinishedAt: 2026-07-31 23:26:49 +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:*113150ad-796e-4e10-ba3c-fb2ab176cdde,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-workflowhqzh9/series-workflowhqzh9-convert-artifact-3510005145/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": "27af55e9-5a33-4695-9114-9aaadd773feb", "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-workflowhqzh9/series-workflowhqzh9-build-action-1159757045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[6].patched-build(0) Phase: Succeeded StartedAt: 2026-07-31 23:03:42 +0000 UTC FinishedAt: 2026-07-31 23:26: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:*113150ad-796e-4e10-ba3c-fb2ab176cdde,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-workflowhqzh9/series-workflowhqzh9-convert-artifact-3510005145/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": "27af55e9-5a33-4695-9114-9aaadd773feb", "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-workflowhqzh9/series-workflowhqzh9-build-action-1159757045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7] Phase: Succeeded StartedAt: 2026-07-31 23:26:49 +0000 UTC FinishedAt: 2026-07-31 23:26:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[7].abort-if-patched-build-failed Phase: Skipped StartedAt: 2026-07-31 23:26:49 +0000 UTC FinishedAt: 2026-07-31 23:26:49 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8] Phase: Succeeded StartedAt: 2026-07-31 23:26:49 +0000 UTC FinishedAt: 2026-07-31 23:28:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[8].boot-test-patched Phase: Succeeded StartedAt: 2026-07-31 23:26:49 +0000 UTC FinishedAt: 2026-07-31 23:28:45 +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:*27af55e9-5a33-4695-9114-9aaadd773feb,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-workflowhqzh9/series-workflowhqzh9-build-action-1159757045/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-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10] Phase: Succeeded StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz Phase: Succeeded StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +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":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:track,Default:nil,Value:*KASAN,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:base-build-id,Default:nil,Value:*6ea6658e-02a9-4768-a777-4f5a82d0daf4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*27af55e9-5a33-4695-9114-9aaadd773feb,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-workflowhqzh9/series-workflowhqzh9-build-action-2728154076/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-workflowhqzh9/series-workflowhqzh9-build-action-1159757045/kernel.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:true,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},} Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0] Phase: Succeeded StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:29:28 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[0].save-fuzz-config Phase: Succeeded StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:29:23 +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":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{Artifact{Name:artifact,Path:/tmp/artifact,Mode:nil,From:,ArtifactLocation:ArtifactLocation{ArchiveLogs:nil,S3:nil,Git:nil,HTTP:nil,Artifactory:nil,HDFS:nil,Raw:nil,OSS:nil,GCS:&GCSArtifact{GCSBucket:GCSBucket{Bucket:,ServiceAccountKeySecret:nil,},Key:series-workflowhqzh9/series-workflowhqzh9-convert-artifact-3152693134/artifact.tgz,},Azure:nil,},GlobalName:,Archive:nil,Optional:false,SubPath:,RecurseMode:false,FromExpression:,ArtifactGC:nil,Deleted:false,},},Result:nil,ExitCode:*0,} --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9] Phase: Succeeded StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:28:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[9].abort-if-patched-boot-failed Phase: Skipped StartedAt: 2026-07-31 23:28:55 +0000 UTC FinishedAt: 2026-07-31 23:28:55 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-retest Phase: Skipped StartedAt: 2026-07-31 23:28:56 +0000 UTC FinishedAt: 2026-07-31 23:28:56 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1] Phase: Succeeded StartedAt: 2026-07-31 23:29:28 +0000 UTC FinishedAt: 2026-07-31 23:32:12 +0000 UTC Input: nil Output: nil --------- Name: series-workflowhqzh9[2].run-process-target(0:base:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},fuzz:{"bug_title_re":"","corpus_urls":["https://storage.googleapis.com/syzkaller/corpus/ci-upstream-kasan-gce-root-corpus.db"],"focus":["kvm"],"focus_symbols":["kvm_riscv_vcpu_pmu_event_info"],"skip_cover_check":false},patched:{"arch":"amd64","commit_hash":"a204badd8432f93b7e862e7dac6db0fe3d65f370","config_name":"upstream-apparmor-kasan.config","enable_configs":["KVM"],"series_id":"bca038b5-e478-4659-990f-b88254dbc23d","tree_name":"kvm-next","tree_url":"https://kernel.googlesource.com/pub/scm/virt/kvm/kvm/"},retest:null,track:KASAN)[10].run-fuzz[1].fuzz Phase: Succeeded StartedAt: 2026-07-31 23:29:28 +0000 UTC FinishedAt: 2026-07-31 23:31:52 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:base-build-id,Default:nil,Value:*6ea6658e-02a9-4768-a777-4f5a82d0daf4,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},Parameter{Name:patched-build-id,Default:nil,Value:*27af55e9-5a33-4695-9114-9aaadd773feb,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-workflowhqzh9/series-workflowhqzh9-build-action-2728154076/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-workflowhqzh9/series-workflowhqzh9-build-action-1159757045/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-workflowhqzh9/series-workflowhqzh9-convert-artifact-3152693134/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,}