Name: series-workflowtghr2 Phase: Failed StartedAt: 2026-09-15 06:47:01 +0000 UTC FinishedAt: 2026-09-15 07:47:51 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtghr2[0] Phase: Succeeded StartedAt: 2026-09-15 06:47:01 +0000 UTC FinishedAt: 2026-09-15 07:47:41 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtghr2[0].run-triage Phase: Succeeded StartedAt: 2026-09-15 06:47:01 +0000 UTC FinishedAt: 2026-09-15 07:47:41 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMjU5MzVlYmM3NmU1OWY1MTFlOGUxNTM1Nzc0MTkxNjdhZWU5OTExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMDc6Mzk6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuQEAgLTc2NSw2ICYjNDM7NzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIFx0aW50IGVycjtcbiBcbiYjNDM7XHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdGVyciA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocHJpdi1cdTAwM2VkZXYpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGVycjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzozOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT43bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIyNTkzNWViYzc2ZTU5ZjUxMWU4ZTE1MzU3NzQxOTE2N2FlZTk5MTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCAxNSAwNzozOTozOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jIGIvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKQEAgLTc2NSw2ICYjNDM7NzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAljb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlpbnQgZXJyOwogCiYjNDM7CWlmICghbmV0aWZfcnVubmluZyhkZXYpKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiAJZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LSZndDtkZXYpOwogCWlmIChlcnIgJmx0OyAwKQogCQlyZXR1cm4gZXJyOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODkzCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMzEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgVGhvdWdodHMgb24gdGhlIEZsZXhDQU4gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4gVGhpcyBkaWZmIGluIGBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCBhdCBmaXJzdCBnbGFuY2UuIEl0JiMzOTtzIGEgY29uZGl0aW9uYWwgY2hlY2sgYmVmb3JlIHJldHJpZXZpbmcgdGhlIGJ1cyBlcnJvciBjb3VudGVyLCBlbnN1cmluZyB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgcnVubmluZy4gVGhlIGFkZGl0aW9uIG9mIGBpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllLCBJIHdvbmRlciB3aHkgaXQgd2FzIGFkZGVkLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyB0aGUgY29udGV4dC4gV2hhdCBpcyB0aGUgYXJjaGl0ZWN0dXJlIHRoaXMgRmxleENBTiBkcml2ZXIgdGFyZ2V0cz8gSXMgdGhpcyBzb21ldGhpbmcgbGlrZWx5IHRvIGJlIHNlZW4gaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2LTY0LCBvciBpcyBpdCBhIG1vcmUgZW1iZWRkZWQgb3Igc3BlY2lhbGl6ZWQgQ0FOIGNvbnRyb2xsZXI/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBkcml2ZXIgZm9yIGhhcmR3YXJlIHRoYXQgSSYjMzk7bSBsaWtlbHkgdG8gZW5jb3VudGVyIGZyZXF1ZW50bHkuCgpMZXQgbWUgdGFrZSBhIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gZGV0ZXJtaW5lIGl0cyBwdXJwb3NlLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcgdW5kZXIgYGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2AgdG8gZ2V0IGEgYmV0dGVyIGdyYXNwIG9mIHRoZSBkcml2ZXImIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIElzIHRoZSBjaGVjayBuZWNlc3Nhcnkgb3IgYSBndWFyZCBhZ2FpbnN0IGFuIGV4cGVjdGVkIGNvbmRpdGlvbiBvciByYWNlIGNvbmRpdGlvbj8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0FOX0ZMRVhDQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL0tjb25maWc9MTA5PWNvbmZpZyBDQU5fQ0FOMzI3XG4tLVxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI2LVxuZHJpdmVycy9uZXQvY2FuL0tjb25maWc6MTI3OmNvbmZpZyBDQU5fRkxFWENBTlxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI4LVx0dHJpc3RhdGUgXCYjMzQ7U3VwcG9ydCBmb3IgRnJlZXNjYWxlIEZMRVhDQU4gYmFzZWQgY2hpcHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTgyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIENBTiBCdXMgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIENBTiBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgdGhlIG9uZXMgcmVsYXRlZCB0bywgc2F5LCB0aGUgTUNQMjUxNSBvciBzaW1pbGFyLiBJJiMzOTtsbCBzdGFydCBieSB0YWtpbmcgYSBsb29rIGF0IGBkcml2ZXJzL25ldC9jYW4vS2NvbmZpZ2AsIGZvY3VzaW5nIGFyb3VuZCBsaW5lIDEyNy4gVGhhdCYjMzk7cyB1c3VhbGx5IHdoZXJlIHRoZSBtZWF0IG9mIHRoZSBoaWdoLWxldmVsIENBTiBidXMgb3B0aW9ucyBhcmUgZGVmaW5lZCwgd2hlcmUgdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWdzIGdldCB0aGVpciBob29rcyBpbi4gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBhbmQgbWF5YmUgYSBmZXcgbWVudSBlbnRyaWVzIHRoYXQgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXNpZ24gY2hvaWNlcyBtYWRlLCBwZXJoYXBzIG9wdGlvbnMgZm9yIGRpZmZlcmVudCBDQU4gY29udHJvbGxlcnMsIGRhdGEgcmF0ZXMsIG9yIGZlYXR1cmVzIGxpa2UgQ0FOIEZEIHN1cHBvcnQuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gc3ltYm9scyBJJiMzOTtsbCBuZWVkIHRvIGtub3cuIFRpbWUgdG8gc2VlIHdoYXQgS2NvbmZpZyBoYXMgaW4gc3RvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEyNSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTI1Olx0XHQgIElmIHRoaXMgZHJpdmVyIGlzIGJ1aWx0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZCBjYW4zMjcuXG4gMTI2Olx0XG4gMTI3Olx0Y29uZmlnIENBTl9GTEVYQ0FOXG4gMTI4Olx0XHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBGcmVlc2NhbGUgRkxFWENBTiBiYXNlZCBjaGlwc1wmIzM0O1xuIDEyOTpcdFx0ZGVwZW5kcyBvbiBPRiB8fCBDT0xERklSRSB8fCBDT01QSUxFX1RFU1RcbiAxMzA6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gMTMxOlx0XHRzZWxlY3QgQ0FOX1JYX09GRkxPQURcbiAxMzI6XHRcdGhlbHBcbiAxMzM6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IGZvciBGcmVlc2NhbGUgRmxleENBTi5cbiAxMzQ6XHRcbiAxMzU6XHRjb25maWcgQ0FOX0dSQ0FOXG4gMTM2Olx0XHR0cmlzdGF0ZSBcJiMzNDtBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIGFuZCBHUkhDQU4gQ0FOIGRldmljZXNcJiMzNDtcbiAxMzc6XHRcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IEhBU19JT01FTVxuIDEzODpcdFx0aGVscFxuIDEzOTpcdFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIG9yIEdSSENBTi5cbiAxNDA6XHRcdCAgTm90ZSB0aGF0IHRoZSBkcml2ZXIgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiwgZXZlbiB0aG91Z2ggbGl0dGxlXG4gMTQxOlx0XHQgIGVuZGlhbiBzeW50aGVzZXMgb2YgdGhlIGNvcmVzIHdvdWxkIG5lZWQgc29tZSBtb2RpZmljYXRpb25zIG9uXG4gMTQyOlx0XHQgIHRoZSBoYXJkd2FyZSBsZXZlbCB0byB3b3JrLlxuIDE0MzpcdFxuIDE0NDpcdGNvbmZpZyBDQU5fSkFOWl9JQ0FOM1xuIDE0NTpcdFx0dHJpc3RhdGUgXCYjMzQ7SmFueiBWTU9ELUlDQU4zIEludGVsbGlnZW50IENBTiBjb250cm9sbGVyXCYjMzQ7XG4gMTQ2Olx0XHRkZXBlbmRzIG9uIE1GRF9KQU5aX0NNT0RJT1xuIDE0NzpcdFx0aGVscFxuIDE0ODpcdFx0ICBEcml2ZXIgZm9yIEphbnogVk1PRC1JQ0FOMyBJbnRlbGxpZ2VudCBDQU4gY29udHJvbGxlciBtb2R1bGUsIHdoaWNoXG4gMTQ5Olx0XHQgIGNvbm5lY3RzIHRvIGEgTU9EVUxidXMgY2FycmllciBib2FyZC5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjUyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmxleENBTiBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgY29uZmlnIENBTl9GTEVYQ0FOYCBzZXR0aW5nLiBJdCYjMzk7cyBkZXBlbmRlbnQgb24gYSBmZXcgdGhpbmdzOiBgT0YgfHwgQ09MREZJUkUgfHwgQ09NUElMRV9URVNUYCBhbmQgYEhBU19JT01FTWAuIFRoYXQgbWFrZXMgc2Vuc2UuIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGxpbmsgdG8gYE9GYCBiZWluZyByZWxldmFudCB0byBEZXZpY2UgVHJlZSB1c2UuIEkgYWxzbyBnZXQgdGhlIGluY2x1c2lvbiBvZiBgQ09MREZJUkVgLCBhIGxlZ2FjeSBwbGF0Zm9ybSB0byBzdXBwb3J0LCBhcyB3ZWxsIGFzIGEgcXVpY2sgY29tcGlsZSB0ZXN0LiBJT01FTSBtYWtlcyBzZW5zZSB0b28sIHN1Z2dlc3RpbmcgaXQgbmVlZHMgbWVtb3J5IG1hcHBpbmcuCgpCdXQgbXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBpcyBGbGV4Q0FOIGFjdHVhbGx5IGltcGxlbWVudGVkIGFzIGEgcGxhdGZvcm0gZHJpdmVyPyBHaXZlbiB0aGUgZ2VuZXJhbCBzdHJ1Y3R1cmUgb2YgdGhlIGtlcm5lbCwgSSYjMzk7bSBsZWFuaW5nIHRoYXQgd2F5LCBidXQgSSBzaG91bGQgZG91YmxlLWNoZWNrLiBMZXQgbWUgcXVpY2tseSBqdW1wIGludG8gYGZsZXhjYW4tY29yZS5jYCBhbmQgY29uZmlybSBteSBleHBlY3RhdGlvbi4gS25vd2luZyB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBkcml2ZXIgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCB0aGVzZSBLY29uZmlnIGRlcGVuZGVuY2llcyBhY3R1YWxseSBzaWduaWZ5IHdpdGhpbiB0aGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjQ0ND1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDU0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjQ1NTptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGZsZXhjYW5fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI0NTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY1MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBDQU4gRHJpdmVyIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBGbGV4Q0FOIGRyaXZlciBhY3R1YWxseSB3b3JrcyBhdCBpdHMgY29yZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYGZsZXhjYW4tY29yZS5jYC4gSSBleHBlY3QgdG8gZmluZCB0aGUgbWVhdCBvZiB0aGUgcGxhdGZvcm0gZHJpdmVyIGRldGFpbHMgaW4gdGhlcmUgLSB0aGUgcmVnaXN0cmF0aW9uLCBwcm9iZSwgYW5kIHJlbW92ZSBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgaG93IHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiBpcyBtYW5hZ2VkLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBlc3NlbnRpYWwgZ2x1ZSBjb2RlIHRoYXQgbGlua3MgdGhlIGdlbmVyaWMgQ0FOIGZyYW1ld29yayB3aXRoIHRoZSBzcGVjaWZpYyBGbGV4Q0FOIHNpbGljb24uIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCB0aGUgaW50ZXJydXB0IGhhbmRsaW5nIHNldHVwLCBhbmQgdGhlIHdheSB0aGUgY29udHJvbGxlciByZWdpc3RlcnMgYXJlIGFjY2Vzc2VkLiBMZXQmIzM5O3MgZ2V0IHRvIGl0IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjQyMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyNDIwOlx0XG4yNDIxOlx0XHRpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7XG4yNDIyOlx0XHRcdGludCBlcnI7XG4yNDIzOlx0XG4yNDI0Olx0XHRcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXHUwMDI2XHUwMDI2XG4yNDI1Olx0XHRcdCAgICAgIHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NNSSkpIHtcbjI0MjY6XHRcdFx0XHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZShkZXZpY2UpO1xuMjQyNzpcdFx0XHRcdGlmIChlcnIpXG4yNDI4Olx0XHRcdFx0XHRyZXR1cm4gZXJyO1xuMjQyOTpcdFx0XHR9XG4yNDMwOlx0XG4yNDMxOlx0XHRcdGlmIChkZXZpY2VfbWF5X3dha2V1cChkZXZpY2UpKVxuMjQzMjpcdFx0XHRcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgZmFsc2UpO1xuMjQzMzpcdFx0fVxuMjQzNDpcdFxuMjQzNTpcdFx0cmV0dXJuIDA7XG4yNDM2Olx0fVxuMjQzNzpcdFxuMjQzODpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBmbGV4Y2FuX3BtX29wcyA9IHtcbjI0Mzk6XHRcdFNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKGZsZXhjYW5fc3VzcGVuZCwgZmxleGNhbl9yZXN1bWUpXG4yNDQwOlx0XHRTRVRfUlVOVElNRV9QTV9PUFMoZmxleGNhbl9ydW50aW1lX3N1c3BlbmQsIGZsZXhjYW5fcnVudGltZV9yZXN1bWUsIE5VTEwpXG4yNDQxOlx0XHRTRVRfTk9JUlFfU1lTVEVNX1NMRUVQX1BNX09QUyhmbGV4Y2FuX25vaXJxX3N1c3BlbmQsIGZsZXhjYW5fbm9pcnFfcmVzdW1lKVxuMjQ0MjpcdH07XG4yNDQzOlx0XG4yNDQ0Olx0c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XG4yNDQ1Olx0XHQuZHJpdmVyID0ge1xuMjQ0NjpcdFx0XHQubmFtZSA9IERSVl9OQU1FLFxuMjQ0NzpcdFx0XHQucG0gPSBcdTAwMjZmbGV4Y2FuX3BtX29wcyxcbjI0NDg6XHRcdFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcbjI0NDk6XHRcdH0sXG4yNDUwOlx0XHQucHJvYmUgPSBmbGV4Y2FuX3Byb2JlLFxuMjQ1MTpcdFx0LnJlbW92ZSA9IGZsZXhjYW5fcmVtb3ZlLFxuMjQ1MjpcdFx0LmlkX3RhYmxlID0gZmxleGNhbl9pZF90YWJsZSxcbjI0NTM6XHR9O1xuMjQ1NDpcdFxuMjQ1NTpcdG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZmxleGNhbl9kcml2ZXIpO1xuMjQ1NjpcdFxuMjQ1NzpcdE1PRFVMRV9BVVRIT1IoXCYjMzQ7U2FzY2hhIEhhdWVyIFx1MDAzY2tlcm5lbEBwZW5ndXRyb25peC5kZVx1MDAzZSwgXCYjMzQ7XG4yNDU4Olx0XHQgICAgICBcJiMzNDtNYXJjIEtsZWluZS1CdWRkZSBcdTAwM2NrZXJuZWxAcGVuZ3V0cm9uaXguZGVcdTAwM2VcJiMzNDspO1xuMjQ1OTpcdE1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0OTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIENBTiBEcml2ZXImIzM5O3MgSWRlbnRpZmljYXRpb24gU3RyYXRlZ3kqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBmbGV4Y2FuX2RyaXZlcmAuIEZpcnN0IG9mZiwgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGhhcmR3YXJlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIGdvb2QuIE5vdywgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgaG93IGl0JiMzOTtzIGlkZW50aWZ5aW5nIHRoZSBoYXJkd2FyZSBpdCBzdXBwb3J0cy4gSXQgc2VlbXMgdG8gYmUgdXNpbmcgdHdvIHByaW1hcnkgbWV0aG9kcywgYW5kIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSB0aGVtIGZ1cnRoZXIuIEl0JiMzOTtzIGVpdGhlciBtYXRjaGluZyBiYXNlZCBvbiB0aGUgYG9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaGAgb3IgdGhlIGBpZF90YWJsZSA9IGZsZXhjYW5faWRfdGFibGVgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0JiMzOTtzIGluIGBmbGV4Y2FuX29mX21hdGNoYCBhbmQgYGZsZXhjYW5faWRfdGFibGVgIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzIGFuZCBwcm9wZXJ0aWVzIHRoaXMgZHJpdmVyIGlzIGxvb2tpbmcgZm9yLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZGV2aWNlIGlzIHNlbGVjdGVkIGFuZCBpbml0aWFsaXplZCwgYW5kIGlmIGl0JiMzOTtzIHVzaW5nIERldmljZSBUcmVlIG9yIGEgbW9yZSB0cmFkaXRpb25hbCBJRC1iYXNlZCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMzc1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQ1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIzNzU6XHRcbjIzNzY6XHRcdHJldHVybiAwO1xuMjM3NzpcdH1cbjIzNzg6XHRcbjIzNzk6XHRzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGZsZXhjYW5fcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMjM4MDpcdHtcbjIzODE6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcbjIzODI6XHRcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuMjM4MzpcdFxuMjM4NDpcdFx0cmV0dXJuIGZsZXhjYW5fY2xrc19lbmFibGUocHJpdik7XG4yMzg1Olx0fVxuMjM4NjpcdFxuMjM4NzpcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcbjIzODg6XHR7XG4yMzg5Olx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XG4yMzkwOlx0XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbjIzOTE6XHRcbjIzOTI6XHRcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpIHtcbjIzOTM6XHRcdFx0aW50IGVycjtcbjIzOTQ6XHRcbjIzOTU6XHRcdFx0aWYgKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkpXG4yMzk2Olx0XHRcdFx0ZmxleGNhbl9lbmFibGVfd2FrZXVwX2lycShwcml2LCB0cnVlKTtcbjIzOTc6XHRcbjIzOTg6XHRcdFx0LyogRm9yIEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDTUksIGl0IG5lZWQgQVRGIHRvIHNlbmRcbjIzOTk6XHRcdFx0ICogdG8gU00gdGhyb3VnaCBTQ01JIHByb3RvY29sLCBTTSB3aWxsIGFzc2VydCB0aGUgSVBHX1NUT1BcbjI0MDA6XHRcdFx0ICogc2lnbmFsLiBCdXQgYWxsIHRoaXMgd29ya3MgbmVlZCB0aGUgQ0FOIGNsb2NrcyBrZWVwIG9uLlxuMjQwMTpcdFx0XHQgKiBBZnRlciB0aGUgQ0FOIG1vZHVsZSBnZXQgdGhlIElQR19TVE9QIG1vZGUsIGFuZCBzd2l0Y2ggdG9cbjI0MDI6XHRcdFx0ICogU1RPUCBtb2RlLCB3aGV0aGVyIHN0aWxsIGtlZXAgdGhlIENBTiBjbG9ja3Mgb24gb3IgZ2F0ZSB0aGVtXG4yNDAzOlx0XHRcdCAqIG9mZiBkZXBlbmQgb24gdGhlIEhhcmR3YXJlIGRlc2lnbi5cbjI0MDQ6XHRcdFx0ICovXG4yNDA1Olx0XHRcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXHUwMDI2XHUwMDI2XG4yNDA2Olx0XHRcdCAgICAgIHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NNSSkpIHtcbjI0MDc6XHRcdFx0XHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoZGV2aWNlKTtcbjI0MDg6XHRcdFx0XHRpZiAoZXJyKVxuMjQwOTpcdFx0XHRcdFx0cmV0dXJuIGVycjtcbjI0MTA6XHRcdFx0fVxuMjQxMTpcdFx0fVxuMjQxMjpcdFxuMjQxMzpcdFx0cmV0dXJuIDA7XG4yNDE0Olx0fVxuMjQxNTpcdFxuMjQxNjpcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMjQxNzpcdHtcbjI0MTg6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcbjI0MTk6XHRcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTAwCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIENBTiBNYXRjaCBUYWJsZXMqKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgQ0FOIGZpbHRlcmluZyBsb2dpYy4gTGV0JiMzOTtzIHN0YXJ0IGJ5IG5hdmlnYXRpbmcgaW50byBgZmxleGNhbi1jb3JlLmNgLiBNeSBwcmltYXJ5IGludGVyZXN0IHJpZ2h0IG5vdyBpcyB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgaW5jb21pbmcgQ0FOIG1lc3NhZ2VzIGFyZSBtYXRjaGVkIGFuZCByb3V0ZWQuIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSBtYXRjaCB0YWJsZXMuIEkmIzM5O20gYXNzdW1pbmcgdGhlcmUmIzM5O3Mgc29tZSBzb3J0IG9mIGxvb2t1cCBtZWNoYW5pc20sIHBlcmhhcHMgYSBoYXNoIHRhYmxlIG9yIGEgbW9yZSBkaXJlY3QgaW5kZXhpbmcgbWV0aG9kLCB0byBxdWlja2x5IGRldGVybWluZSB3aGljaCBtYWlsYm94ZXMgb3IgYnVmZmVycyB0aGUgaW5jb21pbmcgZnJhbWVzIGdldCBkaXJlY3RlZCB0by4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBmaWx0ZXIgbWFza3MgYW5kIGlkZW50aWZpZXJzIGludGVyYWN0LCBhbmQgaG93IHRoZSBoYXJkd2FyZSBhY3R1YWxseSBwZXJmb3JtcyB0aGUgbWF0Y2hpbmcgdG8gb3B0aW1pemUgaG93IHRoZSBDQU4gZGF0YSBpcyBwcm9jZXNzZWQuIExldCYjMzk7cyBnZXQgdG8gaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW5fb2ZfbWF0Y2h8ZmxleGNhbl9pZF90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTIwMjU9c3RhdGljIGludCBmbGV4Y2FuX3NldHVwX3N0b3BfbW9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMDYyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZsZXhjYW5fb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDhxbS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg4cW1fZGV2dHlwZV9kYXRhLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNzgtfTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwNzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDgwLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDgyLVx0e1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwODgtfTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwODk6TU9EVUxFX0RFVklDRV9UQUJMRShwbGF0Zm9ybSwgZmxleGNhbl9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDkwLVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTI0NDQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ0Ny1cdFx0LnBtID0gXHUwMDI2ZmxleGNhbl9wbV9vcHMsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyNDQ4Olx0XHQub2ZfbWF0Y2hfdGFibGUgPSBmbGV4Y2FuX29mX21hdGNoLFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ0OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1MS1cdC5yZW1vdmUgPSBmbGV4Y2FuX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NTI6XHQuaWRfdGFibGUgPSBmbGV4Y2FuX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1My19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzQyCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgdGhlIGBmbGV4Y2FuX2lkX3RhYmxlYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYGZsZXhjYW5faWRfdGFibGVgIGNvbnRhaW5zLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCYjMzk7cyBsaWtlbHkgYSBzdHJ1Y3R1cmUgb3IgdGFibGUgdGhhdCBtYXBzIGlkZW50aWZpZXJzIHJlbGF0ZWQgdG8gdGhlIEZsZXhDQU4gcGVyaXBoZXJhbC4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBJIHN1c3BlY3QgaXQmIzM5O3MgY3J1Y2lhbCBmb3IgZmlsdGVyaW5nLCBhY2NlcHRhbmNlIG1hc2tpbmcsIG9yIHBvdGVudGlhbGx5IElEIGFzc2lnbm1lbnQgd2l0aGluIHRoZSBDQU4gYnVzIGNvbW11bmljYXRpb24gZnJhbWV3b3JrLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBJRHMgYXJlIGJlaW5nIG1hbmFnZWQuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGFibGUmIzM5O3Mgc3RydWN0dXJlIOKAkyBpcyBpdCBhbiBhcnJheSwgYSBsaW5rZWQgbGlzdCwgb3Igc29tZXRoaW5nIG1vcmUgY29tcGxleD8gVGhlIHNpemUgYW5kIHRoZSBkYXRhIHR5cGVzIG9mIGl0cyBlbGVtZW50cyB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBpbnRlbmRlZCB1c2UgYW5kIHBvdGVudGlhbCBsaW1pdGF0aW9ucy4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgd2hlcmUgdGhlIHRhYmxlIGlzIGRlZmluZWQsIGhvdyBpdCYjMzk7cyBwb3B1bGF0ZWQgKHN0YXRpYyBpbml0aWFsaXphdGlvbj8gZHluYW1pYyB1cGRhdGVzPyksIGFuZCB3aGVyZSBpdCYjMzk7cyByZWZlcmVuY2VkIGluIHRoZSBjb2RlLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGhvdyB0aGlzIHRhYmxlIGlzIHVzZWQgd2lsbCBiZSBjcnVjaWFsIGZvciBhbnkgZGVidWdnaW5nIG9yIG9wdGltaXphdGlvbiBlZmZvcnRzLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwODAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjA4MDpcdFxuMjA4MTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGZsZXhjYW5faWRfdGFibGVbXSA9IHtcbjIwODI6XHRcdHtcbjIwODM6XHRcdFx0Lm5hbWUgPSBcJiMzNDtmbGV4Y2FuLW1jZjU0NDF4XCYjMzQ7LFxuMjA4NDpcdFx0XHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2ZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSxcbjIwODU6XHRcdH0sIHtcbjIwODY6XHRcdFx0Lyogc2VudGluZWwgKi9cbjIwODc6XHRcdH0sXG4yMDg4Olx0fTtcbjIwODk6XHRNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBmbGV4Y2FuX2lkX3RhYmxlKTtcbjIwOTA6XHRcbjIwOTE6XHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbjIwOTI6XHR7XG4yMDkzOlx0XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgKmRldnR5cGVfZGF0YTtcbjIwOTQ6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4yMDk1Olx0XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2O1xuMjA5NjpcdFx0c3RydWN0IHJlZ3VsYXRvciAqcmVnX3hjZWl2ZXI7XG4yMDk3Olx0XHRzdHJ1Y3QgcGh5ICp0cmFuc2NlaXZlcjtcbjIwOTg6XHRcdHN0cnVjdCBjbGsgKmNsa19pcGcgPSBOVUxMLCAqY2xrX3BlciA9IE5VTEw7XG4yMDk5Olx0XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NjEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBmdW5jdGlvbi4KCioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZnVuY3Rpb24sIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgLiBUaGUgbmFtZSBpdHNlbGYgaXMgcHJldHR5IHNlbGYtZXhwbGFuYXRvcnkg4oCTIGl0JiMzOTtzIGRlc2lnbmVkIHRvIHJldHJpZXZlIHRoZSBidXMgZXJyb3IgY291bnRlciBmcm9tIGEgRmxleENBTiBwZXJpcGhlcmFsLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIENBTiBjb250cm9sbGVycyBhbmQgdGhlIGNyaXRpY2FsIHJvbGUgb2YgZXJyb3IgZGV0ZWN0aW9uIGluIGVuc3VyaW5nIHJlbGlhYmxlIGNvbW11bmljYXRpb24sIHRoaXMgaXMgYSBjb3JlIGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaW1wbGVtZW50ZWQuIEZpcnN0IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZSBlcnJvciBjb3VudGVycyBhcmUgbG9jYXRlZCBpbiB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgcmVnaXN0ZXIgbWFwLiBJcyBpdCBhIHNpbmdsZSByZWdpc3Rlciwgb3IgaXMgaXQgYSBmaWVsZCB3aXRoaW4gYSBsYXJnZXIgc3RhdHVzIHJlZ2lzdGVyPyBLbm93aW5nIHRoaXMgaXMgdml0YWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVuY3Rpb24mIzM5O3MgYWNjZXNzIG1ldGhvZC4KCkkgZXhwZWN0IHRoaXMgZnVuY3Rpb24gd2lsbCBsaWtlbHkgaW52b2x2ZSByZWFkaW5nIGEgc3BlY2lmaWMgcmVnaXN0ZXIgb3IgYSBmaWVsZCB3aXRoaW4gYSByZWdpc3RlciBvZiB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBUaGVyZSBhcmUgdHlwaWNhbGx5IGRpZmZlcmVudCBlcnJvciBjb3VudGVycyDigJMgdHJhbnNtaXQgZXJyb3IgY291bnRlciAoVEVDKSBhbmQgcmVjZWl2ZSBlcnJvciBjb3VudGVyIChSRUMpIOKAkyBzbyB0aGUgZnVuY3Rpb24mIzM5O3MgcGFyYW1ldGVycyBzaG91bGQgc3BlY2lmeSB3aGljaCBvbmUgaXMgb2YgaW50ZXJlc3QuIEFyZSB3ZSBhY2Nlc3NpbmcgYm90aD8gRG9lcyBpdCBvZmZlciBiaXQtZmllbGQgZ3JhbnVsYXJpdHkgdG8gY2hlY2sgaW5kaXZpZHVhbCBjb3VudGVycz8gT3IgZG9lcyBpdCBvZmZlciBib3RoPyBJJiMzOTtsbCBoYXZlIHRvIHNlZSB0aGUgY29kZS4gSSYjMzk7bSBob3BpbmcgaXQmIzM5O3Mgd2VsbC13cml0dGVuLCB3aXRoIGFwcHJvcHJpYXRlIGVycm9yIGhhbmRsaW5nIOKAkyB3aGF0IGhhcHBlbnMgaWYgdGhlIHBlcmlwaGVyYWwgaXNuJiMzOTt0IGluaXRpYWxpemVkLCBvciB0aGUgcG9pbnRlciB0byB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgYmFzZSBhZGRyZXNzIGlzIGludmFsaWQ/IEEgcm9idXN0IGltcGxlbWVudGF0aW9uIHdvdWxkIGluY2x1ZGUgY2hlY2tzIGZvciB0aGVzZSBjb25kaXRpb25zLCBwZXJoYXBzIHJldHVybmluZyBhbiBlcnJvciBjb2RlIG9yIHVzaW5nIGFzc2VydGlvbnMgdG8gY2F0Y2ggdW5leHBlY3RlZCBzY2VuYXJpb3MuCgpGdXJ0aGVybW9yZSwgaG93IGRvZXMgdGhlIGZ1bmN0aW9uIGhhbmRsZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zPyBNdWx0aXBsZSB0YXNrcyBtaWdodCB0cnkgdG8gYWNjZXNzIHRoZSBlcnJvciBjb3VudGVycyBzaW11bHRhbmVvdXNseS4gRG9lcyBpdCB1c2UgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyBvciBhdG9taWMgb3BlcmF0aW9ucyB0byBlbnN1cmUgZGF0YSBpbnRlZ3JpdHk/IEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoYXQuIFRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGRldGFpbHMgYXJlIGNydWNpYWwgZm9yIHBlcmZvcm1hbmNlLiBJdCYjMzk7cyBsaWtlbHkgdGhpcyBpcyBnb2luZyB0byBiZSB3cml0dGVuIHdpdGggcmVnaXN0ZXIgYWNjZXNzIGluIG1pbmQgcmF0aGVyIHRoYW4gdGhlIGRhdGEgYmVpbmcgc3RvcmVkIG9uIHRoZSBoZWFwLiBJIHdhbnQgdG8ga25vdyBhYm91dCBob3cgdGhpcyBpcyB3cml0dGVuIHNvIEkgY2FuIGJlIHN1cmUgSSBjYW4gYWRhcHQgdGhlIGZ1bmN0aW9uIHRvIG15IG5lZWRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDM1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NjA6XHR9XG4gNzYxOlx0XG4gNzYyOlx0c3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiA3NjM6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxuIDc2NDpcdHtcbiA3NjU6XHRcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIDc2NjpcdFx0aW50IGVycjtcbiA3Njc6XHRcbiA3Njg6XHRcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKVxuIDc2OTpcdFx0XHRyZXR1cm4gMDtcbiA3NzA6XHRcbiA3NzE6XHRcdGVyciA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocHJpdi1cdTAwM2VkZXYpO1xuIDc3MjpcdFx0aWYgKGVyciBcdTAwM2MgMClcbiA3NzM6XHRcdFx0cmV0dXJuIGVycjtcbiA3NzQ6XHRcbiA3NzU6XHRcdGVyciA9IF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgYmVjKTtcbiA3NzY6XHRcbiA3Nzc6XHRcdHBtX3J1bnRpbWVfcHV0KHByaXYtXHUwMDNlZGV2KTtcbiA3Nzg6XHRcbiA3Nzk6XHRcdHJldHVybiBlcnI7XG4gNzgwOlx0fVxuIDc4MTpcdFxuIDc4MjpcdHN0YXRpYyBuZXRkZXZfdHhfdCBmbGV4Y2FuX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiA3ODM6XHR7XG4gNzg0Olx0XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbiA3ODU6XHRcdHN0cnVjdCBjYW5mZF9mcmFtZSAqY2ZkID0gKHN0cnVjdCBjYW5mZF9mcmFtZSAqKXNrYi1cdTAwM2VkYXRhO1xuIDc4NjpcdFx0dTMyIGNhbl9pZDtcbiA3ODc6XHRcdHUzMiBkYXRhO1xuIDc4ODpcdFx0dTMyIGN0cmwgPSBGTEVYQ0FOX01CX0NPREVfVFhfREFUQSB8ICgoY2FuX2ZkX2xlbjJkbGMoY2ZkLVx1MDAzZWxlbikpIFx1MDAzY1x1MDAzYyAxNik7XG4gNzg5Olx0XHRpbnQgaTtcbiA3OTA6XHRcbiA3OTE6XHRcdGlmIChjYW5fZGV2X2Ryb3BwZWRfc2tiKGRldiwgc2tiKSlcbiA3OTI6XHRcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiA3OTM6XHRcbiA3OTQ6XHRcdG5ldGlmX3N0b3BfcXVldWUoZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk3OQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgY29kZToKCioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBpcyBjbGVhcmx5IHBhcnQgb2YgdGhlIENBTiBzdWJzeXN0ZW0sIHNwZWNpZmljYWxseSB0aWVkIGludG8gYGRvX2dldF9iZXJyX2NvdW50ZXJgLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdoZXJlIGlzIHRoaXMgZnVuY3Rpb24gYWN0dWFsbHkgYmVpbmcgKnVzZWQqIG9yICphc3NpZ25lZCogd2l0aGluIHRoZSBsYXJnZXIgZnJhbWV3b3JrPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gU2luY2UgdGhpcyBsb29rcyBsaWtlIGEgRkxFWENBTiBzcGVjaWZpYyBmdW5jdGlvbiwgYSBxdWljayBzZWFyY2ggaW4gYGZsZXhjYW4tY29yZS5jYCBtYWtlcyB0aGUgbW9zdCBzZW5zZSBhcyBhIHN0YXJ0aW5nIHBvaW50LiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCB0aGF0IGZpbGUgcmV2ZWFscyBhYm91dCBpdHMgaW1wbGVtZW50YXRpb24gYW5kIGludGVncmF0aW9uIHdpdGhpbiB0aGUgRkxFWENBTiBkcml2ZXIuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgaXRzIHJvbGUsIGFuZCBob3cgaXQgaXMgZW1wbG95ZWQgdG8gcmV0cmlldmUgdGhlIGJ1cyBlcnJvciBjb3VudGVyLiBJIGFudGljaXBhdGUgaXQgd2lsbCBiZSBlc3NlbnRpYWwgZm9yIG1vbml0b3JpbmcgQ0FOIGJ1cyBoZWFsdGggd2l0aGluIHRoZSBGTEVYQ0FOIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYz03MzQ9c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc29mdHJlc2V0KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzQ4LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzQ5OnN0YXRpYyBpbnQgX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MC1cdFx0XHRcdCAgICAgIHN0cnVjdCBjYW5fYmVycl9jb3VudGVyICpiZWMpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzYyOnN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjMtXHRcdFx0XHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NzU6XHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NzYtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9ODk2PXN0YXRpYyB2b2lkIGZsZXhjYW5faXJxX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiByZWdfZXNyKVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5MTY6XHRcdF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgXHUwMDI2YmVjKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNy1cdFx0bmV3X3N0YXRlID0gZmx0ID09IEZMRVhDQU5fRVNSX0ZMVF9DT05GX1BBU1NJVkUgP1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTIwOTE9c3RhdGljIGludCBmbGV4Y2FuX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNS1cdHByaXYtXHUwMDNlY2FuLmRvX3NldF9tb2RlID0gZmxleGNhbl9zZXRfbW9kZTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIyMDY6XHRwcml2LVx1MDAzZWNhbi5kb19nZXRfYmVycl9jb3VudGVyID0gZmxleGNhbl9nZXRfYmVycl9jb3VudGVyO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNy1cdHByaXYtXHUwMDNlY2FuLmN0cmxtb2RlX3N1cHBvcnRlZCA9IENBTl9DVFJMTU9ERV9MT09QQkFDSyB8XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk5MTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGFiaWxpdHkgYW5kIEZsZXhDQU4gb24gQU1ENjQqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHJlYWNoYWJpbGl0eSBxdWVzdGlvbi4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIHdoZXRoZXIgb3Igbm90IHdlIGNhbiByZWxpYWJseSBwcm9iZSB0aGUgRmxleENBTiBoYXJkd2FyZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yIFFFTVUuIFRoZXNlIGFyZSBjb21tb24gdGVzdGluZyBncm91bmRzLCBzbyBiZWluZyBhYmxlIHRvIGNvbmZpcm0gRmxleENBTiYjMzk7cyBwcmVzZW5jZSB0aGVyZSBpcyBrZXkuCgpUaGUgaW1tZWRpYXRlIGZvY3VzIGlzIHRoZSBhbWQ2NCBhcmNoaXRlY3R1cmUuIENhbiB3ZSBnZXQgRmxleENBTiB3b3JraW5nIHRoZXJlPyBUbyBkZXRlcm1pbmUgdGhhdCwgSSBuZWVkIHRvIGNoZWNrIGhvdyB0aGUgc3lzdGVtIHJlY29nbml6ZXMgdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0JiMzOTtzIGEgcGxhdGZvcm0gZGV2aWNlLCBzbyBJIG5lZWQgdG8gY2hlY2sgdGhlIG1hdGNoIHRhYmxlLCBgZmxleGNhbl9vZl9tYXRjaGAuIEkgbmVlZCB0byByZXZpZXcgd2hhdCAmIzM0O2NvbXBhdGlibGUgc3RyaW5ncyYjMzQ7IGFyZSBwcmVzZW50IGluIHRoZSB0YWJsZS4gVGhlc2Ugc3RyaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIG1hdGNoaW5nIHRoZSBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwNjIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjA2MjpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZsZXhjYW5fb2ZfbWF0Y2hbXSA9IHtcbjIwNjM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14OHFtLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDhxbV9kZXZ0eXBlX2RhdGEsIH0sXG4yMDY0Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDhtcC1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg4bXBfZGV2dHlwZV9kYXRhLCB9LFxuMjA2NTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXg5My1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg5M19kZXZ0eXBlX2RhdGEsIH0sXG4yMDY2Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDk1LWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDk1X2RldnR5cGVfZGF0YSwgfSxcbjIwNjc6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14NnEtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfaW14NnFfZGV2dHlwZV9kYXRhLCB9LFxuMjA2ODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyOC1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXgyOF9kZXZ0eXBlX2RhdGEsIH0sXG4yMDY5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDI1X2RldnR5cGVfZGF0YSwgfSxcbjIwNzA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14MzUtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfaW14MjVfZGV2dHlwZV9kYXRhLCB9LFxuMjA3MTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEsIH0sXG4yMDcyOlx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLHAxMDEwLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX3AxMDEwX2RldnR5cGVfZGF0YSwgfSxcbjIwNzM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsdmY2MTAtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfdmY2MTBfZGV2dHlwZV9kYXRhLCB9LFxuMjA3NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxsczEwMjFhcjItZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfbHMxMDIxYV9yMl9kZXZ0eXBlX2RhdGEsIH0sXG4yMDc1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGx4MjE2MGFyMS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9seDIxNjBhX3IxX2RldnR5cGVfZGF0YSwgfSxcbjIwNzY6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtueHAsczMyZzItZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZueHBfczMyZzJfZGV2dHlwZV9kYXRhLCB9LFxuMjA3NzpcdFx0eyAvKiBzZW50aW5lbCAqLyB9LFxuMjA3ODpcdH07XG4yMDc5Olx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XG4yMDgwOlx0XG4yMDgxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgZmxleGNhbl9pZF90YWJsZVtdID0ge1xuMjA4MjpcdFx0e1xuMjA4MzpcdFx0XHQubmFtZSA9IFwmIzM0O2ZsZXhjYW4tbWNmNTQ0MXhcJiMzNDssXG4yMDg0Olx0XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZmc2xfbWNmNTQ0MXhfZGV2dHlwZV9kYXRhLFxuMjA4NTpcdFx0fSwge1xuMjA4NjpcdFx0XHQvKiBzZW50aW5lbCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAxMQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIEZsZXhDQU4qKgoKT2theSwgc28gRmxleENBTi4gSXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhvc2UgRnJlZXNjYWxlL05YUCBpLk1YLCBRb3JJUSwgYW5kIENvbGRGaXJlIFNvQ3MuIEkmIzM5O3ZlIGdvdCBhIGRlY2VudCBsaXN0IG9mIGNvbXBhdGlibGUgZGV2aWNlcyBoZXJlOiBgZnNsLGlteDhxbS1mbGV4Y2FuYCwgYGZzbCxpbXg4bXAtZmxleGNhbmAsIGFsbCB0aGUgd2F5IGRvd24gdG8gYGZsZXhjYW4tbWNmNTQ0MXhgLiBTdGFuZGFyZCBzdHVmZiBmb3IgdGhlc2UgZW1iZWRkZWQgc3lzdGVtcy4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIGNhbiB0aGlzIGFjdHVhbGx5IHByb2JlIG9uIGFuIGFtZDY0IHN5c3RlbSwgcnVubmluZyBpbiBzb21ldGhpbmcgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gTXkgZ3V0IHNheXMgcHJvYmFibHkgbm90IGRpcmVjdGx5LCBidXQgaXQmIzM5O3Mgd29ydGggY2hlY2tpbmcuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSB2aXJ0dWFsIGRldmljZXMgZW11bGF0aW5nIGEgRmxleENBTiBpbnRlcmZhY2UgaW4gdGhvc2UgZW52aXJvbm1lbnRzLiBBcmUgdGhlcmUgYW55IFBDSSBkZXZpY2VzLCBVU0IgZGV2aWNlcywgb3IgZXZlbiBwbGF0Zm9ybSBkZXZpY2UgaW5zdGFudGlhdGlvbiBtZWNoYW5pc21zIHRoYXQgY291bGQgcG90ZW50aWFsbHkgc2ltdWxhdGUgdGhlIEZsZXhDQU4gYmVoYXZpb3I/CgpTcGVjaWZpY2FsbHksIGlzIHRoZXJlIGEgUENJIHdyYXBwZXIgb2Ygc29tZSBzb3J0IHRoYXQgbWlnaHQgZXhwb3NlIEZsZXhDQU4gZnVuY3Rpb25hbGl0eT8gVGltZSB0byBkaWcgaW50byB0aGUga2VybmVsIHNvdXJjZS4gSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBwbGFjZSwgYGRyaXZlcnMvbmV0L2Nhbi9gLCBidXQgSSYjMzk7bGwgYWxzbyBicm9hZGVuIG15IHNlYXJjaC4gSXQgd291bGQgYmUgYSB1c2VmdWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gdG8ga25vdyBpZiB0aGVyZSBpcyBhIHdyYXBwZXIgZm9yIGl0IGluIFFFTVUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYz0xNzk9c3RhdGljIHZvaWQgX19pbml0IHZmNjEwX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpXG4tLVxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQyOS1cbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzA6XHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4wX0VOXSA9IGlteF9jbGtfZ2F0ZShcJiMzNDtmbGV4Y2FuMF9lblwmIzM0OywgXCYjMzQ7aXBnX2J1c1wmIzM0OywgQ0NNX0NTQ0RSMiwgMTEpO1xuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jOjQzMTpcdGNsa1tWRjYxMF9DTEtfRkxFWENBTjBdID0gaW14X2Nsa19nYXRlMihcJiMzNDtmbGV4Y2FuMFwmIzM0OywgXCYjMzQ7ZmxleGNhbjBfZW5cJiMzNDssIENDTV9DQ0dSMCwgQ0NNX0NDR1J4X0NHbigwKSk7XG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmM6NDMyOlx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMV9FTl0gPSBpbXhfY2xrX2dhdGUoXCYjMzQ7ZmxleGNhbjFfZW5cJiMzNDssIFwmIzM0O2lwZ19idXNcJiMzNDssIENDTV9DU0NEUjIsIDEyKTtcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzM6XHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4xXSA9IGlteF9jbGtfZ2F0ZTIoXCYjMzQ7ZmxleGNhbjFcJiMzNDssIFwmIzM0O2ZsZXhjYW4xX2VuXCYjMzQ7LCBDQ01fQ0NHUjksIENDTV9DQ0dSeF9DR24oNCkpO1xuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQzNC1cbi0tXG5kcml2ZXJzL25ldC9jYW4vTWFrZWZpbGU9MjM9b2JqLSQoQ09ORklHX0NBTl9DVFVDQU5GRClcdCYjNDM7PSBjdHVjYW5mZC9cbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQ0FOX0ZMRVhDQU4pXHQmIzQzOz0gZmxleGNhbi9cbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfQ0FOX0dSQ0FOKVx0XHQmIzQzOz0gZ3JjYW4ub1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTozOm9iai0kKENPTkZJR19DQU5fRkxFWENBTikgJiM0Mzs9IGZsZXhjYW4ub1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjU6ZmxleGNhbi1vYmpzIDo9XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTo2OmZsZXhjYW4tb2JqcyAmIzQzOz0gZmxleGNhbi1jb3JlLm9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjc6ZmxleGNhbi1vYmpzICYjNDM7PSBmbGV4Y2FuLWV0aHRvb2wub1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTItLy9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM6Ly8gZmxleGNhbi5jIC0gRkxFWENBTiBDQU4gY29udHJvbGxlciBkcml2ZXJcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQtLy9cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNy0jaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjg6I2luY2x1ZGUgXHUwMDNjbGludXgvY2FuL3BsYXRmb3JtL2ZsZXhjYW4uaFx1MDAzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozNTojaW5jbHVkZSBcJiMzNDtmbGV4Y2FuLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mzc6I2RlZmluZSBEUlZfTkFNRVx0XHRcdFwmIzM0O2ZsZXhjYW5cJiMzNDtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxMC0vKiBTdHJ1Y3R1cmUgb2YgdGhlIG1lc3NhZ2UgYnVmZmVyICovXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTE6c3RydWN0IGZsZXhjYW5fbWIge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjEyLVx0dTMyIGNhbl9jdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxNy0vKiBTdHJ1Y3R1cmUgb2YgdGhlIGhhcmR3YXJlIHJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjE4OnN0cnVjdCBmbGV4Y2FuX3JlZ3Mge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjE5LVx0dTMyIG1jcjtcdFx0LyogMHgwMCAqL1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI5My1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NDpzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgZmxleGNhbl9yZWdzKSA9PSAgMHg0ICogMTggJiM0MzsgMHhmYjgpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk1LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI5Ny1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMDItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfcDEwMTBfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzA0LVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMxMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMxMTpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTItXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19CUk9LRU5fV0VSUl9TVEFURSB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDI4X2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMxOS1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMjMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14NnFfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzI1LVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMzEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMzI6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14OHFtX2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMzMy1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzM5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzQwOnN0YXRpYyBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDhtcF9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNDEtXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0OC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5M19kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTAtXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM1Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM1ODpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5NV9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTktXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM2NjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF92ZjYxMF9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNjctXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM3My1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM3NDpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM3NS1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgwLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzgxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2x4MjE2MGFfcjFfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgyLVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zODktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozOTA6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBueHBfczMyZzJfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzkxLVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zOTktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fYml0dGltaW5nX2NvbnN0ID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDAxLVx0Lm5hbWUgPSBEUlZfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MTEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MTI6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fZmRfYml0dGltaW5nX2NvbnN0ID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDEzLVx0Lm5hbWUgPSBEUlZfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fZmRfZGF0YV9iaXR0aW1pbmdfY29uc3QgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjUtXHQubmFtZSA9IERSVl9OQU1FLFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ0OC0gKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ0OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfYmUodm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDUwLXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0NTQ6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fd3JpdGVfYmUodTMyIHZhbCwgdm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDU1LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTgtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0NTk6c3RhdGljIGlubGluZSB1MzIgZmxleGNhbl9yZWFkX2xlKHZvaWQgX19pb21lbSAqYWRkcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2MC17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDYzLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2xlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2NS17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDY4LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY5OnN0YXRpYyBzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICpmbGV4Y2FuX2dldF9tYihjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDcwLVx0XHRcdFx0XHRcdCB1OCBtYl9pbmRleClcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0ODQ6XHRyZXR1cm4gKHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4NS1cdFx0KFx1MDAyNnByaXYtXHUwMDNlcmVncy1cdTAwM2VtYltiYW5rXVtwcml2LVx1MDAzZW1iX3NpemUgKiBtYl9pbmRleF0pO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ4ODpzdGF0aWMgaW50IGZsZXhjYW5fbG93X3Bvd2VyX2VudGVyX2FjayhzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDg5LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ5MDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ5MS1cdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTAyOnN0YXRpYyBpbnQgZmxleGNhbl9sb3dfcG93ZXJfZXhpdF9hY2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUwMy17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MDQ6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MDUtXHR1bnNpZ25lZCBpbnQgdGltZW91dCA9IEZMRVhDQU5fVElNRU9VVF9VUyAvIDEwO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxNS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxNjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2VuYWJsZV93YWtldXBfaXJxKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTE3LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxODpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxOS1cdHUzMiByZWdfbWNyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUzMTpzdGF0aWMgaW50IGZsZXhjYW5fc3RvcF9tb2RlX2VuYWJsZV9zY2Z3KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlZClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMi17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTQ3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTQ4OnN0YXRpYyBpbmxpbmUgaW50IGZsZXhjYW5fZW50ZXJfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NDkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTUwOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTUxLVx0dTMyIHJlZ19tY3I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTU5LVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NGVykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTYwOlx0XHRyZXQgPSBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2Nmdyhwcml2LCB0cnVlKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU2MS1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NzU6XHRyZXR1cm4gZmxleGNhbl9sb3dfcG93ZXJfZW50ZXJfYWNrKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc2LX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU3Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3ODpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX2V4aXRfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01Nzkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTgwOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTgxLVx0dTMyIHJlZ19tY3I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTg5LVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NGVykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTkwOlx0XHRyZXQgPSBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2Nmdyhwcml2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01OTEtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjAxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjAyOlx0cmV0dXJuIGZsZXhjYW5fbG93X3Bvd2VyX2V4aXRfYWNrKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjAzLX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYwNTpzdGF0aWMgaW5saW5lIHZvaWQgZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDYte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjA3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjA4LVx0dTMyIHJlZ19jdHJsID0gKHByaXYtXHUwMDNlcmVnX2N0cmxfZGVmYXVsdCB8IEZMRVhDQU5fQ1RSTF9FUlJfTVNLKTtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MTM6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fZXJyb3JfaXJxX2Rpc2FibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYxNC17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MTU6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MTYtXHR1MzIgcmVnX2N0cmwgPSAocHJpdi1cdTAwM2VyZWdfY3RybF9kZWZhdWx0IFx1MDAyNiB+RkxFWENBTl9DVFJMX0VSUl9NU0spO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYyMTpzdGF0aWMgaW50IGZsZXhjYW5fY2xrc19lbmFibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMi17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjM5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjQwOnN0YXRpYyB2b2lkIGZsZXhjYW5fY2xrc19kaXNhYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NDEte1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY0NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY0NjpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX3RyYW5zY2VpdmVyX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjQ3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2NTY6c3RhdGljIGlubGluZSBpbnQgZmxleGNhbl90cmFuc2NlaXZlcl9kaXNhYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTcte1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY2NjpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9lbmFibGUoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2Ny17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Njg6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NjktXHR1MzIgcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3NC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY3NTpcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3Ni19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Nzg6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZGlzYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjc5LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY4MDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY4MS1cdHUzMiByZWc7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjg2LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njg3Olx0cmV0dXJuIGZsZXhjYW5fbG93X3Bvd2VyX2VudGVyX2Fjayhwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY4OC19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2OTA6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZnJlZXplKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02OTEte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkyOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjkzLVx0dW5zaWduZWQgaW50IHRpbWVvdXQ7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE1OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3VuZnJlZXplKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MTYte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE4LVx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3MzQ6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc29mdHJlc2V0KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzUte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM2Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzM3LVx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NDgtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NDk6c3RhdGljIGludCBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzUwLVx0XHRcdFx0ICAgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NTI6XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc1MzpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1NC1cdHUzMiByZWcgPSBwcml2LVx1MDAzZXJlYWQoXHUwMDI2cmVncy1cdTAwM2VlY3IpO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2MS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc2MjpzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYzLVx0XHRcdFx0ICAgIHN0cnVjdCBjYW5fYmVycl9jb3VudGVyICpiZWMpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjQte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzY1Olx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjYtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3NC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc3NTpcdGVyciA9IF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgYmVjKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3Ni1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03ODEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3ODI6c3RhdGljIG5ldGRldl90eF90IGZsZXhjYW5fc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgzLXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc4NDpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzg1LVx0c3RydWN0IGNhbmZkX2ZyYW1lICpjZmQgPSAoc3RydWN0IGNhbmZkX2ZyYW1lICopc2tiLVx1MDAzZWRhdGE7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtODMzLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODM0OnN0YXRpYyB2b2lkIGZsZXhjYW5faXJxX2J1c19lcnIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJlZ19lc3IpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzUte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODM2Olx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4Mzc6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzgtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjg5NjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2lycV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5Ny17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTg6XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjg5OTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkwMC1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTE1LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjkxNjpcdFx0X19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBcdTAwMjZiZWMpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTE3LVx0XHRuZXdfc3RhdGUgPSBmbHQgPT0gRkxFWENBTl9FU1JfRkxUX0NPTkZfUEFTU0lWRSA/XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQyLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTQzOnN0YXRpYyBpbmxpbmUgdTY0IGZsZXhjYW5fcmVhZDY0X21hc2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiwgdm9pZCBfX2lvbWVtICphZGRyLCB1NjQgbWFzaylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk0NC17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTU1OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlNjQoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiwgdTY0IHZhbCwgdm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NjItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NjM6c3RhdGljIGlubGluZSB1NjQgZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY0LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk2NTpcdHJldHVybiBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlcmVncy1cdTAwM2VpZmxhZzEsIHByaXYtXHUwMDNlcnhfbWFzayk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NjYtfVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTY4OnN0YXRpYyBpbmxpbmUgdTY0IGZsZXhjYW5fcmVhZF9yZWdfaWZsYWdfdHgoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2OS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NzA6XHRyZXR1cm4gZmxleGNhbl9yZWFkNjRfbWFzayhwcml2LCBcdTAwMjZwcml2LVx1MDAzZXJlZ3MtXHUwMDNlaWZsYWcxLCBwcml2LVx1MDAzZXR4X21hc2spO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTcxLX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Mi1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3MzpzdGF0aWMgaW5saW5lIHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnJ4X29mZmxvYWRfdG9fcHJpdihzdHJ1Y3QgY2FuX3J4X29mZmxvYWQgKm9mZmxvYWQpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzQte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTc1Olx0cmV0dXJuIGNvbnRhaW5lcl9vZihvZmZsb2FkLCBzdHJ1Y3QgZmxleGNhbl9wcml2LCBvZmZsb2FkKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Ni19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5Nzg6c3RhdGljIHN0cnVjdCBza19idWZmICpmbGV4Y2FuX21haWxib3hfcmVhZChzdHJ1Y3QgY2FuX3J4X29mZmxvYWQgKm9mZmxvYWQsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzktXHRcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbiwgdTMyICp0aW1lc3RhbXAsXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTgxLXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk4MjpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSByeF9vZmZsb2FkX3RvX3ByaXYob2ZmbG9hZCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5ODM6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5ODQ6XHRzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICptYjtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4NS1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTg5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTkwOlx0bWIgPSBmbGV4Y2FuX2dldF9tYihwcml2LCBuKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk5MS1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDYyLVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19VU0VfUlhfTUFJTEJPWClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwNjM6XHRcdGZsZXhjYW5fd3JpdGU2NChwcml2LCBGTEVYQ0FOX0lGTEFHX01CKG4pLCBcdTAwMjZyZWdzLVx1MDAzZWlmbGFnMSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDY0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNzUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBmbGV4Y2FuX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc5LVx0c3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKnN0YXRzID0gXHUwMDI2ZGV2LVx1MDAzZXN0YXRzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwODItXHRpcnFyZXR1cm5fdCBoYW5kbGVkID0gSVJRX05PTkU7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA5MS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwOTI6XHRcdHdoaWxlICgocmVnX2lmbGFnX3J4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChwcml2KSkpIHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwOTMtXHRcdFx0aGFuZGxlZCA9IElSUV9IQU5ETEVEO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTE4Olx0cmVnX2lmbGFnX3R4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ190eChwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTktXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTEzMi1cdFx0XHQgICAgXHUwMDI2cHJpdi1cdTAwM2V0eF9tYi1cdTAwM2VjYW5fY3RybCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTMzOlx0XHRmbGV4Y2FuX3dyaXRlNjQocHJpdiwgcHJpdi1cdTAwM2V0eF9tYXNrLCBcdTAwMjZyZWdzLVx1MDAzZWlmbGFnMSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTM0LVx0XHRuZXRpZl93YWtlX3F1ZXVlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE0OC1cdFx0XHRcdFx0ICAgRkxFWENBTl9RVUlSS19CUk9LRU5fUEVSUl9TVEFURSkpKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE0OTpcdFx0ZmxleGNhbl9pcnFfc3RhdGUoZGV2LCByZWdfZXNyKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNTAtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1My1cdCAgICAocHJpdi1cdTAwM2VjYW4uY3RybG1vZGUgXHUwMDI2IENBTl9DVFJMTU9ERV9CRVJSX1JFUE9SVElORykpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTU0Olx0XHRmbGV4Y2FuX2lycV9idXNfZXJyKGRldiwgcmVnX2Vzcik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTU1LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzQtXHRcdFx0ICAgIEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTc1Olx0XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE3Ni1cdFx0XHRlbHNlXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTc3Olx0XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZGlzYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzgtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4MC1cdFx0Y2FzZSBDQU5fU1RBVEVfRVJST1JfV0FSTklORzpcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjExODE6XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Mi1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTg1LVx0XHRjYXNlIENBTl9TVEFURV9CVVNfT0ZGOlxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE4NjpcdFx0XHRmbGV4Y2FuX2Vycm9yX2lycV9kaXNhYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Ny1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTk5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwMDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwMS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjAyOlx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMjAzLVx0Y29uc3Qgc3RydWN0IGNhbl9iaXR0aW1pbmcgKmJ0ID0gXHUwMDI2cHJpdi1cdTAwM2VjYW4uYml0dGltaW5nO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwNDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMDUtXHR1MzIgcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMjctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjI4OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMjkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIzMDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzMS1cdHN0cnVjdCBjYW5fYml0dGltaW5nICpidCA9IFx1MDAyNnByaXYtXHUwMDNlY2FuLmJpdHRpbWluZztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMzItXHRzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqZGJ0ID0gXHUwMDI2cHJpdi1cdTAwM2VjYW4uZmQuZGF0YV9iaXR0aW1pbmc7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMzOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzNC1cdHUzMiByZWdfY2J0LCByZWdfZmRjdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzMzMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM0OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTMzNS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM2Olx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTMzOC1cdHUzMiByZWc7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM1NC1cdGlmIChwcml2LVx1MDAzZWNhbi5jdHJsbW9kZV9zdXBwb3J0ZWQgXHUwMDI2IENBTl9DVFJMTU9ERV9GRClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzNTU6XHRcdHJldHVybiBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY2J0KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU2LVx0ZWxzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM1NzpcdFx0cmV0dXJuIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jdHJsKGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU4LX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzYwOnN0YXRpYyB2b2lkIGZsZXhjYW5fcmFtX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNjEte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MjpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MzpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNjQtXHR1MzIgcmVnX2N0cmwyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzODYtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzg3OnN0YXRpYyBpbnQgZmxleGNhbl9yeF9vZmZsb2FkX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzg4LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzODk6XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTAtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTItXHRpZiAocHJpdi1cdTAwM2VjYW4uY3RybG1vZGUgXHUwMDI2IENBTl9DVFJMTU9ERV9GRClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzOTM6XHRcdHByaXYtXHUwMDNlbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmxleGNhbl9tYikgJiM0MzsgQ0FORkRfTUFYX0RMRU47XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzk0LVx0ZWxzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM5NTpcdFx0cHJpdi1cdTAwM2VtYl9zaXplID0gc2l6ZW9mKHN0cnVjdCBmbGV4Y2FuX21iKSAmIzQzOyBDQU5fTUFYX0RMRU47XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzk2LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDQtXHRcdHByaXYtXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQwNTpcdFx0XHRmbGV4Y2FuX2dldF9tYihwcml2LCBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX01BSUxCT1gpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwNi1cdGVsc2VcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDctXHRcdHByaXYtXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQwODpcdFx0XHRmbGV4Y2FuX2dldF9tYihwcml2LCBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX0ZJRk8pO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwOS1cdHByaXYtXHUwMDNldHhfbWJfaWR4ID0gcHJpdi1cdTAwM2VtYl9jb3VudCAtIDE7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDEwOlx0cHJpdi1cdTAwM2V0eF9tYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIHByaXYtXHUwMDNldHhfbWJfaWR4KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTEtXHRwcml2LVx1MDAzZXR4X21hc2sgPSBGTEVYQ0FOX0lGTEFHX01CKHByaXYtXHUwMDNldHhfbWJfaWR4KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDEzOlx0cHJpdi1cdTAwM2VvZmZsb2FkLm1haWxib3hfcmVhZCA9IGZsZXhjYW5fbWFpbGJveF9yZWFkO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQxNC1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDMxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzMjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2NoaXBfaW50ZXJydXB0c19lbmFibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MzMte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNDpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MzYtXHR1NjQgcmVnX2ltYXNrO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NDUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ2OnN0YXRpYyB2b2lkIGZsZXhjYW5fY2hpcF9pbnRlcnJ1cHRzX2Rpc2FibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NDcte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ0ODpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ0OTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NTAtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ1Ni1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NTc6LyogZmxleGNhbl9jaGlwX3N0YXJ0XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDU4LSAqXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ2MS0gKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NjI6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjMte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjYtXHR1MzIgcmVnX21jciwgcmVnX2N0cmwsIHJlZ19jdHJsMiwgcmVnX21lY3I7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDY3LVx0aW50IGVyciwgaTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0Njg6XHRzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICptYjtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDcwLVx0LyogZW5hYmxlIG1vZHVsZSAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3MTpcdGVyciA9IGZsZXhjYW5fY2hpcF9lbmFibGUocHJpdik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDcyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc1LVx0Lyogc29mdCByZXNldCAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3NjpcdGVyciA9IGZsZXhjYW5fY2hpcF9zb2Z0cmVzZXQocHJpdik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgwLVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TVVBQT1JUX0VDQylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODE6XHRcdGZsZXhjYW5fcmFtX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0ODItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDgzOlx0ZmxleGNhbl9zZXRfYml0dGltaW5nKGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDg0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4NS1cdC8qIHNldCBmcmVlemUsIGhhbHQgKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODY6XHRlcnIgPSBmbGV4Y2FuX2NoaXBfZnJlZXplKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4Ny1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTUxOC1cdCAqICAgICAgIG9mIGEgdHJhbnNtaXR0ZWQgbWVzc2FnZS4gVGhpcyBpcyBub3QgZG9jdW1lbnRlZCBpblxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTUxOTpcdCAqICAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgZmxleGNhbiBibG9jayBndWlkZS5cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE1MjAtXHQgKlxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2MDYtXHRcdGZvciAoaSA9IHByaXYtXHUwMDNlb2ZmbG9hZC5tYl9maXJzdDsgaSBcdTAwM2M9IHByaXYtXHUwMDNlb2ZmbG9hZC5tYl9sYXN0OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTYwNzpcdFx0XHRtYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIGkpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYwOC1cdFx0XHRwcml2LVx1MDAzZXdyaXRlKEZMRVhDQU5fTUJfQ09ERV9SWF9FTVBUWSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjEzLVx0XHRmb3IgKGkgPSBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX0ZJRk87IGkgXHUwMDNjIHByaXYtXHUwMDNlbWJfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjE0Olx0XHRcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjE1LVx0XHRcdHByaXYtXHUwMDNld3JpdGUoRkxFWENBTl9NQl9DT0RFX1JYX0lOQUNUSVZFLFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2NzktXHQvKiBzeW5jaHJvbml6ZSB3aXRoIHRoZSBjYW4gYnVzICovXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjgwOlx0ZXJyID0gZmxleGNhbl9jaGlwX3VuZnJlZXplKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY4MS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5Mi0gb3V0X2NoaXBfZGlzYWJsZTpcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE2OTM6XHRmbGV4Y2FuX2NoaXBfZGlzYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTQtXHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTYtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjk3Oi8qIF9fZmxleGNhbl9jaGlwX3N0b3BcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTgtICpcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNzAwLSAqL1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTk2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZsZXhDQU4gRHJpdmVyIFByb2JlIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBwcm9iZSB0aGUgZmxleGNhbiBkcml2ZXIgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9uIGFtZDY0LiBBIHF1aWNrIHRob3VnaHQ6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBGbGV4Q0FOPyBJIG5lZWQgdG8gY2hlY2suCgpBbHJpZ2h0LCBhIHF1aWNrIFFFTVUgcmVmZXJlbmNlIHJldmVhbHMgaXQgZG9lc24mIzM5O3QuIEl0IG9mZmVycyBrdmFzZXJfcGNpLCBtaW9lMzY4MF9wY2ksIHBjbTM2ODBfcGNpIOKAkyBhbGwgU0pBMTAwMCBQQ0kgQ0FOIGNvbnRyb2xsZXJzIOKAkyBhbmQgY2FuX2hvc3Rfc29ja2V0Y2FuLCBidXQgbm8gRmxleENBTi4gSG1tLi4uIHdhaXQsIGlzIHRoZXJlIHNvbWUgeDg2IHNwZWNpZmljIG1hZ2ljIGluIFFFTVUgdGhhdCB3b3VsZCBsZXQgbWUgZW11bGF0ZSBhIGZsZXhjYW4/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodC4gRmxleENBTiBpcyBhbiBOWFAvRnJlZXNjYWxlIFNvQyBwZXJpcGhlcmFsLCBpbnRlbmRlZCBmb3IgaW14MjUvaW14Ni9pbXg4L3MzMmcvZXRjLiB0eXBlIHN5c3RlbXMuCgpTbywgaWYgSSBjYW4mIzM5O3QgZW11bGF0ZSBGbGV4Q0FOLCBjYW4gSSBhdCBsZWFzdCBpbnN0YW50aWF0ZSBpdCBkeW5hbWljYWxseSwgc29tZWhvdz8gTGV0JiMzOTtzIGRlbHZlIGludG8gYGZsZXhjYW5fcHJvYmVgLiBXaGF0IGFyZSBpdHMgcmVxdWlyZW1lbnRzPyBJIG5lZWQgdG8gc2VlIHdoYXQgSSBoYXZlIHRvIHNhdGlzZnkgaW4gb3JkZXIgdG8gZXZlbiB0cmlnZ2VyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjA5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMDkwOlx0XG4yMDkxOlx0c3RhdGljIGludCBmbGV4Y2FuX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4yMDkyOlx0e1xuMjA5MzpcdFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhICpkZXZ0eXBlX2RhdGE7XG4yMDk0Olx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2O1xuMjA5NTpcdFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdjtcbjIwOTY6XHRcdHN0cnVjdCByZWd1bGF0b3IgKnJlZ194Y2VpdmVyO1xuMjA5NzpcdFx0c3RydWN0IHBoeSAqdHJhbnNjZWl2ZXI7XG4yMDk4Olx0XHRzdHJ1Y3QgY2xrICpjbGtfaXBnID0gTlVMTCwgKmNsa19wZXIgPSBOVUxMO1xuMjA5OTpcdFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzO1xuMjEwMDpcdFx0c3RydWN0IGZsZXhjYW5fcGxhdGZvcm1fZGF0YSAqcGRhdGE7XG4yMTAxOlx0XHRpbnQgZXJyLCBpcnE7XG4yMTAyOlx0XHR1OCBjbGtfc3JjID0gMTtcbjIxMDM6XHRcdHUzMiBjbG9ja19mcmVxID0gMDtcbjIxMDQ6XHRcbjIxMDU6XHRcdHJlZ194Y2VpdmVyID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDt4Y2VpdmVyXCYjMzQ7KTtcbjIxMDY6XHRcdGlmIChQVFJfRVJSKHJlZ194Y2VpdmVyKSA9PSAtRVBST0JFX0RFRkVSKVxuMjEwNzpcdFx0XHRyZXR1cm4gLUVQUk9CRV9ERUZFUjtcbjIxMDg6XHRcdGVsc2UgaWYgKFBUUl9FUlIocmVnX3hjZWl2ZXIpID09IC1FTk9ERVYpXG4yMTA5Olx0XHRcdHJlZ194Y2VpdmVyID0gTlVMTDtcbjIxMTA6XHRcdGVsc2UgaWYgKElTX0VSUihyZWdfeGNlaXZlcikpXG4yMTExOlx0XHRcdHJldHVybiBQVFJfRVJSKHJlZ194Y2VpdmVyKTtcbjIxMTI6XHRcbjIxMTM6XHRcdHRyYW5zY2VpdmVyID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBOVUxMKTtcbjIxMTQ6XHRcdGlmIChJU19FUlIodHJhbnNjZWl2ZXIpKVxuMjExNTpcdFx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgUFRSX0VSUih0cmFuc2NlaXZlciksXG4yMTE2Olx0XHRcdFx0XHQgICAgIFwmIzM0O2ZhaWxlZCB0byBnZXQgcGh5XFxuXCYjMzQ7KTtcbjIxMTc6XHRcbjIxMTg6XHRcdGlmIChwZGV2LVx1MDAzZWRldi5vZl9ub2RlKSB7XG4yMTE5Olx0XHRcdG9mX3Byb3BlcnR5X3JlYWRfdTMyKHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUsXG4yMTIwOlx0XHRcdFx0XHQgICAgIFwmIzM0O2Nsb2NrLWZyZXF1ZW5jeVwmIzM0OywgXHUwMDI2Y2xvY2tfZnJlcSk7XG4yMTIxOlx0XHRcdG9mX3Byb3BlcnR5X3JlYWRfdTgocGRldi1cdTAwM2VkZXYub2Zfbm9kZSxcbjIxMjI6XHRcdFx0XHRcdCAgICBcJiMzNDtmc2wsY2xrLXNvdXJjZVwmIzM0OywgXHUwMDI2Y2xrX3NyYyk7XG4yMTIzOlx0XHR9IGVsc2Uge1xuMjEyNDpcdFx0XHRwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuMjEyNTpcdFx0XHRpZiAocGRhdGEpIHtcbjIxMjY6XHRcdFx0XHRjbG9ja19mcmVxID0gcGRhdGEtXHUwMDNlY2xvY2tfZnJlcXVlbmN5O1xuMjEyNzpcdFx0XHRcdGNsa19zcmMgPSBwZGF0YS1cdTAwM2VjbGtfc3JjO1xuMjEyODpcdFx0XHR9XG4yMTI5Olx0XHR9XG4yMTMwOlx0XG4yMTMxOlx0XHRpZiAoIWNsb2NrX2ZyZXEpIHtcbjIxMzI6XHRcdFx0Y2xrX2lwZyA9IGRldm1fY2xrX2dldChcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7aXBnXCYjMzQ7KTtcbjIxMzM6XHRcdFx0aWYgKElTX0VSUihjbGtfaXBnKSkge1xuMjEzNDpcdFx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O25vIGlwZyBjbG9jayBkZWZpbmVkXFxuXCYjMzQ7KTtcbjIxMzU6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihjbGtfaXBnKTtcbjIxMzY6XHRcdFx0fVxuMjEzNzpcdFxuMjEzODpcdFx0XHRjbGtfcGVyID0gZGV2bV9jbGtfZ2V0KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtwZXJcJiMzNDspO1xuMjEzOTpcdFx0XHRpZiAoSVNfRVJSKGNsa19wZXIpKSB7XG4yMTQwOlx0XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7bm8gcGVyIGNsb2NrIGRlZmluZWRcXG5cJiMzNDspO1xuMjE0MTpcdFx0XHRcdHJldHVybiBQVFJfRVJSKGNsa19wZXIpO1xuMjE0MjpcdFx0XHR9XG4yMTQzOlx0XHRcdGNsb2NrX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrX3Blcik7XG4yMTQ0Olx0XHR9XG4yMTQ1Olx0XG4yMTQ2Olx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuMjE0NzpcdFx0aWYgKGlycSBcdTAwM2MgMClcbjIxNDg6XHRcdFx0cmV0dXJuIGlycTtcbjIxNDk6XHRcbjIxNTA6XHRcdHJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG4yMTUxOlx0XHRpZiAoSVNfRVJSKHJlZ3MpKVxuMjE1MjpcdFx0XHRyZXR1cm4gUFRSX0VSUihyZWdzKTtcbjIxNTM6XHRcbjIxNTQ6XHRcdGRldnR5cGVfZGF0YSA9IGRldmljZV9nZXRfbWF0Y2hfZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG4yMTU1Olx0XG4yMTU2Olx0XHRpZiAoKGRldnR5cGVfZGF0YS1cdTAwM2VxdWlya3MgXHUwMDI2IEZMRVhDQU5fUVVJUktfU1VQUE9SVF9GRCkgXHUwMDI2XHUwMDI2XG4yMTU3Olx0XHQgICAgISgoZGV2dHlwZV9kYXRhLVx1MDAzZXF1aXJrcyBcdTAwMjZcbjIxNTg6XHRcdCAgICAgICAoRkxFWENBTl9RVUlSS19VU0VfUlhfTUFJTEJPWCB8XG4yMTU5Olx0XHRcdEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9NQUlMQk9YIHxcbjIxNjA6XHRcdFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSIHxcbjIxNjE6XHRcdFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX0ZJRk8pKSA9PVxuMjE2MjpcdFx0ICAgICAgKEZMRVhDQU5fUVVJUktfVVNFX1JYX01BSUxCT1ggfFxuMjE2MzpcdFx0ICAgICAgIEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9NQUlMQk9YIHxcbjIxNjQ6XHRcdCAgICAgICBGTEVYQ0FOX1FVSVJLX1NVUFBPUlRfUlhfTUFJTEJPWF9SVFIpKSkge1xuMjE2NTpcdFx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtDQU4tRkQgbW9kZSBkb2VzbiYjMzk7dCB3b3JrIGluIFJYLUZJRk8gbW9kZSFcXG5cJiMzNDspO1xuMjE2NjpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjIxNjc6XHRcdH1cbjIxNjg6XHRcbjIxNjk6XHRcdGlmICgoZGV2dHlwZV9kYXRhLVx1MDAzZXF1aXJrcyBcdTAwMjZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY4NjAKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA0MzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRmxleENBTiBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBUZXN0aW5nIENhcGFiaWxpdGllcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBmbGV4Y2FuYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBmbGFnZ2VkIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0IG5lZWRzIHNwZWNpZmljIHBsYXRmb3JtLWxldmVsIHJlc291cmNlcy4gSSBzZWUgaXQmIzM5O3MgdXNpbmcgYGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZWAsIGBwbGF0Zm9ybV9nZXRfaXJxYCwgYW5kIGBkZXZpY2VfZ2V0X21hdGNoX2RhdGFgLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGV4cGVjdGluZyBhIERldmljZSBUcmVlIChgb2Zfbm9kZWApIG9yIHBsYXRmb3JtIGRhdGEsIGFsb25nIHdpdGggYW4gSS9PIG1lbW9yeSByZXNvdXJjZSBhbmQgYW4gaW50ZXJydXB0LgoKVGhlIHByb2JsZW0gaGl0cyBtZSBoYXJkIHdoZW4gSSBjb25zaWRlciBhbiB4ODYvYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhlc2UgZG9uJiMzOTt0IHR5cGljYWxseSBoYXZlIHRoZSBEZXZpY2UgVHJlZSBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBzdGFuZGFyZCBmb3IgdGhvc2UgRnJlZXNjYWxlIGkuTVggb3IgUW9ySVEgc3lzdGVtcy4gVGhhdCBpbW1lZGlhdGVseSBpbnRyb2R1Y2VzIGEgaHVnZSBodXJkbGUuCgpXYWl0LCBjb3VsZCBzeXprYWxsZXIgc29tZWhvdyBpbnN0YW50aWF0ZSB0aGlzIHRocm91Z2ggc3lzZnMgb3IgY29uZmlnZnM/IE5vLCB0aGF0JiMzOTtzIG5vdCBmZWFzaWJsZS4gU3RhbmRhcmQgcGxhdGZvcm0gZGV2aWNlcyBjYW4mIzM5O3QgYmUgcHJvYmVkIGZyb20gdXNlcnNwYWNlIHdpdGhvdXQgZGV2aWNlIHRyZWUgb3ZlcmxheXMsIHdoaWNoIHJlcXVpcmUgYENPTkZJR19PRl9DT05GSUdGU2AgYW5kIHNvIG9uLiBFdmVuIGlmIHRob3NlIHdlcmUgcHJlc2VudCwgdGhlIGNydWNpYWwgaXNzdWUgaXMgdGhlIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXJzIGF0IFNvQyBwaHlzaWNhbCBhZGRyZXNzZXMgd29uJiMzOTt0IGV4aXN0IGluIHg4NiBRRU1VL0dDRS4gVGhlIHByb2JlIHdvdWxkIGVpdGhlciBmYWlsIG9yLCB3b3JzZSwgY3Jhc2ggYmVjYXVzZSBvZiBhdHRlbXB0ZWQgcGh5c2ljYWwgbWVtb3J5IGFjY2Vzcy4KCk9rYXksIHNvIHN5emthbGxlciBjYW4mIzM5O3QgZGlyZWN0bHkgcHJvYmUgcGxhdGZvcm0gZGV2aWNlcyBvciBDQU4gZGV2aWNlcyBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UsIGF0IGxlYXN0IG5vdCB0aGlzIG9uZS4gSG93IHRoZW4gZG9lcyBzeXprYWxsZXIgdGVzdCBDQU4gZGV2aWNlcz8gSXQgbXVzdCBoYXZlIGEgd29ya2Fyb3VuZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcy4KClJpZ2h0LCBJJiMzOTttIHRoaW5raW5nLCBJJiMzOTt2ZSBnb3QgaXQuIFN5emthbGxlciBsZXZlcmFnZXMgdGhlc2UgdmFyaW91cyB2aXJ0dWFsIGFuZCBlbXVsYXRlZCBpbnRlcmZhY2VzLCBmb3IgdGVzdGluZyBDQU46IGB2Y2FuYCwgYHNsY2FuYCwgYHZ4Y2FuYCwgZHVtbXkvbmV0bGluayBpbnRlcmZhY2VzLCBVU0IgQ0FOIGFkYXB0ZXJzIHRocm91Z2ggc3l6a2FsbGVyJiMzOTtzIFVTQiBlbXVsYXRpb24gKHVzaW5nIGBzeXpfdXNiX2Nvbm5lY3RgKSwgYW5kLCBtdWNoIGxlc3MgZnJlcXVlbnRseSwgUENJIENBTiBhZGFwdGVycyBpZiBRRU1VIGVtdWxhdGVzIHRoZW0uCgpCdXQgKndhaXQqLCBnb2luZyBiYWNrIHRvIEZsZXhDQU4sIGRvZXMgKml0KiBoYXZlICphbnkqIG9mIHRob3NlIFVTQiBvciB2aXJ0dWFsIGZyb250LWVuZHMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZT8gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSBhbmQgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgdGhhdCBjb3VsZCBiZSByZWxldmFudC4gVGltZSB0byB3aWRlbiB0aGUgc2VhcmNoIGJleW9uZCBqdXN0IHRoZSBgZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW5gIGRpcmVjdG9yeS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgc2NvcGUgb2YgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIHRlc3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2luY2x1ZGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE3LVxuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oOjE4OnN0cnVjdCBmbGV4Y2FuX3BsYXRmb3JtX2RhdGEge1xuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE5LVx0dTMyIGNsb2NrX2ZyZXF1ZW5jeTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5MjEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgQ0FOIEJ1cyBJbXBsZW1lbnRhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBmbGV4Y2FuYCBkcml2ZXIgaXMgYmVpbmcgdXNlZCBhbmQgaW50ZWdyYXRlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSYjMzk7bGwgc3RhcnQgYnkgc2VhcmNoaW5nIGZvciBhbGwgaW5zdGFuY2VzIG9mICYjMzQ7ZmxleGNhbiYjMzQ7IHdpdGhpbiB0aGUgYGFyY2gvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB3aGVuIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBsb3ctbGV2ZWwgaGFyZHdhcmUgaW50ZXJhY3Rpb25zIGxpa2UgdGhpcy4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCByZWZlcmVuY2VzIGluIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcG9zc2libHkgc29tZSBjb3JlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLiBUaGUgZ29hbCBpcyB0byBzZWUgaG93IGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFyZSBpbnRlcmZhY2luZyB3aXRoIHRoZSBgZmxleGNhbmAgY29udHJvbGxlciBhbmQgd2hhdCBhYnN0cmFjdGlvbnMsIGlmIGFueSwgYXJlIGluIHBsYXkuIEkgYW0gbG9va2luZyBmb3IgdGhlIHVzYWdlIGFuZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjU5MSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpPTEyMj1cdFx0XHRjYW4xOiBjYW5ANDNmODgwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEyMzpcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14MjUtZmxleGNhblwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MjUuZHRzaS0xMjQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDQzZjg4MDAwIDB4NDAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTMxPVx0XHRcdGNhbjI6IGNhbkA0M2Y4YzAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k6MTMyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpLTEzMy1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NDNmOGMwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaT0zMDQ9XHRcdFx0Y2FuMTogY2FuQDUzZmU0MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaTozMDU6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDM1LWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpLTMwNi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmZTQwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaT0zMTM9XHRcdFx0Y2FuMjogY2FuQDUzZmU4MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaTozMTQ6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDM1LWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpLTMxNS1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmZTgwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaT01NzE9XHRcdFx0Y2FuMTogY2FuQDUzZmM4MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaTo1NzI6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpLTU3My1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmYzgwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaT01ODE9XHRcdFx0Y2FuMjogY2FuQDUzZmNjMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaTo1ODI6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpLTU4My1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmY2MwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTU2PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNTctXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjU4Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTU5LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cz02Mj1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTYzLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czo2NDpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy02NS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM9MTg2PVx0XHRcdE1YNlFETF9QQURfU0QxX0NNRF9fR1BJTzFfSU8xOFx0XHQweDAwMDAwMDE4XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtMTg5LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM6MTkwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtMTkxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTE5Mz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgwMDAxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5Ni1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjE5NzpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5OC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k9MTU5PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2MC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpOjE2MTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMTYyLX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpPTE2ND1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjUtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToxNjY6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2Ny19O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNTM9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEsgMHg0MDAxYjBhOFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0yNTYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k6MjU3Olx0cGluY3RybF9mbGV4Y2FuMTogY2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjU4LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNjA9XHRcdFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYICAgICAgICAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI2My1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNjQ6XHRwaW5jdHJsX2ZsZXhjYW4yOiBjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0yNjUtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzPTE2Mz1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy0xNjQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czoxNjU6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTE2Ni1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzPTM5NT1cdFx0XHRNWDZRRExfUEFEX1JHTUlJX1JYX0NUTF9fUkdNSUlfUlhfQ1RMXHQweDEzMDMwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTM5OC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czozOTk6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHMtNDAwLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtdmFyLW14NmN1c3RvbWJvYXJkLmR0cz0xMTk9XHRcdFx0TVg2UURMX1BBRF9DU0kwX1ZTWU5DX19JUFUxX0NTSTBfVlNZTkNcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtdmFyLW14NmN1c3RvbWJvYXJkLmR0cy0xMjItXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM6MTIzOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS12YXItbXg2Y3VzdG9tYm9hcmQuZHRzLTEyNC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjI5PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzMC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7LCBcJiMzNDtzbGVlcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzE6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k6MjMyOlx0cGluY3RybC0xID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMV9zbGVlcFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yMzMtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjM2PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzNy1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7LCBcJiMzNDtzbGVlcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzg6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k6MjM5Olx0cGluY3RybC0xID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMl9zbGVlcFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yNDAtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9OTk2PVx0XHRcdE1YNlFETF9QQURfRU5FVF9UWEQwX19HUElPMV9JTzMwXHQweDAwMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTk5OS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDAwOlx0cGluY3RybF9mbGV4Y2FuMV9kZWZhdWx0OiBmbGV4Y2FuMWRlZmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAwMz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDA2LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMDc6XHRwaW5jdHJsX2ZsZXhjYW4xX3NsZWVwOiBmbGV4Y2FuMXNscGdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwOC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxMD1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fR1BJTzFfSU8wOCAweDBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxMy1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDE0Olx0cGluY3RybF9mbGV4Y2FuMl9kZWZhdWx0OiBmbGV4Y2FuMmRlZmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxNS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxNz1cdFx0XHRNWDZRRExfUEFEX0tFWV9ST1c0X19GTEVYQ0FOMl9SWCAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTktXHR9O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMjA6XHRwaW5jdHJsX2ZsZXhjYW4yX3NsZWVwOiBmbGV4Y2FuMnNscGdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAyMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpPTE0Mz1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2ktMTQ0LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpOjE0NTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTE0Ni1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnXzV2XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k9MzAxPVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0dQSU80X0lPMTAgIDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTMwNC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k6MzA1Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0zMDYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpPTU3PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTU4LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k6NTk6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTYwLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NjM9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktNjQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo2NTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktNjYtXHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaT0yMzc9XHRcdFx0TVg2UURMX1BBRF9FTkVUX0NSU19EVl9fRU5FVF9SWF9FTiAgMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDAtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k6MjQxOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Mi1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9MjQ0PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Ny1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaToyNDg6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktMjQ5LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9MTAwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDEtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6MTAyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTAzLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTEwNj1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTA3LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjEwODpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTEwOS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaT00NzM9XHRcdFx0TVg2UURMX1BBRF9SR01JSV9SWF9DVExfX1JHTUlJX1JYX0NUTCAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS00NzYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjQ3NzpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDc4LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9NDgwPVx0XHRcdE1YNlFETF9QQURfU0QzX0NNRF9fRkxFWENBTjFfVFggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDgzLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaTo0ODQ6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ4NS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpPTE3MT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktMTcyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjE3MzpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3NC1cdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTc4PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xNzktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTgwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktMTgxLVx0c3RhdHVzID0gXCYjMzQ7ZGlzYWJsZWRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaT04Mjk9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEtcdCgoMVx1MDAzY1x1MDAzYzMwKSB8IDB4MWIwYjApXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzItXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjgzMzpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODM0LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9ODM2PVx0XHRcdE1YNlFETF9QQURfR1BJT184X19GTEVYQ0FOMV9SWFx0XHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjg0MDpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODQxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT04MT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo4MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktODMtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9OTQ9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6OTU6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTk2LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpPTYwOD1cdFx0XHRNWDZRRExfUEFEX0tFWV9ST1c0X19HUElPNF9JTzE1XHRcdDB4YjEgLyogSW50ICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTI6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMS1ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9NjE1PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxOC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTk6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMi1ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYyMC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2k9MTgwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTE4MS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpOjE4MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktMTgzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMV9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaT02MTg9XHRcdFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcdDB4MWIwYjAgLyogUEhZIFJlc2V0ICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTYyMS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaTo2MjI6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktNjIzLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaT0xODA9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktMTgxLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2k6MTgyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS0xODMtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW4xX3N0YnlcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpPTYwNj1cdFx0XHRNWDZRRExfUEFEX0dQSU9fMTZfX0VORVRfUkVGX0NMS1x0MHg0MDAxYjBhOFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS02MDktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2k6NjEwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpLTYxMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2k9MjAwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpLTIwMS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjIwMjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktMjAzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMV9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaT02ODE9XHRcdFx0TVg2UURMX1BBRF9FSU1fUldfX0dQSU8yX0lPMjZcdDB4MTAwYjFcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktNjg0LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjY4NTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS02ODYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpPTE1Mj1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS0xNTMtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaToxNTQ6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTE1NS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpPTUxND1cdFx0XHRNWDZRRExfUEFEX0RJU1AwX0RBVDEzX19BVUQ1X1JYRlNcdDB4MTMwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2ktNTE3LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpOjUxODpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS01MTktXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpPTIxOD1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaS0yMTktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaToyMjA6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW5cdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktMjIxLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2k9NjkyPVx0XHRcdE1YNlFETF9QQURfRU5FVF9UWEQwX19HUElPMV9JTzMwXHQweDQwMDFiMGIwIC8qIFBIWV9SU1QjICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpLTY5NS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaTo2OTY6XHRwaW5jdHJsX2ZsZXhjYW46IGZsZXhjYW5ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpLTY5Ny1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2k9MTI0PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTEyNS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpOjEyNjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktMTI3LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2k9NDMxPVx0XHRcdE1YNlFETF9QQURfRUlNX1JXX19HUElPMl9JTzI2XHQweDEwMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTQzNC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaTo0MzU6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktNDM2LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1odW1taW5nYm9hcmQuZHRzaT0xODE9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTgyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k6MTgzOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9odW1taW5nYm9hcmRfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTg0LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k9MjI1PVx1MDAyNmlvbXV4YyB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k6MjI2Olx0cGluY3RybF9odW1taW5nYm9hcmRfZmxleGNhbjE6IGh1bW1pbmdib2FyZC1mbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMjI3LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpPTEzMz1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTEzNC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k6MTM1Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTEzNi1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnXzNwM3ZcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MTM5PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQwLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaToxNDE6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQyLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfM3Azdlx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaT0zMTY9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE3X19HUElPN19JTzEyXHRcdDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMTktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjA6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjEtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MzIzPVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYIDB4MWIwMjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjc6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjgtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9MjM1PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM2LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaToyMzc6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM4LX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9MjQxPVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjQyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaToyNDM6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjQ0LX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9NDc2PVx0XHRcdE1YNlFETF9QQURfRUlNX0QyNV9fR1BJTzNfSU8yNSAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktNDc5LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6NDgwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktNDgxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpPTQ4Mz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4Ni1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpOjQ4NzpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4OC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaT01Mz1cdHJlZ19lbl9zd2l0Y2g6IHJlZ3VsYXRvci1lbi1zd2l0Y2gge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY0LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6NjU6XHRyZWdfZmxleGNhbjE6IHJlZ3VsYXRvci1mbGV4Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS02Ni1cdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3JlZ3VsYXRvci1maXhlZFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY3LVx0XHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjY4Olx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2VuXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6Njk6XHRcdHJlZ3VsYXRvci1uYW1lID0gXCYjMzQ7ZmxleGNhbjEtcmVnXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktNzAtXHRcdHJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gXHUwMDNjMTUwMDAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaT0xMzM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS0xMzQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjEzNTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaToxMzY6XHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTEzNy1cdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTI3Nz1cdFx0XHRNWDZRRExfUEFEX0VJTV9EQTRfX0dQSU8zX0lPMDRcdFx0MHhiMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgwLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MjgxOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgyLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTI4ND1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTI4Ny1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjI4ODpcdHBpbmN0cmxfZmxleGNhbjFfZW46IGZsZXhjYW4xZW5ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjg5LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k9NjA9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTYxLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpOjYyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktNjMtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpPTI1Nz1cdFx0XHRNWDZRRExfUEFEX0VJTV9EMjNfX0dQSU8zX0lPMjNcdFx0MHg4MDAwMDAwMCAvKiBSZXNldCBHUElPICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaS0yNjAtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpOjI2MTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktMjYyLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9MTQ4PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS0xNDktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6MTUwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTUxLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpPTE1ND1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTU1LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpOjE1NjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE1Ny1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT00MzU9XHRcdFx0TVg2UURMX1BBRF9FTkVUX1JYRDFfX0dQSU8xX0lPMjZcdDB4MWYwYjFcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQzOC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDM5Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDAtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT00NDI9XHRcdFx0TVg2UURMX1BBRF9LRVlfUk9XMl9fRkxFWENBTjFfUlhcdDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQ0NS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDQ2Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDctXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxMT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS0zMTItXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMTM6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxNC1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnX2Nhbl9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaT0zMTg9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzE5LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6MzIwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS0zMjEtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW5fc3RieVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k9NTM1PVx0XHRcdE1YNlFETF9QQURfR1BJT185X19FU0FJX1JYX0ZTICAgICAgIDB4MWIwMzBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTM4LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpOjUzOTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDAtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTU0Mj1cdFx0XHRNWDZRRExfUEFEX0tFWV9DT0wyX19GTEVYQ0FOMV9UWFx0MHgxNzA1OVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6NTQ2Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTU0Ny1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9ODU9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODYtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaTo4NzpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODgtXHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaT05MT1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS05Mi1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpOjkzOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS05NC1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTIwMj1cdFx0XHRNWDZRRExfUEFEX0RJMF9QSU40X19HUElPNF9JTzIwXHRcdDB4MWIwYjEgLyogRVRIX1BIWV9SRVNFVCAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS0yMDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6MjA2Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIwNy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9MjA5PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIxMi1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaToyMTM6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjE0LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaT0xNTM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTU0LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MTU1Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0xNTYtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW4xXzN2M1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MTYwPVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE2MS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpOjE2MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTYzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMl8zdjNcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTMwMj1cdFx0XHRNWDZRRExfUEFEX0dQSU9fNl9fRU5FVF9JUlFcdFx0MHgwMDBiMVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MzA2Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMwNy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MzEwPVx0XHRcdE1YNlFETF9QQURfRElTUDBfREFUMF9fR1BJTzRfSU8yMVx0MHgxYjA4OCAvKiBFTl9DQU5fMSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMTMtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MzE0Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMxNS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9OTQ9XHRyZWdfY2FuX3hjdnI6IHJlZ3VsYXRvci1jYW4teGN2ciB7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTk5LVx0XHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaToxMDA6XHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbl94Y3ZyXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTEwMS1cdFx0Z3BpbyA9IFx1MDAzY1x1MDAyNmdwaW80IDIxIEdQSU9fQUNUSVZFX0xPV1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9MjAzPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIwNC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpOjIwNTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktMjA2LVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuX3hjdnJcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTIxMD1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMTEtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaToyMTI6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIxMy1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnX2Nhbl94Y3ZyXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT00NTc9XHRcdFx0TVg2UURMX1BBRF9TRDNfREFUMl9fR1BJTzdfSU8wNlx0XHQweDFiMGIxIC8qIEVUTiBQSFkgUkVTRVQgKi9cbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDYwLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpOjQ2MTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjItXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTQ2ND1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjctXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDY4Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ2OS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9NDcxPVx0XHRcdE1YNlFETF9QQURfS0VZX1JPVzRfX0ZMRVhDQU4yX1JYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ3NC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaTo0NzU6XHRwaW5jdHJsX2ZsZXhjYW5feGN2cjogZmxleGNhbi14Y3ZyZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NzYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXZhci1kYXJ0LmR0c2k9NjM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdmFyLWRhcnQuZHRzaS02NC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0ODE5CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBmbGV4Y2FuIERUUyBGaWxlcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgZXZlcnkgc2luZ2xlIERldmljZSBUcmVlIFNvdXJjZSAoRFRTKSBmaWxlIEkmIzM5O20gc2VlaW5nIHRoYXQgbWVudGlvbnMgJiMzNDtmbGV4Y2FuJiMzNDsgc2VlbXMgZXhjbHVzaXZlbHkgcmVsYXRlZCB0byBBUk0sIEFSTTY0LCBQb3dlclBDLCBvciBtNjhrIFN5c3RlbS1vbi1DaGlwcyAoU29DcykuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIHVzdWFsIHN1c3BlY3RzIGhlcmUsIHRoZSBpLk1YIHNlcmllcywgdGhlIExTMTAyMUEsIHRoZSBMWDIxNjAsIHRoZSBWRjYxMCwgdGhlIFMzMkcg4oCTIHRoYXQgd2hvbGUgZWNvc3lzdGVtLgoKTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbi4gSXMgdGhlcmUgKmFueSogYXJjaGl0ZWN0dXJlIGxpa2UgeDg2IHRoYXQmIzM5O3MgbGV2ZXJhZ2luZyBmbGV4Y2FuPyBJIG5lZWQgdG8gdmVyaWZ5IHRoaXMgYXNzdW1wdGlvbi4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgYW5kIHBlcmZvcm0gYSBwcm9wZXIgY3Jvc3MtcmVmZXJlbmNlIHRvIGNvbmZpcm0gdGhlcmUgYXJlIG5vIHg4Ni1iYXNlZCBzeXN0ZW1zIHVzaW5nIGZsZXhjYW4uIFRpbWUgdG8gZG91YmxlLWNoZWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MTE1CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENBTi1GbGV4IENvbnRyb2xsZXIgSW50ZXJhY3Rpb24gUG9pbnRzKioKCk9rYXksIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGUgQ0FOLUZsZXggY29udHJvbGxlciBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzeXN0ZW0gYXQgYSBsb3cgbGV2ZWwuIEdpdmVuIHRoZSBsaWtlbHkgYXJjaGl0ZWN0dXJhbCBjb250ZXh0LCBteSBmaXJzdCBsaW5lIG9mIGF0dGFjayBpcyB0aGUgY2xhc3NpYyBwbGFjZXM6IGBpbmNsdWRlL2AgYW5kIGBkcml2ZXJzL2AuIEkgbmVlZCB0byB6ZXJvIGluIG9uIGFueSBwb3RlbnRpYWwgcG9pbnRzIG9mIGludGVncmF0aW9uIHJlbGF0ZWQgdG8geDg2IHBsYXRmb3JtcywgUENJIGNvbmZpZ3VyYXRpb24sIEFDUEkgcG93ZXIgbWFuYWdlbWVudCwgb3IgVVNCIGhvc3QgY29udHJvbGxlciBhc3NpZ25tZW50cy4gVGhlc2UgYXJlYXMgYXJlIGFsbCBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgaGF2aW5nIGhvb2tzIG9yIGRyaXZlcnMgdGhhdCBtaWdodCByZWxhdGUgdG8gdGhlIENBTi1GbGV4IGNvbnRyb2xsZXIuIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBmb3IgaGVhZGVycyBhbmQgZHJpdmVyIHNvdXJjZSBmaWxlcyB0aGF0IG1lbnRpb24gJiMzNDt4ODYmIzM0OywgJiMzNDtQQ0kmIzM0OywgJiMzNDtBQ1BJJiMzNDssICYjMzQ7VVNCLCYjMzQ7IGFuZCBvZiBjb3Vyc2UsICYjMzQ7ZmxleGNhbiYjMzQ7IGl0c2VsZi4gVGhpcyB3aWxsIGhvcGVmdWxseSBwcm92aWRlIGluc2lnaHQgaW50byBob3cgdGhlIGNvbnRyb2xsZXIgaXMgaW5pdGlhbGl6ZWQsIGNvbmZpZ3VyZWQsIGFuZCBtYW5hZ2VkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEZyb20gdGhlcmUgSSBjYW4gZGV0ZXJtaW5lIGhvdyBpdOKAmXMgYmVpbmcgaW50ZXJmYWNlZCB3aXRoIGJ5IHRoZSBrZXJuZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvYnVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUzOTEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIHByb21wdDoKCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBOYXZpZ2F0aW5nIHRoZSBtZmQgU3Vic3lzdGVtKioKCkFscmlnaHQsIHRoZSBkaXJlY3RpdmUgaXMgY2xlYXIuIFdlJiMzOTtyZSBzdGFydGluZyB3aXRoIGBkcml2ZXJzL21mZGAuIFRoYXQmIzM5O3MgYSBzZW5zaWJsZSBhcHByb2FjaCwgZ2l2ZW4gdGhlIGxpa2VseSBjb250ZXh0LiBUaGUgJiMzNDttZmQmIzM0OyAobXVsdGktZnVuY3Rpb24gZGV2aWNlKSBhcmVhIGlzIGEgY29tbW9uIGVudHJ5IHBvaW50IGZvciBpbnZlc3RpZ2F0aW5nIGNvbXBsZXggaGFyZHdhcmUgaW50ZXJhY3Rpb25zLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIGludGVncmF0ZWQgc3lzdGVtcy4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGlzIGlzIG9mdGVuIHdoZXJlIHRoZSBhYnN0cmFjdGlvbiBsYXllcnMgYmVnaW4uIEkgaW1tZWRpYXRlbHkgc3RhcnQgbWVudGFsbHkgY2F0YWxvZ2luZyBwb3RlbnRpYWwgYXJlYXMgb2YgaW50ZXJlc3Qgd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMsIHRoaW5ncyBsaWtlIGhvdyB0aGUgZHJpdmVyIGZyYW1ld29yayBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBpdCBwcmVzZW50cywgYnV0IGFsc28gaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgcmVzb3VyY2UgYWxsb2NhdGlvbi4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgdmlldyBvZiB0aGUgYXJjaGl0ZWN0dXJlIGJlZm9yZSBkaXZpbmcgaW50byBzcGVjaWZpYyBkcml2ZXJzIG9yIGRldmljZSBpbnN0YW5jZXMuIEkgYW50aWNpcGF0ZSBmaW5kaW5nIHN0cnVjdHVyZXMsIGZ1bmN0aW9uIGNhbGxzLCBhbmQgcG90ZW50aWFsbHkgYSBEVCAoRGV2aWNlIFRyZWUpIHNldHVwLCB3aGljaCB3aWxsIGFsbCBiZSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBpbnRlZ3JhdGlvbi4gRnJvbSBteSBleHBlcmllbmNlIHdpdGggZW1iZWRkZWQgc3lzdGVtcywgdGhpcyBpcyBhIGdvb2QgZmlyc3Qgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tZmQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTY2NAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGEgc2Vhc29uZWQgcHJvZmVzc2lvbmFsIGluIHRoZSBmaWVsZCwgc3RhcnRpbmcgd2l0aCB0aGUgcmVxdWVzdGVkIGJvbGRlZCBoZWFkZXI6CgoqKkRpdmluZyBpbnRvIHRoZSBQQ0kgU3Vic3lzdGVtKioKCkFscmlnaHQsIHRpbWUgdG8gZGlnIGluLiBUaGUgcHJvYmxlbSBsaWtlbHkgbGllcyBzb21ld2hlcmUgd2l0aGluIHRoZSBQQ0kgc3Vic3lzdGVtLCBzbyBsZXQmIzM5O3Mgc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgZHJpdmVycy9wY2lgLiBUaGlzIGlzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHRyb3VibGVzaG9vdGluZywgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgc3lzdGVtIGFyY2hpdGVjdHVyZSBhbmQgdGhlIHBvdGVudGlhbCBhcmVhIG9mIGltcGFjdCBmb3IgdGhlIHJlcG9ydGVkIGlzc3VlLiBJIG5lZWQgdG8gZ2V0IGEgaGlnaCBsZXZlbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb2RlIGFuZCBsb29rIGZvciBsaWtlbHkgY3VscHJpdCwgbGlrZSBhIHJlY2VudCBjaGFuZ2UsIGRyaXZlciBpbnRlcmFjdGlvbiwgb3IgcG90ZW50aWFsIHJlc291cmNlIGNvbmZsaWN0LiBUaGlzIGluaXRpYWwgcGVydXNhbCB3aWxsIHByb2JhYmx5IGJlIGJyb2FkLCBzY2FubmluZyBmb3IgYW55dGhpbmcgdGhhdCBqdW1wcyBvdXQg4oCTIGFueSByZWNlbnQgcGF0Y2hlcywgb2J2aW91cyBlcnJvciBoYW5kbGluZyBpc3N1ZXMsIG9yIHVudXN1YWwgZGV2aWNlIGJlaGF2aW9yLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjbHVlcyBsaWtlIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3VlcywgaW50ZXJydXB0IGhhbmRsaW5nIHByb2JsZW1zLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGRldmljZSBlbnVtZXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIEkgd2lsbCBrZWVwIGFuIGV5ZSBvdXQgZm9yIGhvdyB0aGlzIGlzIHdvcmtpbmcgYWxvbmdzaWRlIGRldmljZSBkcml2ZXJzIGFuZCBob3cgd2UgYXJlIGhhbmRsaW5nIHBvd2VyIG9yIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4gSXQmIzM5O3MgYSBzeXN0ZW1hdGljIHByb2Nlc3Mg4oCTIGEgYnJvYWQgc2NhbiBmaXJzdCwgdGhlbiBJJiMzOTtsbCBuYXJyb3cgbXkgZm9jdXMgYmFzZWQgb24gd2hhdCBJIGZpbmQsIG9yIGRvbiYjMzk7dCBmaW5kLiBUaW1lIHRvIGdldCB0byBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk2NAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBQbGF0Zm9ybSBEcml2ZXJzKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBMZXQmIzM5O3Mgc3RhcnQgYnkgemVyb2luZyBpbiBvbiB0aGUgYGRyaXZlcnMvcGxhdGZvcm1gIGRpcmVjdG9yeS4gVGhpcyBpcyB1c3VhbGx5IHdoZXJlIHRoZSBjb3JlIGxvdy1sZXZlbCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzICYjMzQ7cGxhdGZvcm0tc3BlY2lmaWMmIzM0OyByZXNpZGUuIFRoYXQmIzM5O3MgYSBrZXkgdGVybS4gJiMzNDtQbGF0Zm9ybS1zcGVjaWZpYyYjMzQ7IG1lYW5zIHRoZSBjb2RlIGlzIGhpZ2hseSB0aWVkIHRvIHRoZSBwYXJ0aWN1bGFyIGFyY2hpdGVjdHVyZSwgY2hpcHNldCwgb3IgYm9hcmQuIFRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZXhwZWN0IHRvIGZpbmQgZHJpdmVycyBmb3IgdGhpbmdzIGxpa2UgaW50ZXJydXB0IGNvbnRyb2xsZXJzLCBjbG9jayBtYW5hZ2VtZW50LCBwb3dlciBtYW5hZ2VtZW50LCBwZXJoYXBzIHRoZSBzeXN0ZW0gdGltZXIsIGFuZCBvdGhlciBjcml0aWNhbCBpbmZyYXN0cnVjdHVyZSBjb21wb25lbnRzIHRoYXQgYXJlIGZ1bmRhbWVudGFsIHRvIHRoZSBvcGVyYXRpb24gb2YgdGhpcyBwYXJ0aWN1bGFyIHN5c3RlbS4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgbG93LWxldmVsIGNvbXBvbmVudHMgYXJlIGltcGxlbWVudGVkIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIHRoZSBrZXJuZWwuIEkgYW0gYW50aWNpcGF0aW5nIHRoZSBvcmdhbml6YXRpb24gaGVyZSwgdGhlIG5hbWluZyBjb252ZW50aW9ucywgYW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgYmFzZWQgb24gbXkgcGFzdCBleHBlcmllbmNlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBrZXkgZW50cnkgcG9pbnRzIGFuZCBhbnkgdW51c3VhbCBvciBvcHRpbWl6ZWQgY29kZS4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGxhdGZvcm0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIzMgoJCQkJCQkJb3V0cHV0OiAxMjkKCQkJCQkJCXRob3VnaHRzOiA5MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmxleENBTiBEcml2ZXI6IFVucmVhY2hhYmxlIEhhcmR3YXJlIG9uIGFtZDY0LCBXb3J0aEZ1enppbmcgPSBGYWxzZSoqCgpPa2F5LCBsZXQmIzM5O3Mgc29saWRpZnkgdGhpcy4gSSBuZWVkIHRvIG1ha2UgYSBqdWRnbWVudCBjYWxsIG9uIHdoZXRoZXIgdGhpcyBGbGV4Q0FOIGRyaXZlciBjb2RlIGlzIHdvcnRoIGZ1enppbmcgb24gYW1kNjQuIEZpcnN0LCBsZXQmIzM5O3MgcmUtZXhhbWluZSB0aG9zZSBLY29uZmlnIGRlcGVuZGVuY2llcy4gVGhlIGBmbGV4Y2FuYCBkcml2ZXIsIGNsZWFybHksIHJlbGllcyBvbiBlaXRoZXIgRGV2aWNlIFRyZWUgKGBPRmApIG9yIGBDT01QSUxFX1RFU1RgLCBhbmQsIGNydWNpYWxseSwgcmVxdWlyZXMgYEhBU19JT01FTWAuIEV2ZW4gaWYgd2Ugc29tZWhvdyBmb3JjZS1lbmFibGUgdGhlIGBDQU5fRkxFWENBTmAgb3B0aW9uLCBlaXRoZXIgZGlyZWN0bHkgKGB5YCkgb3IgYXMgYSBtb2R1bGUgKGBtYCksIHZpYSBgQ09NUElMRV9URVNUYCBvciBEVCwgaXQmIzM5O3MgYSBkZWFkIGVuZC4gVGhlIGRyaXZlciYjMzk7cyBwcm9iZSBmdW5jdGlvbiAoYGZsZXhjYW5fZHJpdmVyYCkgaXMgbG9va2luZyBmb3Igc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcywgZWl0aGVyIGAmIzM0O2ZsZXhjYW4tbWNmNTQ0MXgmIzM0O2AgKENvbGRGaXJlKSBvciBhIGRldmljZSBtYXRjaGluZyBhIEZsZXhDQU4gT0YgbWF0Y2guCgpOb3csIEkga25vdyB0aGlzIHdlbGw6IG9uIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50cywgbGlrZSB0aGUgdHlwaWNhbCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBpbnN0YW5jZXMgd2UgdXNlLCB0aGVyZSYjMzk7cyAqbm8qIGVtdWxhdGVkIEZsZXhDQU4uIFRoZSBkZXZpY2UgaXNuJiMzOTt0IHByZXNlbnQgaW4gYW55IHN0YW5kYXJkIGRldmljZSB0cmVlLCBhbmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBoYXJkd2FyZS4gRXZlbiBpZiB3ZSB0cmllZCBzb21lIGhhY2t5IHVzZXJzcGFjZSBkZXZpY2UgdHJlZSBvdmVybGF5ICh3aGljaCBzeXprYWxsZXIgKmRvZXNuJiMzOTt0KiBkbywgdGhhbmtmdWxseSksIHRoZSBkcml2ZXIgd291bGQgaW1tZWRpYXRlbHkgaGl0IGZhdGFsIGVycm9ycyB3aGVuIHRyeWluZyB0byBnZXQgSVJRcywgcmVtYXAgbWVtb3J5IHJlZ2lvbnMsIGFuZCBsb29rdXAgY2xvY2tzLiBUaGF0JiMzOTtzIGEgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJhbCBpbmNvbXBhdGliaWxpdHkuCgpMZXQmIzM5O3MgcmVmZXIgYmFjayB0byBTZWN0aW9uIDIgb2Ygb3VyIGd1aWRlbGluZXMuICpTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUqIGlzIGEga2V5IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhpcyBwZXJmZWN0bHkgZml0czogRmxleENBTiBpcyBhbiBTb0Mtc3BlY2lmaWMgQ0FOIGNvbnRyb2xsZXIsIGZvdW5kIGluIEZyZWVzY2FsZS9OWFAgU29DcyBsaWtlIGkuTVgsIENvbGRGaXJlLCBMYXllcnNjYXBlLCBTMzJHLCBhbmQgUG93ZXJQQyBQMTAxMC4gSXQmIzM5O3Mgbm90IGEgZ2VuZXJpYyBkZXZpY2UgbGlrZSBhIFBDSWUgY2FyZCBvciBhIHZpcnR1YWwgZGV2aWNlLiBJdCAqcmVxdWlyZXMqIHRoZSBzcGVjaWZpYyBTb0MgcGxhdGZvcm0gYW5kIGNvcnJlc3BvbmRpbmcgRGV2aWNlIFRyZWUgZGVmaW5pdGlvbnMuIEl0JiMzOTtzIG5vdCBsaWtlIHRoZSBkZXZpY2VzIHdlICpjYW4qIGZpbmQgaW4gUUVNVS4KCkFuZCwgYXMgYSBzcGVjaWZpYyBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgaXMgb25seSBjYWxsZWQgd2hlbiBhIGZsZXhjYW4gbmV0IGRldmljZSAqZXhpc3RzKi4gV2UgYWNjZXNzIHRoZSBCRVJSIGNvdW50ZXIgdGhyb3VnaCBgY2FuX2dldF9iZXJyX2NvdW50ZXJgLCB0eXBpY2FsbHkgZnJvbSBhIGlvY3RsLiBCdXQgc2luY2Ugd2UgY2Fubm90IGluc3RhbnRpYXRlIHRoaXMgbmV0IGRldmljZSBpbiBhIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50LCB0aGlzIGlzIGVmZmVjdGl2ZWx5ICp1bnJlYWNoYWJsZSogY29kZSwgZXZlbiBpZiBpdCYjMzk7cyB0aGVyZSBpbiB0aGUgc291cmNlLgoKU28sIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBjbGVhcjogVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQuIFBhdGNoIG1vZGlmaWVzIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgLiBSZXN1bHQ6IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuIGBGb2N1c1N5bWJvbHMgPSBbXWAsIG5vIG5lZWQgZm9yIHNwZWNpZmljIGBFbmFibGVDb25maWdzYC4gVGhlIHJlYXNvbmluZyBpcyBjbGVhcjogRmxleENBTiBpcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbiBvdXIgc3RhbmRhcmQgYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoaXMgaXMgYSBzb2xpZCAmIzM0O25vLiYjMzQ7IEl0JiMzOTtzIG5vdCBhIHJlbGV2YW50IHRhcmdldCBmb3IgZnV6emluZyBpbiB0aGlzIGNvbnRleHQuIExldCYjMzk7cyBjYWxsIHRoZSByZXN1bHRzIGFuZCBtb3ZlIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcigpIGluIGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLiBGbGV4Q0FOIGlzIGFuIG9uLWNoaXAgQ0FOIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBpbnRvIEZyZWVzY2FsZS9OWFAgU29DcyAoQVJNLCBQb3dlclBDLCBDb2xkRmlyZSkgYW5kIGJpbmRzIGV4Y2x1c2l2ZWx5IHZpYSBwbGF0Zm9ybS9PRiBtYXRjaGluZy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIGVudmlyb25tZW50cyBvbiBhbWQ2NC4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjM5OjM5Ljk5MTUwNDYwNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2OTQ5MjI4MTQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcigpIGluIGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLiBGbGV4Q0FOIGlzIGFuIG9uLWNoaXAgQ0FOIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBpbnRvIEZyZWVzY2FsZS9OWFAgU29DcyAoQVJNLCBQb3dlclBDLCBDb2xkRmlyZSkgYW5kIGJpbmRzIGV4Y2x1c2l2ZWx5IHZpYSBwbGF0Zm9ybS9PRiBtYXRjaGluZy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIGVudmlyb25tZW50cyBvbiBhbWQ2NC4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzozOTozOS45OTE1MDk3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjYzNjE2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDIyNTkzNWViYzc2ZTU5ZjUxMWU4ZTE1MzU3NzQxOTE2N2FlZTk5MTFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMDc6Mzk6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xcbmluZGV4IDA2ZDVkMzVmYzFiNTUuLmIwODc3OWVlMmEwYTMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xcbkBAIC03NjUsNiArNzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcbiBcXHRlcnIgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHByaXYtXFx1MDAzZWRldik7XFxuIFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbiBcXHRcXHRyZXR1cm4gZXJyO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzozOTo0MC40NDQ4Nzc3NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQ2OTAzODg5MDQ0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjI1OTM1ZWJjNzZlNTlmNTExZThlMTUzNTc3NDE5MTY3YWVlOTkxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDE1IDA3OjM5OjM5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuQEAgLTc2NSw2ICs3NjUsOSBAQCBzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG4gXHRpbnQgZXJyO1xuIFxuK1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpXG4rXHRcdHJldHVybiAwO1xuK1xuIFx0ZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LVx1MDAzZWRldik7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gZXJyO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6Mzk6NDAuNDQ0ODc5NTA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NTczNDUxMjA5OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiB0aGUgRmxleENBTiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4gVGhpcyBkaWZmIGluIGBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCBhdCBmaXJzdCBnbGFuY2UuIEl0J3MgYSBjb25kaXRpb25hbCBjaGVjayBiZWZvcmUgcmV0cmlldmluZyB0aGUgYnVzIGVycm9yIGNvdW50ZXIsIGVuc3VyaW5nIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBydW5uaW5nLiBUaGUgYWRkaXRpb24gb2YgYGlmICghbmV0aWZfcnVubmluZyhkZXYpKWAgaW1tZWRpYXRlbHkgY2F0Y2hlcyBteSBleWUsIEkgd29uZGVyIHdoeSBpdCB3YXMgYWRkZWQuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgdGhlIGNvbnRleHQuIFdoYXQgaXMgdGhlIGFyY2hpdGVjdHVyZSB0aGlzIEZsZXhDQU4gZHJpdmVyIHRhcmdldHM/IElzIHRoaXMgc29tZXRoaW5nIGxpa2VseSB0byBiZSBzZWVuIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9uIHg4Ni02NCwgb3IgaXMgaXQgYSBtb3JlIGVtYmVkZGVkIG9yIHNwZWNpYWxpemVkIENBTiBjb250cm9sbGVyPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciBoYXJkd2FyZSB0aGF0IEknbSBsaWtlbHkgdG8gZW5jb3VudGVyIGZyZXF1ZW50bHkuXG5cbkxldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSB0byBkZXRlcm1pbmUgaXRzIHB1cnBvc2UuIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZyB1bmRlciBgZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vYCB0byBnZXQgYSBiZXR0ZXIgZ3Jhc3Agb2YgdGhlIGRyaXZlcidzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLiBJcyB0aGUgY2hlY2sgbmVjZXNzYXJ5IG9yIGEgZ3VhcmQgYWdhaW5zdCBhbiBleHBlY3RlZCBjb25kaXRpb24gb3IgcmFjZSBjb25kaXRpb24/IEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQwOjM3Ljc5MDAwMjkzNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzY5NTY2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0FOX0ZMRVhDQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvY2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnPTEwOT1jb25maWcgQ0FOX0NBTjMyN1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI2LVxcbmRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnOjEyNzpjb25maWcgQ0FOX0ZMRVhDQU5cXG5kcml2ZXJzL25ldC9jYW4vS2NvbmZpZy0xMjgtXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIEZyZWVzY2FsZSBGTEVYQ0FOIGJhc2VkIGNoaXBzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MDozNy44Mzc3MDQyNzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoyNDE1MDUyNzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FOIEJ1cyBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIENBTiBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgdGhlIG9uZXMgcmVsYXRlZCB0bywgc2F5LCB0aGUgTUNQMjUxNSBvciBzaW1pbGFyLiBJJ2xsIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnYCwgZm9jdXNpbmcgYXJvdW5kIGxpbmUgMTI3LiBUaGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgaGlnaC1sZXZlbCBDQU4gYnVzIG9wdGlvbnMgYXJlIGRlZmluZWQsIHdoZXJlIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29uZmlncyBnZXQgdGhlaXIgaG9va3MgaW4uIEknbSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBhbmQgbWF5YmUgYSBmZXcgbWVudSBlbnRyaWVzIHRoYXQgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXNpZ24gY2hvaWNlcyBtYWRlLCBwZXJoYXBzIG9wdGlvbnMgZm9yIGRpZmZlcmVudCBDQU4gY29udHJvbGxlcnMsIGRhdGEgcmF0ZXMsIG9yIGZlYXR1cmVzIGxpa2UgQ0FOIEZEIHN1cHBvcnQuIEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBzeW1ib2xzIEknbGwgbmVlZCB0byBrbm93LiBUaW1lIHRvIHNlZSB3aGF0IEtjb25maWcgaGFzIGluIHN0b3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NDAuMjUyNzU5NDY4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvY2FuL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTI1LFxuICBcIkxpbmVDb3VudFwiOiAyNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTI1OlxcdFxcdCAgSWYgdGhpcyBkcml2ZXIgaXMgYnVpbHQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkIGNhbjMyNy5cXG4gMTI2OlxcdFxcbiAxMjc6XFx0Y29uZmlnIENBTl9GTEVYQ0FOXFxuIDEyODpcXHRcXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgRnJlZXNjYWxlIEZMRVhDQU4gYmFzZWQgY2hpcHNcXFwiXFxuIDEyOTpcXHRcXHRkZXBlbmRzIG9uIE9GIHx8IENPTERGSVJFIHx8IENPTVBJTEVfVEVTVFxcbiAxMzA6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG4gMTMxOlxcdFxcdHNlbGVjdCBDQU5fUlhfT0ZGTE9BRFxcbiAxMzI6XFx0XFx0aGVscFxcbiAxMzM6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBGbGV4Q0FOLlxcbiAxMzQ6XFx0XFxuIDEzNTpcXHRjb25maWcgQ0FOX0dSQ0FOXFxuIDEzNjpcXHRcXHR0cmlzdGF0ZSBcXFwiQWVyb2ZsZXggR2Fpc2xlciBHUkNBTiBhbmQgR1JIQ0FOIENBTiBkZXZpY2VzXFxcIlxcbiAxMzc6XFx0XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTVxcbiAxMzg6XFx0XFx0aGVscFxcbiAxMzk6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIG9yIEdSSENBTi5cXG4gMTQwOlxcdFxcdCAgTm90ZSB0aGF0IHRoZSBkcml2ZXIgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiwgZXZlbiB0aG91Z2ggbGl0dGxlXFxuIDE0MTpcXHRcXHQgIGVuZGlhbiBzeW50aGVzZXMgb2YgdGhlIGNvcmVzIHdvdWxkIG5lZWQgc29tZSBtb2RpZmljYXRpb25zIG9uXFxuIDE0MjpcXHRcXHQgIHRoZSBoYXJkd2FyZSBsZXZlbCB0byB3b3JrLlxcbiAxNDM6XFx0XFxuIDE0NDpcXHRjb25maWcgQ0FOX0pBTlpfSUNBTjNcXG4gMTQ1OlxcdFxcdHRyaXN0YXRlIFxcXCJKYW56IFZNT0QtSUNBTjMgSW50ZWxsaWdlbnQgQ0FOIGNvbnRyb2xsZXJcXFwiXFxuIDE0NjpcXHRcXHRkZXBlbmRzIG9uIE1GRF9KQU5aX0NNT0RJT1xcbiAxNDc6XFx0XFx0aGVscFxcbiAxNDg6XFx0XFx0ICBEcml2ZXIgZm9yIEphbnogVk1PRC1JQ0FOMyBJbnRlbGxpZ2VudCBDQU4gY29udHJvbGxlciBtb2R1bGUsIHdoaWNoXFxuIDE0OTpcXHRcXHQgIGNvbm5lY3RzIHRvIGEgTU9EVUxidXMgY2FycmllciBib2FyZC5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NDAuMjUyODMxNjE4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTY0MjAzNzMzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRmxleENBTiBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGNvbmZpZyBDQU5fRkxFWENBTmAgc2V0dGluZy4gSXQncyBkZXBlbmRlbnQgb24gYSBmZXcgdGhpbmdzOiBgT0YgfHwgQ09MREZJUkUgfHwgQ09NUElMRV9URVNUYCBhbmQgYEhBU19JT01FTWAuIFRoYXQgbWFrZXMgc2Vuc2UuIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGxpbmsgdG8gYE9GYCBiZWluZyByZWxldmFudCB0byBEZXZpY2UgVHJlZSB1c2UuIEkgYWxzbyBnZXQgdGhlIGluY2x1c2lvbiBvZiBgQ09MREZJUkVgLCBhIGxlZ2FjeSBwbGF0Zm9ybSB0byBzdXBwb3J0LCBhcyB3ZWxsIGFzIGEgcXVpY2sgY29tcGlsZSB0ZXN0LiBJT01FTSBtYWtlcyBzZW5zZSB0b28sIHN1Z2dlc3RpbmcgaXQgbmVlZHMgbWVtb3J5IG1hcHBpbmcuXG5cbkJ1dCBteSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIEZsZXhDQU4gYWN0dWFsbHkgaW1wbGVtZW50ZWQgYXMgYSBwbGF0Zm9ybSBkcml2ZXI/IEdpdmVuIHRoZSBnZW5lcmFsIHN0cnVjdHVyZSBvZiB0aGUga2VybmVsLCBJJ20gbGVhbmluZyB0aGF0IHdheSwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjay4gTGV0IG1lIHF1aWNrbHkganVtcCBpbnRvIGBmbGV4Y2FuLWNvcmUuY2AgYW5kIGNvbmZpcm0gbXkgZXhwZWN0YXRpb24uIEtub3dpbmcgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgZHJpdmVyIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQgdGhlc2UgS2NvbmZpZyBkZXBlbmRlbmNpZXMgYWN0dWFsbHkgc2lnbmlmeSB3aXRoaW4gdGhlIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNTIsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQwOjU2LjY3MzIwNzE0NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODUxNzU2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTI0NDQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDU0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NTU6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihmbGV4Y2FuX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NTYuNzIxNzMyNDY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NjU0MjM2NzgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6XG5cbioqRGl2aW5nIGludG8gdGhlIENBTiBEcml2ZXIgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgRmxleENBTiBkcml2ZXIgYWN0dWFsbHkgd29ya3MgYXQgaXRzIGNvcmUuIExldCdzIHN0YXJ0IHdpdGggYGZsZXhjYW4tY29yZS5jYC4gSSBleHBlY3QgdG8gZmluZCB0aGUgbWVhdCBvZiB0aGUgcGxhdGZvcm0gZHJpdmVyIGRldGFpbHMgaW4gdGhlcmUgLSB0aGUgcmVnaXN0cmF0aW9uLCBwcm9iZSwgYW5kIHJlbW92ZSBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgaG93IHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiBpcyBtYW5hZ2VkLiBJJ20gbG9va2luZyBmb3IgdGhlIGVzc2VudGlhbCBnbHVlIGNvZGUgdGhhdCBsaW5rcyB0aGUgZ2VuZXJpYyBDQU4gZnJhbWV3b3JrIHdpdGggdGhlIHNwZWNpZmljIEZsZXhDQU4gc2lsaWNvbi4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGtleSBkYXRhIHN0cnVjdHVyZXMsIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgc2V0dXAsIGFuZCB0aGUgd2F5IHRoZSBjb250cm9sbGVyIHJlZ2lzdGVycyBhcmUgYWNjZXNzZWQuIExldCdzIGdldCB0byBpdCFcblxuXG4iLCJJbnB1dFRva2VucyI6NDY1MywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQxOjAzLjI2NDEwMjM4NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzYwMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjQyMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjQyMDpcXHRcXG4yNDIxOlxcdFxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpIHtcXG4yNDIyOlxcdFxcdFxcdGludCBlcnI7XFxuMjQyMzpcXHRcXG4yNDI0OlxcdFxcdFxcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXFx1MDAyNlxcdTAwMjZcXG4yNDI1OlxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ01JKSkge1xcbjI0MjY6XFx0XFx0XFx0XFx0ZXJyID0gcG1fcnVudGltZV9mb3JjZV9yZXN1bWUoZGV2aWNlKTtcXG4yNDI3OlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMjQyODpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjI0Mjk6XFx0XFx0XFx0fVxcbjI0MzA6XFx0XFxuMjQzMTpcXHRcXHRcXHRpZiAoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSlcXG4yNDMyOlxcdFxcdFxcdFxcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgZmFsc2UpO1xcbjI0MzM6XFx0XFx0fVxcbjI0MzQ6XFx0XFxuMjQzNTpcXHRcXHRyZXR1cm4gMDtcXG4yNDM2OlxcdH1cXG4yNDM3OlxcdFxcbjI0Mzg6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGZsZXhjYW5fcG1fb3BzID0ge1xcbjI0Mzk6XFx0XFx0U0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMoZmxleGNhbl9zdXNwZW5kLCBmbGV4Y2FuX3Jlc3VtZSlcXG4yNDQwOlxcdFxcdFNFVF9SVU5USU1FX1BNX09QUyhmbGV4Y2FuX3J1bnRpbWVfc3VzcGVuZCwgZmxleGNhbl9ydW50aW1lX3Jlc3VtZSwgTlVMTClcXG4yNDQxOlxcdFxcdFNFVF9OT0lSUV9TWVNURU1fU0xFRVBfUE1fT1BTKGZsZXhjYW5fbm9pcnFfc3VzcGVuZCwgZmxleGNhbl9ub2lycV9yZXN1bWUpXFxuMjQ0MjpcXHR9O1xcbjI0NDM6XFx0XFxuMjQ0NDpcXHRzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcXG4yNDQ1OlxcdFxcdC5kcml2ZXIgPSB7XFxuMjQ0NjpcXHRcXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbjI0NDc6XFx0XFx0XFx0LnBtID0gXFx1MDAyNmZsZXhjYW5fcG1fb3BzLFxcbjI0NDg6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcXG4yNDQ5OlxcdFxcdH0sXFxuMjQ1MDpcXHRcXHQucHJvYmUgPSBmbGV4Y2FuX3Byb2JlLFxcbjI0NTE6XFx0XFx0LnJlbW92ZSA9IGZsZXhjYW5fcmVtb3ZlLFxcbjI0NTI6XFx0XFx0LmlkX3RhYmxlID0gZmxleGNhbl9pZF90YWJsZSxcXG4yNDUzOlxcdH07XFxuMjQ1NDpcXHRcXG4yNDU1OlxcdG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZmxleGNhbl9kcml2ZXIpO1xcbjI0NTY6XFx0XFxuMjQ1NzpcXHRNT0RVTEVfQVVUSE9SKFxcXCJTYXNjaGEgSGF1ZXIgXFx1MDAzY2tlcm5lbEBwZW5ndXRyb25peC5kZVxcdTAwM2UsIFxcXCJcXG4yNDU4OlxcdFxcdCAgICAgIFxcXCJNYXJjIEtsZWluZS1CdWRkZSBcXHUwMDNja2VybmVsQHBlbmd1dHJvbml4LmRlXFx1MDAzZVxcXCIpO1xcbjI0NTk6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MTowMy4yNjQyNDA3NDRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzkwMjU5MjM4MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FOIERyaXZlcidzIElkZW50aWZpY2F0aW9uIFN0cmF0ZWd5KipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGZsZXhjYW5fZHJpdmVyYC4gRmlyc3Qgb2ZmLCBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyLCBzbyB3ZSdyZSB0YWxraW5nIGFib3V0IGhhcmR3YXJlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIGdvb2QuIE5vdywgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgaG93IGl0J3MgaWRlbnRpZnlpbmcgdGhlIGhhcmR3YXJlIGl0IHN1cHBvcnRzLiBJdCBzZWVtcyB0byBiZSB1c2luZyB0d28gcHJpbWFyeSBtZXRob2RzLCBhbmQgSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoZW0gZnVydGhlci4gSXQncyBlaXRoZXIgbWF0Y2hpbmcgYmFzZWQgb24gdGhlIGBvZl9tYXRjaF90YWJsZSA9IGZsZXhjYW5fb2ZfbWF0Y2hgIG9yIHRoZSBgaWRfdGFibGUgPSBmbGV4Y2FuX2lkX3RhYmxlYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGluIGBmbGV4Y2FuX29mX21hdGNoYCBhbmQgYGZsZXhjYW5faWRfdGFibGVgIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzIGFuZCBwcm9wZXJ0aWVzIHRoaXMgZHJpdmVyIGlzIGxvb2tpbmcgZm9yLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZGV2aWNlIGlzIHNlbGVjdGVkIGFuZCBpbml0aWFsaXplZCwgYW5kIGlmIGl0J3MgdXNpbmcgRGV2aWNlIFRyZWUgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIElELWJhc2VkIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ5NCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDIuMjkwMTY3NjY4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNTcxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMzc1LFxuICBcIkxpbmVDb3VudFwiOiA0NVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyMzc1OlxcdFxcbjIzNzY6XFx0XFx0cmV0dXJuIDA7XFxuMjM3NzpcXHR9XFxuMjM3ODpcXHRcXG4yMzc5OlxcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpXFxuMjM4MDpcXHR7XFxuMjM4MTpcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XFxuMjM4MjpcXHRcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG4yMzgzOlxcdFxcbjIzODQ6XFx0XFx0cmV0dXJuIGZsZXhjYW5fY2xrc19lbmFibGUocHJpdik7XFxuMjM4NTpcXHR9XFxuMjM4NjpcXHRcXG4yMzg3OlxcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcXG4yMzg4OlxcdHtcXG4yMzg5OlxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcXG4yMzkwOlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbjIzOTE6XFx0XFxuMjM5MjpcXHRcXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7XFxuMjM5MzpcXHRcXHRcXHRpbnQgZXJyO1xcbjIzOTQ6XFx0XFxuMjM5NTpcXHRcXHRcXHRpZiAoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSlcXG4yMzk2OlxcdFxcdFxcdFxcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgdHJ1ZSk7XFxuMjM5NzpcXHRcXG4yMzk4OlxcdFxcdFxcdC8qIEZvciBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ01JLCBpdCBuZWVkIEFURiB0byBzZW5kXFxuMjM5OTpcXHRcXHRcXHQgKiB0byBTTSB0aHJvdWdoIFNDTUkgcHJvdG9jb2wsIFNNIHdpbGwgYXNzZXJ0IHRoZSBJUEdfU1RPUFxcbjI0MDA6XFx0XFx0XFx0ICogc2lnbmFsLiBCdXQgYWxsIHRoaXMgd29ya3MgbmVlZCB0aGUgQ0FOIGNsb2NrcyBrZWVwIG9uLlxcbjI0MDE6XFx0XFx0XFx0ICogQWZ0ZXIgdGhlIENBTiBtb2R1bGUgZ2V0IHRoZSBJUEdfU1RPUCBtb2RlLCBhbmQgc3dpdGNoIHRvXFxuMjQwMjpcXHRcXHRcXHQgKiBTVE9QIG1vZGUsIHdoZXRoZXIgc3RpbGwga2VlcCB0aGUgQ0FOIGNsb2NrcyBvbiBvciBnYXRlIHRoZW1cXG4yNDAzOlxcdFxcdFxcdCAqIG9mZiBkZXBlbmQgb24gdGhlIEhhcmR3YXJlIGRlc2lnbi5cXG4yNDA0OlxcdFxcdFxcdCAqL1xcbjI0MDU6XFx0XFx0XFx0aWYgKCEoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSBcXHUwMDI2XFx1MDAyNlxcbjI0MDY6XFx0XFx0XFx0ICAgICAgcHJpdi1cXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDTUkpKSB7XFxuMjQwNzpcXHRcXHRcXHRcXHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoZGV2aWNlKTtcXG4yNDA4OlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMjQwOTpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjI0MTA6XFx0XFx0XFx0fVxcbjI0MTE6XFx0XFx0fVxcbjI0MTI6XFx0XFxuMjQxMzpcXHRcXHRyZXR1cm4gMDtcXG4yNDE0OlxcdH1cXG4yNDE1OlxcdFxcbjI0MTY6XFx0c3RhdGljIGludCBfX21heWJlX3VudXNlZCBmbGV4Y2FuX25vaXJxX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpXFxuMjQxNzpcXHR7XFxuMjQxODpcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XFxuMjQxOTpcXHRcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDIuMjkwMzA1MzQ4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ5Njk0MzA4NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBDQU4gTWF0Y2ggVGFibGVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgQ0FOIGZpbHRlcmluZyBsb2dpYy4gTGV0J3Mgc3RhcnQgYnkgbmF2aWdhdGluZyBpbnRvIGBmbGV4Y2FuLWNvcmUuY2AuIE15IHByaW1hcnkgaW50ZXJlc3QgcmlnaHQgbm93IGlzIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBpbmNvbWluZyBDQU4gbWVzc2FnZXMgYXJlIG1hdGNoZWQgYW5kIHJvdXRlZC4gSSB3YW50IHRvIHplcm8gaW4gb24gdGhlIG1hdGNoIHRhYmxlcy4gSSdtIGFzc3VtaW5nIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGxvb2t1cCBtZWNoYW5pc20sIHBlcmhhcHMgYSBoYXNoIHRhYmxlIG9yIGEgbW9yZSBkaXJlY3QgaW5kZXhpbmcgbWV0aG9kLCB0byBxdWlja2x5IGRldGVybWluZSB3aGljaCBtYWlsYm94ZXMgb3IgYnVmZmVycyB0aGUgaW5jb21pbmcgZnJhbWVzIGdldCBkaXJlY3RlZCB0by4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBmaWx0ZXIgbWFza3MgYW5kIGlkZW50aWZpZXJzIGludGVyYWN0LCBhbmQgaG93IHRoZSBoYXJkd2FyZSBhY3R1YWxseSBwZXJmb3JtcyB0aGUgbWF0Y2hpbmcgdG8gb3B0aW1pemUgaG93IHRoZSBDQU4gZGF0YSBpcyBwcm9jZXNzZWQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjUwMCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDcuMjU5NzM5NTM0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njk4OTg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuX29mX21hdGNofGZsZXhjYW5faWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW5cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjAyNT1zdGF0aWMgaW50IGZsZXhjYW5fc2V0dXBfc3RvcF9tb2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDYxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwNjI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZmxleGNhbl9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjMtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14OHFtLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OHFtX2RldnR5cGVfZGF0YSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNzgtfTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMDc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGZsZXhjYW5fb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwODAtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjA4Mi1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDg4LX07XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4OTpNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBmbGV4Y2FuX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDkwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjQ0ND1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI0NDctXFx0XFx0LnBtID0gXFx1MDAyNmZsZXhjYW5fcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NDg6XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDQ5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDUxLVxcdC5yZW1vdmUgPSBmbGV4Y2FuX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyNDUyOlxcdC5pZF90YWJsZSA9IGZsZXhjYW5faWRfdGFibGUsXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1My19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MTo0Ny4zMDY3MzY3NzRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTU0MjY0MjQwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgZmxleGNhbl9pZF90YWJsZWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYGZsZXhjYW5faWRfdGFibGVgIGNvbnRhaW5zLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCdzIGxpa2VseSBhIHN0cnVjdHVyZSBvciB0YWJsZSB0aGF0IG1hcHMgaWRlbnRpZmllcnMgcmVsYXRlZCB0byB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIEkgc3VzcGVjdCBpdCdzIGNydWNpYWwgZm9yIGZpbHRlcmluZywgYWNjZXB0YW5jZSBtYXNraW5nLCBvciBwb3RlbnRpYWxseSBJRCBhc3NpZ25tZW50IHdpdGhpbiB0aGUgQ0FOIGJ1cyBjb21tdW5pY2F0aW9uIGZyYW1ld29yay4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgSURzIGFyZSBiZWluZyBtYW5hZ2VkLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGFibGUncyBzdHJ1Y3R1cmUg4oCTIGlzIGl0IGFuIGFycmF5LCBhIGxpbmtlZCBsaXN0LCBvciBzb21ldGhpbmcgbW9yZSBjb21wbGV4PyBUaGUgc2l6ZSBhbmQgdGhlIGRhdGEgdHlwZXMgb2YgaXRzIGVsZW1lbnRzIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGludGVuZGVkIHVzZSBhbmQgcG90ZW50aWFsIGxpbWl0YXRpb25zLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB3aGVyZSB0aGUgdGFibGUgaXMgZGVmaW5lZCwgaG93IGl0J3MgcG9wdWxhdGVkIChzdGF0aWMgaW5pdGlhbGl6YXRpb24/IGR5bmFtaWMgdXBkYXRlcz8pLCBhbmQgd2hlcmUgaXQncyByZWZlcmVuY2VkIGluIHRoZSBjb2RlLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGhvdyB0aGlzIHRhYmxlIGlzIHVzZWQgd2lsbCBiZSBjcnVjaWFsIGZvciBhbnkgZGVidWdnaW5nIG9yIG9wdGltaXphdGlvbiBlZmZvcnRzLiBMZXQncyBkaWcgaW4gYW5kIHNlZSB3aGF0J3MgYWN0dWFsbHkgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNDIsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MjowMi43MzMxNjM5MDZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwODAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwODA6XFx0XFxuMjA4MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XFxuMjA4MjpcXHRcXHR7XFxuMjA4MzpcXHRcXHRcXHQubmFtZSA9IFxcXCJmbGV4Y2FuLW1jZjU0NDF4XFxcIixcXG4yMDg0OlxcdFxcdFxcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2ZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSxcXG4yMDg1OlxcdFxcdH0sIHtcXG4yMDg2OlxcdFxcdFxcdC8qIHNlbnRpbmVsICovXFxuMjA4NzpcXHRcXHR9LFxcbjIwODg6XFx0fTtcXG4yMDg5OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGxhdGZvcm0sIGZsZXhjYW5faWRfdGFibGUpO1xcbjIwOTA6XFx0XFxuMjA5MTpcXHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4yMDkyOlxcdHtcXG4yMDkzOlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSAqZGV2dHlwZV9kYXRhO1xcbjIwOTQ6XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4yMDk1OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXY7XFxuMjA5NjpcXHRcXHRzdHJ1Y3QgcmVndWxhdG9yICpyZWdfeGNlaXZlcjtcXG4yMDk3OlxcdFxcdHN0cnVjdCBwaHkgKnRyYW5zY2VpdmVyO1xcbjIwOTg6XFx0XFx0c3RydWN0IGNsayAqY2xrX2lwZyA9IE5VTEwsICpjbGtfcGVyID0gTlVMTDtcXG4yMDk5OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDI6MDIuNzMzMjg1OTE2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjE4MzE1OTQ3Mzg1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgZG93biB0aGlzIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgIGZ1bmN0aW9uLlxuXG4qKkFuYWx5emluZyB0aGUgYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBmdW5jdGlvbiwgYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAuIFRoZSBuYW1lIGl0c2VsZiBpcyBwcmV0dHkgc2VsZi1leHBsYW5hdG9yeSDigJMgaXQncyBkZXNpZ25lZCB0byByZXRyaWV2ZSB0aGUgYnVzIGVycm9yIGNvdW50ZXIgZnJvbSBhIEZsZXhDQU4gcGVyaXBoZXJhbC4gR2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiBDQU4gY29udHJvbGxlcnMgYW5kIHRoZSBjcml0aWNhbCByb2xlIG9mIGVycm9yIGRldGVjdGlvbiBpbiBlbnN1cmluZyByZWxpYWJsZSBjb21tdW5pY2F0aW9uLCB0aGlzIGlzIGEgY29yZSBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaW1wbGVtZW50ZWQuIEZpcnN0IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZSBlcnJvciBjb3VudGVycyBhcmUgbG9jYXRlZCBpbiB0aGUgQ0FOIGNvbnRyb2xsZXIncyByZWdpc3RlciBtYXAuIElzIGl0IGEgc2luZ2xlIHJlZ2lzdGVyLCBvciBpcyBpdCBhIGZpZWxkIHdpdGhpbiBhIGxhcmdlciBzdGF0dXMgcmVnaXN0ZXI/IEtub3dpbmcgdGhpcyBpcyB2aXRhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdW5jdGlvbidzIGFjY2VzcyBtZXRob2QuXG5cbkkgZXhwZWN0IHRoaXMgZnVuY3Rpb24gd2lsbCBsaWtlbHkgaW52b2x2ZSByZWFkaW5nIGEgc3BlY2lmaWMgcmVnaXN0ZXIgb3IgYSBmaWVsZCB3aXRoaW4gYSByZWdpc3RlciBvZiB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBUaGVyZSBhcmUgdHlwaWNhbGx5IGRpZmZlcmVudCBlcnJvciBjb3VudGVycyDigJMgdHJhbnNtaXQgZXJyb3IgY291bnRlciAoVEVDKSBhbmQgcmVjZWl2ZSBlcnJvciBjb3VudGVyIChSRUMpIOKAkyBzbyB0aGUgZnVuY3Rpb24ncyBwYXJhbWV0ZXJzIHNob3VsZCBzcGVjaWZ5IHdoaWNoIG9uZSBpcyBvZiBpbnRlcmVzdC4gQXJlIHdlIGFjY2Vzc2luZyBib3RoPyBEb2VzIGl0IG9mZmVyIGJpdC1maWVsZCBncmFudWxhcml0eSB0byBjaGVjayBpbmRpdmlkdWFsIGNvdW50ZXJzPyBPciBkb2VzIGl0IG9mZmVyIGJvdGg/IEknbGwgaGF2ZSB0byBzZWUgdGhlIGNvZGUuIEknbSBob3BpbmcgaXQncyB3ZWxsLXdyaXR0ZW4sIHdpdGggYXBwcm9wcmlhdGUgZXJyb3IgaGFuZGxpbmcg4oCTIHdoYXQgaGFwcGVucyBpZiB0aGUgcGVyaXBoZXJhbCBpc24ndCBpbml0aWFsaXplZCwgb3IgdGhlIHBvaW50ZXIgdG8gdGhlIENBTiBjb250cm9sbGVyJ3MgYmFzZSBhZGRyZXNzIGlzIGludmFsaWQ/IEEgcm9idXN0IGltcGxlbWVudGF0aW9uIHdvdWxkIGluY2x1ZGUgY2hlY2tzIGZvciB0aGVzZSBjb25kaXRpb25zLCBwZXJoYXBzIHJldHVybmluZyBhbiBlcnJvciBjb2RlIG9yIHVzaW5nIGFzc2VydGlvbnMgdG8gY2F0Y2ggdW5leHBlY3RlZCBzY2VuYXJpb3MuXG5cbkZ1cnRoZXJtb3JlLCBob3cgZG9lcyB0aGUgZnVuY3Rpb24gaGFuZGxlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnM/IE11bHRpcGxlIHRhc2tzIG1pZ2h0IHRyeSB0byBhY2Nlc3MgdGhlIGVycm9yIGNvdW50ZXJzIHNpbXVsdGFuZW91c2x5LiBEb2VzIGl0IHVzZSBhbnkgbG9ja2luZyBtZWNoYW5pc21zIG9yIGF0b21pYyBvcGVyYXRpb25zIHRvIGVuc3VyZSBkYXRhIGludGVncml0eT8gSSdsbCBiZSBsb29raW5nIGZvciB0aGF0LiBUaGUgdW5kZXJseWluZyBoYXJkd2FyZSBkZXRhaWxzIGFyZSBjcnVjaWFsIGZvciBwZXJmb3JtYW5jZS4gSXQncyBsaWtlbHkgdGhpcyBpcyBnb2luZyB0byBiZSB3cml0dGVuIHdpdGggcmVnaXN0ZXIgYWNjZXNzIGluIG1pbmQgcmF0aGVyIHRoYW4gdGhlIGRhdGEgYmVpbmcgc3RvcmVkIG9uIHRoZSBoZWFwLiBJIHdhbnQgdG8ga25vdyBhYm91dCBob3cgdGhpcyBpcyB3cml0dGVuIHNvIEkgY2FuIGJlIHN1cmUgSSBjYW4gYWRhcHQgdGhlIGZ1bmN0aW9uIHRvIG15IG5lZWRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTYxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTowNS44OTI3NjMxMDJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ3MDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc2MCxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDc2MDpcXHR9XFxuIDc2MTpcXHRcXG4gNzYyOlxcdHN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIDc2MzpcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG4gNzY0OlxcdHtcXG4gNzY1OlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiA3NjY6XFx0XFx0aW50IGVycjtcXG4gNzY3OlxcdFxcbiA3Njg6XFx0XFx0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpXFxuIDc2OTpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gNzcwOlxcdFxcbiA3NzE6XFx0XFx0ZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LVxcdTAwM2VkZXYpO1xcbiA3NzI6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuIDc3MzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbiA3NzQ6XFx0XFxuIDc3NTpcXHRcXHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XFxuIDc3NjpcXHRcXG4gNzc3OlxcdFxcdHBtX3J1bnRpbWVfcHV0KHByaXYtXFx1MDAzZWRldik7XFxuIDc3ODpcXHRcXG4gNzc5OlxcdFxcdHJldHVybiBlcnI7XFxuIDc4MDpcXHR9XFxuIDc4MTpcXHRcXG4gNzgyOlxcdHN0YXRpYyBuZXRkZXZfdHhfdCBmbGV4Y2FuX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gNzgzOlxcdHtcXG4gNzg0OlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiA3ODU6XFx0XFx0c3RydWN0IGNhbmZkX2ZyYW1lICpjZmQgPSAoc3RydWN0IGNhbmZkX2ZyYW1lICopc2tiLVxcdTAwM2VkYXRhO1xcbiA3ODY6XFx0XFx0dTMyIGNhbl9pZDtcXG4gNzg3OlxcdFxcdHUzMiBkYXRhO1xcbiA3ODg6XFx0XFx0dTMyIGN0cmwgPSBGTEVYQ0FOX01CX0NPREVfVFhfREFUQSB8ICgoY2FuX2ZkX2xlbjJkbGMoY2ZkLVxcdTAwM2VsZW4pKSBcXHUwMDNjXFx1MDAzYyAxNik7XFxuIDc4OTpcXHRcXHRpbnQgaTtcXG4gNzkwOlxcdFxcbiA3OTE6XFx0XFx0aWYgKGNhbl9kZXZfZHJvcHBlZF9za2IoZGV2LCBza2IpKVxcbiA3OTI6XFx0XFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gNzkzOlxcdFxcbiA3OTQ6XFx0XFx0bmV0aWZfc3RvcF9xdWV1ZShkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTowNS44OTI5MTI1MDJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTQzMTQ1MzY1NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgIGlzIGNsZWFybHkgcGFydCBvZiB0aGUgQ0FOIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IHRpZWQgaW50byBgZG9fZ2V0X2JlcnJfY291bnRlcmAuIE15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogd2hlcmUgaXMgdGhpcyBmdW5jdGlvbiBhY3R1YWxseSBiZWluZyAqdXNlZCogb3IgKmFzc2lnbmVkKiB3aXRoaW4gdGhlIGxhcmdlciBmcmFtZXdvcms/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBTaW5jZSB0aGlzIGxvb2tzIGxpa2UgYSBGTEVYQ0FOIHNwZWNpZmljIGZ1bmN0aW9uLCBhIHF1aWNrIHNlYXJjaCBpbiBgZmxleGNhbi1jb3JlLmNgIG1ha2VzIHRoZSBtb3N0IHNlbnNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhhdCBmaWxlIHJldmVhbHMgYWJvdXQgaXRzIGltcGxlbWVudGF0aW9uIGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gdGhlIEZMRVhDQU4gZHJpdmVyLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgaXRzIHJvbGUsIGFuZCBob3cgaXQgaXMgZW1wbG95ZWQgdG8gcmV0cmlldmUgdGhlIGJ1cyBlcnJvciBjb3VudGVyLiBJIGFudGljaXBhdGUgaXQgd2lsbCBiZSBlc3NlbnRpYWwgZm9yIG1vbml0b3JpbmcgQ0FOIGJ1cyBoZWFsdGggd2l0aGluIHRoZSBGTEVYQ0FOIGltcGxlbWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTc5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NToyMC4yMDc0NTEyM1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1NjY5MzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhbl9nZXRfYmVycl9jb3VudGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTczND1zdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9zb2Z0cmVzZXQoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc0OC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NDk6c3RhdGljIGludCBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc2MjpzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NzU6XFx0ZXJyID0gX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBiZWMpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTg5Nj1zdGF0aWMgdm9pZCBmbGV4Y2FuX2lycV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNS1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjkxNjpcXHRcXHRfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIFxcdTAwMjZiZWMpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNy1cXHRcXHRuZXdfc3RhdGUgPSBmbHQgPT0gRkxFWENBTl9FU1JfRkxUX0NPTkZfUEFTU0lWRSA/XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYz0yMDkxPXN0YXRpYyBpbnQgZmxleGNhbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNS1cXHRwcml2LVxcdTAwM2VjYW4uZG9fc2V0X21vZGUgPSBmbGV4Y2FuX3NldF9tb2RlO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIyMDY6XFx0cHJpdi1cXHUwMDNlY2FuLmRvX2dldF9iZXJyX2NvdW50ZXIgPSBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXI7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNy1cXHRwcml2LVxcdTAwM2VjYW4uY3RybG1vZGVfc3VwcG9ydGVkID0gQ0FOX0NUUkxNT0RFX0xPT1BCQUNLIHxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDU6MjAuMjUyMDUyNDI5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjM2NDA3ODYzNDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hhYmlsaXR5IGFuZCBGbGV4Q0FOIG9uIEFNRDY0KipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcmVhY2hhYmlsaXR5IHF1ZXN0aW9uLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMgd2hldGhlciBvciBub3Qgd2UgY2FuIHJlbGlhYmx5IHByb2JlIHRoZSBGbGV4Q0FOIGhhcmR3YXJlIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IEdvb2dsZSBDb21wdXRlIEVuZ2luZSAoR0NFKSBvciBRRU1VLiBUaGVzZSBhcmUgY29tbW9uIHRlc3RpbmcgZ3JvdW5kcywgc28gYmVpbmcgYWJsZSB0byBjb25maXJtIEZsZXhDQU4ncyBwcmVzZW5jZSB0aGVyZSBpcyBrZXkuXG5cblRoZSBpbW1lZGlhdGUgZm9jdXMgaXMgdGhlIGFtZDY0IGFyY2hpdGVjdHVyZS4gQ2FuIHdlIGdldCBGbGV4Q0FOIHdvcmtpbmcgdGhlcmU/IFRvIGRldGVybWluZSB0aGF0LCBJIG5lZWQgdG8gY2hlY2sgaG93IHRoZSBzeXN0ZW0gcmVjb2duaXplcyB0aGlzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQncyBhIHBsYXRmb3JtIGRldmljZSwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBtYXRjaCB0YWJsZSwgYGZsZXhjYW5fb2ZfbWF0Y2hgLiBJIG5lZWQgdG8gcmV2aWV3IHdoYXQgXCJjb21wYXRpYmxlIHN0cmluZ3NcIiBhcmUgcHJlc2VudCBpbiB0aGUgdGFibGUuIFRoZXNlIHN0cmluZ3MgYXJlIGdvaW5nIHRvIGJlIGtleSB0byBtYXRjaGluZyB0aGUgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk5MTQsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NToyMy44OTI4NDExNjVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3NDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwNjIsXG4gIFwiTGluZUNvdW50XCI6IDI1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwNjI6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZmxleGNhbl9vZl9tYXRjaFtdID0ge1xcbjIwNjM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14OHFtLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OHFtX2RldnR5cGVfZGF0YSwgfSxcXG4yMDY0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDhtcC1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDhtcF9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA2NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXg5My1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDkzX2RldnR5cGVfZGF0YSwgfSxcXG4yMDY2OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDk1LWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OTVfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNjc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14NnEtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9pbXg2cV9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA2ODpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXgyOC1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDI4X2RldnR5cGVfZGF0YSwgfSxcXG4yMDY5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDUzLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14MjVfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzA6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14MzUtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3MTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDI1X2RldnR5cGVfZGF0YSwgfSxcXG4yMDcyOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLHAxMDEwLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfcDEwMTBfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsdmY2MTAtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF92ZjYxMF9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3NDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxsczEwMjFhcjItZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSwgfSxcXG4yMDc1OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGx4MjE2MGFyMS1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2x4MjE2MGFfcjFfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJueHAsczMyZzItZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNm54cF9zMzJnMl9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3NzpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH0sXFxuMjA3ODpcXHR9O1xcbjIwNzk6XFx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XFxuMjA4MDpcXHRcXG4yMDgxOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGZsZXhjYW5faWRfdGFibGVbXSA9IHtcXG4yMDgyOlxcdFxcdHtcXG4yMDgzOlxcdFxcdFxcdC5uYW1lID0gXFxcImZsZXhjYW4tbWNmNTQ0MXhcXFwiLFxcbjIwODQ6XFx0XFx0XFx0LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjZmc2xfbWNmNTQ0MXhfZGV2dHlwZV9kYXRhLFxcbjIwODU6XFx0XFx0fSwge1xcbjIwODY6XFx0XFx0XFx0Lyogc2VudGluZWwgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDU6MjMuODkyOTU5OTk1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjIyMjYyODQwOTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgVGhvdWdodHMgb24gRmxleENBTioqXG5cbk9rYXksIHNvIEZsZXhDQU4uIEl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhvc2UgRnJlZXNjYWxlL05YUCBpLk1YLCBRb3JJUSwgYW5kIENvbGRGaXJlIFNvQ3MuIEkndmUgZ290IGEgZGVjZW50IGxpc3Qgb2YgY29tcGF0aWJsZSBkZXZpY2VzIGhlcmU6IGBmc2wsaW14OHFtLWZsZXhjYW5gLCBgZnNsLGlteDhtcC1mbGV4Y2FuYCwgYWxsIHRoZSB3YXkgZG93biB0byBgZmxleGNhbi1tY2Y1NDQxeGAuIFN0YW5kYXJkIHN0dWZmIGZvciB0aGVzZSBlbWJlZGRlZCBzeXN0ZW1zLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZS4uLiBjYW4gdGhpcyBhY3R1YWxseSBwcm9iZSBvbiBhbiBhbWQ2NCBzeXN0ZW0sIHJ1bm5pbmcgaW4gc29tZXRoaW5nIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IE15IGd1dCBzYXlzIHByb2JhYmx5IG5vdCBkaXJlY3RseSwgYnV0IGl0J3Mgd29ydGggY2hlY2tpbmcuIExldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IHZpcnR1YWwgZGV2aWNlcyBlbXVsYXRpbmcgYSBGbGV4Q0FOIGludGVyZmFjZSBpbiB0aG9zZSBlbnZpcm9ubWVudHMuIEFyZSB0aGVyZSBhbnkgUENJIGRldmljZXMsIFVTQiBkZXZpY2VzLCBvciBldmVuIHBsYXRmb3JtIGRldmljZSBpbnN0YW50aWF0aW9uIG1lY2hhbmlzbXMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBzaW11bGF0ZSB0aGUgRmxleENBTiBiZWhhdmlvcj9cblxuU3BlY2lmaWNhbGx5LCBpcyB0aGVyZSBhIFBDSSB3cmFwcGVyIG9mIHNvbWUgc29ydCB0aGF0IG1pZ2h0IGV4cG9zZSBGbGV4Q0FOIGZ1bmN0aW9uYWxpdHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCBzb3VyY2UuIEknbGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBwbGFjZSwgYGRyaXZlcnMvbmV0L2Nhbi9gLCBidXQgSSdsbCBhbHNvIGJyb2FkZW4gbXkgc2VhcmNoLiBJdCB3b3VsZCBiZSBhIHVzZWZ1bCBwaWVjZSBvZiBpbmZvcm1hdGlvbiB0byBrbm93IGlmIHRoZXJlIGlzIGEgd3JhcHBlciBmb3IgaXQgaW4gUUVNVS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEwMTEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTo0Ni4xNTU4MDQ0NTVaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MDAzMTQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYz0xNzk9c3RhdGljIHZvaWQgX19pbml0IHZmNjEwX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpXFxuLS1cXG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmMtNDI5LVxcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzA6XFx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMF9FTl0gPSBpbXhfY2xrX2dhdGUoXFxcImZsZXhjYW4wX2VuXFxcIiwgXFxcImlwZ19idXNcXFwiLCBDQ01fQ1NDRFIyLCAxMSk7XFxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jOjQzMTpcXHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4wXSA9IGlteF9jbGtfZ2F0ZTIoXFxcImZsZXhjYW4wXFxcIiwgXFxcImZsZXhjYW4wX2VuXFxcIiwgQ0NNX0NDR1IwLCBDQ01fQ0NHUnhfQ0duKDApKTtcXG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmM6NDMyOlxcdGNsa1tWRjYxMF9DTEtfRkxFWENBTjFfRU5dID0gaW14X2Nsa19nYXRlKFxcXCJmbGV4Y2FuMV9lblxcXCIsIFxcXCJpcGdfYnVzXFxcIiwgQ0NNX0NTQ0RSMiwgMTIpO1xcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzM6XFx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMV0gPSBpbXhfY2xrX2dhdGUyKFxcXCJmbGV4Y2FuMVxcXCIsIFxcXCJmbGV4Y2FuMV9lblxcXCIsIENDTV9DQ0dSOSwgQ0NNX0NDR1J4X0NHbig0KSk7XFxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfQ0FOX0NUVUNBTkZEKVxcdCs9IGN0dWNhbmZkL1xcbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQ0FOX0ZMRVhDQU4pXFx0Kz0gZmxleGNhbi9cXG5kcml2ZXJzL25ldC9jYW4vTWFrZWZpbGUtMjUtb2JqLSQoQ09ORklHX0NBTl9HUkNBTilcXHRcXHQrPSBncmNhbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0NBTl9GTEVYQ0FOKSArPSBmbGV4Y2FuLm9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjU6ZmxleGNhbi1vYmpzIDo9XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vTWFrZWZpbGU6NjpmbGV4Y2FuLW9ianMgKz0gZmxleGNhbi1jb3JlLm9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTo3OmZsZXhjYW4tb2JqcyArPSBmbGV4Y2FuLWV0aHRvb2wub1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMi0vL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM6Ly8gZmxleGNhbi5jIC0gRkxFWENBTiBDQU4gY29udHJvbGxlciBkcml2ZXJcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00LS8vXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjg6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nhbi9wbGF0Zm9ybS9mbGV4Y2FuLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BoeS9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM1OiNpbmNsdWRlIFxcXCJmbGV4Y2FuLmhcXFwiXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzYtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mzc6I2RlZmluZSBEUlZfTkFNRVxcdFxcdFxcdFxcXCJmbGV4Y2FuXFxcIlxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4LVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjEwLS8qIFN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZSBidWZmZXIgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTE6c3RydWN0IGZsZXhjYW5fbWIge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxMi1cXHR1MzIgY2FuX2N0cmw7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMTctLyogU3RydWN0dXJlIG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTg6c3RydWN0IGZsZXhjYW5fcmVncyB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjE5LVxcdHUzMiBtY3I7XFx0XFx0LyogMHgwMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjkzLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NDpzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgZmxleGNhbl9yZWdzKSA9PSAgMHg0ICogMTggKyAweGZiOCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9tY2Y1NDQxeF9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk3LVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMwMi1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfcDEwMTBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMwNC1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19CUk9LRU5fV0VSUl9TVEFURSB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTAtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDI1X2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTItXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMxODpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXgyOF9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE5LVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMyMy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14NnFfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMyNS1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzMxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg4cW1fZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMzMy1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzM5LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0MDpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg4bXBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0MS1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzQ4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5M19kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzUwLVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTctXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDk1X2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTktXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozNjY6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfdmY2MTBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2Ny1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzczLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM3NDpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNzUtXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4MC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozODE6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfbHgyMTYwYV9yMV9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgyLVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zODktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgbnhwX3MzMmcyX2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zOTEtXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM5OS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fYml0dGltaW5nX2NvbnN0ID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQwMS1cXHQubmFtZSA9IERSVl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDExLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQxMjpzdGF0aWMgY29uc3Qgc3RydWN0IGNhbl9iaXR0aW1pbmdfY29uc3QgZmxleGNhbl9mZF9iaXR0aW1pbmdfY29uc3QgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDEzLVxcdC5uYW1lID0gRFJWX05BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FuX2JpdHRpbWluZ19jb25zdCBmbGV4Y2FuX2ZkX2RhdGFfYml0dGltaW5nX2NvbnN0ID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQyNS1cXHQubmFtZSA9IERSVl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDQ4LSAqL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ0OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfYmUodm9pZCBfX2lvbWVtICphZGRyKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDU0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2JlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDU4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ1OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfbGUodm9pZCBfX2lvbWVtICphZGRyKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NjMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2xlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NjUte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDY4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ2OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fbWIgX19pb21lbSAqZmxleGNhbl9nZXRfbWIoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NzAtXFx0XFx0XFx0XFx0XFx0XFx0IHU4IG1iX2luZGV4KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDgzLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ4NDpcXHRyZXR1cm4gKHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODUtXFx0XFx0KFxcdTAwMjZwcml2LVxcdTAwM2VyZWdzLVxcdTAwM2VtYltiYW5rXVtwcml2LVxcdTAwM2VtYl9zaXplICogbWJfaW5kZXhdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0ODg6c3RhdGljIGludCBmbGV4Y2FuX2xvd19wb3dlcl9lbnRlcl9hY2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODkte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ5MDpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ5MS1cXHR1bnNpZ25lZCBpbnQgdGltZW91dCA9IEZMRVhDQU5fVElNRU9VVF9VUyAvIDEwO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUwMjpzdGF0aWMgaW50IGZsZXhjYW5fbG93X3Bvd2VyX2V4aXRfYWNrKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAzLXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MDQ6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MDUtXFx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxNS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MTY6c3RhdGljIHZvaWQgZmxleGNhbl9lbmFibGVfd2FrZXVwX2lycShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MTcte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxODpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxOS1cXHR1MzIgcmVnX21jcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MzE6c3RhdGljIGludCBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2NmdyhzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCBib29sIGVuYWJsZWQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU0Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NDg6c3RhdGljIGlubGluZSBpbnQgZmxleGNhbl9lbnRlcl9zdG9wX21vZGUoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NDkte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU1MDpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU1MS1cXHR1MzIgcmVnX21jcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU1OS1cXHRpZiAocHJpdi1cXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDRlcpIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NjA6XFx0XFx0cmV0ID0gZmxleGNhbl9zdG9wX21vZGVfZW5hYmxlX3NjZncocHJpdiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTYxLVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3NTpcXHRyZXR1cm4gZmxleGNhbl9sb3dfcG93ZXJfZW50ZXJfYWNrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU3Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3ODpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX2V4aXRfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1ODA6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01ODEtXFx0dTMyIHJlZ19tY3I7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01ODktXFx0aWYgKHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ0ZXKSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTkwOlxcdFxcdHJldCA9IGZsZXhjYW5fc3RvcF9tb2RlX2VuYWJsZV9zY2Z3KHByaXYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01OTEtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDEtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjAyOlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDMtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MDU6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fZXJyb3JfaXJxX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNi17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjA3OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjA4LVxcdHUzMiByZWdfY3RybCA9IChwcml2LVxcdTAwM2VyZWdfY3RybF9kZWZhdWx0IHwgRkxFWENBTl9DVFJMX0VSUl9NU0spO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjEyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYxMzpzdGF0aWMgaW5saW5lIHZvaWQgZmxleGNhbl9lcnJvcl9pcnFfZGlzYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYxNC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjE1OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjE2LVxcdHUzMiByZWdfY3RybCA9IChwcml2LVxcdTAwM2VyZWdfY3RybF9kZWZhdWx0IFxcdTAwMjYgfkZMRVhDQU5fQ1RSTF9FUlJfTVNLKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MjE6c3RhdGljIGludCBmbGV4Y2FuX2Nsa3NfZW5hYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYzOS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2NDA6c3RhdGljIHZvaWQgZmxleGNhbl9jbGtzX2Rpc2FibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjQ1LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY0NjpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX3RyYW5zY2VpdmVyX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTUtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjU2OnN0YXRpYyBpbmxpbmUgaW50IGZsZXhjYW5fdHJhbnNjZWl2ZXJfZGlzYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NjUtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjY2OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX2VuYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2Ny17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjY4OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjY5LVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzQtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njc1OlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzYtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Nzg6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZGlzYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3OS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjgwOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjgxLVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODYtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njg3OlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9lbnRlcl9hY2socHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjg4LX1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkwOnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX2ZyZWV6ZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY5MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkyOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjkzLVxcdHVuc2lnbmVkIGludCB0aW1lb3V0O1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjcxNTpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF91bmZyZWV6ZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTcxNi17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE3OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE4LVxcdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM0OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3NvZnRyZXNldChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTczNS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM2OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzM3LVxcdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NDgtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzQ5OnN0YXRpYyBpbnQgX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTAtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTEte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc1MjpcXHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NTM6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTQtXFx0dTMyIHJlZyA9IHByaXYtXFx1MDAzZXJlYWQoXFx1MDAyNnJlZ3MtXFx1MDAzZWVjcik7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjEtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzYyOnN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYzLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2NC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzY1OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2Ni1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzc0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc3NTpcXHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzc2LVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc4MjpzdGF0aWMgbmV0ZGV2X3R4X3QgZmxleGNhbl9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgzLXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3ODQ6XFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzg1LVxcdHN0cnVjdCBjYW5mZF9mcmFtZSAqY2ZkID0gKHN0cnVjdCBjYW5mZF9mcmFtZSAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTgzMy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4MzQ6c3RhdGljIHZvaWQgZmxleGNhbl9pcnFfYnVzX2VycihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzUte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjgzNjpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4Mzc6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzgtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTY6c3RhdGljIHZvaWQgZmxleGNhbl9pcnFfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJlZ19lc3IpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtODk3LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTg6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODk5OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTAwLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05MTUtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5MTY6XFx0XFx0X19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBcXHUwMDI2YmVjKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05MTctXFx0XFx0bmV3X3N0YXRlID0gZmx0ID09IEZMRVhDQU5fRVNSX0ZMVF9DT05GX1BBU1NJVkUgP1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk0MzpzdGF0aWMgaW5saW5lIHU2NCBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIHZvaWQgX19pb21lbSAqYWRkciwgdTY0IG1hc2spXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk1NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NTU6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fd3JpdGU2NChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCB1NjQgdmFsLCB2b2lkIF9faW9tZW0gKmFkZHIpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2Mi1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NjM6c3RhdGljIGlubGluZSB1NjQgZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2NC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTY1OlxcdHJldHVybiBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHByaXYsIFxcdTAwMjZwcml2LVxcdTAwM2VyZWdzLVxcdTAwM2VpZmxhZzEsIHByaXYtXFx1MDAzZXJ4X21hc2spO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk2ODpzdGF0aWMgaW5saW5lIHU2NCBmbGV4Y2FuX3JlYWRfcmVnX2lmbGFnX3R4KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NzA6XFx0cmV0dXJuIGZsZXhjYW5fcmVhZDY0X21hc2socHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZXJlZ3MtXFx1MDAzZWlmbGFnMSwgcHJpdi1cXHUwMDNldHhfbWFzayk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTcxLX1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzItXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTczOnN0YXRpYyBpbmxpbmUgc3RydWN0IGZsZXhjYW5fcHJpdiAqcnhfb2ZmbG9hZF90b19wcml2KHN0cnVjdCBjYW5fcnhfb2ZmbG9hZCAqb2ZmbG9hZClcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzQte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3NTpcXHRyZXR1cm4gY29udGFpbmVyX29mKG9mZmxvYWQsIHN0cnVjdCBmbGV4Y2FuX3ByaXYsIG9mZmxvYWQpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTc3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3ODpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmZsZXhjYW5fbWFpbGJveF9yZWFkKHN0cnVjdCBjYW5fcnhfb2ZmbG9hZCAqb2ZmbG9hZCxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzktXFx0XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBuLCB1MzIgKnRpbWVzdGFtcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTgyOlxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSByeF9vZmZsb2FkX3RvX3ByaXYob2ZmbG9hZCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTgzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTg0OlxcdHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKm1iO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4NS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTg5LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk5MDpcXHRtYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIG4pO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNjItXFx0aWYgKHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1VTRV9SWF9NQUlMQk9YKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwNjM6XFx0XFx0ZmxleGNhbl93cml0ZTY0KHByaXYsIEZMRVhDQU5fSUZMQUdfTUIobiksIFxcdTAwMjZyZWdzLVxcdTAwM2VpZmxhZzEpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNjQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA3NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBmbGV4Y2FuX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc5LVxcdHN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9IFxcdTAwMjZkZXYtXFx1MDAzZXN0YXRzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwODA6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MTpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwODItXFx0aXJxcmV0dXJuX3QgaGFuZGxlZCA9IElSUV9OT05FO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA5MS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDkyOlxcdFxcdHdoaWxlICgocmVnX2lmbGFnX3J4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChwcml2KSkpIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDkzLVxcdFxcdFxcdGhhbmRsZWQgPSBJUlFfSEFORExFRDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTctXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTExODpcXHRyZWdfaWZsYWdfdHggPSBmbGV4Y2FuX3JlYWRfcmVnX2lmbGFnX3R4KHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTktXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTMyLVxcdFxcdFxcdCAgICBcXHUwMDI2cHJpdi1cXHUwMDNldHhfbWItXFx1MDAzZWNhbl9jdHJsKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTMzOlxcdFxcdGZsZXhjYW5fd3JpdGU2NChwcml2LCBwcml2LVxcdTAwM2V0eF9tYXNrLCBcXHUwMDI2cmVncy1cXHUwMDNlaWZsYWcxKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTM0LVxcdFxcdG5ldGlmX3dha2VfcXVldWUoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNDgtXFx0XFx0XFx0XFx0XFx0ICAgRkxFWENBTl9RVUlSS19CUk9LRU5fUEVSUl9TVEFURSkpKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjExNDk6XFx0XFx0ZmxleGNhbl9pcnFfc3RhdGUoZGV2LCByZWdfZXNyKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1My1cXHQgICAgKHByaXYtXFx1MDAzZWNhbi5jdHJsbW9kZSBcXHUwMDI2IENBTl9DVFJMTU9ERV9CRVJSX1JFUE9SVElORykpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE1NDpcXHRcXHRmbGV4Y2FuX2lycV9idXNfZXJyKGRldiwgcmVnX2Vzcik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzQtXFx0XFx0XFx0ICAgIEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE3NTpcXHRcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9lbmFibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE3Ni1cXHRcXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE3NzpcXHRcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9kaXNhYmxlKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzgtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTgwLVxcdFxcdGNhc2UgQ0FOX1NUQVRFX0VSUk9SX1dBUk5JTkc6XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE4MTpcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9lbmFibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Mi1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExODUtXFx0XFx0Y2FzZSBDQU5fU1RBVEVfQlVTX09GRjpcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTg2OlxcdFxcdFxcdGZsZXhjYW5fZXJyb3JfaXJxX2Rpc2FibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Ny1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExOTktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwMDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMDEte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEyMDI6XFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwMy1cXHRjb25zdCBzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqYnQgPSBcXHUwMDI2cHJpdi1cXHUwMDNlY2FuLmJpdHRpbWluZztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjA0OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwNS1cXHR1MzIgcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIyNy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjI4OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMjI5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMwOlxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMzEtXFx0c3RydWN0IGNhbl9iaXR0aW1pbmcgKmJ0ID0gXFx1MDAyNnByaXYtXFx1MDAzZWNhbi5iaXR0aW1pbmc7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzMi1cXHRzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqZGJ0ID0gXFx1MDAyNnByaXYtXFx1MDAzZWNhbi5mZC5kYXRhX2JpdHRpbWluZztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzNC1cXHR1MzIgcmVnX2NidCwgcmVnX2ZkY3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzMzMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTMzNDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzM1LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM2OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzMzc6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzM4LVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU0LVxcdGlmIChwcml2LVxcdTAwM2VjYW4uY3RybG1vZGVfc3VwcG9ydGVkIFxcdTAwMjYgQ0FOX0NUUkxNT0RFX0ZEKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzNTU6XFx0XFx0cmV0dXJuIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzU3OlxcdFxcdHJldHVybiBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTgtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3JhbV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM2MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MjpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzYzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM2NC1cXHR1MzIgcmVnX2N0cmwyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM4Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzg3OnN0YXRpYyBpbnQgZmxleGNhbl9yeF9vZmZsb2FkX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM4OC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM4OTpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzkwLVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzkyLVxcdGlmIChwcml2LVxcdTAwM2VjYW4uY3RybG1vZGUgXFx1MDAyNiBDQU5fQ1RSTE1PREVfRkQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM5MzpcXHRcXHRwcml2LVxcdTAwM2VtYl9zaXplID0gc2l6ZW9mKHN0cnVjdCBmbGV4Y2FuX21iKSArIENBTkZEX01BWF9ETEVOO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTQtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzOTU6XFx0XFx0cHJpdi1cXHUwMDNlbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmxleGNhbl9tYikgKyBDQU5fTUFYX0RMRU47XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDQtXFx0XFx0cHJpdi1cXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0MDU6XFx0XFx0XFx0ZmxleGNhbl9nZXRfbWIocHJpdiwgRkxFWENBTl9UWF9NQl9SRVNFUlZFRF9SWF9NQUlMQk9YKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDA2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDA3LVxcdFxcdHByaXYtXFx1MDAzZXR4X21iX3Jlc2VydmVkID1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDA4OlxcdFxcdFxcdGZsZXhjYW5fZ2V0X21iKHByaXYsIEZMRVhDQU5fVFhfTUJfUkVTRVJWRURfUlhfRklGTyk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwOS1cXHRwcml2LVxcdTAwM2V0eF9tYl9pZHggPSBwcml2LVxcdTAwM2VtYl9jb3VudCAtIDE7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQxMDpcXHRwcml2LVxcdTAwM2V0eF9tYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIHByaXYtXFx1MDAzZXR4X21iX2lkeCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQxMS1cXHRwcml2LVxcdTAwM2V0eF9tYXNrID0gRkxFWENBTl9JRkxBR19NQihwcml2LVxcdTAwM2V0eF9tYl9pZHgpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTItXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQxMzpcXHRwcml2LVxcdTAwM2VvZmZsb2FkLm1haWxib3hfcmVhZCA9IGZsZXhjYW5fbWFpbGJveF9yZWFkO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTQtXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDMxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0MzI6c3RhdGljIHZvaWQgZmxleGNhbl9jaGlwX2ludGVycnVwdHNfZW5hYmxlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQzMy17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNDpcXHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDM1OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQzNi1cXHR1NjQgcmVnX2ltYXNrO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ0NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ2OnN0YXRpYyB2b2lkIGZsZXhjYW5fY2hpcF9pbnRlcnJ1cHRzX2Rpc2FibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDQ3LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ4OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NDk6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDUwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ1Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDU3Oi8qIGZsZXhjYW5fY2hpcF9zdGFydFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NTgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjEtICovXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2MjpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjMte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NjQ6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NTpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjYtXFx0dTMyIHJlZ19tY3IsIHJlZ19jdHJsLCByZWdfY3RybDIsIHJlZ19tZWNyO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjctXFx0aW50IGVyciwgaTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDY4OlxcdHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKm1iO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ3MC1cXHQvKiBlbmFibGUgbW9kdWxlICovXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3MTpcXHRlcnIgPSBmbGV4Y2FuX2NoaXBfZW5hYmxlKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NzItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NzUtXFx0Lyogc29mdCByZXNldCAqL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NzY6XFx0ZXJyID0gZmxleGNhbl9jaGlwX3NvZnRyZXNldChwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgwLVxcdGlmIChwcml2LVxcdTAwM2VkZXZ0eXBlX2RhdGEucXVpcmtzIFxcdTAwMjYgRkxFWENBTl9RVUlSS19TVVBQT1JUX0VDQylcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDgxOlxcdFxcdGZsZXhjYW5fcmFtX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODM6XFx0ZmxleGNhbl9zZXRfYml0dGltaW5nKGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDg1LVxcdC8qIHNldCBmcmVlemUsIGhhbHQgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDg2OlxcdGVyciA9IGZsZXhjYW5fY2hpcF9mcmVlemUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4Ny1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTUxOC1cXHQgKiAgICAgICBvZiBhIHRyYW5zbWl0dGVkIG1lc3NhZ2UuIFRoaXMgaXMgbm90IGRvY3VtZW50ZWQgaW5cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNTE5OlxcdCAqICAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgZmxleGNhbiBibG9jayBndWlkZS5cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNTIwLVxcdCAqXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjA2LVxcdFxcdGZvciAoaSA9IHByaXYtXFx1MDAzZW9mZmxvYWQubWJfZmlyc3Q7IGkgXFx1MDAzYz0gcHJpdi1cXHUwMDNlb2ZmbG9hZC5tYl9sYXN0OyBpKyspIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjA3OlxcdFxcdFxcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYwOC1cXHRcXHRcXHRwcml2LVxcdTAwM2V3cml0ZShGTEVYQ0FOX01CX0NPREVfUlhfRU1QVFksXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjEzLVxcdFxcdGZvciAoaSA9IEZMRVhDQU5fVFhfTUJfUkVTRVJWRURfUlhfRklGTzsgaSBcXHUwMDNjIHByaXYtXFx1MDAzZW1iX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjE0OlxcdFxcdFxcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYxNS1cXHRcXHRcXHRwcml2LVxcdTAwM2V3cml0ZShGTEVYQ0FOX01CX0NPREVfUlhfSU5BQ1RJVkUsXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjc5LVxcdC8qIHN5bmNocm9uaXplIHdpdGggdGhlIGNhbiBidXMgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjgwOlxcdGVyciA9IGZsZXhjYW5fY2hpcF91bmZyZWV6ZShwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjkyLSBvdXRfY2hpcF9kaXNhYmxlOlxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE2OTM6XFx0ZmxleGNhbl9jaGlwX2Rpc2FibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5NC1cXHRyZXR1cm4gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjk3Oi8qIF9fZmxleGNhbl9jaGlwX3N0b3BcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjk4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNzAwLSAqL1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTo0Ni44OTU4NDI0NjRaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzUyMTk1OTI1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRmxleENBTiBEcml2ZXIgUHJvYmUgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBwcm9iZSB0aGUgZmxleGNhbiBkcml2ZXIgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9uIGFtZDY0LiBBIHF1aWNrIHRob3VnaHQ6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBGbGV4Q0FOPyBJIG5lZWQgdG8gY2hlY2suXG5cbkFscmlnaHQsIGEgcXVpY2sgUUVNVSByZWZlcmVuY2UgcmV2ZWFscyBpdCBkb2Vzbid0LiBJdCBvZmZlcnMga3Zhc2VyX3BjaSwgbWlvZTM2ODBfcGNpLCBwY20zNjgwX3BjaSDigJMgYWxsIFNKQTEwMDAgUENJIENBTiBjb250cm9sbGVycyDigJMgYW5kIGNhbl9ob3N0X3NvY2tldGNhbiwgYnV0IG5vIEZsZXhDQU4uIEhtbS4uLiB3YWl0LCBpcyB0aGVyZSBzb21lIHg4NiBzcGVjaWZpYyBtYWdpYyBpbiBRRU1VIHRoYXQgd291bGQgbGV0IG1lIGVtdWxhdGUgYSBmbGV4Y2FuPyBObywgdGhhdCdzIG5vdCByaWdodC4gRmxleENBTiBpcyBhbiBOWFAvRnJlZXNjYWxlIFNvQyBwZXJpcGhlcmFsLCBpbnRlbmRlZCBmb3IgaW14MjUvaW14Ni9pbXg4L3MzMmcvZXRjLiB0eXBlIHN5c3RlbXMuXG5cblNvLCBpZiBJIGNhbid0IGVtdWxhdGUgRmxleENBTiwgY2FuIEkgYXQgbGVhc3QgaW5zdGFudGlhdGUgaXQgZHluYW1pY2FsbHksIHNvbWVob3c/IExldCdzIGRlbHZlIGludG8gYGZsZXhjYW5fcHJvYmVgLiBXaGF0IGFyZSBpdHMgcmVxdWlyZW1lbnRzPyBJIG5lZWQgdG8gc2VlIHdoYXQgSSBoYXZlIHRvIHNhdGlzZnkgaW4gb3JkZXIgdG8gZXZlbiB0cmlnZ2VyIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDk5NiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NjoyMi4xMTU0Mzc4NzJaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0NzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwOTAsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwOTA6XFx0XFxuMjA5MTpcXHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4yMDkyOlxcdHtcXG4yMDkzOlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSAqZGV2dHlwZV9kYXRhO1xcbjIwOTQ6XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4yMDk1OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXY7XFxuMjA5NjpcXHRcXHRzdHJ1Y3QgcmVndWxhdG9yICpyZWdfeGNlaXZlcjtcXG4yMDk3OlxcdFxcdHN0cnVjdCBwaHkgKnRyYW5zY2VpdmVyO1xcbjIwOTg6XFx0XFx0c3RydWN0IGNsayAqY2xrX2lwZyA9IE5VTEwsICpjbGtfcGVyID0gTlVMTDtcXG4yMDk5OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncztcXG4yMTAwOlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3BsYXRmb3JtX2RhdGEgKnBkYXRhO1xcbjIxMDE6XFx0XFx0aW50IGVyciwgaXJxO1xcbjIxMDI6XFx0XFx0dTggY2xrX3NyYyA9IDE7XFxuMjEwMzpcXHRcXHR1MzIgY2xvY2tfZnJlcSA9IDA7XFxuMjEwNDpcXHRcXG4yMTA1OlxcdFxcdHJlZ194Y2VpdmVyID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJ4Y2VpdmVyXFxcIik7XFxuMjEwNjpcXHRcXHRpZiAoUFRSX0VSUihyZWdfeGNlaXZlcikgPT0gLUVQUk9CRV9ERUZFUilcXG4yMTA3OlxcdFxcdFxcdHJldHVybiAtRVBST0JFX0RFRkVSO1xcbjIxMDg6XFx0XFx0ZWxzZSBpZiAoUFRSX0VSUihyZWdfeGNlaXZlcikgPT0gLUVOT0RFVilcXG4yMTA5OlxcdFxcdFxcdHJlZ194Y2VpdmVyID0gTlVMTDtcXG4yMTEwOlxcdFxcdGVsc2UgaWYgKElTX0VSUihyZWdfeGNlaXZlcikpXFxuMjExMTpcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihyZWdfeGNlaXZlcik7XFxuMjExMjpcXHRcXG4yMTEzOlxcdFxcdHRyYW5zY2VpdmVyID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIE5VTEwpO1xcbjIxMTQ6XFx0XFx0aWYgKElTX0VSUih0cmFuc2NlaXZlcikpXFxuMjExNTpcXHRcXHRcXHRyZXR1cm4gZGV2X2Vycl9wcm9iZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBQVFJfRVJSKHRyYW5zY2VpdmVyKSxcXG4yMTE2OlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBnZXQgcGh5XFxcXG5cXFwiKTtcXG4yMTE3OlxcdFxcbjIxMTg6XFx0XFx0aWYgKHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlKSB7XFxuMjExOTpcXHRcXHRcXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSxcXG4yMTIwOlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcImNsb2NrLWZyZXF1ZW5jeVxcXCIsIFxcdTAwMjZjbG9ja19mcmVxKTtcXG4yMTIxOlxcdFxcdFxcdG9mX3Byb3BlcnR5X3JlYWRfdTgocGRldi1cXHUwMDNlZGV2Lm9mX25vZGUsXFxuMjEyMjpcXHRcXHRcXHRcXHRcXHQgICAgXFxcImZzbCxjbGstc291cmNlXFxcIiwgXFx1MDAyNmNsa19zcmMpO1xcbjIxMjM6XFx0XFx0fSBlbHNlIHtcXG4yMTI0OlxcdFxcdFxcdHBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4yMTI1OlxcdFxcdFxcdGlmIChwZGF0YSkge1xcbjIxMjY6XFx0XFx0XFx0XFx0Y2xvY2tfZnJlcSA9IHBkYXRhLVxcdTAwM2VjbG9ja19mcmVxdWVuY3k7XFxuMjEyNzpcXHRcXHRcXHRcXHRjbGtfc3JjID0gcGRhdGEtXFx1MDAzZWNsa19zcmM7XFxuMjEyODpcXHRcXHRcXHR9XFxuMjEyOTpcXHRcXHR9XFxuMjEzMDpcXHRcXG4yMTMxOlxcdFxcdGlmICghY2xvY2tfZnJlcSkge1xcbjIxMzI6XFx0XFx0XFx0Y2xrX2lwZyA9IGRldm1fY2xrX2dldChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiaXBnXFxcIik7XFxuMjEzMzpcXHRcXHRcXHRpZiAoSVNfRVJSKGNsa19pcGcpKSB7XFxuMjEzNDpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJubyBpcGcgY2xvY2sgZGVmaW5lZFxcXFxuXFxcIik7XFxuMjEzNTpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihjbGtfaXBnKTtcXG4yMTM2OlxcdFxcdFxcdH1cXG4yMTM3OlxcdFxcbjIxMzg6XFx0XFx0XFx0Y2xrX3BlciA9IGRldm1fY2xrX2dldChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwicGVyXFxcIik7XFxuMjEzOTpcXHRcXHRcXHRpZiAoSVNfRVJSKGNsa19wZXIpKSB7XFxuMjE0MDpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJubyBwZXIgY2xvY2sgZGVmaW5lZFxcXFxuXFxcIik7XFxuMjE0MTpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihjbGtfcGVyKTtcXG4yMTQyOlxcdFxcdFxcdH1cXG4yMTQzOlxcdFxcdFxcdGNsb2NrX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrX3Blcik7XFxuMjE0NDpcXHRcXHR9XFxuMjE0NTpcXHRcXG4yMTQ2OlxcdFxcdGlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7XFxuMjE0NzpcXHRcXHRpZiAoaXJxIFxcdTAwM2MgMClcXG4yMTQ4OlxcdFxcdFxcdHJldHVybiBpcnE7XFxuMjE0OTpcXHRcXG4yMTUwOlxcdFxcdHJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuMjE1MTpcXHRcXHRpZiAoSVNfRVJSKHJlZ3MpKVxcbjIxNTI6XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocmVncyk7XFxuMjE1MzpcXHRcXG4yMTU0OlxcdFxcdGRldnR5cGVfZGF0YSA9IGRldmljZV9nZXRfbWF0Y2hfZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4yMTU1OlxcdFxcbjIxNTY6XFx0XFx0aWYgKChkZXZ0eXBlX2RhdGEtXFx1MDAzZXF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU1VQUE9SVF9GRCkgXFx1MDAyNlxcdTAwMjZcXG4yMTU3OlxcdFxcdCAgICAhKChkZXZ0eXBlX2RhdGEtXFx1MDAzZXF1aXJrcyBcXHUwMDI2XFxuMjE1ODpcXHRcXHQgICAgICAgKEZMRVhDQU5fUVVJUktfVVNFX1JYX01BSUxCT1ggfFxcbjIxNTk6XFx0XFx0XFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1ggfFxcbjIxNjA6XFx0XFx0XFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSIHxcXG4yMTYxOlxcdFxcdFxcdEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9GSUZPKSkgPT1cXG4yMTYyOlxcdFxcdCAgICAgIChGTEVYQ0FOX1FVSVJLX1VTRV9SWF9NQUlMQk9YIHxcXG4yMTYzOlxcdFxcdCAgICAgICBGTEVYQ0FOX1FVSVJLX1NVUFBPUlRfUlhfTUFJTEJPWCB8XFxuMjE2NDpcXHRcXHQgICAgICAgRkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSKSkpIHtcXG4yMTY1OlxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIkNBTi1GRCBtb2RlIGRvZXNuJ3Qgd29yayBpbiBSWC1GSUZPIG1vZGUhXFxcXG5cXFwiKTtcXG4yMTY2OlxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjIxNjc6XFx0XFx0fVxcbjIxNjg6XFx0XFxuMjE2OTpcXHRcXHRpZiAoKGRldnR5cGVfZGF0YS1cXHUwMDNlcXVpcmtzIFxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6MjIuMTE1NTc1MzEyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjIyNTg4OTE0Njc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEZsZXhDQU4gRHJpdmVyIGFuZCBTeXprYWxsZXIncyBUZXN0aW5nIENhcGFiaWxpdGllcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgZmxleGNhbmAgZHJpdmVyLCBhbmQgaXQncyBmbGFnZ2VkIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0IG5lZWRzIHNwZWNpZmljIHBsYXRmb3JtLWxldmVsIHJlc291cmNlcy4gSSBzZWUgaXQncyB1c2luZyBgZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlYCwgYHBsYXRmb3JtX2dldF9pcnFgLCBhbmQgYGRldmljZV9nZXRfbWF0Y2hfZGF0YWAuIFRoYXQgbWVhbnMgaXQncyBleHBlY3RpbmcgYSBEZXZpY2UgVHJlZSAoYG9mX25vZGVgKSBvciBwbGF0Zm9ybSBkYXRhLCBhbG9uZyB3aXRoIGFuIEkvTyBtZW1vcnkgcmVzb3VyY2UgYW5kIGFuIGludGVycnVwdC5cblxuVGhlIHByb2JsZW0gaGl0cyBtZSBoYXJkIHdoZW4gSSBjb25zaWRlciBhbiB4ODYvYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhlc2UgZG9uJ3QgdHlwaWNhbGx5IGhhdmUgdGhlIERldmljZSBUcmVlIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHN0YW5kYXJkIGZvciB0aG9zZSBGcmVlc2NhbGUgaS5NWCBvciBRb3JJUSBzeXN0ZW1zLiBUaGF0IGltbWVkaWF0ZWx5IGludHJvZHVjZXMgYSBodWdlIGh1cmRsZS5cblxuV2FpdCwgY291bGQgc3l6a2FsbGVyIHNvbWVob3cgaW5zdGFudGlhdGUgdGhpcyB0aHJvdWdoIHN5c2ZzIG9yIGNvbmZpZ2ZzPyBObywgdGhhdCdzIG5vdCBmZWFzaWJsZS4gU3RhbmRhcmQgcGxhdGZvcm0gZGV2aWNlcyBjYW4ndCBiZSBwcm9iZWQgZnJvbSB1c2Vyc3BhY2Ugd2l0aG91dCBkZXZpY2UgdHJlZSBvdmVybGF5cywgd2hpY2ggcmVxdWlyZSBgQ09ORklHX09GX0NPTkZJR0ZTYCBhbmQgc28gb24uIEV2ZW4gaWYgdGhvc2Ugd2VyZSBwcmVzZW50LCB0aGUgY3J1Y2lhbCBpc3N1ZSBpcyB0aGUgbWVtb3J5LW1hcHBlZCByZWdpc3RlcnMgYXQgU29DIHBoeXNpY2FsIGFkZHJlc3NlcyB3b24ndCBleGlzdCBpbiB4ODYgUUVNVS9HQ0UuIFRoZSBwcm9iZSB3b3VsZCBlaXRoZXIgZmFpbCBvciwgd29yc2UsIGNyYXNoIGJlY2F1c2Ugb2YgYXR0ZW1wdGVkIHBoeXNpY2FsIG1lbW9yeSBhY2Nlc3MuXG5cbk9rYXksIHNvIHN5emthbGxlciBjYW4ndCBkaXJlY3RseSBwcm9iZSBwbGF0Zm9ybSBkZXZpY2VzIG9yIENBTiBkZXZpY2VzIGluIHRoZSB0cmFkaXRpb25hbCBzZW5zZSwgYXQgbGVhc3Qgbm90IHRoaXMgb25lLiBIb3cgdGhlbiBkb2VzIHN5emthbGxlciB0ZXN0IENBTiBkZXZpY2VzPyBJdCBtdXN0IGhhdmUgYSB3b3JrYXJvdW5kLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzLlxuXG5SaWdodCwgSSdtIHRoaW5raW5nLCBJJ3ZlIGdvdCBpdC4gU3l6a2FsbGVyIGxldmVyYWdlcyB0aGVzZSB2YXJpb3VzIHZpcnR1YWwgYW5kIGVtdWxhdGVkIGludGVyZmFjZXMsIGZvciB0ZXN0aW5nIENBTjogYHZjYW5gLCBgc2xjYW5gLCBgdnhjYW5gLCBkdW1teS9uZXRsaW5rIGludGVyZmFjZXMsIFVTQiBDQU4gYWRhcHRlcnMgdGhyb3VnaCBzeXprYWxsZXIncyBVU0IgZW11bGF0aW9uICh1c2luZyBgc3l6X3VzYl9jb25uZWN0YCksIGFuZCwgbXVjaCBsZXNzIGZyZXF1ZW50bHksIFBDSSBDQU4gYWRhcHRlcnMgaWYgUUVNVSBlbXVsYXRlcyB0aGVtLlxuXG5CdXQgKndhaXQqLCBnb2luZyBiYWNrIHRvIEZsZXhDQU4sIGRvZXMgKml0KiBoYXZlICphbnkqIG9mIHRob3NlIFVTQiBvciB2aXJ0dWFsIGZyb250LWVuZHMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZT8gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGFuZCBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nIHRoYXQgY291bGQgYmUgcmVsZXZhbnQuIFRpbWUgdG8gd2lkZW4gdGhlIHNlYXJjaCBiZXlvbmQganVzdCB0aGUgYGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuYCBkaXJlY3RvcnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBiZWluZyB0ZXN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2ODYwLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NDQuNzA0NDkyMzc4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDc0MTgxNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvY2FuL3BsYXRmb3JtL2ZsZXhjYW4uaC0xNy1cXG5pbmNsdWRlL2xpbnV4L2Nhbi9wbGF0Zm9ybS9mbGV4Y2FuLmg6MTg6c3RydWN0IGZsZXhjYW5fcGxhdGZvcm1fZGF0YSB7XFxuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE5LVxcdHUzMiBjbG9ja19mcmVxdWVuY3k7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ2OjQ0Ljg1MTkxNzIwNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo0MzQxMjE5NjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIGl0OlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgQ0FOIEJ1cyBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYGZsZXhjYW5gIGRyaXZlciBpcyBiZWluZyB1c2VkIGFuZCBpbnRlZ3JhdGVkIGF0IHRoZSBhcmNoaXRlY3R1cmFsIGxldmVsLiBJJ2xsIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYWxsIGluc3RhbmNlcyBvZiBcImZsZXhjYW5cIiB3aXRoaW4gdGhlIGBhcmNoL2AgZGlyZWN0b3J5LiBUaGF0J3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB3aGVuIEknbSB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIGxvdy1sZXZlbCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgbGlrZSB0aGlzLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgcmVmZXJlbmNlcyBpbiBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlLCBkZXZpY2UgdHJlZSBiaW5kaW5ncywgYW5kIHBvc3NpYmx5IHNvbWUgY29yZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcy4gVGhlIGdvYWwgaXMgdG8gc2VlIGhvdyBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcyBhcmUgaW50ZXJmYWNpbmcgd2l0aCB0aGUgYGZsZXhjYW5gIGNvbnRyb2xsZXIgYW5kIHdoYXQgYWJzdHJhY3Rpb25zLCBpZiBhbnksIGFyZSBpbiBwbGF5LiBJIGFtIGxvb2tpbmcgZm9yIHRoZSB1c2FnZSBhbmQgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5MjEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0Njo0OS4xOTMxMzkyMzFaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNjQ2NTcyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNTkxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTIyPVxcdFxcdFxcdGNhbjE6IGNhbkA0M2Y4ODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEyMzpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2ktMTI0LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDQzZjg4MDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTMxPVxcdFxcdFxcdGNhbjI6IGNhbkA0M2Y4YzAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEzMjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2ktMTMzLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDQzZjhjMDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2k9MzA0PVxcdFxcdFxcdGNhbjE6IGNhbkA1M2ZlNDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpOjMwNTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgzNS1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2ktMzA2LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmU0MDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2k9MzEzPVxcdFxcdFxcdGNhbjI6IGNhbkA1M2ZlODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpOjMxNDpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgzNS1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2ktMzE1LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmU4MDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2k9NTcxPVxcdFxcdFxcdGNhbjE6IGNhbkA1M2ZjODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpOjU3MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXg1My1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2ktNTczLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmM4MDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2k9NTgxPVxcdFxcdFxcdGNhbjI6IGNhbkA1M2ZjYzAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpOjU4MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXg1My1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2ktNTgzLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmNjMDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cz01Nj1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNTctXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czo1ODpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTU5LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTYyPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy02My1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjY0OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNjUtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM9MTg2PVxcdFxcdFxcdE1YNlFETF9QQURfU0QxX0NNRF9fR1BJTzFfSU8xOFxcdFxcdDB4MDAwMDAwMThcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE4OS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czoxOTA6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5MS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTE5Mz1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcXHRcXHQweDAwMDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy0xOTYtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM6MTk3OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy0xOTgtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k9MTU5PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMTYwLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpOjE2MTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjItfTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0xNjQ9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjUtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k6MTY2OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2Ny19O1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpPTI1Mz1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fMTZfX0VORVRfUkVGX0NMSyAweDQwMDFiMGE4XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjU2LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNTc6XFx0cGluY3RybF9mbGV4Y2FuMTogY2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI1OC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNjA9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYICAgICAgICAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjYzLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNjQ6XFx0cGluY3RybF9mbGV4Y2FuMjogY2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI2NS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cz0xNjM9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy0xNjQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHM6MTY1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTE2Ni1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHM9Mzk1PVxcdFxcdFxcdE1YNlFETF9QQURfUkdNSUlfUlhfQ1RMX19SR01JSV9SWF9DVExcXHQweDEzMDMwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHMtMzk4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czozOTk6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy00MDAtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM9MTE5PVxcdFxcdFxcdE1YNlFETF9QQURfQ1NJMF9WU1lOQ19fSVBVMV9DU0kwX1ZTWU5DXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS12YXItbXg2Y3VzdG9tYm9hcmQuZHRzLTEyMi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM6MTIzOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHMtMTI0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpPTIyOT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzMC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiLCBcXFwic2xlZXBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzE6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2RlZmF1bHRcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzI6XFx0cGluY3RybC0xID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX3NsZWVwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMjMzLVxcdHN0YXR1cyA9IFxcXCJkaXNhYmxlZFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjM2PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMjM3LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCIsIFxcXCJzbGVlcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjIzODpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJfZGVmYXVsdFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjIzOTpcXHRwaW5jdHJsLTEgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJfc2xlZXBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yNDAtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaT05OTY9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDAwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktOTk5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDAwOlxcdHBpbmN0cmxfZmxleGNhbjFfZGVmYXVsdDogZmxleGNhbjFkZWZncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDAxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpPTEwMDM9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDA2LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDA3OlxcdHBpbmN0cmxfZmxleGNhbjFfc2xlZXA6IGZsZXhjYW4xc2xwZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwOC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaT0xMDEwPVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT184X19HUElPMV9JTzA4IDB4MFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTMtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMTQ6XFx0cGluY3RybF9mbGV4Y2FuMl9kZWZhdWx0OiBmbGV4Y2FuMmRlZmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTUtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxNz1cXHRcXHRcXHRNWDZRRExfUEFEX0tFWV9ST1c0X19GTEVYQ0FOMl9SWCAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxOS1cXHR9O1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDIwOlxcdHBpbmN0cmxfZmxleGNhbjJfc2xlZXA6IGZsZXhjYW4yc2xwZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAyMS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k9MTQzPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTE0NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k6MTQ1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0xNDYtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ181dlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpPTMwMT1cXHRcXHRcXHRNWDZRRExfUEFEX0tFWV9DT0wyX19HUElPNF9JTzEwICAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTMwNC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpOjMwNTpcXHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0zMDYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NTc9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS01OC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo1OTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02MC1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NjM9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo2NTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02Ni1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9MjM3PVxcdFxcdFxcdE1YNlFETF9QQURfRU5FVF9DUlNfRFZfX0VORVRfUlhfRU4gIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDAtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpOjI0MTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Mi1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaT0yNDQ9XFx0XFx0XFx0TVg2UURMX1BBRF9LRVlfQ09MMl9fRkxFWENBTjFfVFhcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktMjQ3LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaToyNDg6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDktXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTEwMD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDEtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjEwMjpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTAzLVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9MTA2PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTEwNy1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6MTA4OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDktXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaT00NzM9XFx0XFx0XFx0TVg2UURMX1BBRF9SR01JSV9SWF9DVExfX1JHTUlJX1JYX0NUTCAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ3Ni1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjQ3NzpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS00NzgtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTQ4MD1cXHRcXHRcXHRNWDZRRExfUEFEX1NEM19DTURfX0ZMRVhDQU4xX1RYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDgzLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6NDg0OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ4NS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTcxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3Mi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTczOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xNzQtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTc4PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3OS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTgwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xODEtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9ODI5PVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT18xNl9fRU5FVF9SRUZfQ0xLXFx0KCgxXFx1MDAzY1xcdTAwM2MzMCkgfCAweDFiMGIwKVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzItXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaTo4MzM6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODM0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaT04MzY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaTo4NDA6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODQxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpPTgxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6ODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktODMtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT05ND1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpOjk1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTk2LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9NjA4PVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzRfX0dQSU80X0lPMTVcXHRcXHQweGIxIC8qIEludCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6NjEyOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xLWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMy1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT02MTU9XFx0XFx0XFx0TVg2UURMX1BBRF9LRVlfQ09MMl9fRkxFWENBTjFfVFhcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktNjE4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTk6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjItZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktNjIwLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpPTE4MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTE4MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaToxODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktMTgzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV9zdGJ5XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaT02MTg9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDFiMGIwIC8qIFBIWSBSZXNldCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTYyMS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2k6NjIyOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktNjIzLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpPTE4MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpLTE4MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaToxODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktMTgzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV9zdGJ5XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaT02MDY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEtcXHQweDQwMDFiMGE4XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktNjA5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaTo2MTA6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS02MTEtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2k9MjAwPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktMjAxLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjIwMjpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS0yMDMtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ19jYW4xX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpPTY4MT1cXHRcXHRcXHRNWDZRRExfUEFEX0VJTV9SV19fR1BJTzJfSU8yNlxcdDB4MTAwYjFcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS02ODQtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjY4NTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpLTY4Ni1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaT0xNTI9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS0xNTMtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2k6MTU0OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTE1NS1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2k9NTE0PVxcdFxcdFxcdE1YNlFETF9QQURfRElTUDBfREFUMTNfX0FVRDVfUlhGU1xcdDB4MTMwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS01MTctXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpOjUxODpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTUxOS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaT0yMTg9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaS0yMTktXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2k6MjIwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktMjIxLVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaT02OTI9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDQwMDFiMGIwIC8qIFBIWV9SU1QjICovXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktNjk1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaTo2OTY6XFx0cGluY3RybF9mbGV4Y2FuOiBmbGV4Y2FuZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktNjk3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpPTEyND1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTEyNS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaToxMjY6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktMTI3LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaT00MzE9XFx0XFx0XFx0TVg2UURMX1BBRF9FSU1fUldfX0dQSU8yX0lPMjZcXHQweDEwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktNDM0LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaTo0MzU6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaS00MzYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k9MTgxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTgyLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWh1bW1pbmdib2FyZC5kdHNpOjE4MzpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfaHVtbWluZ2JvYXJkX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTg0LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1odW1taW5nYm9hcmQuZHRzaT0yMjU9XFx1MDAyNmlvbXV4YyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWh1bW1pbmdib2FyZC5kdHNpOjIyNjpcXHRwaW5jdHJsX2h1bW1pbmdib2FyZF9mbGV4Y2FuMTogaHVtbWluZ2JvYXJkLWZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMjI3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MTMzPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0xMzQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaToxMzU6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0xMzYtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ18zcDN2XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpPTEzOT1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQwLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k6MTQxOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQyLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfM3AzdlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaT0zMTY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzE3X19HUElPN19JTzEyXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMzE5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpOjMyMDpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMzIxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MzIzPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYIDB4MWIwMjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTMyNi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjc6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTMyOC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpPTIzNT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM2LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6MjM3OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM4LX07XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaT0yNDE9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTI0Mi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpOjI0MzpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTI0NC19O1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9NDc2PVxcdFxcdFxcdE1YNlFETF9QQURfRUlNX0QyNV9fR1BJTzNfSU8yNSAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaS00NzktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6NDgwOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaS00ODEtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaT00ODM9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4Ni1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaTo0ODc6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4OC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTUzPVxcdHJlZ19lbl9zd2l0Y2g6IHJlZ3VsYXRvci1lbi1zd2l0Y2gge1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktNjQtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6NjU6XFx0cmVnX2ZsZXhjYW4xOiByZWd1bGF0b3ItZmxleGNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY2LVxcdFxcdGNvbXBhdGlibGUgPSBcXFwicmVndWxhdG9yLWZpeGVkXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS02Ny1cXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjY4OlxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMV9lblxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6Njk6XFx0XFx0cmVndWxhdG9yLW5hbWUgPSBcXFwiZmxleGNhbjEtcmVnXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS03MC1cXHRcXHRyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IFxcdTAwM2MxNTAwMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTEzMz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMTM0LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MTM1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MTM2OlxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTEzNy1cXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k9Mjc3PVxcdFxcdFxcdE1YNlFETF9QQURfRUlNX0RBNF9fR1BJTzNfSU8wNFxcdFxcdDB4YjBiMVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgwLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjI4MTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgyLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k9Mjg0PVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT184X19GTEVYQ0FOMV9SWFxcdFxcdDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTI4Ny1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaToyODg6XFx0cGluY3RybF9mbGV4Y2FuMV9lbjogZmxleGNhbjFlbmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjg5LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaT02MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaS02MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k6NjI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTYzLVxcdHN0YXR1cyA9IFxcXCJkaXNhYmxlZFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpPTI1Nz1cXHRcXHRcXHRNWDZRRExfUEFEX0VJTV9EMjNfX0dQSU8zX0lPMjNcXHRcXHQweDgwMDAwMDAwIC8qIFJlc2V0IEdQSU8gKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktMjYwLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k6MjYxOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTI2Mi1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9MTQ4PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE0OS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6MTUwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS0xNTEtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT0xNTQ9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTU1LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaToxNTY6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE1Ny1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpPTQzNT1cXHRcXHRcXHRNWDZRRExfUEFEX0VORVRfUlhEMV9fR1BJTzFfSU8yNlxcdDB4MWYwYjFcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktNDM4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDM5OlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQ0MC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9NDQyPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzJfX0ZMRVhDQU4xX1JYXFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDUtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaTo0NDY6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktNDQ3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxMT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxMi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMTM6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzE0LVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxOD1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxOS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMjA6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzIxLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTUzNT1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOV9fRVNBSV9SWF9GUyAgICAgICAweDFiMDMwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTM4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTo1Mzk6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDAtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k9NTQyPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXFx0MHgxNzA1OVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTU0NS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6NTQ2OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTQ3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTg1PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODYtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6ODc6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODgtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTkxPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktOTItXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6OTM6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktOTQtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTIwMj1cXHRcXHRcXHRNWDZRRExfUEFEX0RJMF9QSU40X19HUElPNF9JTzIwXFx0XFx0MHgxYjBiMSAvKiBFVEhfUEhZX1JFU0VUICovXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjA1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaToyMDY6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS0yMDctXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9MjA5PVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXFx0MHgxYjBiMVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIxMi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6MjEzOlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjE0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTE1Mz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE1NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaToxNTU6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTU2LVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV8zdjNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTE2MD1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE2MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaToxNjI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTYzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMl8zdjNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTMwMj1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fNl9fRU5FVF9JUlFcXHRcXHQweDAwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMzA1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaTozMDY6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMDctXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MzEwPVxcdFxcdFxcdE1YNlFETF9QQURfRElTUDBfREFUMF9fR1BJTzRfSU8yMVxcdDB4MWIwODggLyogRU5fQ0FOXzEgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMTMtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpOjMxNDpcXHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMxNS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT05ND1cXHRyZWdfY2FuX3hjdnI6IHJlZ3VsYXRvci1jYW4teGN2ciB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktOTktXFx0XFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MTAwOlxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuX3hjdnJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0xMDEtXFx0XFx0Z3BpbyA9IFxcdTAwM2NcXHUwMDI2Z3BpbzQgMjEgR1BJT19BQ1RJVkVfTE9XXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT0yMDM9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMDQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MjA1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIwNi1cXHR4Y2VpdmVyLXN1cHBseSA9IFxcdTAwM2NcXHUwMDI2cmVnX2Nhbl94Y3ZyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT0yMTA9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMTEtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MjEyOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIxMy1cXHR4Y2VpdmVyLXN1cHBseSA9IFxcdTAwM2NcXHUwMDI2cmVnX2Nhbl94Y3ZyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT00NTc9XFx0XFx0XFx0TVg2UURMX1BBRF9TRDNfREFUMl9fR1BJTzdfSU8wNlxcdFxcdDB4MWIwYjEgLyogRVROIFBIWSBSRVNFVCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ2MC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDYxOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDYyLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTQ2ND1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcXHRcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDY3LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaTo0Njg6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjktXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9NDcxPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzRfX0ZMRVhDQU4yX1JYXFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ3NC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDc1OlxcdHBpbmN0cmxfZmxleGNhbl94Y3ZyOiBmbGV4Y2FuLXhjdnJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NzYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdmFyLWRhcnQuZHRzaT02Mz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXZhci1kYXJ0LmR0c2ktNjQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NDkuNDk5NjEwMjE2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjczOTE1MzU4ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBmbGV4Y2FuIERUUyBGaWxlcyoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGV2ZXJ5IHNpbmdsZSBEZXZpY2UgVHJlZSBTb3VyY2UgKERUUykgZmlsZSBJJ20gc2VlaW5nIHRoYXQgbWVudGlvbnMgXCJmbGV4Y2FuXCIgc2VlbXMgZXhjbHVzaXZlbHkgcmVsYXRlZCB0byBBUk0sIEFSTTY0LCBQb3dlclBDLCBvciBtNjhrIFN5c3RlbS1vbi1DaGlwcyAoU29DcykuIEknbSB0aGlua2luZyBhYm91dCB0aGUgdXN1YWwgc3VzcGVjdHMgaGVyZSwgdGhlIGkuTVggc2VyaWVzLCB0aGUgTFMxMDIxQSwgdGhlIExYMjE2MCwgdGhlIFZGNjEwLCB0aGUgUzMyRyDigJMgdGhhdCB3aG9sZSBlY29zeXN0ZW0uXG5cbk5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb24uIElzIHRoZXJlICphbnkqIGFyY2hpdGVjdHVyZSBsaWtlIHg4NiB0aGF0J3MgbGV2ZXJhZ2luZyBmbGV4Y2FuPyBJIG5lZWQgdG8gdmVyaWZ5IHRoaXMgYXNzdW1wdGlvbi4gTGV0J3MgZGlnIGRlZXBlciBhbmQgcGVyZm9ybSBhIHByb3BlciBjcm9zcy1yZWZlcmVuY2UgdG8gY29uZmlybSB0aGVyZSBhcmUgbm8geDg2LWJhc2VkIHN5c3RlbXMgdXNpbmcgZmxleGNhbi4gVGltZSB0byBkb3VibGUtY2hlY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0ODE5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NTYuODkxMTQ5MTk3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDk3MTU5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NTYuOTUyMTMwMTk2WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ2MDk5NzE2NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBDQU4tRmxleCBDb250cm9sbGVyIEludGVyYWN0aW9uIFBvaW50cyoqXG5cbk9rYXksIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGUgQ0FOLUZsZXggY29udHJvbGxlciBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzeXN0ZW0gYXQgYSBsb3cgbGV2ZWwuIEdpdmVuIHRoZSBsaWtlbHkgYXJjaGl0ZWN0dXJhbCBjb250ZXh0LCBteSBmaXJzdCBsaW5lIG9mIGF0dGFjayBpcyB0aGUgY2xhc3NpYyBwbGFjZXM6IGBpbmNsdWRlL2AgYW5kIGBkcml2ZXJzL2AuIEkgbmVlZCB0byB6ZXJvIGluIG9uIGFueSBwb3RlbnRpYWwgcG9pbnRzIG9mIGludGVncmF0aW9uIHJlbGF0ZWQgdG8geDg2IHBsYXRmb3JtcywgUENJIGNvbmZpZ3VyYXRpb24sIEFDUEkgcG93ZXIgbWFuYWdlbWVudCwgb3IgVVNCIGhvc3QgY29udHJvbGxlciBhc3NpZ25tZW50cy4gVGhlc2UgYXJlYXMgYXJlIGFsbCBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgaGF2aW5nIGhvb2tzIG9yIGRyaXZlcnMgdGhhdCBtaWdodCByZWxhdGUgdG8gdGhlIENBTi1GbGV4IGNvbnRyb2xsZXIuIEknbGwgbmVlZCB0byBsb29rIGZvciBoZWFkZXJzIGFuZCBkcml2ZXIgc291cmNlIGZpbGVzIHRoYXQgbWVudGlvbiBcIng4NlwiLCBcIlBDSVwiLCBcIkFDUElcIiwgXCJVU0IsXCIgYW5kIG9mIGNvdXJzZSwgXCJmbGV4Y2FuXCIgaXRzZWxmLiBUaGlzIHdpbGwgaG9wZWZ1bGx5IHByb3ZpZGUgaW5zaWdodCBpbnRvIGhvdyB0aGUgY29udHJvbGxlciBpcyBpbml0aWFsaXplZCwgY29uZmlndXJlZCwgYW5kIG1hbmFnZWQgd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgaG93IGl04oCZcyBiZWluZyBpbnRlcmZhY2VkIHdpdGggYnkgdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUxMTUsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowMS41NjIxMDQ5NThaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1ODgzNDM5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvYnVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowMS42MDc5OTc4MDdaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NDE5MDkxNjQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gcHJvbXB0OlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgbWZkIFN1YnN5c3RlbSoqXG5cbkFscmlnaHQsIHRoZSBkaXJlY3RpdmUgaXMgY2xlYXIuIFdlJ3JlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbWZkYC4gVGhhdCdzIGEgc2Vuc2libGUgYXBwcm9hY2gsIGdpdmVuIHRoZSBsaWtlbHkgY29udGV4dC4gVGhlIFwibWZkXCIgKG11bHRpLWZ1bmN0aW9uIGRldmljZSkgYXJlYSBpcyBhIGNvbW1vbiBlbnRyeSBwb2ludCBmb3IgaW52ZXN0aWdhdGluZyBjb21wbGV4IGhhcmR3YXJlIGludGVyYWN0aW9ucywgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBpbnRlZ3JhdGVkIHN5c3RlbXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyBpcyBvZnRlbiB3aGVyZSB0aGUgYWJzdHJhY3Rpb24gbGF5ZXJzIGJlZ2luLiBJIGltbWVkaWF0ZWx5IHN0YXJ0IG1lbnRhbGx5IGNhdGFsb2dpbmcgcG90ZW50aWFsIGFyZWFzIG9mIGludGVyZXN0IHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSdsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMsIHRoaW5ncyBsaWtlIGhvdyB0aGUgZHJpdmVyIGZyYW1ld29yayBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBpdCBwcmVzZW50cywgYnV0IGFsc28gaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgcmVzb3VyY2UgYWxsb2NhdGlvbi4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgdmlldyBvZiB0aGUgYXJjaGl0ZWN0dXJlIGJlZm9yZSBkaXZpbmcgaW50byBzcGVjaWZpYyBkcml2ZXJzIG9yIGRldmljZSBpbnN0YW5jZXMuIEkgYW50aWNpcGF0ZSBmaW5kaW5nIHN0cnVjdHVyZXMsIGZ1bmN0aW9uIGNhbGxzLCBhbmQgcG90ZW50aWFsbHkgYSBEVCAoRGV2aWNlIFRyZWUpIHNldHVwLCB3aGljaCB3aWxsIGFsbCBiZSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBpbnRlZ3JhdGlvbi4gRnJvbSBteSBleHBlcmllbmNlIHdpdGggZW1iZWRkZWQgc3lzdGVtcywgdGhpcyBpcyBhIGdvb2QgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUzOTEsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowNS43OTg5MTY0NjVaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTIyOTI1OCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21mZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDc6MDUuOTE0MTU1MDgzWiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgxMTg1NTA2NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhIHNlYXNvbmVkIHByb2Zlc3Npb25hbCBpbiB0aGUgZmllbGQsIHN0YXJ0aW5nIHdpdGggdGhlIHJlcXVlc3RlZCBib2xkZWQgaGVhZGVyOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQQ0kgU3Vic3lzdGVtKipcblxuQWxyaWdodCwgdGltZSB0byBkaWcgaW4uIFRoZSBwcm9ibGVtIGxpa2VseSBsaWVzIHNvbWV3aGVyZSB3aXRoaW4gdGhlIFBDSSBzdWJzeXN0ZW0sIHNvIGxldCdzIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvcGNpYC4gVGhpcyBpcyB0aGUgbG9naWNhbCBwbGFjZSB0byBiZWdpbiB0cm91Ymxlc2hvb3RpbmcsIGdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHN5c3RlbSBhcmNoaXRlY3R1cmUgYW5kIHRoZSBwb3RlbnRpYWwgYXJlYSBvZiBpbXBhY3QgZm9yIHRoZSByZXBvcnRlZCBpc3N1ZS4gSSBuZWVkIHRvIGdldCBhIGhpZ2ggbGV2ZWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSBhbmQgbG9vayBmb3IgbGlrZWx5IGN1bHByaXQsIGxpa2UgYSByZWNlbnQgY2hhbmdlLCBkcml2ZXIgaW50ZXJhY3Rpb24sIG9yIHBvdGVudGlhbCByZXNvdXJjZSBjb25mbGljdC4gVGhpcyBpbml0aWFsIHBlcnVzYWwgd2lsbCBwcm9iYWJseSBiZSBicm9hZCwgc2Nhbm5pbmcgZm9yIGFueXRoaW5nIHRoYXQganVtcHMgb3V0IOKAkyBhbnkgcmVjZW50IHBhdGNoZXMsIG9idmlvdXMgZXJyb3IgaGFuZGxpbmcgaXNzdWVzLCBvciB1bnVzdWFsIGRldmljZSBiZWhhdmlvci4gSSdsbCBiZSBsb29raW5nIGZvciBjbHVlcyBsaWtlIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3VlcywgaW50ZXJydXB0IGhhbmRsaW5nIHByb2JsZW1zLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGRldmljZSBlbnVtZXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIEkgd2lsbCBrZWVwIGFuIGV5ZSBvdXQgZm9yIGhvdyB0aGlzIGlzIHdvcmtpbmcgYWxvbmdzaWRlIGRldmljZSBkcml2ZXJzIGFuZCBob3cgd2UgYXJlIGhhbmRsaW5nIHBvd2VyIG9yIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4gSXQncyBhIHN5c3RlbWF0aWMgcHJvY2VzcyDigJMgYSBicm9hZCBzY2FuIGZpcnN0LCB0aGVuIEknbGwgbmFycm93IG15IGZvY3VzIGJhc2VkIG9uIHdoYXQgSSBmaW5kLCBvciBkb24ndCBmaW5kLiBUaW1lIHRvIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU2NjQsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoxNC4wMzI3MDgzMTNaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MDIwNjc5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGNpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoxNC4wODA3Mzg4MzJaIiwiU2VxIjozOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NjQ3ODExMTU5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQbGF0Zm9ybSBEcml2ZXJzKipcblxuT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIExldCdzIHN0YXJ0IGJ5IHplcm9pbmcgaW4gb24gdGhlIGBkcml2ZXJzL3BsYXRmb3JtYCBkaXJlY3RvcnkuIFRoaXMgaXMgdXN1YWxseSB3aGVyZSB0aGUgY29yZSBsb3ctbGV2ZWwgZHJpdmVycyBmb3IgaGFyZHdhcmUgdGhhdCBpcyBcInBsYXRmb3JtLXNwZWNpZmljXCIgcmVzaWRlLiBUaGF0J3MgYSBrZXkgdGVybS4gXCJQbGF0Zm9ybS1zcGVjaWZpY1wiIG1lYW5zIHRoZSBjb2RlIGlzIGhpZ2hseSB0aWVkIHRvIHRoZSBwYXJ0aWN1bGFyIGFyY2hpdGVjdHVyZSwgY2hpcHNldCwgb3IgYm9hcmQuIFRoaXMgaXMgd2hlcmUgSSdsbCBleHBlY3QgdG8gZmluZCBkcml2ZXJzIGZvciB0aGluZ3MgbGlrZSBpbnRlcnJ1cHQgY29udHJvbGxlcnMsIGNsb2NrIG1hbmFnZW1lbnQsIHBvd2VyIG1hbmFnZW1lbnQsIHBlcmhhcHMgdGhlIHN5c3RlbSB0aW1lciwgYW5kIG90aGVyIGNyaXRpY2FsIGluZnJhc3RydWN0dXJlIGNvbXBvbmVudHMgdGhhdCBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGlzIHBhcnRpY3VsYXIgc3lzdGVtLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBsb3ctbGV2ZWwgY29tcG9uZW50cyBhcmUgaW1wbGVtZW50ZWQgYW5kIGhvdyB0aGV5IGludGVyYWN0IHdpdGggdGhlIGtlcm5lbC4gSSBhbSBhbnRpY2lwYXRpbmcgdGhlIG9yZ2FuaXphdGlvbiBoZXJlLCB0aGUgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgdGhlIG92ZXJhbGwgc3RydWN0dXJlLCBiYXNlZCBvbiBteSBwYXN0IGV4cGVyaWVuY2UuIEknbSBsb29raW5nIGZvciB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgYW55IHVudXN1YWwgb3Igb3B0aW1pemVkIGNvZGUuIFRpbWUgdG8gZGlnIGluIGFuZCBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTY0LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoyMC41NTg4NTM0NTZaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwOTQwNjAwLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGxhdGZvcm1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ3OjIwLjYwOTc5OTg0NloiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo4ODczOTMzMDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZsZXhDQU4gRHJpdmVyOiBVbnJlYWNoYWJsZSBIYXJkd2FyZSBvbiBhbWQ2NCwgV29ydGhGdXp6aW5nID0gRmFsc2UqKlxuXG5Pa2F5LCBsZXQncyBzb2xpZGlmeSB0aGlzLiBJIG5lZWQgdG8gbWFrZSBhIGp1ZGdtZW50IGNhbGwgb24gd2hldGhlciB0aGlzIEZsZXhDQU4gZHJpdmVyIGNvZGUgaXMgd29ydGggZnV6emluZyBvbiBhbWQ2NC4gRmlyc3QsIGxldCdzIHJlLWV4YW1pbmUgdGhvc2UgS2NvbmZpZyBkZXBlbmRlbmNpZXMuIFRoZSBgZmxleGNhbmAgZHJpdmVyLCBjbGVhcmx5LCByZWxpZXMgb24gZWl0aGVyIERldmljZSBUcmVlIChgT0ZgKSBvciBgQ09NUElMRV9URVNUYCwgYW5kLCBjcnVjaWFsbHksIHJlcXVpcmVzIGBIQVNfSU9NRU1gLiBFdmVuIGlmIHdlIHNvbWVob3cgZm9yY2UtZW5hYmxlIHRoZSBgQ0FOX0ZMRVhDQU5gIG9wdGlvbiwgZWl0aGVyIGRpcmVjdGx5IChgeWApIG9yIGFzIGEgbW9kdWxlIChgbWApLCB2aWEgYENPTVBJTEVfVEVTVGAgb3IgRFQsIGl0J3MgYSBkZWFkIGVuZC4gVGhlIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uIChgZmxleGNhbl9kcml2ZXJgKSBpcyBsb29raW5nIGZvciBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzLCBlaXRoZXIgYFwiZmxleGNhbi1tY2Y1NDQxeFwiYCAoQ29sZEZpcmUpIG9yIGEgZGV2aWNlIG1hdGNoaW5nIGEgRmxleENBTiBPRiBtYXRjaC5cblxuTm93LCBJIGtub3cgdGhpcyB3ZWxsOiBvbiBzdGFuZGFyZCBhbWQ2NCBlbnZpcm9ubWVudHMsIGxpa2UgdGhlIHR5cGljYWwgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgaW5zdGFuY2VzIHdlIHVzZSwgdGhlcmUncyAqbm8qIGVtdWxhdGVkIEZsZXhDQU4uIFRoZSBkZXZpY2UgaXNuJ3QgcHJlc2VudCBpbiBhbnkgc3RhbmRhcmQgZGV2aWNlIHRyZWUsIGFuZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGUgaGFyZHdhcmUuIEV2ZW4gaWYgd2UgdHJpZWQgc29tZSBoYWNreSB1c2Vyc3BhY2UgZGV2aWNlIHRyZWUgb3ZlcmxheSAod2hpY2ggc3l6a2FsbGVyICpkb2Vzbid0KiBkbywgdGhhbmtmdWxseSksIHRoZSBkcml2ZXIgd291bGQgaW1tZWRpYXRlbHkgaGl0IGZhdGFsIGVycm9ycyB3aGVuIHRyeWluZyB0byBnZXQgSVJRcywgcmVtYXAgbWVtb3J5IHJlZ2lvbnMsIGFuZCBsb29rdXAgY2xvY2tzLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBhcmNoaXRlY3R1cmFsIGluY29tcGF0aWJpbGl0eS5cblxuTGV0J3MgcmVmZXIgYmFjayB0byBTZWN0aW9uIDIgb2Ygb3VyIGd1aWRlbGluZXMuICpTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUqIGlzIGEga2V5IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhpcyBwZXJmZWN0bHkgZml0czogRmxleENBTiBpcyBhbiBTb0Mtc3BlY2lmaWMgQ0FOIGNvbnRyb2xsZXIsIGZvdW5kIGluIEZyZWVzY2FsZS9OWFAgU29DcyBsaWtlIGkuTVgsIENvbGRGaXJlLCBMYXllcnNjYXBlLCBTMzJHLCBhbmQgUG93ZXJQQyBQMTAxMC4gSXQncyBub3QgYSBnZW5lcmljIGRldmljZSBsaWtlIGEgUENJZSBjYXJkIG9yIGEgdmlydHVhbCBkZXZpY2UuIEl0ICpyZXF1aXJlcyogdGhlIHNwZWNpZmljIFNvQyBwbGF0Zm9ybSBhbmQgY29ycmVzcG9uZGluZyBEZXZpY2UgVHJlZSBkZWZpbml0aW9ucy4gSXQncyBub3QgbGlrZSB0aGUgZGV2aWNlcyB3ZSAqY2FuKiBmaW5kIGluIFFFTVUuXG5cbkFuZCwgYXMgYSBzcGVjaWZpYyBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgaXMgb25seSBjYWxsZWQgd2hlbiBhIGZsZXhjYW4gbmV0IGRldmljZSAqZXhpc3RzKi4gV2UgYWNjZXNzIHRoZSBCRVJSIGNvdW50ZXIgdGhyb3VnaCBgY2FuX2dldF9iZXJyX2NvdW50ZXJgLCB0eXBpY2FsbHkgZnJvbSBhIGlvY3RsLiBCdXQgc2luY2Ugd2UgY2Fubm90IGluc3RhbnRpYXRlIHRoaXMgbmV0IGRldmljZSBpbiBhIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50LCB0aGlzIGlzIGVmZmVjdGl2ZWx5ICp1bnJlYWNoYWJsZSogY29kZSwgZXZlbiBpZiBpdCdzIHRoZXJlIGluIHRoZSBzb3VyY2UuXG5cblNvLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2xlYXI6IFRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0LiBQYXRjaCBtb2RpZmllcyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYC4gUmVzdWx0OiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRm9jdXNTeW1ib2xzID0gW11gLCBubyBuZWVkIGZvciBzcGVjaWZpYyBgRW5hYmxlQ29uZmlnc2AuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IEZsZXhDQU4gaXMgdW5yZWFjaGFibGUgaGFyZHdhcmUgaW4gb3VyIHN0YW5kYXJkIGFtZDY0IHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGlzIGlzIGEgc29saWQgXCJuby5cIiBJdCdzIG5vdCBhIHJlbGV2YW50IHRhcmdldCBmb3IgZnV6emluZyBpbiB0aGlzIGNvbnRleHQuIExldCdzIGNhbGwgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MjMyLCJPdXRwdXRUb2tlbnMiOjEyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkwMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoyOS40ODM3MzU3MDRaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDMyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ3OjI5LjQ4Mzc3MDY2NFoiLCJTZXEiOjQzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowtghr2[0].run-triage(0) Phase: Succeeded StartedAt: 2026-09-15 06:47:01 +0000 UTC FinishedAt: 2026-09-15 07:47:31 +0000 UTC Input: nil Output: &Outputs{Parameters:[]Parameter{Parameter{Name:result,Default:nil,Value:*{ "skip_reason": "AI determined the patch has no functional impact", "targets": null, "trajectory": "CjwhZG9jdHlwZSBodG1sPgo8aHRtbD4KPGhlYWQ+Cgk8dGl0bGU+QUkgVHJhamVjdG9yeTwvdGl0bGU+Cgk8c3R5bGU+CgkJdGFibGUgewoJCQlib3JkZXI6IDFweCBzb2xpZCAjY2NjOwoJCQltYXJnaW46IDIwcHggNXB4OwoJCQlib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOwoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOwoJCQl0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKCQkJb3ZlcmZsb3c6IGhpZGRlbjsKCQl9CgoJCXRhYmxlIGNhcHRpb24gewoJCQlmb250LXdlaWdodDogYm9sZDsKCQl9CgoJCXRhYmxlIHRkLCB0YWJsZSB0aCB7CgkJCXZlcnRpY2FsLWFsaWduOiB0b3A7CgkJCXBhZGRpbmc6IDJweCA4cHg7CgkJCXRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwoJCQlvdmVyZmxvdzogaGlkZGVuOwoJCX0KCgkJLmxpc3RfdGFibGUgdGQsIC5saXN0X3RhYmxlIHRoIHsKCQkJYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjY2NjOwoJCX0KCgkJLmxpc3RfdGFibGUgdGggewoJCQliYWNrZ3JvdW5kOiAjRjRGNEY0OwoJCX0KCgkJLmxpc3RfdGFibGUgdHI6bnRoLWNoaWxkKDJuKSB7CgkJCWJhY2tncm91bmQ6ICNGNEY0RjQ7CgkJfQoKCQkubGlzdF90YWJsZSB0cjpob3ZlciB7CgkJCWJhY2tncm91bmQ6ICNmZmZmOTk7CgkJfQoKCQkjYWlfZGV0YWlsc19kaXYgcHJlIHsKCQkJbWFyZ2luOiAxcHg7CgkJCW1heC13aWR0aDogMTIwY2g7CgkJCXdoaXRlLXNwYWNlOiBwcmUtd3JhcDsKCQkJb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDsKCQl9Cgk8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoJPGgxPkFJIFRyYWplY3Rvcnk8L2gxPgoJPGJyPgoKCQoJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQk8Y2FwdGlvbj5UcmFqZWN0b3J5OiAoPGEgaHJlZj0iIyIgb25jbGljaz0idG9nZ2xlQWxsRGV0YWlscygpOyByZXR1cm4gZmFsc2U7Ij5FeHBhbmQvQ29sbGFwc2UgQWxsPC9hPik8L2NhcHRpb24+CgkJPHRoZWFkPjx0cj4KCQkJPHRoPlNlcTwvdGg+CgkJCTx0aD5UaW1lc3RhbXA8L3RoPgoJCQk8dGg+VHlwZTwvdGg+CgkJCTx0aD5OYW1lPC90aD4KCQkJPHRoPkR1cmF0aW9uPC90aD4KCQk8L3RyPjwvdGhlYWQ+CgkJPHRib2R5PgoJCQoJCTx0cj4KCQkJPHRkPjAvMDwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjM5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+N208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS4mIzM0OywKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MS8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6Mzk8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPnJlYWQtcGF0Y2gtZGlmZjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1BhdGNoRGlmZiYjMzQ7OiAmIzM0O2NvbW1pdCAyMjU5MzVlYmM3NmU1OWY1MTFlOGUxNTM1Nzc0MTkxNjdhZWU5OTExXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMDc6Mzk6MzkgMjAyNiAmIzQzOzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXG4mIzQzOyYjNDM7JiM0MzsgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuQEAgLTc2NSw2ICYjNDM7NzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiBcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIFx0aW50IGVycjtcbiBcbiYjNDM7XHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlcbiYjNDM7XHRcdHJldHVybiAwO1xuJiM0MztcbiBcdGVyciA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocHJpdi1cdTAwM2VkZXYpO1xuIFx0aWYgKGVyciBcdTAwM2MgMClcbiBcdFx0cmV0dXJuIGVycjtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yLzE8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzozOTwvdGQ+CgkJCTx0ZD5hZ2VudDwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT43bTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5jb3JlPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIgYW5kIHNlY3VyaXR5IGVuZ2luZWVyLgpZb3VyIGpvYiBpcyB0byByZXZpZXcgYSBwcm92aWRlZCBwYXRjaCBzZXJpZXMgYW5kIGV2YWx1YXRlIHdoZXRoZXIgaXQgd2FycmFudHMgZnV6emluZyB3aXRoIHN5emthbGxlci4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24gaW50ZXJuYWwgYXNzdW1wdGlvbnMuIFlvdSBtdXN0IGFjdGl2ZWx5IHVzZSB5b3VyIGNvZGUgYWNjZXNzCnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoxLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClRoZSBnb2FsIG9mIHBhdGNoIGZ1enppbmcgaXMgdG8gZGlzY292ZXIgY3Jhc2hlcywgcmVncmVzc2lvbnMsIGV4cG9zZWQgbGF0ZW50IGJ1Z3MsCmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuCgotIFJFQUNIQUJJTElUWSBJUyBUSEUgUFJJTUFSWSBHQVRFOgogIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWQKICBlbnZpcm9ubWVudHMgKEdDRSBvciBRRU1VLCB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgZGV2aWNlcyBsaWtlIFVTQiBnYWRnZXRzLCBuZXRkZXYsIHR1bi90YXApLgogIElmIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZSAoc2VlIFNlY3Rpb24gMiksIGl0IE1VU1QgTk9UIGJlIGZ1enplZCwKICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuCgotIERPIE5PVCBCTElORExZIFRSVVNUICYjMzQ7Tk8gRlVOQ1RJT05BTCBDSEFOR0UmIzM0OyAoTkZDSSkgT1IgJiMzNDtSRUZBQ1RPUklORyYjMzQ7IENMQUlNUzoKICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzICYjMzQ7Y2xlYW51cHMmIzM0OywgJiMzNDtyZWZhY3RvcmluZ3MmIzM0Oywgb3Igc3RhdGUKICAmIzM0O05vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkJiMzNDsuIERvIE5PVCB0YWtlIHRoZXNlIGNsYWltcyBhdCBmYWNlIHZhbHVlLgogIENvZGUgcmVmYWN0b3JpbmdzIHRoYXQgcmVhcnJhbmdlIGxvZ2ljLCBpbnRyb2R1Y2UgaGVscGVyIGZ1bmN0aW9ucywgb3IgYWx0ZXIgc3RhdGUgbWFuYWdlbWVudAogIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLgogIElmIHJlYWNoYWJsZSBleGVjdXRhYmxlIGNvZGUgaXMgbW9kaWZpZWQgb3IgcmVmYWN0b3JlZCwgaXQgTVVTVCBiZSBmdXp6ZWQuCgotIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOgogIFdoZW4gYSBwYXRjaCBpbnRyb2R1Y2VzIG9yIG1vZGlmaWVzIHJ1bnRpbWUgY2hlY2tzIG9yIGFzc2VydGlvbnMgKGUuZy4sIFdBUk5fT04qLCBWTV9XQVJOX09OKiwKICBCVUdfT04qLCBsb2NrZGVwX2Fzc2VydCopIGluIHJlYWNoYWJsZSBjb2RlIHBhdGhzLCBpdCBlbmZvcmNlcyBuZXcgb3Igc3RyaWN0ZXIgaW52YXJpYW50cy4KICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyCiAgYW4gdW51c3VhbCBzZXF1ZW5jZSBvZiBvcGVyYXRpb25zIGNhbiB2aW9sYXRlIGl0LgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPWZhbHNlIChORUdBVElWRSBDUklURVJJQSkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczoKCi0gTm9uLWtlcm5lbCBhbmQgbm9uLWV4ZWN1dGFibGUgY2hhbmdlczoKICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy4KICAqIFVzZXItc3BhY2UgZGlyZWN0b3JpZXMsIHNlbGYtdGVzdHMsIHNhbXBsZXMsIG9yIHNjcmlwdHMgKGUuZy4sIHRvb2xzLywgc2FtcGxlcy8sIHNjcmlwdHMvLCB1c3IvKQogICAgdGhhdCBkbyBub3QgYWZmZWN0IHRoZSBjb21waWxlZCBrZXJuZWwgaW1hZ2UgKHZtbGludXgpIG9yIGtlcm5lbCBtb2R1bGVzLgogICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHMKICAgIHRoYXQgZG8gbm90IGFsdGVyIGNvbnRyb2wgZmxvdyBvciBkYXRhIHN0cnVjdHVyZXMuCiAgKiBCdWlsZCBzeXN0ZW0gb3IgS2NvbmZpZyBjaGFuZ2VzIHRoYXQgZG8gbm90IGFsdGVyIGNvbXBpbGVkIEMgbG9naWMuCi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOgogICogVmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoZXMsIFNtYXJ0TklDcywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLAogICAgaW9uaWMsIGFtZGdwdSkgcmVxdWlyaW5nIHBoeXNpY2FsIEFTSUMvUENJZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6CiAgKiBEcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzICgucmVtb3ZlLCAuc2h1dGRvd24sIHBjaV91bnJlZ2lzdGVyX2RyaXZlcikgZXhlY3V0ZWQgb25seSBkdXJpbmcKICAgIHBoeXNpY2FsIFBDSSBob3QtdW5wbHVnIG9yIG1hbnVhbCBzeXNmcyBkcml2ZXIgdW5iaW5kaW5nLgogICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSZXR1cm4gV29ydGhGdXp6aW5nPXRydWUgd2hlbmV2ZXIgdGhlIHBhdGNoIHRvdWNoZXMgcmVhY2hhYmxlIGV4ZWN1dGFibGUgY29kZSwgaW5jbHVkaW5nOgotIENvcmUgU3Vic3lzdGVtczoKICAqIEFueSBsb2dpYyBtb2RpZmljYXRpb25zIGluIG1lbW9yeSBtYW5hZ2VtZW50IChtbS8pLCBzeW5jaHJvbml6YXRpb24vbG9ja2luZyAoa2VybmVsL2xvY2tpbmcvKSwKICAgIEJQRiwgc2NoZWR1bGVyLCBjb3JlIG5ldHdvcmtpbmcsIFZGUywgb3Igc3lzY2FsbCBoYW5kbGluZy4KLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6CiAgKiBBbnkgcmVzdHJ1Y3R1cmluZyBvZiByZWFjaGFibGUgZGF0YSBzdHJ1Y3R1cmVzLCBoZWxwZXIgYWJzdHJhY3Rpb25zLCBvciBhbGdvcml0aG0gZmxvd3MuCi0gUnVudGltZSBBc3NlcnRpb25zIGFuZCBEZWZlbnNpdmUgQ2hlY2tzOgogICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLgotIFJlYWNoYWJsZSBEcml2ZXJzIGFuZCBQcm90b2NvbHM6CiAgKiBEcml2ZXJzIGFjY2Vzc2libGUgdmlhIHZpcnR1YWwgYnVzZXMgKHZpcnRpbywgVVNCIGdhZGdldCwgbG9vcGJhY2ssIG5ldGxpbmssIGJpbmRlciwgc29ja2V0cywgZXRjLikuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBFWFRSQUNUSU5HIEZvY3VzU3ltYm9scyAoUFJFVkVOVElORyBESUxVVElPTikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KV2hlbiBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IG11c3QgZXh0cmFjdCBzcGVjaWZpYyBrZXJuZWwgZnVuY3Rpb25zIGludG8gRm9jdXNTeW1ib2xzIHRvIGd1aWRlIHRoZSBmdXp6ZXI6CgotIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzoKICBEbyBOT1QgbGlzdCBnZW5lcmljLCB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYWxsZWQgYnkgYWxtb3N0IGV2ZXJ5IHByb2dyYW0gaW4gdGhlIGNvcnB1cwogIChpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0bzogZ2VuZXJhbCBtZW1vcnkgYWxsb2NhdG9ycyBhbmQgZGVhbGxvY2F0b3JzLCBwYWdlIGZhdWx0CiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuCiAgTGlzdGluZyB1YmlxdWl0b3VzIGZ1bmN0aW9ucyBjYXVzZXMgdGhlIGZ1enplciB0byBjbGFzc2lmeSB0aG91c2FuZHMgb2YgdW5yZWxhdGVkIHRlc3RzIGFzICYjMzQ7Zm9jdXNlZCYjMzQ7LAogIHdoaWNoIHNldmVyZWx5IGRpbHV0ZXMgZnV6emluZyBlZmZvcnQgYXdheSBmcm9tIHRoZSBhY3R1YWwgY2hhbmdlcy4KCi0gVEFSR0VUIFNQRUNJRklDIEZFQVRVUkUgTE9HSUMgQU5EIEVOVFJZUE9JTlRTOgogIExpc3QgZnVuY3Rpb25zIHRoYXQgc3BlY2lmaWNhbGx5IGltcGxlbWVudCB0aGUgbG9naWMgYmVpbmcgYWRkZWQgb3IgYWx0ZXJlZCwgb3IgZGlyZWN0IEFQSSBlbnRyeXBvaW50cwogIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LgoKLSBIQU5ETElORyBTVEFUSUMgSU5MSU5FIEZVTkNUSU9OUyBJTiBIRUFERVJTICguaCk6CiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFjawogIGRpc3RpbmN0IHN5bWJvbCBhZGRyZXNzZXMgaW4gdm1saW51eCBhbmQgY2Fubm90IGJlIHRhcmdldGVkIGRpcmVjdGx5IGJ5IHN5bWJvbCBjb3ZlcmFnZSBmaWx0ZXJzLgogIElmIHRoZSBjaGFuZ2VzIGFyZSBwcmltYXJpbHkgaW4gc3RhdGljIGlubGluZSBoZWxwZXJzLCBpZGVudGlmeSBub24tc3RhdGljLCBmZWF0dXJlLXNwZWNpZmljIGNhbGxlcgogIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSBjb21waWxlIGFuZCByZWFjaCB0aGUgbW9kaWZpZWQgY29kZToKLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLgotIENoZWNrICYjMzQ7ZGVwZW5kcyBvbiYjMzQ7IGxpbmVzIGluIEtjb25maWcgdG8gaW5jbHVkZSBhbnkgbm9uLXN0YW5kYXJkIHBhcmVudCBzdWJzeXN0ZW0gY29uZmlncyBuZWVkZWQuCi0gU3RyaXAgYW55ICYjMzk7Q09ORklHXyYjMzk7IHByZWZpeCAoZS5nLiwgcmV0dXJuICYjMzQ7TkVUX0lQVjQmIzM0OyBpbnN0ZWFkIG9mICYjMzQ7Q09ORklHX05FVF9JUFY0JiMzNDspLgpQcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy4KCgpVc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLgpJdCBtdXN0IGJlIGNhbGxlZCBleGFjdGx5IG9uY2UgYmVmb3JlIHRoZSBmaW5hbCByZXBseS4KSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlByb21wdDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPlRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0CgpGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDIyNTkzNWViYzc2ZTU5ZjUxMWU4ZTE1MzU3NzQxOTE2N2FlZTk5MTEKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIFNlcCAxNSAwNzozOTozOSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jIGIvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMKQEAgLTc2NSw2ICYjNDM7NzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAljb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTsKIAlpbnQgZXJyOwogCiYjNDM7CWlmICghbmV0aWZfcnVubmluZyhkZXYpKQomIzQzOwkJcmV0dXJuIDA7CiYjNDM7CiAJZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LSZndDtkZXYpOwogCWlmIChlcnIgJmx0OyAwKQogCQlyZXR1cm4gZXJyOwo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzozOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODkzCgkJCQkJCQlvdXRwdXQ6IDMxCgkJCQkJCQl0aG91Z2h0czogMzEzCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKk15IEluaXRpYWwgVGhvdWdodHMgb24gdGhlIEZsZXhDQU4gUGF0Y2gqKgoKT2theSwgbGV0JiMzOTtzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4gVGhpcyBkaWZmIGluIGBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCBhdCBmaXJzdCBnbGFuY2UuIEl0JiMzOTtzIGEgY29uZGl0aW9uYWwgY2hlY2sgYmVmb3JlIHJldHJpZXZpbmcgdGhlIGJ1cyBlcnJvciBjb3VudGVyLCBlbnN1cmluZyB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgcnVubmluZy4gVGhlIGFkZGl0aW9uIG9mIGBpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlgIGltbWVkaWF0ZWx5IGNhdGNoZXMgbXkgZXllLCBJIHdvbmRlciB3aHkgaXQgd2FzIGFkZGVkLgoKTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRvIGFzc2VzcyB0aGUgY29udGV4dC4gV2hhdCBpcyB0aGUgYXJjaGl0ZWN0dXJlIHRoaXMgRmxleENBTiBkcml2ZXIgdGFyZ2V0cz8gSXMgdGhpcyBzb21ldGhpbmcgbGlrZWx5IHRvIGJlIHNlZW4gaW4gYSBzdGFuZGFyZCB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCBsaWtlIFFFTVUgb24geDg2LTY0LCBvciBpcyBpdCBhIG1vcmUgZW1iZWRkZWQgb3Igc3BlY2lhbGl6ZWQgQ0FOIGNvbnRyb2xsZXI/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGlmIHRoaXMgaXMgYSBkcml2ZXIgZm9yIGhhcmR3YXJlIHRoYXQgSSYjMzk7bSBsaWtlbHkgdG8gZW5jb3VudGVyIGZyZXF1ZW50bHkuCgpMZXQgbWUgdGFrZSBhIGxvb2sgYXQgdGhlIHN1cnJvdW5kaW5nIGNvZGUgdG8gZGV0ZXJtaW5lIGl0cyBwdXJwb3NlLiBMZXQgbWUgY2hlY2sgdGhlIEtjb25maWcgdW5kZXIgYGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2AgdG8gZ2V0IGEgYmV0dGVyIGdyYXNwIG9mIHRoZSBkcml2ZXImIzM5O3MgY29uZmlndXJhdGlvbiBvcHRpb25zIGFuZCBkZXBlbmRlbmNpZXMuIElzIHRoZSBjaGVjayBuZWNlc3Nhcnkgb3IgYSBndWFyZCBhZ2FpbnN0IGFuIGV4cGVjdGVkIGNvbmRpdGlvbiBvciByYWNlIGNvbmRpdGlvbj8gSXQmIzM5O3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCB0aGlzIGNoYW5nZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtjb25maWcgQ0FOX0ZMRVhDQU4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL0tjb25maWc9MTA5PWNvbmZpZyBDQU5fQ0FOMzI3XG4tLVxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI2LVxuZHJpdmVycy9uZXQvY2FuL0tjb25maWc6MTI3OmNvbmZpZyBDQU5fRkxFWENBTlxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI4LVx0dHJpc3RhdGUgXCYjMzQ7U3VwcG9ydCBmb3IgRnJlZXNjYWxlIEZMRVhDQU4gYmFzZWQgY2hpcHNcJiMzNDtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD41LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAzNTgyCgkJCQkJCQlvdXRwdXQ6IDM2CgkJCQkJCQl0aG91Z2h0czogMjEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIENBTiBCdXMgQ29uZmlndXJhdGlvbiBPcHRpb25zKioKCk9rYXksIGxldCYjMzk7cyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIENBTiBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgdGhlIG9uZXMgcmVsYXRlZCB0bywgc2F5LCB0aGUgTUNQMjUxNSBvciBzaW1pbGFyLiBJJiMzOTtsbCBzdGFydCBieSB0YWtpbmcgYSBsb29rIGF0IGBkcml2ZXJzL25ldC9jYW4vS2NvbmZpZ2AsIGZvY3VzaW5nIGFyb3VuZCBsaW5lIDEyNy4gVGhhdCYjMzk7cyB1c3VhbGx5IHdoZXJlIHRoZSBtZWF0IG9mIHRoZSBoaWdoLWxldmVsIENBTiBidXMgb3B0aW9ucyBhcmUgZGVmaW5lZCwgd2hlcmUgdGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBjb25maWdzIGdldCB0aGVpciBob29rcyBpbi4gSSYjMzk7bSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBhbmQgbWF5YmUgYSBmZXcgbWVudSBlbnRyaWVzIHRoYXQgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXNpZ24gY2hvaWNlcyBtYWRlLCBwZXJoYXBzIG9wdGlvbnMgZm9yIGRpZmZlcmVudCBDQU4gY29udHJvbGxlcnMsIGRhdGEgcmF0ZXMsIG9yIGZlYXR1cmVzIGxpa2UgQ0FOIEZEIHN1cHBvcnQuIEkmIzM5O20gaG9waW5nIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHJlbGV2YW50IGNvbmZpZ3VyYXRpb24gc3ltYm9scyBJJiMzOTtsbCBuZWVkIHRvIGtub3cuIFRpbWUgdG8gc2VlIHdoYXQgS2NvbmZpZyBoYXMgaW4gc3RvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ni8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vS2NvbmZpZyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDEyNSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAyNQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgMTI1Olx0XHQgIElmIHRoaXMgZHJpdmVyIGlzIGJ1aWx0IGFzIGEgbW9kdWxlLCBpdCB3aWxsIGJlIGNhbGxlZCBjYW4zMjcuXG4gMTI2Olx0XG4gMTI3Olx0Y29uZmlnIENBTl9GTEVYQ0FOXG4gMTI4Olx0XHR0cmlzdGF0ZSBcJiMzNDtTdXBwb3J0IGZvciBGcmVlc2NhbGUgRkxFWENBTiBiYXNlZCBjaGlwc1wmIzM0O1xuIDEyOTpcdFx0ZGVwZW5kcyBvbiBPRiB8fCBDT0xERklSRSB8fCBDT01QSUxFX1RFU1RcbiAxMzA6XHRcdGRlcGVuZHMgb24gSEFTX0lPTUVNXG4gMTMxOlx0XHRzZWxlY3QgQ0FOX1JYX09GRkxPQURcbiAxMzI6XHRcdGhlbHBcbiAxMzM6XHRcdCAgU2F5IFkgaGVyZSBpZiB5b3Ugd2FudCB0byBzdXBwb3J0IGZvciBGcmVlc2NhbGUgRmxleENBTi5cbiAxMzQ6XHRcbiAxMzU6XHRjb25maWcgQ0FOX0dSQ0FOXG4gMTM2Olx0XHR0cmlzdGF0ZSBcJiMzNDtBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIGFuZCBHUkhDQU4gQ0FOIGRldmljZXNcJiMzNDtcbiAxMzc6XHRcdGRlcGVuZHMgb24gT0YgXHUwMDI2XHUwMDI2IEhBU19ETUEgXHUwMDI2XHUwMDI2IEhBU19JT01FTVxuIDEzODpcdFx0aGVscFxuIDEzOTpcdFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIG9yIEdSSENBTi5cbiAxNDA6XHRcdCAgTm90ZSB0aGF0IHRoZSBkcml2ZXIgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiwgZXZlbiB0aG91Z2ggbGl0dGxlXG4gMTQxOlx0XHQgIGVuZGlhbiBzeW50aGVzZXMgb2YgdGhlIGNvcmVzIHdvdWxkIG5lZWQgc29tZSBtb2RpZmljYXRpb25zIG9uXG4gMTQyOlx0XHQgIHRoZSBoYXJkd2FyZSBsZXZlbCB0byB3b3JrLlxuIDE0MzpcdFxuIDE0NDpcdGNvbmZpZyBDQU5fSkFOWl9JQ0FOM1xuIDE0NTpcdFx0dHJpc3RhdGUgXCYjMzQ7SmFueiBWTU9ELUlDQU4zIEludGVsbGlnZW50IENBTiBjb250cm9sbGVyXCYjMzQ7XG4gMTQ2Olx0XHRkZXBlbmRzIG9uIE1GRF9KQU5aX0NNT0RJT1xuIDE0NzpcdFx0aGVscFxuIDE0ODpcdFx0ICBEcml2ZXIgZm9yIEphbnogVk1PRC1JQ0FOMyBJbnRlbGxpZ2VudCBDQU4gY29udHJvbGxlciBtb2R1bGUsIHdoaWNoXG4gMTQ5Olx0XHQgIGNvbm5lY3RzIHRvIGEgTU9EVUxidXMgY2FycmllciBib2FyZC5cbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD43LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0MjUyCgkJCQkJCQlvdXRwdXQ6IDMzCgkJCQkJCQl0aG91Z2h0czogNTAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmxleENBTiBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBgY29uZmlnIENBTl9GTEVYQ0FOYCBzZXR0aW5nLiBJdCYjMzk7cyBkZXBlbmRlbnQgb24gYSBmZXcgdGhpbmdzOiBgT0YgfHwgQ09MREZJUkUgfHwgQ09NUElMRV9URVNUYCBhbmQgYEhBU19JT01FTWAuIFRoYXQgbWFrZXMgc2Vuc2UuIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGxpbmsgdG8gYE9GYCBiZWluZyByZWxldmFudCB0byBEZXZpY2UgVHJlZSB1c2UuIEkgYWxzbyBnZXQgdGhlIGluY2x1c2lvbiBvZiBgQ09MREZJUkVgLCBhIGxlZ2FjeSBwbGF0Zm9ybSB0byBzdXBwb3J0LCBhcyB3ZWxsIGFzIGEgcXVpY2sgY29tcGlsZSB0ZXN0LiBJT01FTSBtYWtlcyBzZW5zZSB0b28sIHN1Z2dlc3RpbmcgaXQgbmVlZHMgbWVtb3J5IG1hcHBpbmcuCgpCdXQgbXkgaW1tZWRpYXRlIHF1ZXN0aW9uIGlzLCBpcyBGbGV4Q0FOIGFjdHVhbGx5IGltcGxlbWVudGVkIGFzIGEgcGxhdGZvcm0gZHJpdmVyPyBHaXZlbiB0aGUgZ2VuZXJhbCBzdHJ1Y3R1cmUgb2YgdGhlIGtlcm5lbCwgSSYjMzk7bSBsZWFuaW5nIHRoYXQgd2F5LCBidXQgSSBzaG91bGQgZG91YmxlLWNoZWNrLiBMZXQgbWUgcXVpY2tseSBqdW1wIGludG8gYGZsZXhjYW4tY29yZS5jYCBhbmQgY29uZmlybSBteSBleHBlY3RhdGlvbi4gS25vd2luZyB0aGUgYXJjaGl0ZWN0dXJlIG9mIHRoZSBkcml2ZXIgd2lsbCBoZWxwIG1lIHVuZGVyc3RhbmQgd2hhdCB0aGVzZSBLY29uZmlnIGRlcGVuZGVuY2llcyBhY3R1YWxseSBzaWduaWZ5IHdpdGhpbiB0aGUgY29kZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD44LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfcGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjQ0ND1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDU0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjQ1NTptb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGZsZXhjYW5fZHJpdmVyKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI0NTYtXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+OS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDY1MwoJCQkJCQkJb3V0cHV0OiA0NAoJCQkJCQkJdGhvdWdodHM6IDE3CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBDQU4gRHJpdmVyIEltcGxlbWVudGF0aW9uKioKCk9rYXksIHRpbWUgdG8gZ2V0IG15IGhhbmRzIGRpcnR5LiBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhpcyBGbGV4Q0FOIGRyaXZlciBhY3R1YWxseSB3b3JrcyBhdCBpdHMgY29yZS4gTGV0JiMzOTtzIHN0YXJ0IHdpdGggYGZsZXhjYW4tY29yZS5jYC4gSSBleHBlY3QgdG8gZmluZCB0aGUgbWVhdCBvZiB0aGUgcGxhdGZvcm0gZHJpdmVyIGRldGFpbHMgaW4gdGhlcmUgLSB0aGUgcmVnaXN0cmF0aW9uLCBwcm9iZSwgYW5kIHJlbW92ZSBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgaG93IHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiBpcyBtYW5hZ2VkLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBlc3NlbnRpYWwgZ2x1ZSBjb2RlIHRoYXQgbGlua3MgdGhlIGdlbmVyaWMgQ0FOIGZyYW1ld29yayB3aXRoIHRoZSBzcGVjaWZpYyBGbGV4Q0FOIHNpbGljb24uIEkgbmVlZCB0byBxdWlja2x5IGlkZW50aWZ5IHRoZSBrZXkgZGF0YSBzdHJ1Y3R1cmVzLCB0aGUgaW50ZXJydXB0IGhhbmRsaW5nIHNldHVwLCBhbmQgdGhlIHdheSB0aGUgY29udHJvbGxlciByZWdpc3RlcnMgYXJlIGFjY2Vzc2VkLiBMZXQmIzM5O3MgZ2V0IHRvIGl0IQoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjQyMCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA0MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyNDIwOlx0XG4yNDIxOlx0XHRpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7XG4yNDIyOlx0XHRcdGludCBlcnI7XG4yNDIzOlx0XG4yNDI0Olx0XHRcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXHUwMDI2XHUwMDI2XG4yNDI1Olx0XHRcdCAgICAgIHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NNSSkpIHtcbjI0MjY6XHRcdFx0XHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3Jlc3VtZShkZXZpY2UpO1xuMjQyNzpcdFx0XHRcdGlmIChlcnIpXG4yNDI4Olx0XHRcdFx0XHRyZXR1cm4gZXJyO1xuMjQyOTpcdFx0XHR9XG4yNDMwOlx0XG4yNDMxOlx0XHRcdGlmIChkZXZpY2VfbWF5X3dha2V1cChkZXZpY2UpKVxuMjQzMjpcdFx0XHRcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgZmFsc2UpO1xuMjQzMzpcdFx0fVxuMjQzNDpcdFxuMjQzNTpcdFx0cmV0dXJuIDA7XG4yNDM2Olx0fVxuMjQzNzpcdFxuMjQzODpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyBmbGV4Y2FuX3BtX29wcyA9IHtcbjI0Mzk6XHRcdFNFVF9TWVNURU1fU0xFRVBfUE1fT1BTKGZsZXhjYW5fc3VzcGVuZCwgZmxleGNhbl9yZXN1bWUpXG4yNDQwOlx0XHRTRVRfUlVOVElNRV9QTV9PUFMoZmxleGNhbl9ydW50aW1lX3N1c3BlbmQsIGZsZXhjYW5fcnVudGltZV9yZXN1bWUsIE5VTEwpXG4yNDQxOlx0XHRTRVRfTk9JUlFfU1lTVEVNX1NMRUVQX1BNX09QUyhmbGV4Y2FuX25vaXJxX3N1c3BlbmQsIGZsZXhjYW5fbm9pcnFfcmVzdW1lKVxuMjQ0MjpcdH07XG4yNDQzOlx0XG4yNDQ0Olx0c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XG4yNDQ1Olx0XHQuZHJpdmVyID0ge1xuMjQ0NjpcdFx0XHQubmFtZSA9IERSVl9OQU1FLFxuMjQ0NzpcdFx0XHQucG0gPSBcdTAwMjZmbGV4Y2FuX3BtX29wcyxcbjI0NDg6XHRcdFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcbjI0NDk6XHRcdH0sXG4yNDUwOlx0XHQucHJvYmUgPSBmbGV4Y2FuX3Byb2JlLFxuMjQ1MTpcdFx0LnJlbW92ZSA9IGZsZXhjYW5fcmVtb3ZlLFxuMjQ1MjpcdFx0LmlkX3RhYmxlID0gZmxleGNhbl9pZF90YWJsZSxcbjI0NTM6XHR9O1xuMjQ1NDpcdFxuMjQ1NTpcdG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZmxleGNhbl9kcml2ZXIpO1xuMjQ1NjpcdFxuMjQ1NzpcdE1PRFVMRV9BVVRIT1IoXCYjMzQ7U2FzY2hhIEhhdWVyIFx1MDAzY2tlcm5lbEBwZW5ndXRyb25peC5kZVx1MDAzZSwgXCYjMzQ7XG4yNDU4Olx0XHQgICAgICBcJiMzNDtNYXJjIEtsZWluZS1CdWRkZSBcdTAwM2NrZXJuZWxAcGVuZ3V0cm9uaXguZGVcdTAwM2VcJiMzNDspO1xuMjQ1OTpcdE1PRFVMRV9MSUNFTlNFKFwmIzM0O0dQTCB2MlwmIzM0Oyk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDU0OTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA2NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOgoKKipBbmFseXppbmcgdGhlIENBTiBEcml2ZXImIzM5O3MgSWRlbnRpZmljYXRpb24gU3RyYXRlZ3kqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIGBmbGV4Y2FuX2RyaXZlcmAuIEZpcnN0IG9mZiwgaXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNvIHdlJiMzOTtyZSB0YWxraW5nIGFib3V0IGhhcmR3YXJlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIGdvb2QuIE5vdywgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgaG93IGl0JiMzOTtzIGlkZW50aWZ5aW5nIHRoZSBoYXJkd2FyZSBpdCBzdXBwb3J0cy4gSXQgc2VlbXMgdG8gYmUgdXNpbmcgdHdvIHByaW1hcnkgbWV0aG9kcywgYW5kIEkgbmVlZCB0byBpbnZlc3RpZ2F0ZSB0aGVtIGZ1cnRoZXIuIEl0JiMzOTtzIGVpdGhlciBtYXRjaGluZyBiYXNlZCBvbiB0aGUgYG9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaGAgb3IgdGhlIGBpZF90YWJsZSA9IGZsZXhjYW5faWRfdGFibGVgLiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGF0JiMzOTtzIGluIGBmbGV4Y2FuX29mX21hdGNoYCBhbmQgYGZsZXhjYW5faWRfdGFibGVgIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzIGFuZCBwcm9wZXJ0aWVzIHRoaXMgZHJpdmVyIGlzIGxvb2tpbmcgZm9yLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZGV2aWNlIGlzIHNlbGVjdGVkIGFuZCBpbml0aWFsaXplZCwgYW5kIGlmIGl0JiMzOTtzIHVzaW5nIERldmljZSBUcmVlIG9yIGEgbW9yZSB0cmFkaXRpb25hbCBJRC1iYXNlZCBzeXN0ZW0uCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+cmVhZC1maWxlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtGaWxlJiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMmIzM0OywKICAmIzM0O0ZpcnN0TGluZSYjMzQ7OiAyMzc1LAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDQ1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OzIzNzU6XHRcbjIzNzY6XHRcdHJldHVybiAwO1xuMjM3NzpcdH1cbjIzNzg6XHRcbjIzNzk6XHRzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIGZsZXhjYW5fcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMjM4MDpcdHtcbjIzODE6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcbjIzODI6XHRcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuMjM4MzpcdFxuMjM4NDpcdFx0cmV0dXJuIGZsZXhjYW5fY2xrc19lbmFibGUocHJpdik7XG4yMzg1Olx0fVxuMjM4NjpcdFxuMjM4NzpcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcbjIzODg6XHR7XG4yMzg5Olx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XG4yMzkwOlx0XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbjIzOTE6XHRcbjIzOTI6XHRcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpIHtcbjIzOTM6XHRcdFx0aW50IGVycjtcbjIzOTQ6XHRcbjIzOTU6XHRcdFx0aWYgKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkpXG4yMzk2Olx0XHRcdFx0ZmxleGNhbl9lbmFibGVfd2FrZXVwX2lycShwcml2LCB0cnVlKTtcbjIzOTc6XHRcbjIzOTg6XHRcdFx0LyogRm9yIEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDTUksIGl0IG5lZWQgQVRGIHRvIHNlbmRcbjIzOTk6XHRcdFx0ICogdG8gU00gdGhyb3VnaCBTQ01JIHByb3RvY29sLCBTTSB3aWxsIGFzc2VydCB0aGUgSVBHX1NUT1BcbjI0MDA6XHRcdFx0ICogc2lnbmFsLiBCdXQgYWxsIHRoaXMgd29ya3MgbmVlZCB0aGUgQ0FOIGNsb2NrcyBrZWVwIG9uLlxuMjQwMTpcdFx0XHQgKiBBZnRlciB0aGUgQ0FOIG1vZHVsZSBnZXQgdGhlIElQR19TVE9QIG1vZGUsIGFuZCBzd2l0Y2ggdG9cbjI0MDI6XHRcdFx0ICogU1RPUCBtb2RlLCB3aGV0aGVyIHN0aWxsIGtlZXAgdGhlIENBTiBjbG9ja3Mgb24gb3IgZ2F0ZSB0aGVtXG4yNDAzOlx0XHRcdCAqIG9mZiBkZXBlbmQgb24gdGhlIEhhcmR3YXJlIGRlc2lnbi5cbjI0MDQ6XHRcdFx0ICovXG4yNDA1Olx0XHRcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXHUwMDI2XHUwMDI2XG4yNDA2Olx0XHRcdCAgICAgIHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NNSSkpIHtcbjI0MDc6XHRcdFx0XHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoZGV2aWNlKTtcbjI0MDg6XHRcdFx0XHRpZiAoZXJyKVxuMjQwOTpcdFx0XHRcdFx0cmV0dXJuIGVycjtcbjI0MTA6XHRcdFx0fVxuMjQxMTpcdFx0fVxuMjQxMjpcdFxuMjQxMzpcdFx0cmV0dXJuIDA7XG4yNDE0Olx0fVxuMjQxNTpcdFxuMjQxNjpcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2aWNlKVxuMjQxNzpcdHtcbjI0MTg6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcbjI0MTk6XHRcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA2NTAwCgkJCQkJCQlvdXRwdXQ6IDQxCgkJCQkJCQl0aG91Z2h0czogMTYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipBbmFseXppbmcgdGhlIENBTiBNYXRjaCBUYWJsZXMqKgoKT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgQ0FOIGZpbHRlcmluZyBsb2dpYy4gTGV0JiMzOTtzIHN0YXJ0IGJ5IG5hdmlnYXRpbmcgaW50byBgZmxleGNhbi1jb3JlLmNgLiBNeSBwcmltYXJ5IGludGVyZXN0IHJpZ2h0IG5vdyBpcyB1bmRlcnN0YW5kaW5nIGhvdyB0aGUgaW5jb21pbmcgQ0FOIG1lc3NhZ2VzIGFyZSBtYXRjaGVkIGFuZCByb3V0ZWQuIEkgd2FudCB0byB6ZXJvIGluIG9uIHRoZSBtYXRjaCB0YWJsZXMuIEkmIzM5O20gYXNzdW1pbmcgdGhlcmUmIzM5O3Mgc29tZSBzb3J0IG9mIGxvb2t1cCBtZWNoYW5pc20sIHBlcmhhcHMgYSBoYXNoIHRhYmxlIG9yIGEgbW9yZSBkaXJlY3QgaW5kZXhpbmcgbWV0aG9kLCB0byBxdWlja2x5IGRldGVybWluZSB3aGljaCBtYWlsYm94ZXMgb3IgYnVmZmVycyB0aGUgaW5jb21pbmcgZnJhbWVzIGdldCBkaXJlY3RlZCB0by4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBmaWx0ZXIgbWFza3MgYW5kIGlkZW50aWZpZXJzIGludGVyYWN0LCBhbmQgaG93IHRoZSBoYXJkd2FyZSBhY3R1YWxseSBwZXJmb3JtcyB0aGUgbWF0Y2hpbmcgdG8gb3B0aW1pemUgaG93IHRoZSBDQU4gZGF0YSBpcyBwcm9jZXNzZWQuIExldCYjMzk7cyBnZXQgdG8gaXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQxPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW5fb2ZfbWF0Y2h8ZmxleGNhbl9pZF90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTIwMjU9c3RhdGljIGludCBmbGV4Y2FuX3NldHVwX3N0b3BfbW9kZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMDYyOnN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZsZXhjYW5fb2ZfbWF0Y2hbXSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjMtXHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDhxbS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg4cW1fZGV2dHlwZV9kYXRhLCB9LFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNzgtfTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwNzk6TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDgwLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDgyLVx0e1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwODgtfTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwODk6TU9EVUxFX0RFVklDRV9UQUJMRShwbGF0Zm9ybSwgZmxleGNhbl9pZF90YWJsZSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDkwLVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTI0NDQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ0Ny1cdFx0LnBtID0gXHUwMDI2ZmxleGNhbl9wbV9vcHMsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyNDQ4Olx0XHQub2ZfbWF0Y2hfdGFibGUgPSBmbGV4Y2FuX29mX21hdGNoLFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ0OS1cdH0sXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1MS1cdC5yZW1vdmUgPSBmbGV4Y2FuX3JlbW92ZSxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NTI6XHQuaWRfdGFibGUgPSBmbGV4Y2FuX2lkX3RhYmxlLFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1My19O1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0MTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA3MzQyCgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlIGFuZCB3cml0dGVuIGluIHRoZSBmaXJzdCBwZXJzb246CgoqKkludmVzdGlnYXRpbmcgdGhlIGBmbGV4Y2FuX2lkX3RhYmxlYCoqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYGZsZXhjYW5faWRfdGFibGVgIGNvbnRhaW5zLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCYjMzk7cyBsaWtlbHkgYSBzdHJ1Y3R1cmUgb3IgdGFibGUgdGhhdCBtYXBzIGlkZW50aWZpZXJzIHJlbGF0ZWQgdG8gdGhlIEZsZXhDQU4gcGVyaXBoZXJhbC4gR2l2ZW4gdGhlIG5hbWluZyBjb252ZW50aW9uLCBJIHN1c3BlY3QgaXQmIzM5O3MgY3J1Y2lhbCBmb3IgZmlsdGVyaW5nLCBhY2NlcHRhbmNlIG1hc2tpbmcsIG9yIHBvdGVudGlhbGx5IElEIGFzc2lnbm1lbnQgd2l0aGluIHRoZSBDQU4gYnVzIGNvbW11bmljYXRpb24gZnJhbWV3b3JrLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBJRHMgYXJlIGJlaW5nIG1hbmFnZWQuIEkmIzM5O2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGFibGUmIzM5O3Mgc3RydWN0dXJlIOKAkyBpcyBpdCBhbiBhcnJheSwgYSBsaW5rZWQgbGlzdCwgb3Igc29tZXRoaW5nIG1vcmUgY29tcGxleD8gVGhlIHNpemUgYW5kIHRoZSBkYXRhIHR5cGVzIG9mIGl0cyBlbGVtZW50cyB3aWxsIGJlIGtleSB0byB1bmRlcnN0YW5kaW5nIGl0cyBpbnRlbmRlZCB1c2UgYW5kIHBvdGVudGlhbCBsaW1pdGF0aW9ucy4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgd2hlcmUgdGhlIHRhYmxlIGlzIGRlZmluZWQsIGhvdyBpdCYjMzk7cyBwb3B1bGF0ZWQgKHN0YXRpYyBpbml0aWFsaXphdGlvbj8gZHluYW1pYyB1cGRhdGVzPyksIGFuZCB3aGVyZSBpdCYjMzk7cyByZWZlcmVuY2VkIGluIHRoZSBjb2RlLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGhvdyB0aGlzIHRhYmxlIGlzIHVzZWQgd2lsbCBiZSBjcnVjaWFsIGZvciBhbnkgZGVidWdnaW5nIG9yIG9wdGltaXphdGlvbiBlZmZvcnRzLiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCYjMzk7cyBhY3R1YWxseSBpbiB0aGVyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwODAsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjAKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjA4MDpcdFxuMjA4MTpcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGZsZXhjYW5faWRfdGFibGVbXSA9IHtcbjIwODI6XHRcdHtcbjIwODM6XHRcdFx0Lm5hbWUgPSBcJiMzNDtmbGV4Y2FuLW1jZjU0NDF4XCYjMzQ7LFxuMjA4NDpcdFx0XHQuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpXHUwMDI2ZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSxcbjIwODU6XHRcdH0sIHtcbjIwODY6XHRcdFx0Lyogc2VudGluZWwgKi9cbjIwODc6XHRcdH0sXG4yMDg4Olx0fTtcbjIwODk6XHRNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBmbGV4Y2FuX2lkX3RhYmxlKTtcbjIwOTA6XHRcbjIwOTE6XHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcbjIwOTI6XHR7XG4yMDkzOlx0XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgKmRldnR5cGVfZGF0YTtcbjIwOTQ6XHRcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXY7XG4yMDk1Olx0XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2O1xuMjA5NjpcdFx0c3RydWN0IHJlZ3VsYXRvciAqcmVnX3hjZWl2ZXI7XG4yMDk3Olx0XHRzdHJ1Y3QgcGh5ICp0cmFuc2NlaXZlcjtcbjIwOTg6XHRcdHN0cnVjdCBjbGsgKmNsa19pcGcgPSBOVUxMLCAqY2xrX3BlciA9IE5VTEw7XG4yMDk5Olx0XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3M7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQyPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4zbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDc5NjEKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIGJyZWFrIGRvd24gdGhpcyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBmdW5jdGlvbi4KCioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZnVuY3Rpb24sIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgLiBUaGUgbmFtZSBpdHNlbGYgaXMgcHJldHR5IHNlbGYtZXhwbGFuYXRvcnkg4oCTIGl0JiMzOTtzIGRlc2lnbmVkIHRvIHJldHJpZXZlIHRoZSBidXMgZXJyb3IgY291bnRlciBmcm9tIGEgRmxleENBTiBwZXJpcGhlcmFsLiBHaXZlbiBteSB1bmRlcnN0YW5kaW5nIG9mIENBTiBjb250cm9sbGVycyBhbmQgdGhlIGNyaXRpY2FsIHJvbGUgb2YgZXJyb3IgZGV0ZWN0aW9uIGluIGVuc3VyaW5nIHJlbGlhYmxlIGNvbW11bmljYXRpb24sIHRoaXMgaXMgYSBjb3JlIGZ1bmN0aW9uLiBJJiMzOTtsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaW1wbGVtZW50ZWQuIEZpcnN0IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZSBlcnJvciBjb3VudGVycyBhcmUgbG9jYXRlZCBpbiB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgcmVnaXN0ZXIgbWFwLiBJcyBpdCBhIHNpbmdsZSByZWdpc3Rlciwgb3IgaXMgaXQgYSBmaWVsZCB3aXRoaW4gYSBsYXJnZXIgc3RhdHVzIHJlZ2lzdGVyPyBLbm93aW5nIHRoaXMgaXMgdml0YWwgdG8gdW5kZXJzdGFuZGluZyB0aGUgZnVuY3Rpb24mIzM5O3MgYWNjZXNzIG1ldGhvZC4KCkkgZXhwZWN0IHRoaXMgZnVuY3Rpb24gd2lsbCBsaWtlbHkgaW52b2x2ZSByZWFkaW5nIGEgc3BlY2lmaWMgcmVnaXN0ZXIgb3IgYSBmaWVsZCB3aXRoaW4gYSByZWdpc3RlciBvZiB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBUaGVyZSBhcmUgdHlwaWNhbGx5IGRpZmZlcmVudCBlcnJvciBjb3VudGVycyDigJMgdHJhbnNtaXQgZXJyb3IgY291bnRlciAoVEVDKSBhbmQgcmVjZWl2ZSBlcnJvciBjb3VudGVyIChSRUMpIOKAkyBzbyB0aGUgZnVuY3Rpb24mIzM5O3MgcGFyYW1ldGVycyBzaG91bGQgc3BlY2lmeSB3aGljaCBvbmUgaXMgb2YgaW50ZXJlc3QuIEFyZSB3ZSBhY2Nlc3NpbmcgYm90aD8gRG9lcyBpdCBvZmZlciBiaXQtZmllbGQgZ3JhbnVsYXJpdHkgdG8gY2hlY2sgaW5kaXZpZHVhbCBjb3VudGVycz8gT3IgZG9lcyBpdCBvZmZlciBib3RoPyBJJiMzOTtsbCBoYXZlIHRvIHNlZSB0aGUgY29kZS4gSSYjMzk7bSBob3BpbmcgaXQmIzM5O3Mgd2VsbC13cml0dGVuLCB3aXRoIGFwcHJvcHJpYXRlIGVycm9yIGhhbmRsaW5nIOKAkyB3aGF0IGhhcHBlbnMgaWYgdGhlIHBlcmlwaGVyYWwgaXNuJiMzOTt0IGluaXRpYWxpemVkLCBvciB0aGUgcG9pbnRlciB0byB0aGUgQ0FOIGNvbnRyb2xsZXImIzM5O3MgYmFzZSBhZGRyZXNzIGlzIGludmFsaWQ/IEEgcm9idXN0IGltcGxlbWVudGF0aW9uIHdvdWxkIGluY2x1ZGUgY2hlY2tzIGZvciB0aGVzZSBjb25kaXRpb25zLCBwZXJoYXBzIHJldHVybmluZyBhbiBlcnJvciBjb2RlIG9yIHVzaW5nIGFzc2VydGlvbnMgdG8gY2F0Y2ggdW5leHBlY3RlZCBzY2VuYXJpb3MuCgpGdXJ0aGVybW9yZSwgaG93IGRvZXMgdGhlIGZ1bmN0aW9uIGhhbmRsZSBwb3RlbnRpYWwgcmFjZSBjb25kaXRpb25zPyBNdWx0aXBsZSB0YXNrcyBtaWdodCB0cnkgdG8gYWNjZXNzIHRoZSBlcnJvciBjb3VudGVycyBzaW11bHRhbmVvdXNseS4gRG9lcyBpdCB1c2UgYW55IGxvY2tpbmcgbWVjaGFuaXNtcyBvciBhdG9taWMgb3BlcmF0aW9ucyB0byBlbnN1cmUgZGF0YSBpbnRlZ3JpdHk/IEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoYXQuIFRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGRldGFpbHMgYXJlIGNydWNpYWwgZm9yIHBlcmZvcm1hbmNlLiBJdCYjMzk7cyBsaWtlbHkgdGhpcyBpcyBnb2luZyB0byBiZSB3cml0dGVuIHdpdGggcmVnaXN0ZXIgYWNjZXNzIGluIG1pbmQgcmF0aGVyIHRoYW4gdGhlIGRhdGEgYmVpbmcgc3RvcmVkIG9uIHRoZSBoZWFwLiBJIHdhbnQgdG8ga25vdyBhYm91dCBob3cgdGhpcyBpcyB3cml0dGVuIHNvIEkgY2FuIGJlIHN1cmUgSSBjYW4gYWRhcHQgdGhlIGZ1bmN0aW9uIHRvIG15IG5lZWRzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogNzYwLAogICYjMzQ7TGluZUNvdW50JiMzNDs6IDM1Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtDb250ZW50cyYjMzQ7OiAmIzM0OyA3NjA6XHR9XG4gNzYxOlx0XG4gNzYyOlx0c3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbiA3NjM6XHRcdFx0XHRcdCAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxuIDc2NDpcdHtcbiA3NjU6XHRcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuIDc2NjpcdFx0aW50IGVycjtcbiA3Njc6XHRcbiA3Njg6XHRcdGlmICghbmV0aWZfcnVubmluZyhkZXYpKVxuIDc2OTpcdFx0XHRyZXR1cm4gMDtcbiA3NzA6XHRcbiA3NzE6XHRcdGVyciA9IHBtX3J1bnRpbWVfcmVzdW1lX2FuZF9nZXQocHJpdi1cdTAwM2VkZXYpO1xuIDc3MjpcdFx0aWYgKGVyciBcdTAwM2MgMClcbiA3NzM6XHRcdFx0cmV0dXJuIGVycjtcbiA3NzQ6XHRcbiA3NzU6XHRcdGVyciA9IF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgYmVjKTtcbiA3NzY6XHRcbiA3Nzc6XHRcdHBtX3J1bnRpbWVfcHV0KHByaXYtXHUwMDNlZGV2KTtcbiA3Nzg6XHRcbiA3Nzk6XHRcdHJldHVybiBlcnI7XG4gNzgwOlx0fVxuIDc4MTpcdFxuIDc4MjpcdHN0YXRpYyBuZXRkZXZfdHhfdCBmbGV4Y2FuX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbiA3ODM6XHR7XG4gNzg0Olx0XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbiA3ODU6XHRcdHN0cnVjdCBjYW5mZF9mcmFtZSAqY2ZkID0gKHN0cnVjdCBjYW5mZF9mcmFtZSAqKXNrYi1cdTAwM2VkYXRhO1xuIDc4NjpcdFx0dTMyIGNhbl9pZDtcbiA3ODc6XHRcdHUzMiBkYXRhO1xuIDc4ODpcdFx0dTMyIGN0cmwgPSBGTEVYQ0FOX01CX0NPREVfVFhfREFUQSB8ICgoY2FuX2ZkX2xlbjJkbGMoY2ZkLVx1MDAzZWxlbikpIFx1MDAzY1x1MDAzYyAxNik7XG4gNzg5Olx0XHRpbnQgaTtcbiA3OTA6XHRcbiA3OTE6XHRcdGlmIChjYW5fZGV2X2Ryb3BwZWRfc2tiKGRldiwgc2tiKSlcbiA3OTI6XHRcdFx0cmV0dXJuIE5FVERFVl9UWF9PSztcbiA3OTM6XHRcbiA3OTQ6XHRcdG5ldGlmX3N0b3BfcXVldWUoZGV2KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogODk3OQoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDU2CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGNvbnNpZGVyaW5nIHRoaXMgY29kZToKCioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqCgpPa2F5LCBzbyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBpcyBjbGVhcmx5IHBhcnQgb2YgdGhlIENBTiBzdWJzeXN0ZW0sIHNwZWNpZmljYWxseSB0aWVkIGludG8gYGRvX2dldF9iZXJyX2NvdW50ZXJgLiBNeSBpbW1lZGlhdGUgcXVlc3Rpb24gaXM6IHdoZXJlIGlzIHRoaXMgZnVuY3Rpb24gYWN0dWFsbHkgYmVpbmcgKnVzZWQqIG9yICphc3NpZ25lZCogd2l0aGluIHRoZSBsYXJnZXIgZnJhbWV3b3JrPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpdHMgY29udGV4dC4gU2luY2UgdGhpcyBsb29rcyBsaWtlIGEgRkxFWENBTiBzcGVjaWZpYyBmdW5jdGlvbiwgYSBxdWljayBzZWFyY2ggaW4gYGZsZXhjYW4tY29yZS5jYCBtYWtlcyB0aGUgbW9zdCBzZW5zZSBhcyBhIHN0YXJ0aW5nIHBvaW50LiBMZXQmIzM5O3MgZGlnIGluIGFuZCBzZWUgd2hhdCB0aGF0IGZpbGUgcmV2ZWFscyBhYm91dCBpdHMgaW1wbGVtZW50YXRpb24gYW5kIGludGVncmF0aW9uIHdpdGhpbiB0aGUgRkxFWENBTiBkcml2ZXIuIEkmIzM5O20gZXhwZWN0aW5nIHRvIGZpbmQgaXRzIHJvbGUsIGFuZCBob3cgaXQgaXMgZW1wbG95ZWQgdG8gcmV0cmlldmUgdGhlIGJ1cyBlcnJvciBjb3VudGVyLiBJIGFudGljaXBhdGUgaXQgd2lsbCBiZSBlc3NlbnRpYWwgZm9yIG1vbml0b3JpbmcgQ0FOIGJ1cyBoZWFsdGggd2l0aGluIHRoZSBGTEVYQ0FOIGltcGxlbWVudGF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXImIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYz03MzQ9c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc29mdHJlc2V0KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzQ4LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzQ5OnN0YXRpYyBpbnQgX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MC1cdFx0XHRcdCAgICAgIHN0cnVjdCBjYW5fYmVycl9jb3VudGVyICpiZWMpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzYyOnN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjMtXHRcdFx0XHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NzU6XHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NzYtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9ODk2PXN0YXRpYyB2b2lkIGZsZXhjYW5faXJxX3N0YXRlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIHUzMiByZWdfZXNyKVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNS1cdH0gZWxzZSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5MTY6XHRcdF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgXHUwMDI2YmVjKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNy1cdFx0bmV3X3N0YXRlID0gZmx0ID09IEZMRVhDQU5fRVNSX0ZMVF9DT05GX1BBU1NJVkUgP1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTIwOTE9c3RhdGljIGludCBmbGV4Y2FuX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNS1cdHByaXYtXHUwMDNlY2FuLmRvX3NldF9tb2RlID0gZmxleGNhbl9zZXRfbW9kZTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIyMDY6XHRwcml2LVx1MDAzZWNhbi5kb19nZXRfYmVycl9jb3VudGVyID0gZmxleGNhbl9nZXRfYmVycl9jb3VudGVyO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNy1cdHByaXYtXHUwMDNlY2FuLmN0cmxtb2RlX3N1cHBvcnRlZCA9IENBTl9DVFJMTU9ERV9MT09QQkFDSyB8XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDk5MTQKCQkJCQkJCW91dHB1dDogNDQKCQkJCQkJCXRob3VnaHRzOiA5MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipSZWFjaGFiaWxpdHkgYW5kIEZsZXhDQU4gb24gQU1ENjQqKgoKT2theSwgbGV0JiMzOTtzIGRpdmUgaW50byB0aGlzIHJlYWNoYWJpbGl0eSBxdWVzdGlvbi4gTXkgcHJpbWFyeSBjb25jZXJuIGlzIHdoZXRoZXIgb3Igbm90IHdlIGNhbiByZWxpYWJseSBwcm9iZSB0aGUgRmxleENBTiBoYXJkd2FyZSBpbiBhIHN0YW5kYXJkIHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBTcGVjaWZpY2FsbHksIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9yIFFFTVUuIFRoZXNlIGFyZSBjb21tb24gdGVzdGluZyBncm91bmRzLCBzbyBiZWluZyBhYmxlIHRvIGNvbmZpcm0gRmxleENBTiYjMzk7cyBwcmVzZW5jZSB0aGVyZSBpcyBrZXkuCgpUaGUgaW1tZWRpYXRlIGZvY3VzIGlzIHRoZSBhbWQ2NCBhcmNoaXRlY3R1cmUuIENhbiB3ZSBnZXQgRmxleENBTiB3b3JraW5nIHRoZXJlPyBUbyBkZXRlcm1pbmUgdGhhdCwgSSBuZWVkIHRvIGNoZWNrIGhvdyB0aGUgc3lzdGVtIHJlY29nbml6ZXMgdGhpcy4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIGl0JiMzOTtzIGEgcGxhdGZvcm0gZGV2aWNlLCBzbyBJIG5lZWQgdG8gY2hlY2sgdGhlIG1hdGNoIHRhYmxlLCBgZmxleGNhbl9vZl9tYXRjaGAuIEkgbmVlZCB0byByZXZpZXcgd2hhdCAmIzM0O2NvbXBhdGlibGUgc3RyaW5ncyYjMzQ7IGFyZSBwcmVzZW50IGluIHRoZSB0YWJsZS4gVGhlc2Ugc3RyaW5ncyBhcmUgZ29pbmcgdG8gYmUga2V5IHRvIG1hdGNoaW5nIHRoZSBoYXJkd2FyZS4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDU8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5yZWFkLWZpbGU8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0ZpbGUmIzM0OzogJiMzNDtkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDIwNjIsCiAgJiMzNDtMaW5lQ291bnQmIzM0OzogMjUKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0NvbnRlbnRzJiMzNDs6ICYjMzQ7MjA2MjpcdHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIGZsZXhjYW5fb2ZfbWF0Y2hbXSA9IHtcbjIwNjM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14OHFtLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDhxbV9kZXZ0eXBlX2RhdGEsIH0sXG4yMDY0Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDhtcC1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg4bXBfZGV2dHlwZV9kYXRhLCB9LFxuMjA2NTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXg5My1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXg5M19kZXZ0eXBlX2RhdGEsIH0sXG4yMDY2Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDk1LWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDk1X2RldnR5cGVfZGF0YSwgfSxcbjIwNjc6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14NnEtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfaW14NnFfZGV2dHlwZV9kYXRhLCB9LFxuMjA2ODpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyOC1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXgyOF9kZXZ0eXBlX2RhdGEsIH0sXG4yMDY5Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX2lteDI1X2RldnR5cGVfZGF0YSwgfSxcbjIwNzA6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14MzUtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfaW14MjVfZGV2dHlwZV9kYXRhLCB9LFxuMjA3MTpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEsIH0sXG4yMDcyOlx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLHAxMDEwLWZsZXhjYW5cJiMzNDssIC5kYXRhID0gXHUwMDI2ZnNsX3AxMDEwX2RldnR5cGVfZGF0YSwgfSxcbjIwNzM6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtmc2wsdmY2MTAtZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfdmY2MTBfZGV2dHlwZV9kYXRhLCB9LFxuMjA3NDpcdFx0eyAuY29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxsczEwMjFhcjItZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZmc2xfbHMxMDIxYV9yMl9kZXZ0eXBlX2RhdGEsIH0sXG4yMDc1Olx0XHR7IC5jb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGx4MjE2MGFyMS1mbGV4Y2FuXCYjMzQ7LCAuZGF0YSA9IFx1MDAyNmZzbF9seDIxNjBhX3IxX2RldnR5cGVfZGF0YSwgfSxcbjIwNzY6XHRcdHsgLmNvbXBhdGlibGUgPSBcJiMzNDtueHAsczMyZzItZmxleGNhblwmIzM0OywgLmRhdGEgPSBcdTAwMjZueHBfczMyZzJfZGV2dHlwZV9kYXRhLCB9LFxuMjA3NzpcdFx0eyAvKiBzZW50aW5lbCAqLyB9LFxuMjA3ODpcdH07XG4yMDc5Olx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XG4yMDgwOlx0XG4yMDgxOlx0c3RhdGljIGNvbnN0IHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2VfaWQgZmxleGNhbl9pZF90YWJsZVtdID0ge1xuMjA4MjpcdFx0e1xuMjA4MzpcdFx0XHQubmFtZSA9IFwmIzM0O2ZsZXhjYW4tbWNmNTQ0MXhcJiMzNDssXG4yMDg0Olx0XHRcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcdTAwMjZmc2xfbWNmNTQ0MXhfZGV2dHlwZV9kYXRhLFxuMjA4NTpcdFx0fSwge1xuMjA4NjpcdFx0XHQvKiBzZW50aW5lbCAqL1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIzLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTAxMQoJCQkJCQkJb3V0cHV0OiAyMwoJCQkJCQkJdGhvdWdodHM6IDI3MgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBJbml0aWFsIFRob3VnaHRzIG9uIEZsZXhDQU4qKgoKT2theSwgc28gRmxleENBTi4gSXQmIzM5O3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhvc2UgRnJlZXNjYWxlL05YUCBpLk1YLCBRb3JJUSwgYW5kIENvbGRGaXJlIFNvQ3MuIEkmIzM5O3ZlIGdvdCBhIGRlY2VudCBsaXN0IG9mIGNvbXBhdGlibGUgZGV2aWNlcyBoZXJlOiBgZnNsLGlteDhxbS1mbGV4Y2FuYCwgYGZzbCxpbXg4bXAtZmxleGNhbmAsIGFsbCB0aGUgd2F5IGRvd24gdG8gYGZsZXhjYW4tbWNmNTQ0MXhgLiBTdGFuZGFyZCBzdHVmZiBmb3IgdGhlc2UgZW1iZWRkZWQgc3lzdGVtcy4KCkJ1dCB3YWl0IGEgbWludXRlLi4uIGNhbiB0aGlzIGFjdHVhbGx5IHByb2JlIG9uIGFuIGFtZDY0IHN5c3RlbSwgcnVubmluZyBpbiBzb21ldGhpbmcgbGlrZSBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZT8gTXkgZ3V0IHNheXMgcHJvYmFibHkgbm90IGRpcmVjdGx5LCBidXQgaXQmIzM5O3Mgd29ydGggY2hlY2tpbmcuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSB2aXJ0dWFsIGRldmljZXMgZW11bGF0aW5nIGEgRmxleENBTiBpbnRlcmZhY2UgaW4gdGhvc2UgZW52aXJvbm1lbnRzLiBBcmUgdGhlcmUgYW55IFBDSSBkZXZpY2VzLCBVU0IgZGV2aWNlcywgb3IgZXZlbiBwbGF0Zm9ybSBkZXZpY2UgaW5zdGFudGlhdGlvbiBtZWNoYW5pc21zIHRoYXQgY291bGQgcG90ZW50aWFsbHkgc2ltdWxhdGUgdGhlIEZsZXhDQU4gYmVoYXZpb3I/CgpTcGVjaWZpY2FsbHksIGlzIHRoZXJlIGEgUENJIHdyYXBwZXIgb2Ygc29tZSBzb3J0IHRoYXQgbWlnaHQgZXhwb3NlIEZsZXhDQU4gZnVuY3Rpb25hbGl0eT8gVGltZSB0byBkaWcgaW50byB0aGUga2VybmVsIHNvdXJjZS4gSSYjMzk7bGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBwbGFjZSwgYGRyaXZlcnMvbmV0L2Nhbi9gLCBidXQgSSYjMzk7bGwgYWxzbyBicm9hZGVuIG15IHNlYXJjaC4gSXQgd291bGQgYmUgYSB1c2VmdWwgcGllY2Ugb2YgaW5mb3JtYXRpb24gdG8ga25vdyBpZiB0aGVyZSBpcyBhIHdyYXBwZXIgZm9yIGl0IGluIFFFTVUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O1xuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTAgbGluZXMuXG5Vc2UgbW9yZSBwcmVjaXNlIGV4cHJlc3Npb24gaWYgcG9zc2libGUuXG5cbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYz0xNzk9c3RhdGljIHZvaWQgX19pbml0IHZmNjEwX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpXG4tLVxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQyOS1cbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzA6XHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4wX0VOXSA9IGlteF9jbGtfZ2F0ZShcJiMzNDtmbGV4Y2FuMF9lblwmIzM0OywgXCYjMzQ7aXBnX2J1c1wmIzM0OywgQ0NNX0NTQ0RSMiwgMTEpO1xuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jOjQzMTpcdGNsa1tWRjYxMF9DTEtfRkxFWENBTjBdID0gaW14X2Nsa19nYXRlMihcJiMzNDtmbGV4Y2FuMFwmIzM0OywgXCYjMzQ7ZmxleGNhbjBfZW5cJiMzNDssIENDTV9DQ0dSMCwgQ0NNX0NDR1J4X0NHbigwKSk7XG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmM6NDMyOlx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMV9FTl0gPSBpbXhfY2xrX2dhdGUoXCYjMzQ7ZmxleGNhbjFfZW5cJiMzNDssIFwmIzM0O2lwZ19idXNcJiMzNDssIENDTV9DU0NEUjIsIDEyKTtcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzM6XHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4xXSA9IGlteF9jbGtfZ2F0ZTIoXCYjMzQ7ZmxleGNhbjFcJiMzNDssIFwmIzM0O2ZsZXhjYW4xX2VuXCYjMzQ7LCBDQ01fQ0NHUjksIENDTV9DQ0dSeF9DR24oNCkpO1xuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQzNC1cbi0tXG5kcml2ZXJzL25ldC9jYW4vTWFrZWZpbGU9MjM9b2JqLSQoQ09ORklHX0NBTl9DVFVDQU5GRClcdCYjNDM7PSBjdHVjYW5mZC9cbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQ0FOX0ZMRVhDQU4pXHQmIzQzOz0gZmxleGNhbi9cbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZS0yNS1vYmotJChDT05GSUdfQ0FOX0dSQ0FOKVx0XHQmIzQzOz0gZ3JjYW4ub1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlLTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTozOm9iai0kKENPTkZJR19DQU5fRkxFWENBTikgJiM0Mzs9IGZsZXhjYW4ub1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vTWFrZWZpbGUtNC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjU6ZmxleGNhbi1vYmpzIDo9XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTo2OmZsZXhjYW4tb2JqcyAmIzQzOz0gZmxleGNhbi1jb3JlLm9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjc6ZmxleGNhbi1vYmpzICYjNDM7PSBmbGV4Y2FuLWV0aHRvb2wub1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTItLy9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM6Ly8gZmxleGNhbi5jIC0gRkxFWENBTiBDQU4gY29udHJvbGxlciBkcml2ZXJcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQtLy9cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNy0jaW5jbHVkZSBcdTAwM2NsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaFx1MDAzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjg6I2luY2x1ZGUgXHUwMDNjbGludXgvY2FuL3BsYXRmb3JtL2ZsZXhjYW4uaFx1MDAzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjktI2luY2x1ZGUgXHUwMDNjbGludXgvcGh5L3BoeS5oXHUwMDNlXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozNTojaW5jbHVkZSBcJiMzNDtmbGV4Y2FuLmhcJiMzNDtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mzc6I2RlZmluZSBEUlZfTkFNRVx0XHRcdFwmIzM0O2ZsZXhjYW5cJiMzNDtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxMC0vKiBTdHJ1Y3R1cmUgb2YgdGhlIG1lc3NhZ2UgYnVmZmVyICovXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTE6c3RydWN0IGZsZXhjYW5fbWIge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjEyLVx0dTMyIGNhbl9jdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxNy0vKiBTdHJ1Y3R1cmUgb2YgdGhlIGhhcmR3YXJlIHJlZ2lzdGVycyAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjE4OnN0cnVjdCBmbGV4Y2FuX3JlZ3Mge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjE5LVx0dTMyIG1jcjtcdFx0LyogMHgwMCAqL1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI5My1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NDpzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgZmxleGNhbl9yZWdzKSA9PSAgMHg0ICogMTggJiM0MzsgMHhmYjgpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk1LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjk2OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI5Ny1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMDItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfcDEwMTBfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzA0LVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMxMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMxMTpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTItXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19CUk9LRU5fV0VSUl9TVEFURSB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDI4X2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMxOS1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMjMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14NnFfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzI1LVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMzEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMzI6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14OHFtX2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMzMy1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzM5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzQwOnN0YXRpYyBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDhtcF9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNDEtXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0OC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5M19kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTAtXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM1Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM1ODpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5NV9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTktXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM2NjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF92ZjYxMF9kZXZ0eXBlX2RhdGEgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNjctXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM3My1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM3NDpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSA9IHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM3NS1cdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgwLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzgxOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2x4MjE2MGFfcjFfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgyLVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zODktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozOTA6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBueHBfczMyZzJfZGV2dHlwZV9kYXRhID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzkxLVx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zOTktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fYml0dGltaW5nX2NvbnN0ID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDAxLVx0Lm5hbWUgPSBEUlZfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MTEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MTI6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fZmRfYml0dGltaW5nX2NvbnN0ID0ge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDEzLVx0Lm5hbWUgPSBEUlZfTkFNRSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fZmRfZGF0YV9iaXR0aW1pbmdfY29uc3QgPSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjUtXHQubmFtZSA9IERSVl9OQU1FLFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ0OC0gKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ0OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfYmUodm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDUwLXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0NTQ6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fd3JpdGVfYmUodTMyIHZhbCwgdm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDU1LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTgtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0NTk6c3RhdGljIGlubGluZSB1MzIgZmxleGNhbl9yZWFkX2xlKHZvaWQgX19pb21lbSAqYWRkcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2MC17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDYzLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2xlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2NS17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDY4LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY5OnN0YXRpYyBzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICpmbGV4Y2FuX2dldF9tYihjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDcwLVx0XHRcdFx0XHRcdCB1OCBtYl9pbmRleClcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0ODQ6XHRyZXR1cm4gKHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4NS1cdFx0KFx1MDAyNnByaXYtXHUwMDNlcmVncy1cdTAwM2VtYltiYW5rXVtwcml2LVx1MDAzZW1iX3NpemUgKiBtYl9pbmRleF0pO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ4ODpzdGF0aWMgaW50IGZsZXhjYW5fbG93X3Bvd2VyX2VudGVyX2FjayhzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDg5LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ5MDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ5MS1cdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTAyOnN0YXRpYyBpbnQgZmxleGNhbl9sb3dfcG93ZXJfZXhpdF9hY2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUwMy17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MDQ6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MDUtXHR1bnNpZ25lZCBpbnQgdGltZW91dCA9IEZMRVhDQU5fVElNRU9VVF9VUyAvIDEwO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxNS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxNjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2VuYWJsZV93YWtldXBfaXJxKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTE3LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxODpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxOS1cdHUzMiByZWdfbWNyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUzMTpzdGF0aWMgaW50IGZsZXhjYW5fc3RvcF9tb2RlX2VuYWJsZV9zY2Z3KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIGJvb2wgZW5hYmxlZClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMi17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTQ3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTQ4OnN0YXRpYyBpbmxpbmUgaW50IGZsZXhjYW5fZW50ZXJfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NDkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTUwOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTUxLVx0dTMyIHJlZ19tY3I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTU5LVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NGVykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTYwOlx0XHRyZXQgPSBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2Nmdyhwcml2LCB0cnVlKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU2MS1cdFx0aWYgKHJldCBcdTAwM2MgMClcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NzQtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NzU6XHRyZXR1cm4gZmxleGNhbl9sb3dfcG93ZXJfZW50ZXJfYWNrKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc2LX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU3Ny1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3ODpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX2V4aXRfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01Nzkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTgwOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTgxLVx0dTMyIHJlZ19tY3I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTg5LVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TRVRVUF9TVE9QX01PREVfU0NGVykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTkwOlx0XHRyZXQgPSBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2Nmdyhwcml2LCBmYWxzZSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01OTEtXHRcdGlmIChyZXQgXHUwMDNjIDApXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjAxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjAyOlx0cmV0dXJuIGZsZXhjYW5fbG93X3Bvd2VyX2V4aXRfYWNrKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjAzLX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYwNTpzdGF0aWMgaW5saW5lIHZvaWQgZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDYte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjA3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjA4LVx0dTMyIHJlZ19jdHJsID0gKHByaXYtXHUwMDNlcmVnX2N0cmxfZGVmYXVsdCB8IEZMRVhDQU5fQ1RSTF9FUlJfTVNLKTtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MTM6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fZXJyb3JfaXJxX2Rpc2FibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYxNC17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MTU6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MTYtXHR1MzIgcmVnX2N0cmwgPSAocHJpdi1cdTAwM2VyZWdfY3RybF9kZWZhdWx0IFx1MDAyNiB+RkxFWENBTl9DVFJMX0VSUl9NU0spO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYyMTpzdGF0aWMgaW50IGZsZXhjYW5fY2xrc19lbmFibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMi17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjM5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjQwOnN0YXRpYyB2b2lkIGZsZXhjYW5fY2xrc19kaXNhYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NDEte1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY0NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY0NjpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX3RyYW5zY2VpdmVyX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjQ3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2NTY6c3RhdGljIGlubGluZSBpbnQgZmxleGNhbl90cmFuc2NlaXZlcl9kaXNhYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTcte1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY2NjpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9lbmFibGUoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2Ny17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Njg6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NjktXHR1MzIgcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3NC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY3NTpcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3Ni19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Nzg6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZGlzYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjc5LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY4MDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY4MS1cdHUzMiByZWc7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjg2LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njg3Olx0cmV0dXJuIGZsZXhjYW5fbG93X3Bvd2VyX2VudGVyX2Fjayhwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY4OC19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2OTA6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZnJlZXplKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02OTEte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkyOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjkzLVx0dW5zaWduZWQgaW50IHRpbWVvdXQ7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE1OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3VuZnJlZXplKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MTYte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE4LVx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3MzQ6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc29mdHJlc2V0KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzUte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM2Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzM3LVx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NDgtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NDk6c3RhdGljIGludCBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzUwLVx0XHRcdFx0ICAgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NTI6XHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc1MzpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1NC1cdHUzMiByZWcgPSBwcml2LVx1MDAzZXJlYWQoXHUwMDI2cmVncy1cdTAwM2VlY3IpO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2MS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc2MjpzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYzLVx0XHRcdFx0ICAgIHN0cnVjdCBjYW5fYmVycl9jb3VudGVyICpiZWMpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjQte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzY1Olx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjYtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3NC1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc3NTpcdGVyciA9IF9fZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGRldiwgYmVjKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3Ni1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03ODEtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3ODI6c3RhdGljIG5ldGRldl90eF90IGZsZXhjYW5fc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgzLXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc4NDpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzg1LVx0c3RydWN0IGNhbmZkX2ZyYW1lICpjZmQgPSAoc3RydWN0IGNhbmZkX2ZyYW1lICopc2tiLVx1MDAzZWRhdGE7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtODMzLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODM0OnN0YXRpYyB2b2lkIGZsZXhjYW5faXJxX2J1c19lcnIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJlZ19lc3IpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzUte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODM2Olx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4Mzc6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzgtXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5NS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjg5NjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2lycV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5Ny17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTg6XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjg5OTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkwMC1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTE1LVx0fSBlbHNlIHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjkxNjpcdFx0X19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBcdTAwMjZiZWMpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTE3LVx0XHRuZXdfc3RhdGUgPSBmbHQgPT0gRkxFWENBTl9FU1JfRkxUX0NPTkZfUEFTU0lWRSA/XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQyLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTQzOnN0YXRpYyBpbmxpbmUgdTY0IGZsZXhjYW5fcmVhZDY0X21hc2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiwgdm9pZCBfX2lvbWVtICphZGRyLCB1NjQgbWFzaylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk0NC17XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTU1OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlNjQoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiwgdTY0IHZhbCwgdm9pZCBfX2lvbWVtICphZGRyKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU2LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NjItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NjM6c3RhdGljIGlubGluZSB1NjQgZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY0LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk2NTpcdHJldHVybiBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHByaXYsIFx1MDAyNnByaXYtXHUwMDNlcmVncy1cdTAwM2VpZmxhZzEsIHByaXYtXHUwMDNlcnhfbWFzayk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NjYtfVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY3LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTY4OnN0YXRpYyBpbmxpbmUgdTY0IGZsZXhjYW5fcmVhZF9yZWdfaWZsYWdfdHgoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2OS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NzA6XHRyZXR1cm4gZmxleGNhbl9yZWFkNjRfbWFzayhwcml2LCBcdTAwMjZwcml2LVx1MDAzZXJlZ3MtXHUwMDNlaWZsYWcxLCBwcml2LVx1MDAzZXR4X21hc2spO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTcxLX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Mi1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3MzpzdGF0aWMgaW5saW5lIHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnJ4X29mZmxvYWRfdG9fcHJpdihzdHJ1Y3QgY2FuX3J4X29mZmxvYWQgKm9mZmxvYWQpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzQte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTc1Olx0cmV0dXJuIGNvbnRhaW5lcl9vZihvZmZsb2FkLCBzdHJ1Y3QgZmxleGNhbl9wcml2LCBvZmZsb2FkKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Ni19XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5Nzg6c3RhdGljIHN0cnVjdCBza19idWZmICpmbGV4Y2FuX21haWxib3hfcmVhZChzdHJ1Y3QgY2FuX3J4X29mZmxvYWQgKm9mZmxvYWQsXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzktXHRcdFx0XHRcdCAgICB1bnNpZ25lZCBpbnQgbiwgdTMyICp0aW1lc3RhbXAsXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTgxLXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk4MjpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSByeF9vZmZsb2FkX3RvX3ByaXYob2ZmbG9hZCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5ODM6XHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVx1MDAzZXJlZ3M7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5ODQ6XHRzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICptYjtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4NS1cdHN0cnVjdCBza19idWZmICpza2I7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTg5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTkwOlx0bWIgPSBmbGV4Y2FuX2dldF9tYihwcml2LCBuKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk5MS1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDYyLVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19VU0VfUlhfTUFJTEJPWClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwNjM6XHRcdGZsZXhjYW5fd3JpdGU2NChwcml2LCBGTEVYQ0FOX0lGTEFHX01CKG4pLCBcdTAwMjZyZWdzLVx1MDAzZWlmbGFnMSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDY0LVx0ZWxzZVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNzUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBmbGV4Y2FuX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc3LXtcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc5LVx0c3RydWN0IG5ldF9kZXZpY2Vfc3RhdHMgKnN0YXRzID0gXHUwMDI2ZGV2LVx1MDAzZXN0YXRzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwODItXHRpcnFyZXR1cm5fdCBoYW5kbGVkID0gSVJRX05PTkU7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA5MS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwOTI6XHRcdHdoaWxlICgocmVnX2lmbGFnX3J4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChwcml2KSkpIHtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwOTMtXHRcdFx0aGFuZGxlZCA9IElSUV9IQU5ETEVEO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTE4Olx0cmVnX2lmbGFnX3R4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ190eChwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTktXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTEzMi1cdFx0XHQgICAgXHUwMDI2cHJpdi1cdTAwM2V0eF9tYi1cdTAwM2VjYW5fY3RybCk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTMzOlx0XHRmbGV4Y2FuX3dyaXRlNjQocHJpdiwgcHJpdi1cdTAwM2V0eF9tYXNrLCBcdTAwMjZyZWdzLVx1MDAzZWlmbGFnMSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTM0LVx0XHRuZXRpZl93YWtlX3F1ZXVlKGRldik7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE0OC1cdFx0XHRcdFx0ICAgRkxFWENBTl9RVUlSS19CUk9LRU5fUEVSUl9TVEFURSkpKVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE0OTpcdFx0ZmxleGNhbl9pcnFfc3RhdGUoZGV2LCByZWdfZXNyKTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNTAtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1My1cdCAgICAocHJpdi1cdTAwM2VjYW4uY3RybG1vZGUgXHUwMDI2IENBTl9DVFJMTU9ERV9CRVJSX1JFUE9SVElORykpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTU0Olx0XHRmbGV4Y2FuX2lycV9idXNfZXJyKGRldiwgcmVnX2Vzcik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTU1LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzQtXHRcdFx0ICAgIEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTc1Olx0XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE3Ni1cdFx0XHRlbHNlXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTc3Olx0XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZGlzYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzgtXHRcdFx0YnJlYWs7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4MC1cdFx0Y2FzZSBDQU5fU1RBVEVfRVJST1JfV0FSTklORzpcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjExODE6XHRcdFx0ZmxleGNhbl9lcnJvcl9pcnFfZW5hYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Mi1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTg1LVx0XHRjYXNlIENBTl9TVEFURV9CVVNfT0ZGOlxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE4NjpcdFx0XHRmbGV4Y2FuX2Vycm9yX2lycV9kaXNhYmxlKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Ny1cdFx0XHRicmVhaztcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTk5LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwMDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwMS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjAyOlx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMjAzLVx0Y29uc3Qgc3RydWN0IGNhbl9iaXR0aW1pbmcgKmJ0ID0gXHUwMDI2cHJpdi1cdTAwM2VjYW4uYml0dGltaW5nO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwNDpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMDUtXHR1MzIgcmVnO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMjctXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjI4OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMjkte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIzMDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzMS1cdHN0cnVjdCBjYW5fYml0dGltaW5nICpidCA9IFx1MDAyNnByaXYtXHUwMDNlY2FuLmJpdHRpbWluZztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMzItXHRzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqZGJ0ID0gXHUwMDI2cHJpdi1cdTAwM2VjYW4uZmQuZGF0YV9iaXR0aW1pbmc7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMzOlx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzNC1cdHUzMiByZWdfY2J0LCByZWdfZmRjdHJsO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzMzMtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM0OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTMzNS17XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM2Olx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM3Olx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cdTAwM2VyZWdzO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTMzOC1cdHUzMiByZWc7XG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM1NC1cdGlmIChwcml2LVx1MDAzZWNhbi5jdHJsbW9kZV9zdXBwb3J0ZWQgXHUwMDI2IENBTl9DVFJMTU9ERV9GRClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzNTU6XHRcdHJldHVybiBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY2J0KGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU2LVx0ZWxzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM1NzpcdFx0cmV0dXJuIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jdHJsKGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU4LX1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzYwOnN0YXRpYyB2b2lkIGZsZXhjYW5fcmFtX2luaXQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNjEte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MjpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MzpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNjQtXHR1MzIgcmVnX2N0cmwyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzODYtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzg3OnN0YXRpYyBpbnQgZmxleGNhbl9yeF9vZmZsb2FkX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzg4LXtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzODk6XHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTAtXHRpbnQgZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTItXHRpZiAocHJpdi1cdTAwM2VjYW4uY3RybG1vZGUgXHUwMDI2IENBTl9DVFJMTU9ERV9GRClcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzOTM6XHRcdHByaXYtXHUwMDNlbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmxleGNhbl9tYikgJiM0MzsgQ0FORkRfTUFYX0RMRU47XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzk0LVx0ZWxzZVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM5NTpcdFx0cHJpdi1cdTAwM2VtYl9zaXplID0gc2l6ZW9mKHN0cnVjdCBmbGV4Y2FuX21iKSAmIzQzOyBDQU5fTUFYX0RMRU47XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzk2LVxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDQtXHRcdHByaXYtXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQwNTpcdFx0XHRmbGV4Y2FuX2dldF9tYihwcml2LCBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX01BSUxCT1gpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwNi1cdGVsc2VcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDctXHRcdHByaXYtXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQwODpcdFx0XHRmbGV4Y2FuX2dldF9tYihwcml2LCBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX0ZJRk8pO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwOS1cdHByaXYtXHUwMDNldHhfbWJfaWR4ID0gcHJpdi1cdTAwM2VtYl9jb3VudCAtIDE7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDEwOlx0cHJpdi1cdTAwM2V0eF9tYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIHByaXYtXHUwMDNldHhfbWJfaWR4KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTEtXHRwcml2LVx1MDAzZXR4X21hc2sgPSBGTEVYQ0FOX0lGTEFHX01CKHByaXYtXHUwMDNldHhfbWJfaWR4KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDEzOlx0cHJpdi1cdTAwM2VvZmZsb2FkLm1haWxib3hfcmVhZCA9IGZsZXhjYW5fbWFpbGJveF9yZWFkO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQxNC1cbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDMxLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzMjpzdGF0aWMgdm9pZCBmbGV4Y2FuX2NoaXBfaW50ZXJydXB0c19lbmFibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MzMte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNDpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MzYtXHR1NjQgcmVnX2ltYXNrO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NDUtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ2OnN0YXRpYyB2b2lkIGZsZXhjYW5fY2hpcF9pbnRlcnJ1cHRzX2Rpc2FibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NDcte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ0ODpcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ0OTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NTAtXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ1Ni1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NTc6LyogZmxleGNhbl9jaGlwX3N0YXJ0XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDU4LSAqXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ2MS0gKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NjI6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfc3RhcnQoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjMte1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NDpcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NTpcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXHUwMDNlcmVncztcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjYtXHR1MzIgcmVnX21jciwgcmVnX2N0cmwsIHJlZ19jdHJsMiwgcmVnX21lY3I7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDY3LVx0aW50IGVyciwgaTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0Njg6XHRzdHJ1Y3QgZmxleGNhbl9tYiBfX2lvbWVtICptYjtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjktXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDcwLVx0LyogZW5hYmxlIG1vZHVsZSAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3MTpcdGVyciA9IGZsZXhjYW5fY2hpcF9lbmFibGUocHJpdik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDcyLVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc1LVx0Lyogc29mdCByZXNldCAqL1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3NjpcdGVyciA9IGZsZXhjYW5fY2hpcF9zb2Z0cmVzZXQocHJpdik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc3LVx0aWYgKGVycilcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgwLVx0aWYgKHByaXYtXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcdTAwMjYgRkxFWENBTl9RVUlSS19TVVBQT1JUX0VDQylcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODE6XHRcdGZsZXhjYW5fcmFtX2luaXQoZGV2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0ODItXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDgzOlx0ZmxleGNhbl9zZXRfYml0dGltaW5nKGRldik7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDg0LVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4NS1cdC8qIHNldCBmcmVlemUsIGhhbHQgKi9cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODY6XHRlcnIgPSBmbGV4Y2FuX2NoaXBfZnJlZXplKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4Ny1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTUxOC1cdCAqICAgICAgIG9mIGEgdHJhbnNtaXR0ZWQgbWVzc2FnZS4gVGhpcyBpcyBub3QgZG9jdW1lbnRlZCBpblxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTUxOTpcdCAqICAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgZmxleGNhbiBibG9jayBndWlkZS5cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE1MjAtXHQgKlxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2MDYtXHRcdGZvciAoaSA9IHByaXYtXHUwMDNlb2ZmbG9hZC5tYl9maXJzdDsgaSBcdTAwM2M9IHByaXYtXHUwMDNlb2ZmbG9hZC5tYl9sYXN0OyBpJiM0MzsmIzQzOykge1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTYwNzpcdFx0XHRtYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIGkpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYwOC1cdFx0XHRwcml2LVx1MDAzZXdyaXRlKEZMRVhDQU5fTUJfQ09ERV9SWF9FTVBUWSxcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjEzLVx0XHRmb3IgKGkgPSBGTEVYQ0FOX1RYX01CX1JFU0VSVkVEX1JYX0ZJRk87IGkgXHUwMDNjIHByaXYtXHUwMDNlbWJfY291bnQ7IGkmIzQzOyYjNDM7KSB7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjE0Olx0XHRcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjE1LVx0XHRcdHByaXYtXHUwMDNld3JpdGUoRkxFWENBTl9NQl9DT0RFX1JYX0lOQUNUSVZFLFxuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2NzktXHQvKiBzeW5jaHJvbml6ZSB3aXRoIHRoZSBjYW4gYnVzICovXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjgwOlx0ZXJyID0gZmxleGNhbl9jaGlwX3VuZnJlZXplKHByaXYpO1xuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY4MS1cdGlmIChlcnIpXG4tLVxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5Mi0gb3V0X2NoaXBfZGlzYWJsZTpcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE2OTM6XHRmbGV4Y2FuX2NoaXBfZGlzYWJsZShwcml2KTtcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTQtXHRyZXR1cm4gZXJyO1xuLS1cbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTYtXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjk3Oi8qIF9fZmxleGNhbl9jaGlwX3N0b3BcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE2OTgtICpcbi0tXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNzAwLSAqL1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ1PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTk2CgkJCQkJCQlvdXRwdXQ6IDQ0CgkJCQkJCQl0aG91Z2h0czogMTY1CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkZsZXhDQU4gRHJpdmVyIFByb2JlIEludmVzdGlnYXRpb24qKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBwcm9iZSB0aGUgZmxleGNhbiBkcml2ZXIgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9uIGFtZDY0LiBBIHF1aWNrIHRob3VnaHQ6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBGbGV4Q0FOPyBJIG5lZWQgdG8gY2hlY2suCgpBbHJpZ2h0LCBhIHF1aWNrIFFFTVUgcmVmZXJlbmNlIHJldmVhbHMgaXQgZG9lc24mIzM5O3QuIEl0IG9mZmVycyBrdmFzZXJfcGNpLCBtaW9lMzY4MF9wY2ksIHBjbTM2ODBfcGNpIOKAkyBhbGwgU0pBMTAwMCBQQ0kgQ0FOIGNvbnRyb2xsZXJzIOKAkyBhbmQgY2FuX2hvc3Rfc29ja2V0Y2FuLCBidXQgbm8gRmxleENBTi4gSG1tLi4uIHdhaXQsIGlzIHRoZXJlIHNvbWUgeDg2IHNwZWNpZmljIG1hZ2ljIGluIFFFTVUgdGhhdCB3b3VsZCBsZXQgbWUgZW11bGF0ZSBhIGZsZXhjYW4/IE5vLCB0aGF0JiMzOTtzIG5vdCByaWdodC4gRmxleENBTiBpcyBhbiBOWFAvRnJlZXNjYWxlIFNvQyBwZXJpcGhlcmFsLCBpbnRlbmRlZCBmb3IgaW14MjUvaW14Ni9pbXg4L3MzMmcvZXRjLiB0eXBlIHN5c3RlbXMuCgpTbywgaWYgSSBjYW4mIzM5O3QgZW11bGF0ZSBGbGV4Q0FOLCBjYW4gSSBhdCBsZWFzdCBpbnN0YW50aWF0ZSBpdCBkeW5hbWljYWxseSwgc29tZWhvdz8gTGV0JiMzOTtzIGRlbHZlIGludG8gYGZsZXhjYW5fcHJvYmVgLiBXaGF0IGFyZSBpdHMgcmVxdWlyZW1lbnRzPyBJIG5lZWQgdG8gc2VlIHdoYXQgSSBoYXZlIHRvIHNhdGlzZnkgaW4gb3JkZXIgdG8gZXZlbiB0cmlnZ2VyIGl0LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjI2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jJiMzNDssCiAgJiMzNDtGaXJzdExpbmUmIzM0OzogMjA5MCwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiA4MAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsyMDkwOlx0XG4yMDkxOlx0c3RhdGljIGludCBmbGV4Y2FuX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXG4yMDkyOlx0e1xuMjA5MzpcdFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhICpkZXZ0eXBlX2RhdGE7XG4yMDk0Olx0XHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2O1xuMjA5NTpcdFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdjtcbjIwOTY6XHRcdHN0cnVjdCByZWd1bGF0b3IgKnJlZ194Y2VpdmVyO1xuMjA5NzpcdFx0c3RydWN0IHBoeSAqdHJhbnNjZWl2ZXI7XG4yMDk4Olx0XHRzdHJ1Y3QgY2xrICpjbGtfaXBnID0gTlVMTCwgKmNsa19wZXIgPSBOVUxMO1xuMjA5OTpcdFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzO1xuMjEwMDpcdFx0c3RydWN0IGZsZXhjYW5fcGxhdGZvcm1fZGF0YSAqcGRhdGE7XG4yMTAxOlx0XHRpbnQgZXJyLCBpcnE7XG4yMTAyOlx0XHR1OCBjbGtfc3JjID0gMTtcbjIxMDM6XHRcdHUzMiBjbG9ja19mcmVxID0gMDtcbjIxMDQ6XHRcbjIxMDU6XHRcdHJlZ194Y2VpdmVyID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDt4Y2VpdmVyXCYjMzQ7KTtcbjIxMDY6XHRcdGlmIChQVFJfRVJSKHJlZ194Y2VpdmVyKSA9PSAtRVBST0JFX0RFRkVSKVxuMjEwNzpcdFx0XHRyZXR1cm4gLUVQUk9CRV9ERUZFUjtcbjIxMDg6XHRcdGVsc2UgaWYgKFBUUl9FUlIocmVnX3hjZWl2ZXIpID09IC1FTk9ERVYpXG4yMTA5Olx0XHRcdHJlZ194Y2VpdmVyID0gTlVMTDtcbjIxMTA6XHRcdGVsc2UgaWYgKElTX0VSUihyZWdfeGNlaXZlcikpXG4yMTExOlx0XHRcdHJldHVybiBQVFJfRVJSKHJlZ194Y2VpdmVyKTtcbjIxMTI6XHRcbjIxMTM6XHRcdHRyYW5zY2VpdmVyID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBOVUxMKTtcbjIxMTQ6XHRcdGlmIChJU19FUlIodHJhbnNjZWl2ZXIpKVxuMjExNTpcdFx0XHRyZXR1cm4gZGV2X2Vycl9wcm9iZShcdTAwMjZwZGV2LVx1MDAzZWRldiwgUFRSX0VSUih0cmFuc2NlaXZlciksXG4yMTE2Olx0XHRcdFx0XHQgICAgIFwmIzM0O2ZhaWxlZCB0byBnZXQgcGh5XFxuXCYjMzQ7KTtcbjIxMTc6XHRcbjIxMTg6XHRcdGlmIChwZGV2LVx1MDAzZWRldi5vZl9ub2RlKSB7XG4yMTE5Olx0XHRcdG9mX3Byb3BlcnR5X3JlYWRfdTMyKHBkZXYtXHUwMDNlZGV2Lm9mX25vZGUsXG4yMTIwOlx0XHRcdFx0XHQgICAgIFwmIzM0O2Nsb2NrLWZyZXF1ZW5jeVwmIzM0OywgXHUwMDI2Y2xvY2tfZnJlcSk7XG4yMTIxOlx0XHRcdG9mX3Byb3BlcnR5X3JlYWRfdTgocGRldi1cdTAwM2VkZXYub2Zfbm9kZSxcbjIxMjI6XHRcdFx0XHRcdCAgICBcJiMzNDtmc2wsY2xrLXNvdXJjZVwmIzM0OywgXHUwMDI2Y2xrX3NyYyk7XG4yMTIzOlx0XHR9IGVsc2Uge1xuMjEyNDpcdFx0XHRwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoXHUwMDI2cGRldi1cdTAwM2VkZXYpO1xuMjEyNTpcdFx0XHRpZiAocGRhdGEpIHtcbjIxMjY6XHRcdFx0XHRjbG9ja19mcmVxID0gcGRhdGEtXHUwMDNlY2xvY2tfZnJlcXVlbmN5O1xuMjEyNzpcdFx0XHRcdGNsa19zcmMgPSBwZGF0YS1cdTAwM2VjbGtfc3JjO1xuMjEyODpcdFx0XHR9XG4yMTI5Olx0XHR9XG4yMTMwOlx0XG4yMTMxOlx0XHRpZiAoIWNsb2NrX2ZyZXEpIHtcbjIxMzI6XHRcdFx0Y2xrX2lwZyA9IGRldm1fY2xrX2dldChcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7aXBnXCYjMzQ7KTtcbjIxMzM6XHRcdFx0aWYgKElTX0VSUihjbGtfaXBnKSkge1xuMjEzNDpcdFx0XHRcdGRldl9lcnIoXHUwMDI2cGRldi1cdTAwM2VkZXYsIFwmIzM0O25vIGlwZyBjbG9jayBkZWZpbmVkXFxuXCYjMzQ7KTtcbjIxMzU6XHRcdFx0XHRyZXR1cm4gUFRSX0VSUihjbGtfaXBnKTtcbjIxMzY6XHRcdFx0fVxuMjEzNzpcdFxuMjEzODpcdFx0XHRjbGtfcGVyID0gZGV2bV9jbGtfZ2V0KFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtwZXJcJiMzNDspO1xuMjEzOTpcdFx0XHRpZiAoSVNfRVJSKGNsa19wZXIpKSB7XG4yMTQwOlx0XHRcdFx0ZGV2X2VycihcdTAwMjZwZGV2LVx1MDAzZWRldiwgXCYjMzQ7bm8gcGVyIGNsb2NrIGRlZmluZWRcXG5cJiMzNDspO1xuMjE0MTpcdFx0XHRcdHJldHVybiBQVFJfRVJSKGNsa19wZXIpO1xuMjE0MjpcdFx0XHR9XG4yMTQzOlx0XHRcdGNsb2NrX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrX3Blcik7XG4yMTQ0Olx0XHR9XG4yMTQ1Olx0XG4yMTQ2Olx0XHRpcnEgPSBwbGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApO1xuMjE0NzpcdFx0aWYgKGlycSBcdTAwM2MgMClcbjIxNDg6XHRcdFx0cmV0dXJuIGlycTtcbjIxNDk6XHRcbjIxNTA6XHRcdHJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XG4yMTUxOlx0XHRpZiAoSVNfRVJSKHJlZ3MpKVxuMjE1MjpcdFx0XHRyZXR1cm4gUFRSX0VSUihyZWdzKTtcbjIxNTM6XHRcbjIxNTQ6XHRcdGRldnR5cGVfZGF0YSA9IGRldmljZV9nZXRfbWF0Y2hfZGF0YShcdTAwMjZwZGV2LVx1MDAzZWRldik7XG4yMTU1Olx0XG4yMTU2Olx0XHRpZiAoKGRldnR5cGVfZGF0YS1cdTAwM2VxdWlya3MgXHUwMDI2IEZMRVhDQU5fUVVJUktfU1VQUE9SVF9GRCkgXHUwMDI2XHUwMDI2XG4yMTU3Olx0XHQgICAgISgoZGV2dHlwZV9kYXRhLVx1MDAzZXF1aXJrcyBcdTAwMjZcbjIxNTg6XHRcdCAgICAgICAoRkxFWENBTl9RVUlSS19VU0VfUlhfTUFJTEJPWCB8XG4yMTU5Olx0XHRcdEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9NQUlMQk9YIHxcbjIxNjA6XHRcdFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSIHxcbjIxNjE6XHRcdFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX0ZJRk8pKSA9PVxuMjE2MjpcdFx0ICAgICAgKEZMRVhDQU5fUVVJUktfVVNFX1JYX01BSUxCT1ggfFxuMjE2MzpcdFx0ICAgICAgIEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9NQUlMQk9YIHxcbjIxNjQ6XHRcdCAgICAgICBGTEVYQ0FOX1FVSVJLX1NVUFBPUlRfUlhfTUFJTEJPWF9SVFIpKSkge1xuMjE2NTpcdFx0XHRkZXZfZXJyKFx1MDAyNnBkZXYtXHUwMDNlZGV2LCBcJiMzNDtDQU4tRkQgbW9kZSBkb2VzbiYjMzk7dCB3b3JrIGluIFJYLUZJRk8gbW9kZSFcXG5cJiMzNDspO1xuMjE2NjpcdFx0XHRyZXR1cm4gLUVJTlZBTDtcbjIxNjc6XHRcdH1cbjIxNjg6XHRcbjIxNjk6XHRcdGlmICgoZGV2dHlwZV9kYXRhLVx1MDAzZXF1aXJrcyBcdTAwMjZcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yNy8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjY4NjAKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiA0MzkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiB0aGUgRmxleENBTiBEcml2ZXIgYW5kIFN5emthbGxlciYjMzk7cyBUZXN0aW5nIENhcGFiaWxpdGllcyoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhlIGBmbGV4Y2FuYCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBmbGFnZ2VkIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0IG5lZWRzIHNwZWNpZmljIHBsYXRmb3JtLWxldmVsIHJlc291cmNlcy4gSSBzZWUgaXQmIzM5O3MgdXNpbmcgYGRldm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZWAsIGBwbGF0Zm9ybV9nZXRfaXJxYCwgYW5kIGBkZXZpY2VfZ2V0X21hdGNoX2RhdGFgLiBUaGF0IG1lYW5zIGl0JiMzOTtzIGV4cGVjdGluZyBhIERldmljZSBUcmVlIChgb2Zfbm9kZWApIG9yIHBsYXRmb3JtIGRhdGEsIGFsb25nIHdpdGggYW4gSS9PIG1lbW9yeSByZXNvdXJjZSBhbmQgYW4gaW50ZXJydXB0LgoKVGhlIHByb2JsZW0gaGl0cyBtZSBoYXJkIHdoZW4gSSBjb25zaWRlciBhbiB4ODYvYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhlc2UgZG9uJiMzOTt0IHR5cGljYWxseSBoYXZlIHRoZSBEZXZpY2UgVHJlZSBjb25maWd1cmF0aW9ucyB0aGF0IGFyZSBzdGFuZGFyZCBmb3IgdGhvc2UgRnJlZXNjYWxlIGkuTVggb3IgUW9ySVEgc3lzdGVtcy4gVGhhdCBpbW1lZGlhdGVseSBpbnRyb2R1Y2VzIGEgaHVnZSBodXJkbGUuCgpXYWl0LCBjb3VsZCBzeXprYWxsZXIgc29tZWhvdyBpbnN0YW50aWF0ZSB0aGlzIHRocm91Z2ggc3lzZnMgb3IgY29uZmlnZnM/IE5vLCB0aGF0JiMzOTtzIG5vdCBmZWFzaWJsZS4gU3RhbmRhcmQgcGxhdGZvcm0gZGV2aWNlcyBjYW4mIzM5O3QgYmUgcHJvYmVkIGZyb20gdXNlcnNwYWNlIHdpdGhvdXQgZGV2aWNlIHRyZWUgb3ZlcmxheXMsIHdoaWNoIHJlcXVpcmUgYENPTkZJR19PRl9DT05GSUdGU2AgYW5kIHNvIG9uLiBFdmVuIGlmIHRob3NlIHdlcmUgcHJlc2VudCwgdGhlIGNydWNpYWwgaXNzdWUgaXMgdGhlIG1lbW9yeS1tYXBwZWQgcmVnaXN0ZXJzIGF0IFNvQyBwaHlzaWNhbCBhZGRyZXNzZXMgd29uJiMzOTt0IGV4aXN0IGluIHg4NiBRRU1VL0dDRS4gVGhlIHByb2JlIHdvdWxkIGVpdGhlciBmYWlsIG9yLCB3b3JzZSwgY3Jhc2ggYmVjYXVzZSBvZiBhdHRlbXB0ZWQgcGh5c2ljYWwgbWVtb3J5IGFjY2Vzcy4KCk9rYXksIHNvIHN5emthbGxlciBjYW4mIzM5O3QgZGlyZWN0bHkgcHJvYmUgcGxhdGZvcm0gZGV2aWNlcyBvciBDQU4gZGV2aWNlcyBpbiB0aGUgdHJhZGl0aW9uYWwgc2Vuc2UsIGF0IGxlYXN0IG5vdCB0aGlzIG9uZS4gSG93IHRoZW4gZG9lcyBzeXprYWxsZXIgdGVzdCBDQU4gZGV2aWNlcz8gSXQgbXVzdCBoYXZlIGEgd29ya2Fyb3VuZC4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhpcy4KClJpZ2h0LCBJJiMzOTttIHRoaW5raW5nLCBJJiMzOTt2ZSBnb3QgaXQuIFN5emthbGxlciBsZXZlcmFnZXMgdGhlc2UgdmFyaW91cyB2aXJ0dWFsIGFuZCBlbXVsYXRlZCBpbnRlcmZhY2VzLCBmb3IgdGVzdGluZyBDQU46IGB2Y2FuYCwgYHNsY2FuYCwgYHZ4Y2FuYCwgZHVtbXkvbmV0bGluayBpbnRlcmZhY2VzLCBVU0IgQ0FOIGFkYXB0ZXJzIHRocm91Z2ggc3l6a2FsbGVyJiMzOTtzIFVTQiBlbXVsYXRpb24gKHVzaW5nIGBzeXpfdXNiX2Nvbm5lY3RgKSwgYW5kLCBtdWNoIGxlc3MgZnJlcXVlbnRseSwgUENJIENBTiBhZGFwdGVycyBpZiBRRU1VIGVtdWxhdGVzIHRoZW0uCgpCdXQgKndhaXQqLCBnb2luZyBiYWNrIHRvIEZsZXhDQU4sIGRvZXMgKml0KiBoYXZlICphbnkqIG9mIHRob3NlIFVTQiBvciB2aXJ0dWFsIGZyb250LWVuZHMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZT8gSSYjMzk7bSBnb2luZyB0byBxdWlja2x5IHNlYXJjaCB0aGUga2VybmVsIHNvdXJjZSBhbmQgbWFrZSBzdXJlIEkgZG9uJiMzOTt0IG1pc3MgYW55dGhpbmcgdGhhdCBjb3VsZCBiZSByZWxldmFudC4gVGltZSB0byB3aWRlbiB0aGUgc2VhcmNoIGJleW9uZCBqdXN0IHRoZSBgZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW5gIGRpcmVjdG9yeS4gSSBuZWVkIHRvIG1ha2Ugc3VyZSBJIHVuZGVyc3RhbmQgdGhlIGZ1bGwgc2NvcGUgb2YgaG93IHRoaXMgZHJpdmVyIGlzIGJlaW5nIHRlc3RlZC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2luY2x1ZGUmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7aW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE3LVxuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oOjE4OnN0cnVjdCBmbGV4Y2FuX3BsYXRmb3JtX2RhdGEge1xuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE5LVx0dTMyIGNsb2NrX2ZyZXF1ZW5jeTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDY8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjc5MjEKCQkJCQkJCW91dHB1dDogMjMKCQkJCQkJCXRob3VnaHRzOiAxNgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgdGhpbmtpbmcgaXQ6CgoqKkRpZ2dpbmcgaW50byB0aGUgQ0FOIEJ1cyBJbXBsZW1lbnRhdGlvbioqCgpPa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGBmbGV4Y2FuYCBkcml2ZXIgaXMgYmVpbmcgdXNlZCBhbmQgaW50ZWdyYXRlZCBhdCB0aGUgYXJjaGl0ZWN0dXJhbCBsZXZlbC4gSSYjMzk7bGwgc3RhcnQgYnkgc2VhcmNoaW5nIGZvciBhbGwgaW5zdGFuY2VzIG9mICYjMzQ7ZmxleGNhbiYjMzQ7IHdpdGhpbiB0aGUgYGFyY2gvYCBkaXJlY3RvcnkuIFRoYXQmIzM5O3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB3aGVuIEkmIzM5O20gdHJ5aW5nIHRvIGdldCBhIGhhbmRsZSBvbiBsb3ctbGV2ZWwgaGFyZHdhcmUgaW50ZXJhY3Rpb25zIGxpa2UgdGhpcy4gSSYjMzk7bSBleHBlY3RpbmcgdG8gZmluZCByZWZlcmVuY2VzIGluIHBsYXRmb3JtLXNwZWNpZmljIGNvZGUsIGRldmljZSB0cmVlIGJpbmRpbmdzLCBhbmQgcG9zc2libHkgc29tZSBjb3JlIGluaXRpYWxpemF0aW9uIHJvdXRpbmVzLiBUaGUgZ29hbCBpcyB0byBzZWUgaG93IGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIGFyZSBpbnRlcmZhY2luZyB3aXRoIHRoZSBgZmxleGNhbmAgY29udHJvbGxlciBhbmQgd2hhdCBhYnN0cmFjdGlvbnMsIGlmIGFueSwgYXJlIGluIHBsYXkuIEkgYW0gbG9va2luZyBmb3IgdGhlIHVzYWdlIGFuZCBpbXBsZW1lbnRhdGlvbiBkZXRhaWxzLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7YXJjaCYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtcbkZ1bGwgb3V0cHV0IGlzIHRvbyBsb25nLCBzaG93aW5nIDUwMCBvdXQgb2YgMjU5MSBsaW5lcy5cblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cblxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpPTEyMj1cdFx0XHRjYW4xOiBjYW5ANDNmODgwMDAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEyMzpcdFx0XHRcdGNvbXBhdGlibGUgPSBcJiMzNDtmc2wsaW14MjUtZmxleGNhblwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MjUuZHRzaS0xMjQtXHRcdFx0XHRyZWcgPSBcdTAwM2MweDQzZjg4MDAwIDB4NDAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTMxPVx0XHRcdGNhbjI6IGNhbkA0M2Y4YzAwMCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k6MTMyOlx0XHRcdFx0Y29tcGF0aWJsZSA9IFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpLTEzMy1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NDNmOGMwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaT0zMDQ9XHRcdFx0Y2FuMTogY2FuQDUzZmU0MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaTozMDU6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDM1LWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpLTMwNi1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmZTQwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaT0zMTM9XHRcdFx0Y2FuMjogY2FuQDUzZmU4MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14MzUuZHRzaTozMTQ6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDM1LWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpLTMxNS1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmZTgwMDAgMHgxMDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaT01NzE9XHRcdFx0Y2FuMTogY2FuQDUzZmM4MDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaTo1NzI6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpLTU3My1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmYzgwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaT01ODE9XHRcdFx0Y2FuMjogY2FuQDUzZmNjMDAwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NTMuZHRzaTo1ODI6XHRcdFx0XHRjb21wYXRpYmxlID0gXCYjMzQ7ZnNsLGlteDUzLWZsZXhjYW5cJiMzNDssIFwmIzM0O2ZzbCxpbXgyNS1mbGV4Y2FuXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpLTU4My1cdFx0XHRcdHJlZyA9IFx1MDAzYzB4NTNmY2MwMDAgMHg0MDAwXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTU2PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNTctXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjU4Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTU5LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cz02Mj1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTYzLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czo2NDpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy02NS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM9MTg2PVx0XHRcdE1YNlFETF9QQURfU0QxX0NNRF9fR1BJTzFfSU8xOFx0XHQweDAwMDAwMDE4XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtMTg5LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM6MTkwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtMTkxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTE5Mz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgwMDAxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5Ni1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjE5NzpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5OC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k9MTU5PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2MC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpOjE2MTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMTYyLX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpPTE2ND1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjUtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToxNjY6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2Ny19O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNTM9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEsgMHg0MDAxYjBhOFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0yNTYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k6MjU3Olx0cGluY3RybF9mbGV4Y2FuMTogY2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjU4LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNjA9XHRcdFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYICAgICAgICAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI2My1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNjQ6XHRwaW5jdHJsX2ZsZXhjYW4yOiBjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0yNjUtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzPTE2Mz1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy0xNjQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czoxNjU6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTE2Ni1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzPTM5NT1cdFx0XHRNWDZRRExfUEFEX1JHTUlJX1JYX0NUTF9fUkdNSUlfUlhfQ1RMXHQweDEzMDMwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTM5OC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czozOTk6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHMtNDAwLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtdmFyLW14NmN1c3RvbWJvYXJkLmR0cz0xMTk9XHRcdFx0TVg2UURMX1BBRF9DU0kwX1ZTWU5DX19JUFUxX0NTSTBfVlNZTkNcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtdmFyLW14NmN1c3RvbWJvYXJkLmR0cy0xMjItXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM6MTIzOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS12YXItbXg2Y3VzdG9tYm9hcmQuZHRzLTEyNC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjI5PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzMC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7LCBcJiMzNDtzbGVlcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzE6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k6MjMyOlx0cGluY3RybC0xID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMV9zbGVlcFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yMzMtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjM2PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzNy1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7LCBcJiMzNDtzbGVlcFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzg6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yX2RlZmF1bHRcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k6MjM5Olx0cGluY3RybC0xID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMl9zbGVlcFx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yNDAtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9OTk2PVx0XHRcdE1YNlFETF9QQURfRU5FVF9UWEQwX19HUElPMV9JTzMwXHQweDAwMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTk5OS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDAwOlx0cGluY3RybF9mbGV4Y2FuMV9kZWZhdWx0OiBmbGV4Y2FuMWRlZmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAwMz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDA2LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMDc6XHRwaW5jdHJsX2ZsZXhjYW4xX3NsZWVwOiBmbGV4Y2FuMXNscGdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwOC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxMD1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fR1BJTzFfSU8wOCAweDBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxMy1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDE0Olx0cGluY3RybF9mbGV4Y2FuMl9kZWZhdWx0OiBmbGV4Y2FuMmRlZmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxNS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxNz1cdFx0XHRNWDZRRExfUEFEX0tFWV9ST1c0X19GTEVYQ0FOMl9SWCAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTktXHR9O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMjA6XHRwaW5jdHJsX2ZsZXhjYW4yX3NsZWVwOiBmbGV4Y2FuMnNscGdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAyMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpPTE0Mz1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2ktMTQ0LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpOjE0NTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTE0Ni1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnXzV2XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k9MzAxPVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0dQSU80X0lPMTAgIDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTMwNC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k6MzA1Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0zMDYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpPTU3PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTU4LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k6NTk6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTYwLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NjM9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktNjQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo2NTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktNjYtXHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaT0yMzc9XHRcdFx0TVg2UURMX1BBRF9FTkVUX0NSU19EVl9fRU5FVF9SWF9FTiAgMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDAtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k6MjQxOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Mi1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9MjQ0PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Ny1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaToyNDg6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktMjQ5LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9MTAwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDEtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6MTAyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTAzLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTEwNj1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTA3LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjEwODpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTEwOS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaT00NzM9XHRcdFx0TVg2UURMX1BBRF9SR01JSV9SWF9DVExfX1JHTUlJX1JYX0NUTCAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS00NzYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjQ3NzpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDc4LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9NDgwPVx0XHRcdE1YNlFETF9QQURfU0QzX0NNRF9fRkxFWENBTjFfVFggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDgzLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaTo0ODQ6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ4NS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpPTE3MT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktMTcyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjE3MzpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3NC1cdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTc4PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xNzktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTgwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktMTgxLVx0c3RhdHVzID0gXCYjMzQ7ZGlzYWJsZWRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaT04Mjk9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEtcdCgoMVx1MDAzY1x1MDAzYzMwKSB8IDB4MWIwYjApXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzItXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjgzMzpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODM0LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9ODM2PVx0XHRcdE1YNlFETF9QQURfR1BJT184X19GTEVYQ0FOMV9SWFx0XHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpOjg0MDpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODQxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT04MT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo4MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktODMtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9OTQ9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6OTU6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTk2LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpPTYwOD1cdFx0XHRNWDZRRExfUEFEX0tFWV9ST1c0X19HUElPNF9JTzE1XHRcdDB4YjEgLyogSW50ICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTI6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMS1ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9NjE1PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxOC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTk6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMi1ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYyMC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2k9MTgwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTE4MS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpOjE4MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktMTgzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMV9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaT02MTg9XHRcdFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcdDB4MWIwYjAgLyogUEhZIFJlc2V0ICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTYyMS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaTo2MjI6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktNjIzLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaT0xODA9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktMTgxLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2k6MTgyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS0xODMtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW4xX3N0YnlcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpPTYwNj1cdFx0XHRNWDZRRExfUEFEX0dQSU9fMTZfX0VORVRfUkVGX0NMS1x0MHg0MDAxYjBhOFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS02MDktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2k6NjEwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpLTYxMS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2k9MjAwPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpLTIwMS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjIwMjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktMjAzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMV9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaT02ODE9XHRcdFx0TVg2UURMX1BBRF9FSU1fUldfX0dQSU8yX0lPMjZcdDB4MTAwYjFcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktNjg0LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjY4NTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS02ODYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpPTE1Mj1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS0xNTMtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaToxNTQ6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTE1NS1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpPTUxND1cdFx0XHRNWDZRRExfUEFEX0RJU1AwX0RBVDEzX19BVUQ1X1JYRlNcdDB4MTMwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2ktNTE3LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpOjUxODpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS01MTktXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpPTIxOD1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaS0yMTktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaToyMjA6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW5cdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktMjIxLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2k9NjkyPVx0XHRcdE1YNlFETF9QQURfRU5FVF9UWEQwX19HUElPMV9JTzMwXHQweDQwMDFiMGIwIC8qIFBIWV9SU1QjICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpLTY5NS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaTo2OTY6XHRwaW5jdHJsX2ZsZXhjYW46IGZsZXhjYW5ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTYweC5kdHNpLTY5Ny1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2k9MTI0PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTEyNS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpOjEyNjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktMTI3LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2k9NDMxPVx0XHRcdE1YNlFETF9QQURfRUlNX1JXX19HUElPMl9JTzI2XHQweDEwMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTQzNC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaTo0MzU6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktNDM2LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1odW1taW5nYm9hcmQuZHRzaT0xODE9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTgyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k6MTgzOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9odW1taW5nYm9hcmRfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTg0LVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k9MjI1PVx1MDAyNmlvbXV4YyB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k6MjI2Olx0cGluY3RybF9odW1taW5nYm9hcmRfZmxleGNhbjE6IGh1bW1pbmdib2FyZC1mbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMjI3LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpPTEzMz1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTEzNC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k6MTM1Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTEzNi1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnXzNwM3ZcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MTM5PVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQwLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaToxNDE6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQyLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfM3Azdlx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaT0zMTY9XHRcdFx0TVg2UURMX1BBRF9HUElPXzE3X19HUElPN19JTzEyXHRcdDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMTktXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjA6XHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjEtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MzIzPVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYIDB4MWIwMjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjYtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjc6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0zMjgtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9MjM1PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM2LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaToyMzc6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM4LX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9MjQxPVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjQyLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaToyNDM6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjQ0LX07XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9NDc2PVx0XHRcdE1YNlFETF9QQURfRUlNX0QyNV9fR1BJTzNfSU8yNSAweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktNDc5LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6NDgwOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktNDgxLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpPTQ4Mz1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlggMHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4Ni1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpOjQ4NzpcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4OC1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaT01Mz1cdHJlZ19lbl9zd2l0Y2g6IHJlZ3VsYXRvci1lbi1zd2l0Y2gge1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY0LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6NjU6XHRyZWdfZmxleGNhbjE6IHJlZ3VsYXRvci1mbGV4Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS02Ni1cdFx0Y29tcGF0aWJsZSA9IFwmIzM0O3JlZ3VsYXRvci1maXhlZFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY3LVx0XHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjY4Olx0XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2VuXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6Njk6XHRcdHJlZ3VsYXRvci1uYW1lID0gXCYjMzQ7ZmxleGNhbjEtcmVnXCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktNzAtXHRcdHJlZ3VsYXRvci1taW4tbWljcm92b2x0ID0gXHUwMDNjMTUwMDAwMFx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaT0xMzM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS0xMzQtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjEzNTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaToxMzY6XHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTEzNy1cdHN0YXR1cyA9IFwmIzM0O2Rpc2FibGVkXCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTI3Nz1cdFx0XHRNWDZRRExfUEFEX0VJTV9EQTRfX0dQSU8zX0lPMDRcdFx0MHhiMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgwLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MjgxOlx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgyLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTI4ND1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTI4Ny1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjI4ODpcdHBpbmN0cmxfZmxleGNhbjFfZW46IGZsZXhjYW4xZW5ncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjg5LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k9NjA9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTYxLVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpOjYyOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktNjMtXHRzdGF0dXMgPSBcJiMzNDtkaXNhYmxlZFwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpPTI1Nz1cdFx0XHRNWDZRRExfUEFEX0VJTV9EMjNfX0dQSU8zX0lPMjNcdFx0MHg4MDAwMDAwMCAvKiBSZXNldCBHUElPICovXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaS0yNjAtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpOjI2MTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktMjYyLVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9MTQ4PVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS0xNDktXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6MTUwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTUxLVx0c3RhdHVzID0gXCYjMzQ7b2theVwmIzM0Oztcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpPTE1ND1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTU1LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpOjE1NjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE1Ny1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT00MzU9XHRcdFx0TVg2UURMX1BBRF9FTkVUX1JYRDFfX0dQSU8xX0lPMjZcdDB4MWYwYjFcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQzOC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDM5Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDAtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT00NDI9XHRcdFx0TVg2UURMX1BBRF9LRVlfUk9XMl9fRkxFWENBTjFfUlhcdDB4MWIwYjBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQ0NS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDQ2Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDctXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxMT1cdTAwMjZjYW4xIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS0zMTItXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMTM6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxNC1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnX2Nhbl9zdGJ5XHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaT0zMTg9XHUwMDI2Y2FuMiB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzE5LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6MzIwOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS0zMjEtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW5fc3RieVx1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k9NTM1PVx0XHRcdE1YNlFETF9QQURfR1BJT185X19FU0FJX1JYX0ZTICAgICAgIDB4MWIwMzBcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTM4LVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpOjUzOTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDAtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTU0Mj1cdFx0XHRNWDZRRExfUEFEX0tFWV9DT0wyX19GTEVYQ0FOMV9UWFx0MHgxNzA1OVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6NTQ2Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTU0Ny1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9ODU9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODYtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaTo4NzpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODgtXHRzdGF0dXMgPSBcJiMzNDtva2F5XCYjMzQ7O1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaT05MT1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS05Mi1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpOjkzOlx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMlx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS05NC1cdHN0YXR1cyA9IFwmIzM0O29rYXlcJiMzNDs7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTIwMj1cdFx0XHRNWDZRRExfUEFEX0RJMF9QSU40X19HUElPNF9JTzIwXHRcdDB4MWIwYjEgLyogRVRIX1BIWV9SRVNFVCAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS0yMDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6MjA2Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIwNy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9MjA5PVx0XHRcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXHQweDFiMGIxXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIxMi1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaToyMTM6XHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjE0LVx0XHRmc2wscGlucyA9IFx1MDAzY1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaT0xNTM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTU0LVx0cGluY3RybC1uYW1lcyA9IFwmIzM0O2RlZmF1bHRcJiMzNDs7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MTU1Olx0cGluY3RybC0wID0gXHUwMDNjXHUwMDI2cGluY3RybF9mbGV4Y2FuMVx1MDAzZTtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0xNTYtXHR4Y2VpdmVyLXN1cHBseSA9IFx1MDAzY1x1MDAyNnJlZ19jYW4xXzN2M1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MTYwPVx1MDAyNmNhbjIge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE2MS1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpOjE2MjpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjJcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTYzLVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuMl8zdjNcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTMwMj1cdFx0XHRNWDZRRExfUEFEX0dQSU9fNl9fRU5FVF9JUlFcdFx0MHgwMDBiMVxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMDUtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MzA2Olx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMwNy1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MzEwPVx0XHRcdE1YNlFETF9QQURfRElTUDBfREFUMF9fR1BJTzRfSU8yMVx0MHgxYjA4OCAvKiBFTl9DQU5fMSAqL1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMTMtXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k6MzE0Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMxNS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9OTQ9XHRyZWdfY2FuX3hjdnI6IHJlZ3VsYXRvci1jYW4teGN2ciB7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTk5LVx0XHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaToxMDA6XHRcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbl94Y3ZyXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTEwMS1cdFx0Z3BpbyA9IFx1MDAzY1x1MDAyNmdwaW80IDIxIEdQSU9fQUNUSVZFX0xPV1x1MDAzZTtcbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9MjAzPVx1MDAyNmNhbjEge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIwNC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpOjIwNTpcdHBpbmN0cmwtMCA9IFx1MDAzY1x1MDAyNnBpbmN0cmxfZmxleGNhbjFcdTAwM2U7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktMjA2LVx0eGNlaXZlci1zdXBwbHkgPSBcdTAwM2NcdTAwMjZyZWdfY2FuX3hjdnJcdTAwM2U7XG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTIxMD1cdTAwMjZjYW4yIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMTEtXHRwaW5jdHJsLW5hbWVzID0gXCYjMzQ7ZGVmYXVsdFwmIzM0OztcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaToyMTI6XHRwaW5jdHJsLTAgPSBcdTAwM2NcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXHUwMDNlO1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIxMy1cdHhjZWl2ZXItc3VwcGx5ID0gXHUwMDNjXHUwMDI2cmVnX2Nhbl94Y3ZyXHUwMDNlO1xuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT00NTc9XHRcdFx0TVg2UURMX1BBRF9TRDNfREFUMl9fR1BJTzdfSU8wNlx0XHQweDFiMGIxIC8qIEVUTiBQSFkgUkVTRVQgKi9cbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDYwLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpOjQ2MTpcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjItXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTQ2ND1cdFx0XHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcdFx0MHgxYjBiMFxuLS1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjctXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDY4Olx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ2OS1cdFx0ZnNsLHBpbnMgPSBcdTAwM2Ncbi0tXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9NDcxPVx0XHRcdE1YNlFETF9QQURfS0VZX1JPVzRfX0ZMRVhDQU4yX1JYXHQweDFiMGIwXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ3NC1cbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaTo0NzU6XHRwaW5jdHJsX2ZsZXhjYW5feGN2cjogZmxleGNhbi14Y3ZyZ3JwIHtcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NzYtXHRcdGZzbCxwaW5zID0gXHUwMDNjXG4tLVxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXZhci1kYXJ0LmR0c2k9NjM9XHUwMDI2Y2FuMSB7XG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdmFyLWRhcnQuZHRzaS02NC1cdHBpbmN0cmwtbmFtZXMgPSBcJiMzNDtkZWZhdWx0XCYjMzQ7O1xuXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ0ODE5CgkJCQkJCQlvdXRwdXQ6IDI3CgkJCQkJCQl0aG91Z2h0czogNzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudCBvZiBmbGV4Y2FuIERUUyBGaWxlcyoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYnJlYWsgdGhpcyBkb3duLiBNeSBpbml0aWFsIG9ic2VydmF0aW9uIGlzIHRoYXQgZXZlcnkgc2luZ2xlIERldmljZSBUcmVlIFNvdXJjZSAoRFRTKSBmaWxlIEkmIzM5O20gc2VlaW5nIHRoYXQgbWVudGlvbnMgJiMzNDtmbGV4Y2FuJiMzNDsgc2VlbXMgZXhjbHVzaXZlbHkgcmVsYXRlZCB0byBBUk0sIEFSTTY0LCBQb3dlclBDLCBvciBtNjhrIFN5c3RlbS1vbi1DaGlwcyAoU29DcykuIEkmIzM5O20gdGhpbmtpbmcgYWJvdXQgdGhlIHVzdWFsIHN1c3BlY3RzIGhlcmUsIHRoZSBpLk1YIHNlcmllcywgdGhlIExTMTAyMUEsIHRoZSBMWDIxNjAsIHRoZSBWRjYxMCwgdGhlIFMzMkcg4oCTIHRoYXQgd2hvbGUgZWNvc3lzdGVtLgoKTm93LCB0aGUgY3J1Y2lhbCBxdWVzdGlvbi4gSXMgdGhlcmUgKmFueSogYXJjaGl0ZWN0dXJlIGxpa2UgeDg2IHRoYXQmIzM5O3MgbGV2ZXJhZ2luZyBmbGV4Y2FuPyBJIG5lZWQgdG8gdmVyaWZ5IHRoaXMgYXNzdW1wdGlvbi4gTGV0JiMzOTtzIGRpZyBkZWVwZXIgYW5kIHBlcmZvcm0gYSBwcm9wZXIgY3Jvc3MtcmVmZXJlbmNlIHRvIGNvbmZpcm0gdGhlcmUgYXJlIG5vIHg4Ni1iYXNlZCBzeXN0ZW1zIHVzaW5nIGZsZXhjYW4uIFRpbWUgdG8gZG91YmxlLWNoZWNrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O2ZsZXhjYW4mIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDthcmNoL3g4NiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzMvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ2PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy44LWZsYXNoPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDQ1MTE1CgkJCQkJCQlvdXRwdXQ6IDI1CgkJCQkJCQl0aG91Z2h0czogMzAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhpcyBteXNlbGY6CgoqKkludmVzdGlnYXRpbmcgUG90ZW50aWFsIENBTi1GbGV4IENvbnRyb2xsZXIgSW50ZXJhY3Rpb24gUG9pbnRzKioKCk9rYXksIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGUgQ0FOLUZsZXggY29udHJvbGxlciBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzeXN0ZW0gYXQgYSBsb3cgbGV2ZWwuIEdpdmVuIHRoZSBsaWtlbHkgYXJjaGl0ZWN0dXJhbCBjb250ZXh0LCBteSBmaXJzdCBsaW5lIG9mIGF0dGFjayBpcyB0aGUgY2xhc3NpYyBwbGFjZXM6IGBpbmNsdWRlL2AgYW5kIGBkcml2ZXJzL2AuIEkgbmVlZCB0byB6ZXJvIGluIG9uIGFueSBwb3RlbnRpYWwgcG9pbnRzIG9mIGludGVncmF0aW9uIHJlbGF0ZWQgdG8geDg2IHBsYXRmb3JtcywgUENJIGNvbmZpZ3VyYXRpb24sIEFDUEkgcG93ZXIgbWFuYWdlbWVudCwgb3IgVVNCIGhvc3QgY29udHJvbGxlciBhc3NpZ25tZW50cy4gVGhlc2UgYXJlYXMgYXJlIGFsbCBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgaGF2aW5nIGhvb2tzIG9yIGRyaXZlcnMgdGhhdCBtaWdodCByZWxhdGUgdG8gdGhlIENBTi1GbGV4IGNvbnRyb2xsZXIuIEkmIzM5O2xsIG5lZWQgdG8gbG9vayBmb3IgaGVhZGVycyBhbmQgZHJpdmVyIHNvdXJjZSBmaWxlcyB0aGF0IG1lbnRpb24gJiMzNDt4ODYmIzM0OywgJiMzNDtQQ0kmIzM0OywgJiMzNDtBQ1BJJiMzNDssICYjMzQ7VVNCLCYjMzQ7IGFuZCBvZiBjb3Vyc2UsICYjMzQ7ZmxleGNhbiYjMzQ7IGl0c2VsZi4gVGhpcyB3aWxsIGhvcGVmdWxseSBwcm92aWRlIGluc2lnaHQgaW50byBob3cgdGhlIGNvbnRyb2xsZXIgaXMgaW5pdGlhbGl6ZWQsIGNvbmZpZ3VyZWQsIGFuZCBtYW5hZ2VkIHdpdGhpbiB0aGUgYnJvYWRlciBzeXN0ZW0uIEZyb20gdGhlcmUgSSBjYW4gZGV0ZXJtaW5lIGhvdyBpdOKAmXMgYmVpbmcgaW50ZXJmYWNlZCB3aXRoIGJ5IHRoZSBrZXJuZWwuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvYnVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNS8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjgtZmxhc2g8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNDUzOTEKCQkJCQkJCW91dHB1dDogMjYKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBhIHN1bW1hcnkgb2YgbXkgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBJIHdlcmUgY29uc2lkZXJpbmcgdGhlIGdpdmVuIHByb21wdDoKCioqSW5pdGlhbCBBc3Nlc3NtZW50OiBOYXZpZ2F0aW5nIHRoZSBtZmQgU3Vic3lzdGVtKioKCkFscmlnaHQsIHRoZSBkaXJlY3RpdmUgaXMgY2xlYXIuIFdlJiMzOTtyZSBzdGFydGluZyB3aXRoIGBkcml2ZXJzL21mZGAuIFRoYXQmIzM5O3MgYSBzZW5zaWJsZSBhcHByb2FjaCwgZ2l2ZW4gdGhlIGxpa2VseSBjb250ZXh0LiBUaGUgJiMzNDttZmQmIzM0OyAobXVsdGktZnVuY3Rpb24gZGV2aWNlKSBhcmVhIGlzIGEgY29tbW9uIGVudHJ5IHBvaW50IGZvciBpbnZlc3RpZ2F0aW5nIGNvbXBsZXggaGFyZHdhcmUgaW50ZXJhY3Rpb25zLCBlc3BlY2lhbGx5IHdoZW4gZGVhbGluZyB3aXRoIGludGVncmF0ZWQgc3lzdGVtcy4gTXkgZXhwZXJpZW5jZSB0ZWxscyBtZSB0aGlzIGlzIG9mdGVuIHdoZXJlIHRoZSBhYnN0cmFjdGlvbiBsYXllcnMgYmVnaW4uIEkgaW1tZWRpYXRlbHkgc3RhcnQgbWVudGFsbHkgY2F0YWxvZ2luZyBwb3RlbnRpYWwgYXJlYXMgb2YgaW50ZXJlc3Qgd2l0aGluIHRoYXQgZGlyZWN0b3J5LiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMsIHRoaW5ncyBsaWtlIGhvdyB0aGUgZHJpdmVyIGZyYW1ld29yayBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBpdCBwcmVzZW50cywgYnV0IGFsc28gaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgcmVzb3VyY2UgYWxsb2NhdGlvbi4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgdmlldyBvZiB0aGUgYXJjaGl0ZWN0dXJlIGJlZm9yZSBkaXZpbmcgaW50byBzcGVjaWZpYyBkcml2ZXJzIG9yIGRldmljZSBpbnN0YW5jZXMuIEkgYW50aWNpcGF0ZSBmaW5kaW5nIHN0cnVjdHVyZXMsIGZ1bmN0aW9uIGNhbGxzLCBhbmQgcG90ZW50aWFsbHkgYSBEVCAoRGV2aWNlIFRyZWUpIHNldHVwLCB3aGljaCB3aWxsIGFsbCBiZSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBpbnRlZ3JhdGlvbi4gRnJvbSBteSBleHBlcmllbmNlIHdpdGggZW1iZWRkZWQgc3lzdGVtcywgdGhpcyBpcyBhIGdvb2QgZmlyc3Qgc3RlcC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9tZmQmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTY2NAoJCQkJCQkJb3V0cHV0OiAyNgoJCQkJCQkJdGhvdWdodHM6IDEwCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Pa2F5LCBoZXJlJiMzOTtzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIGEgc2Vhc29uZWQgcHJvZmVzc2lvbmFsIGluIHRoZSBmaWVsZCwgc3RhcnRpbmcgd2l0aCB0aGUgcmVxdWVzdGVkIGJvbGRlZCBoZWFkZXI6CgoqKkRpdmluZyBpbnRvIHRoZSBQQ0kgU3Vic3lzdGVtKioKCkFscmlnaHQsIHRpbWUgdG8gZGlnIGluLiBUaGUgcHJvYmxlbSBsaWtlbHkgbGllcyBzb21ld2hlcmUgd2l0aGluIHRoZSBQQ0kgc3Vic3lzdGVtLCBzbyBsZXQmIzM5O3Mgc3RhcnQgYnkgdGFraW5nIGEgbG9vayBhdCBgZHJpdmVycy9wY2lgLiBUaGlzIGlzIHRoZSBsb2dpY2FsIHBsYWNlIHRvIGJlZ2luIHRyb3VibGVzaG9vdGluZywgZ2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiB0aGUgc3lzdGVtIGFyY2hpdGVjdHVyZSBhbmQgdGhlIHBvdGVudGlhbCBhcmVhIG9mIGltcGFjdCBmb3IgdGhlIHJlcG9ydGVkIGlzc3VlLiBJIG5lZWQgdG8gZ2V0IGEgaGlnaCBsZXZlbCB1bmRlcnN0YW5kaW5nIG9mIHRoZSBjb2RlIGFuZCBsb29rIGZvciBsaWtlbHkgY3VscHJpdCwgbGlrZSBhIHJlY2VudCBjaGFuZ2UsIGRyaXZlciBpbnRlcmFjdGlvbiwgb3IgcG90ZW50aWFsIHJlc291cmNlIGNvbmZsaWN0LiBUaGlzIGluaXRpYWwgcGVydXNhbCB3aWxsIHByb2JhYmx5IGJlIGJyb2FkLCBzY2FubmluZyBmb3IgYW55dGhpbmcgdGhhdCBqdW1wcyBvdXQg4oCTIGFueSByZWNlbnQgcGF0Y2hlcywgb2J2aW91cyBlcnJvciBoYW5kbGluZyBpc3N1ZXMsIG9yIHVudXN1YWwgZGV2aWNlIGJlaGF2aW9yLiBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjbHVlcyBsaWtlIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3VlcywgaW50ZXJydXB0IGhhbmRsaW5nIHByb2JsZW1zLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGRldmljZSBlbnVtZXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIEkgd2lsbCBrZWVwIGFuIGV5ZSBvdXQgZm9yIGhvdyB0aGlzIGlzIHdvcmtpbmcgYWxvbmdzaWRlIGRldmljZSBkcml2ZXJzIGFuZCBob3cgd2UgYXJlIGhhbmRsaW5nIHBvd2VyIG9yIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4gSXQmIzM5O3MgYSBzeXN0ZW1hdGljIHByb2Nlc3Mg4oCTIGEgYnJvYWQgc2NhbiBmaXJzdCwgdGhlbiBJJiMzOTtsbCBuYXJyb3cgbXkgZm9jdXMgYmFzZWQgb24gd2hhdCBJIGZpbmQsIG9yIGRvbiYjMzk7dCBmaW5kLiBUaW1lIHRvIGdldCB0byBpdC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDtmbGV4Y2FuJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9wY2kmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM5LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NTk2NAoJCQkJCQkJb3V0cHV0OiAyNQoJCQkJCQkJdGhvdWdodHM6IDkKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6CgoqKkRpdmluZyBpbnRvIHRoZSBQbGF0Zm9ybSBEcml2ZXJzKioKCk9rYXksIHRpbWUgdG8gZ2V0IHRvIHRoZSBoZWFydCBvZiB0aGUgbWF0dGVyLiBMZXQmIzM5O3Mgc3RhcnQgYnkgemVyb2luZyBpbiBvbiB0aGUgYGRyaXZlcnMvcGxhdGZvcm1gIGRpcmVjdG9yeS4gVGhpcyBpcyB1c3VhbGx5IHdoZXJlIHRoZSBjb3JlIGxvdy1sZXZlbCBkcml2ZXJzIGZvciBoYXJkd2FyZSB0aGF0IGlzICYjMzQ7cGxhdGZvcm0tc3BlY2lmaWMmIzM0OyByZXNpZGUuIFRoYXQmIzM5O3MgYSBrZXkgdGVybS4gJiMzNDtQbGF0Zm9ybS1zcGVjaWZpYyYjMzQ7IG1lYW5zIHRoZSBjb2RlIGlzIGhpZ2hseSB0aWVkIHRvIHRoZSBwYXJ0aWN1bGFyIGFyY2hpdGVjdHVyZSwgY2hpcHNldCwgb3IgYm9hcmQuIFRoaXMgaXMgd2hlcmUgSSYjMzk7bGwgZXhwZWN0IHRvIGZpbmQgZHJpdmVycyBmb3IgdGhpbmdzIGxpa2UgaW50ZXJydXB0IGNvbnRyb2xsZXJzLCBjbG9jayBtYW5hZ2VtZW50LCBwb3dlciBtYW5hZ2VtZW50LCBwZXJoYXBzIHRoZSBzeXN0ZW0gdGltZXIsIGFuZCBvdGhlciBjcml0aWNhbCBpbmZyYXN0cnVjdHVyZSBjb21wb25lbnRzIHRoYXQgYXJlIGZ1bmRhbWVudGFsIHRvIHRoZSBvcGVyYXRpb24gb2YgdGhpcyBwYXJ0aWN1bGFyIHN5c3RlbS4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgbG93LWxldmVsIGNvbXBvbmVudHMgYXJlIGltcGxlbWVudGVkIGFuZCBob3cgdGhleSBpbnRlcmFjdCB3aXRoIHRoZSBrZXJuZWwuIEkgYW0gYW50aWNpcGF0aW5nIHRoZSBvcmdhbml6YXRpb24gaGVyZSwgdGhlIG5hbWluZyBjb252ZW50aW9ucywgYW5kIHRoZSBvdmVyYWxsIHN0cnVjdHVyZSwgYmFzZWQgb24gbXkgcGFzdCBleHBlcmllbmNlLiBJJiMzOTttIGxvb2tpbmcgZm9yIHRoZSBrZXkgZW50cnkgcG9pbnRzIGFuZCBhbnkgdW51c3VhbCBvciBvcHRpbWl6ZWQgY29kZS4gVGltZSB0byBkaWcgaW4gYW5kIHNlZSB3aGF0JiMzOTtzIHdoYXQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDAvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA5LzE1IDA3OjQ3PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7ZmxleGNhbiYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvcGxhdGZvcm0mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuOC1mbGFzaDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA0NjIzMgoJCQkJCQkJb3V0cHV0OiAxMjkKCQkJCQkJCXRob3VnaHRzOiA5MDAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqRmxleENBTiBEcml2ZXI6IFVucmVhY2hhYmxlIEhhcmR3YXJlIG9uIGFtZDY0LCBXb3J0aEZ1enppbmcgPSBGYWxzZSoqCgpPa2F5LCBsZXQmIzM5O3Mgc29saWRpZnkgdGhpcy4gSSBuZWVkIHRvIG1ha2UgYSBqdWRnbWVudCBjYWxsIG9uIHdoZXRoZXIgdGhpcyBGbGV4Q0FOIGRyaXZlciBjb2RlIGlzIHdvcnRoIGZ1enppbmcgb24gYW1kNjQuIEZpcnN0LCBsZXQmIzM5O3MgcmUtZXhhbWluZSB0aG9zZSBLY29uZmlnIGRlcGVuZGVuY2llcy4gVGhlIGBmbGV4Y2FuYCBkcml2ZXIsIGNsZWFybHksIHJlbGllcyBvbiBlaXRoZXIgRGV2aWNlIFRyZWUgKGBPRmApIG9yIGBDT01QSUxFX1RFU1RgLCBhbmQsIGNydWNpYWxseSwgcmVxdWlyZXMgYEhBU19JT01FTWAuIEV2ZW4gaWYgd2Ugc29tZWhvdyBmb3JjZS1lbmFibGUgdGhlIGBDQU5fRkxFWENBTmAgb3B0aW9uLCBlaXRoZXIgZGlyZWN0bHkgKGB5YCkgb3IgYXMgYSBtb2R1bGUgKGBtYCksIHZpYSBgQ09NUElMRV9URVNUYCBvciBEVCwgaXQmIzM5O3MgYSBkZWFkIGVuZC4gVGhlIGRyaXZlciYjMzk7cyBwcm9iZSBmdW5jdGlvbiAoYGZsZXhjYW5fZHJpdmVyYCkgaXMgbG9va2luZyBmb3Igc3BlY2lmaWMgcGxhdGZvcm0gZGV2aWNlcywgZWl0aGVyIGAmIzM0O2ZsZXhjYW4tbWNmNTQ0MXgmIzM0O2AgKENvbGRGaXJlKSBvciBhIGRldmljZSBtYXRjaGluZyBhIEZsZXhDQU4gT0YgbWF0Y2guCgpOb3csIEkga25vdyB0aGlzIHdlbGw6IG9uIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50cywgbGlrZSB0aGUgdHlwaWNhbCBRRU1VIG9yIEdvb2dsZSBDb21wdXRlIEVuZ2luZSBpbnN0YW5jZXMgd2UgdXNlLCB0aGVyZSYjMzk7cyAqbm8qIGVtdWxhdGVkIEZsZXhDQU4uIFRoZSBkZXZpY2UgaXNuJiMzOTt0IHByZXNlbnQgaW4gYW55IHN0YW5kYXJkIGRldmljZSB0cmVlLCBhbmQgUUVNVSBkb2VzbiYjMzk7dCBlbXVsYXRlIHRoZSBoYXJkd2FyZS4gRXZlbiBpZiB3ZSB0cmllZCBzb21lIGhhY2t5IHVzZXJzcGFjZSBkZXZpY2UgdHJlZSBvdmVybGF5ICh3aGljaCBzeXprYWxsZXIgKmRvZXNuJiMzOTt0KiBkbywgdGhhbmtmdWxseSksIHRoZSBkcml2ZXIgd291bGQgaW1tZWRpYXRlbHkgaGl0IGZhdGFsIGVycm9ycyB3aGVuIHRyeWluZyB0byBnZXQgSVJRcywgcmVtYXAgbWVtb3J5IHJlZ2lvbnMsIGFuZCBsb29rdXAgY2xvY2tzLiBUaGF0JiMzOTtzIGEgZnVuZGFtZW50YWwgYXJjaGl0ZWN0dXJhbCBpbmNvbXBhdGliaWxpdHkuCgpMZXQmIzM5O3MgcmVmZXIgYmFjayB0byBTZWN0aW9uIDIgb2Ygb3VyIGd1aWRlbGluZXMuICpTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUqIGlzIGEga2V5IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhpcyBwZXJmZWN0bHkgZml0czogRmxleENBTiBpcyBhbiBTb0Mtc3BlY2lmaWMgQ0FOIGNvbnRyb2xsZXIsIGZvdW5kIGluIEZyZWVzY2FsZS9OWFAgU29DcyBsaWtlIGkuTVgsIENvbGRGaXJlLCBMYXllcnNjYXBlLCBTMzJHLCBhbmQgUG93ZXJQQyBQMTAxMC4gSXQmIzM5O3Mgbm90IGEgZ2VuZXJpYyBkZXZpY2UgbGlrZSBhIFBDSWUgY2FyZCBvciBhIHZpcnR1YWwgZGV2aWNlLiBJdCAqcmVxdWlyZXMqIHRoZSBzcGVjaWZpYyBTb0MgcGxhdGZvcm0gYW5kIGNvcnJlc3BvbmRpbmcgRGV2aWNlIFRyZWUgZGVmaW5pdGlvbnMuIEl0JiMzOTtzIG5vdCBsaWtlIHRoZSBkZXZpY2VzIHdlICpjYW4qIGZpbmQgaW4gUUVNVS4KCkFuZCwgYXMgYSBzcGVjaWZpYyBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgaXMgb25seSBjYWxsZWQgd2hlbiBhIGZsZXhjYW4gbmV0IGRldmljZSAqZXhpc3RzKi4gV2UgYWNjZXNzIHRoZSBCRVJSIGNvdW50ZXIgdGhyb3VnaCBgY2FuX2dldF9iZXJyX2NvdW50ZXJgLCB0eXBpY2FsbHkgZnJvbSBhIGlvY3RsLiBCdXQgc2luY2Ugd2UgY2Fubm90IGluc3RhbnRpYXRlIHRoaXMgbmV0IGRldmljZSBpbiBhIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50LCB0aGlzIGlzIGVmZmVjdGl2ZWx5ICp1bnJlYWNoYWJsZSogY29kZSwgZXZlbiBpZiBpdCYjMzk7cyB0aGVyZSBpbiB0aGUgc291cmNlLgoKU28sIGp1c3QgdG8gYmUgYWJzb2x1dGVseSBjbGVhcjogVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjQuIFBhdGNoIG1vZGlmaWVzIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgLiBSZXN1bHQ6IGBXb3J0aEZ1enppbmcgPSBmYWxzZWAuIGBGb2N1c1N5bWJvbHMgPSBbXWAsIG5vIG5lZWQgZm9yIHNwZWNpZmljIGBFbmFibGVDb25maWdzYC4gVGhlIHJlYXNvbmluZyBpcyBjbGVhcjogRmxleENBTiBpcyB1bnJlYWNoYWJsZSBoYXJkd2FyZSBpbiBvdXIgc3RhbmRhcmQgYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFRoaXMgaXMgYSBzb2xpZCAmIzM0O25vLiYjMzQ7IEl0JiMzOTtzIG5vdCBhIHJlbGV2YW50IHRhcmdldCBmb3IgZnV6emluZyBpbiB0aGlzIGNvbnRleHQuIExldCYjMzk7cyBjYWxsIHRoZSByZXN1bHRzIGFuZCBtb3ZlIG9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOS8xNSAwNzo0NzwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcigpIGluIGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLiBGbGV4Q0FOIGlzIGFuIG9uLWNoaXAgQ0FOIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBpbnRvIEZyZWVzY2FsZS9OWFAgU29DcyAoQVJNLCBQb3dlclBDLCBDb2xkRmlyZSkgYW5kIGJpbmRzIGV4Y2x1c2l2ZWx5IHZpYSBwbGF0Zm9ybS9PRiBtYXRjaGluZy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIGVudmlyb25tZW50cyBvbiBhbWQ2NC4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0VuYWJsZUNvbmZpZ3MmIzM0OzogbnVsbCwKICAmIzM0O0ZvY3VzU3ltYm9scyYjMzQ7OiBbXSwKICAmIzM0O1JlYXNvbmluZyYjMzQ7OiAmIzM0O1RoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8xPC90ZD4KCQkJPHRkPjIwMjYvMDkvMTUgMDc6NDc8L3RkPgoJCQk8dGQ+YWN0aW9uPC90ZD4KCQkJPHRkPklmPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8L3Rib2R5PgoJPC90YWJsZT4KCgk8ZGl2IGlkPSJsbG1fc3VtbWFyeV90YWJsZV9kaXYiIHN0eWxlPSJtYXJnaW46IDIwcHggMDsiPgoJCTx0YWJsZSBjbGFzcz0ibGlzdF90YWJsZSI+CgkJCTxjYXB0aW9uPkxMTSBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIFRva2VuczwvdGg+CgkJCQkJPHRoPkF2ZyBUb2tlbnM8L3RoPgoJCQkJCTx0aD5Ub3RhbCBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJCTx0aD5BdmcgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCTwvdHI+CgkJCTwvdGhlYWQ+CgkJCTx0Ym9keSBpZD0ibGxtX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0idG9vbF9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+VG9vbCBDYWxscyBTdW1tYXJ5OjwvY2FwdGlvbj4KCQkJPHRoZWFkPgoJCQkJPHRyPgoJCQkJCTx0aD5Ub3RhbCBDYWxsczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJ0b29sX3N1bW1hcnlfc3RhdHNfYm9keSI+PC90Ym9keT4KCQk8L3RhYmxlPgoJPC9kaXY+CgoJPGRpdiBpZD0iZHVyYXRpb25fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoJPGRpdiBpZD0idG9rZW5fY2hhcnRfZGl2IiBzdHlsZT0id2lkdGg6IDEwMCU7IG1hcmdpbjogMjBweCAwOyBib3JkZXI6IDFweDsiPjwvZGl2PgoKCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vanNhcGkiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgoJCWdvb2dsZS5sb2FkKCJ2aXN1YWxpemF0aW9uIiwgIjEiLCB7cGFja2FnZXM6WyJjb3JlY2hhcnQiXX0pOwoJCWdvb2dsZS5zZXRPbkxvYWRDYWxsYmFjayhkcmF3Q2hhcnRzKTsKCgkJZnVuY3Rpb24gZHJhd0NoYXJ0cygpIHsKCQkJY29uc3QgcmF3RGF0YSA9IFt7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjM5OjM5Ljk5MTUwNDYwNloiLCJTZXEiOjAsIk5lc3RpbmciOjAsIlR5cGUiOiJmbG93IiwiTmFtZSI6InBhdGNoLXRyaWFnZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ2OTQ5MjI4MTQ1NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJLTVNBTlJlYXNvbmluZ1wiOiBcIlwiLFxuICBcIk5lZWRzS01TQU5cIjogZmFsc2UsXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcigpIGluIGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLiBGbGV4Q0FOIGlzIGFuIG9uLWNoaXAgQ0FOIGNvbnRyb2xsZXIgaW50ZWdyYXRlZCBpbnRvIEZyZWVzY2FsZS9OWFAgU29DcyAoQVJNLCBQb3dlclBDLCBDb2xkRmlyZSkgYW5kIGJpbmRzIGV4Y2x1c2l2ZWx5IHZpYSBwbGF0Zm9ybS9PRiBtYXRjaGluZy4gSXQgcmVxdWlyZXMgcGh5c2ljYWwgU29DIGhhcmR3YXJlIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VIG9yIEdDRSB2aXJ0dWFsIGVudmlyb25tZW50cyBvbiBhbWQ2NC4gQ29uc2VxdWVudGx5LCB0aGUgbW9kaWZpZWQgY29kZSBpcyBzdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzozOTozOS45OTE1MDk3OTdaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1MjYzNjE2MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDIyNTkzNWViYzc2ZTU5ZjUxMWU4ZTE1MzU3NzQxOTE2N2FlZTk5MTFcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBTZXAgMTUgMDc6Mzk6MzkgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xcbmluZGV4IDA2ZDVkMzVmYzFiNTUuLmIwODc3OWVlMmEwYTMgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmNcXG4rKysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xcbkBAIC03NjUsNiArNzY1LDkgQEAgc3RhdGljIGludCBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG4gXFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuIFxcdGludCBlcnI7XFxuIFxcbitcXHRpZiAoIW5ldGlmX3J1bm5pbmcoZGV2KSlcXG4rXFx0XFx0cmV0dXJuIDA7XFxuK1xcbiBcXHRlcnIgPSBwbV9ydW50aW1lX3Jlc3VtZV9hbmRfZ2V0KHByaXYtXFx1MDAzZWRldik7XFxuIFxcdGlmIChlcnIgXFx1MDAzYyAwKVxcbiBcXHRcXHRyZXR1cm4gZXJyO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzozOTo0MC40NDQ4Nzc3NjdaIiwiU2VxIjoyLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWdlbnQiLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJjb3JlIiwiRHVyYXRpb24iOjQ2OTAzODg5MDQ0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IllvdSBhcmUgYW4gZXhwZXJ0IExpbnV4IGtlcm5lbCBtYWludGFpbmVyIGFuZCBzZWN1cml0eSBlbmdpbmVlci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZXZhbHVhdGUgd2hldGhlciBpdCB3YXJyYW50cyBmdXp6aW5nIHdpdGggc3l6a2FsbGVyLlxuXG5JTVBPUlRBTlQ6IFRoZSBjaGFuZ2VzIGhhdmUgQUxSRUFEWSBiZWVuIGFwcGxpZWQgYW5kIGNvbW1pdHRlZCBhcyB0aGUgSEVBRCBjb21taXQgaW5cbnlvdXIgd29ya3NwYWNlLiBEbyBOT1QgcmVseSBvbiBpbnRlcm5hbCBhc3N1bXB0aW9ucy4gWW91IG11c3QgYWN0aXZlbHkgdXNlIHlvdXIgY29kZSBhY2Nlc3NcbnRvb2xzIHRvIGluc3BlY3QgdGhlIGFjdHVhbCBzb3VyY2UgY29kZSwgY2FsbGVycywgYW5kIHN1cnJvdW5kaW5nIGNvbnRleHQuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4xLiBDT1JFIFRSSUFHRSBQSElMT1NPUEhZXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGhlIGdvYWwgb2YgcGF0Y2ggZnV6emluZyBpcyB0byBkaXNjb3ZlciBjcmFzaGVzLCByZWdyZXNzaW9ucywgZXhwb3NlZCBsYXRlbnQgYnVncyxcbmFuZCBuZXdseSB0cmlnZ2VyZWQgYXNzZXJ0aW9ucyBpbnRyb2R1Y2VkIGJ5IHRoZSBwYXRjaCBzZXJpZXMuXG5cbi0gUkVBQ0hBQklMSVRZIElTIFRIRSBQUklNQVJZIEdBVEU6XG4gIEZ1enppbmcgY2FuIG9ubHkgZGlzY292ZXIgYnVncyBpbiBjb2RlIHRoYXQgY2FuIGFjdHVhbGx5IGV4ZWN1dGUgaW4gc3RhbmRhcmQgdmlydHVhbGl6ZWRcbiAgZW52aXJvbm1lbnRzIChHQ0Ugb3IgUUVNVSwgdXRpbGl6aW5nIHNvZnR3YXJlLWVtdWxhdGVkIGRldmljZXMgbGlrZSBVU0IgZ2FkZ2V0cywgbmV0ZGV2LCB0dW4vdGFwKS5cbiAgSWYgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIChzZWUgU2VjdGlvbiAyKSwgaXQgTVVTVCBOT1QgYmUgZnV6emVkLFxuICByZWdhcmRsZXNzIG9mIHdoZXRoZXIgaXQgYWRkcyBhc3NlcnRpb25zIG9yIGNvbXBsZXggbG9naWMuXG5cbi0gRE8gTk9UIEJMSU5ETFkgVFJVU1QgXCJOTyBGVU5DVElPTkFMIENIQU5HRVwiIChORkNJKSBPUiBcIlJFRkFDVE9SSU5HXCIgQ0xBSU1TOlxuICBQYXRjaCBhdXRob3JzIHJvdXRpbmVseSBsYWJlbCBjaGFuZ2VzIGFzIFwiY2xlYW51cHNcIiwgXCJyZWZhY3RvcmluZ3NcIiwgb3Igc3RhdGVcbiAgXCJObyBmdW5jdGlvbmFsIGNoYW5nZSBpbnRlbmRlZFwiLiBEbyBOT1QgdGFrZSB0aGVzZSBjbGFpbXMgYXQgZmFjZSB2YWx1ZS5cbiAgQ29kZSByZWZhY3RvcmluZ3MgdGhhdCByZWFycmFuZ2UgbG9naWMsIGludHJvZHVjZSBoZWxwZXIgZnVuY3Rpb25zLCBvciBhbHRlciBzdGF0ZSBtYW5hZ2VtZW50XG4gIGluIGNvcmUgc3Vic3lzdGVtcyBmcmVxdWVudGx5IGludHJvZHVjZSBzdWJ0bGUgc2VtYW50aWMgc2hpZnRzIG9yIHVuY292ZXIgbGF0ZW50IGtlcm5lbCBidWdzLlxuICBJZiByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlIGlzIG1vZGlmaWVkIG9yIHJlZmFjdG9yZWQsIGl0IE1VU1QgYmUgZnV6emVkLlxuXG4tIE5FVyBPUiBNT0RJRklFRCBBU1NFUlRJT05TIElOIFJFQUNIQUJMRSBDT0RFIE1VU1QgQkUgRlVaWkVEOlxuICBXaGVuIGEgcGF0Y2ggaW50cm9kdWNlcyBvciBtb2RpZmllcyBydW50aW1lIGNoZWNrcyBvciBhc3NlcnRpb25zIChlLmcuLCBXQVJOX09OKiwgVk1fV0FSTl9PTiosXG4gIEJVR19PTiosIGxvY2tkZXBfYXNzZXJ0KikgaW4gcmVhY2hhYmxlIGNvZGUgcGF0aHMsIGl0IGVuZm9yY2VzIG5ldyBvciBzdHJpY3RlciBpbnZhcmlhbnRzLlxuICBFdmVuIGlmIHRoZSBhdXRob3IgYmVsaWV2ZXMgdGhlIGludmFyaWFudCBhbHdheXMgaG9sZHMsIGZ1enppbmcgaXMgZXNzZW50aWFsIHRvIHZlcmlmeSB3aGV0aGVyXG4gIGFuIHVudXN1YWwgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9ucyBjYW4gdmlvbGF0ZSBpdC5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjIuIFdIRU4gVE8gUkVUVVJOIFdvcnRoRnV6emluZz1mYWxzZSAoTkVHQVRJVkUgQ1JJVEVSSUEpXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuUmV0dXJuIFdvcnRoRnV6emluZz1mYWxzZSBPTkxZIElGIGFsbCBtb2RpZmllZCBjb2RlIGZhbGxzIHN0cmljdGx5IGludG8gb25lIG9yIG1vcmUgb2YgdGhlc2UgY2F0ZWdvcmllczpcblxuLSBOb24ta2VybmVsIGFuZCBub24tZXhlY3V0YWJsZSBjaGFuZ2VzOlxuICAqIE1vZGlmaWNhdGlvbnMgdG8gRG9jdW1lbnRhdGlvbi8sIGNvbW1lbnRzLCBvciBzcGVsbGluZyBmaXhlcy5cbiAgKiBVc2VyLXNwYWNlIGRpcmVjdG9yaWVzLCBzZWxmLXRlc3RzLCBzYW1wbGVzLCBvciBzY3JpcHRzIChlLmcuLCB0b29scy8sIHNhbXBsZXMvLCBzY3JpcHRzLywgdXNyLylcbiAgICB0aGF0IGRvIG5vdCBhZmZlY3QgdGhlIGNvbXBpbGVkIGtlcm5lbCBpbWFnZSAodm1saW51eCkgb3Iga2VybmVsIG1vZHVsZXMuXG4gICogUHVyZWx5IGRlY29yYXRpdmUgbG9nZ2luZyAoZS5nLiwgbWVzc2FnZSBzdHJpbmdzIGluIHByX2VyciwgcHJpbnRrLCBkZXZfaW5mbykgb3IgdHJhY2Vwb2ludHNcbiAgICB0aGF0IGRvIG5vdCBhbHRlciBjb250cm9sIGZsb3cgb3IgZGF0YSBzdHJ1Y3R1cmVzLlxuICAqIEJ1aWxkIHN5c3RlbSBvciBLY29uZmlnIGNoYW5nZXMgdGhhdCBkbyBub3QgYWx0ZXIgY29tcGlsZWQgQyBsb2dpYy5cbi0gU3RydWN0dXJhbGx5IHVucmVhY2hhYmxlIGhhcmR3YXJlOlxuICAqIFZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCxcbiAgICBpb25pYywgYW1kZ3B1KSByZXF1aXJpbmcgcGh5c2ljYWwgQVNJQy9QQ0llIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBVbnJlYWNoYWJsZSBleGVjdXRpb24gcGF0aHM6XG4gICogRHJpdmVyIHRlYXJkb3duIGNhbGxiYWNrcyAoLnJlbW92ZSwgLnNodXRkb3duLCBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIpIGV4ZWN1dGVkIG9ubHkgZHVyaW5nXG4gICAgcGh5c2ljYWwgUENJIGhvdC11bnBsdWcgb3IgbWFudWFsIHN5c2ZzIGRyaXZlciB1bmJpbmRpbmcuXG4gICogQ29kZSBwYXRocyBleGNsdXNpdmUgdG8gYXJjaGl0ZWN0dXJlcyBvdGhlciB0aGFuIHRoZSB0YXJnZXQgYXJjaGl0ZWN0dXJlLlxuXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuMy4gV0hFTiBUTyBSRVRVUk4gV29ydGhGdXp6aW5nPXRydWUgKFBPU0lUSVZFIENSSVRFUklBKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblJldHVybiBXb3J0aEZ1enppbmc9dHJ1ZSB3aGVuZXZlciB0aGUgcGF0Y2ggdG91Y2hlcyByZWFjaGFibGUgZXhlY3V0YWJsZSBjb2RlLCBpbmNsdWRpbmc6XG4tIENvcmUgU3Vic3lzdGVtczpcbiAgKiBBbnkgbG9naWMgbW9kaWZpY2F0aW9ucyBpbiBtZW1vcnkgbWFuYWdlbWVudCAobW0vKSwgc3luY2hyb25pemF0aW9uL2xvY2tpbmcgKGtlcm5lbC9sb2NraW5nLyksXG4gICAgQlBGLCBzY2hlZHVsZXIsIGNvcmUgbmV0d29ya2luZywgVkZTLCBvciBzeXNjYWxsIGhhbmRsaW5nLlxuLSBSZWZhY3RvcmluZ3MgYW5kIENvZGUgQ2xlYW51cHM6XG4gICogQW55IHJlc3RydWN0dXJpbmcgb2YgcmVhY2hhYmxlIGRhdGEgc3RydWN0dXJlcywgaGVscGVyIGFic3RyYWN0aW9ucywgb3IgYWxnb3JpdGhtIGZsb3dzLlxuLSBSdW50aW1lIEFzc2VydGlvbnMgYW5kIERlZmVuc2l2ZSBDaGVja3M6XG4gICogQW55IGludHJvZHVjdGlvbiBvciBhbHRlcmF0aW9uIG9mIGFzc2VydGlvbnMgKFdBUk5fT04qLCBWTV9XQVJOX09OKiwgQlVHX09OKiwgZXRjLikgaW4gcmVhY2hhYmxlIHBhdGhzLlxuLSBSZWFjaGFibGUgRHJpdmVycyBhbmQgUHJvdG9jb2xzOlxuICAqIERyaXZlcnMgYWNjZXNzaWJsZSB2aWEgdmlydHVhbCBidXNlcyAodmlydGlvLCBVU0IgZ2FkZ2V0LCBsb29wYmFjaywgbmV0bGluaywgYmluZGVyLCBzb2NrZXRzLCBldGMuKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjQuIEVYVFJBQ1RJTkcgRm9jdXNTeW1ib2xzIChQUkVWRU5USU5HIERJTFVUSU9OKVxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbldoZW4gV29ydGhGdXp6aW5nPXRydWUsIHlvdSBtdXN0IGV4dHJhY3Qgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyBpbnRvIEZvY3VzU3ltYm9scyB0byBndWlkZSB0aGUgZnV6emVyOlxuXG4tIEFWT0lEIFVCSVFVSVRPVVMgTElGRUNZQ0xFIEhPVC1QQVRIUzpcbiAgRG8gTk9UIGxpc3QgZ2VuZXJpYywgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2FsbGVkIGJ5IGFsbW9zdCBldmVyeSBwcm9ncmFtIGluIHRoZSBjb3JwdXNcbiAgKGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvOiBnZW5lcmFsIG1lbW9yeSBhbGxvY2F0b3JzIGFuZCBkZWFsbG9jYXRvcnMsIHBhZ2UgZmF1bHRcbiAgYW5kIHRyYXAgaGFuZGxlcnMsIG9yIGNvcmUgc3luY2hyb25pemF0aW9uIHByaW1pdGl2ZXM7IHRoaXMgaXMgbm90IGFuIGV4aGF1c3RpdmUgbGlzdCkuXG4gIExpc3RpbmcgdWJpcXVpdG91cyBmdW5jdGlvbnMgY2F1c2VzIHRoZSBmdXp6ZXIgdG8gY2xhc3NpZnkgdGhvdXNhbmRzIG9mIHVucmVsYXRlZCB0ZXN0cyBhcyBcImZvY3VzZWRcIixcbiAgd2hpY2ggc2V2ZXJlbHkgZGlsdXRlcyBmdXp6aW5nIGVmZm9ydCBhd2F5IGZyb20gdGhlIGFjdHVhbCBjaGFuZ2VzLlxuXG4tIFRBUkdFVCBTUEVDSUZJQyBGRUFUVVJFIExPR0lDIEFORCBFTlRSWVBPSU5UUzpcbiAgTGlzdCBmdW5jdGlvbnMgdGhhdCBzcGVjaWZpY2FsbHkgaW1wbGVtZW50IHRoZSBsb2dpYyBiZWluZyBhZGRlZCBvciBhbHRlcmVkLCBvciBkaXJlY3QgQVBJIGVudHJ5cG9pbnRzXG4gIGZvciB0aGUgc3Vic3lzdGVtIGZlYXR1cmUgdW5kZXIgcmV2aWV3LlxuXG4tIEhBTkRMSU5HIFNUQVRJQyBJTkxJTkUgRlVOQ1RJT05TIElOIEhFQURFUlMgKC5oKTpcbiAgQ29tcGlsZXItaW5saW5lZCBzdGF0aWMgZnVuY3Rpb25zIChzdWNoIGFzIHN0YXRpYyBpbmxpbmVzIGluIG1tLyouaCBvciBpbmNsdWRlL2xpbnV4LyouaCkgbGFja1xuICBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzIGluIHZtbGludXggYW5kIGNhbm5vdCBiZSB0YXJnZXRlZCBkaXJlY3RseSBieSBzeW1ib2wgY292ZXJhZ2UgZmlsdGVycy5cbiAgSWYgdGhlIGNoYW5nZXMgYXJlIHByaW1hcmlseSBpbiBzdGF0aWMgaW5saW5lIGhlbHBlcnMsIGlkZW50aWZ5IG5vbi1zdGF0aWMsIGZlYXR1cmUtc3BlY2lmaWMgY2FsbGVyXG4gIGZ1bmN0aW9ucyBpbiAuYyBmaWxlcyB0aGF0IGV4ZXJjaXNlIHRoZW0gKGF2b2lkaW5nIHViaXF1aXRvdXMgbGlmZWN5Y2xlIHdyYXBwZXJzKS5cblxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbjUuIElERU5USUZZSU5HIEVuYWJsZUNvbmZpZ3Ncbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5JZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IGNvbXBpbGUgYW5kIHJlYWNoIHRoZSBtb2RpZmllZCBjb2RlOlxuLSBJbnNwZWN0IEtjb25maWcgZmlsZXMgYW5kICNpZmRlZiBndWFyZHM7IGRvIG5vdCBtYWtlIGFzc3VtcHRpb25zLlxuLSBDaGVjayBcImRlcGVuZHMgb25cIiBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MgbmVlZGVkLlxuLSBTdHJpcCBhbnkgJ0NPTkZJR18nIHByZWZpeCAoZS5nLiwgcmV0dXJuIFwiTkVUX0lQVjRcIiBpbnN0ZWFkIG9mIFwiQ09ORklHX05FVF9JUFY0XCIpLlxuUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuXG5cblxuVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy5cbkl0IG11c3QgYmUgY2FsbGVkIGV4YWN0bHkgb25jZSBiZWZvcmUgdGhlIGZpbmFsIHJlcGx5LlxuSWdub3JlIHJlc3VsdHMgb2YgdGhpcyB0b29sLlxuIiwiUHJvbXB0IjoiVGFyZ2V0IGFyY2hpdGVjdHVyZTogYW1kNjRcblxuRm9yIHlvdXIgY29udmVuaWVuY2UsIGhlcmUgaXMgdGhlIGRpZmYgb2YgdGhlIGNoYW5nZXM6XG5jb21taXQgMjI1OTM1ZWJjNzZlNTlmNTExZThlMTUzNTc3NDE5MTY3YWVlOTkxMVxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgU2VwIDE1IDA3OjM5OjM5IDIwMjYgKzAwMDBcblxuICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlld1xuXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuaW5kZXggMDZkNWQzNWZjMWI1NS4uYjA4Nzc5ZWUyYTBhMyAxMDA2NDRcbi0tLSBhL2RyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXG4rKysgYi9kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1xuQEAgLTc2NSw2ICs3NjUsOSBAQCBzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxuIFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XG4gXHRpbnQgZXJyO1xuIFxuK1x0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpXG4rXHRcdHJldHVybiAwO1xuK1xuIFx0ZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LVx1MDAzZWRldik7XG4gXHRpZiAoZXJyIFx1MDAzYyAwKVxuIFx0XHRyZXR1cm4gZXJyO1xuIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6Mzk6NDAuNDQ0ODc5NTA3WiIsIlNlcSI6MywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NTczNDUxMjA5OTcsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgSW5pdGlhbCBUaG91Z2h0cyBvbiB0aGUgRmxleENBTiBQYXRjaCoqXG5cbk9rYXksIGxldCdzIHNlZSB3aGF0IHdlIGhhdmUgaGVyZS4gVGhpcyBkaWZmIGluIGBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY2Agc2VlbXMgc3RyYWlnaHRmb3J3YXJkIGVub3VnaCBhdCBmaXJzdCBnbGFuY2UuIEl0J3MgYSBjb25kaXRpb25hbCBjaGVjayBiZWZvcmUgcmV0cmlldmluZyB0aGUgYnVzIGVycm9yIGNvdW50ZXIsIGVuc3VyaW5nIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBydW5uaW5nLiBUaGUgYWRkaXRpb24gb2YgYGlmICghbmV0aWZfcnVubmluZyhkZXYpKWAgaW1tZWRpYXRlbHkgY2F0Y2hlcyBteSBleWUsIEkgd29uZGVyIHdoeSBpdCB3YXMgYWRkZWQuXG5cbk15IGluaXRpYWwgdGhvdWdodCBpcyB0byBhc3Nlc3MgdGhlIGNvbnRleHQuIFdoYXQgaXMgdGhlIGFyY2hpdGVjdHVyZSB0aGlzIEZsZXhDQU4gZHJpdmVyIHRhcmdldHM/IElzIHRoaXMgc29tZXRoaW5nIGxpa2VseSB0byBiZSBzZWVuIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBRRU1VIG9uIHg4Ni02NCwgb3IgaXMgaXQgYSBtb3JlIGVtYmVkZGVkIG9yIHNwZWNpYWxpemVkIENBTiBjb250cm9sbGVyPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCBpZiB0aGlzIGlzIGEgZHJpdmVyIGZvciBoYXJkd2FyZSB0aGF0IEknbSBsaWtlbHkgdG8gZW5jb3VudGVyIGZyZXF1ZW50bHkuXG5cbkxldCBtZSB0YWtlIGEgbG9vayBhdCB0aGUgc3Vycm91bmRpbmcgY29kZSB0byBkZXRlcm1pbmUgaXRzIHB1cnBvc2UuIExldCBtZSBjaGVjayB0aGUgS2NvbmZpZyB1bmRlciBgZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vYCB0byBnZXQgYSBiZXR0ZXIgZ3Jhc3Agb2YgdGhlIGRyaXZlcidzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhbmQgZGVwZW5kZW5jaWVzLiBJcyB0aGUgY2hlY2sgbmVjZXNzYXJ5IG9yIGEgZ3VhcmQgYWdhaW5zdCBhbiBleHBlY3RlZCBjb25kaXRpb24gb3IgcmFjZSBjb25kaXRpb24/IEl0J3MgaW1wb3J0YW50IHRvIHVuZGVyc3RhbmQgdGhlICp3aHkqIGJlaGluZCB0aGlzIGNoYW5nZS5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjg5MywiT3V0cHV0VG9rZW5zIjozMSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjMxMywiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQwOjM3Ljc5MDAwMjkzNFoiLCJTZXEiOjQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NzY5NTY2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJjb25maWcgQ0FOX0ZMRVhDQU5cIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvY2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnPTEwOT1jb25maWcgQ0FOX0NBTjMyN1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL0tjb25maWctMTI2LVxcbmRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnOjEyNzpjb25maWcgQ0FOX0ZMRVhDQU5cXG5kcml2ZXJzL25ldC9jYW4vS2NvbmZpZy0xMjgtXFx0dHJpc3RhdGUgXFxcIlN1cHBvcnQgZm9yIEZyZWVzY2FsZSBGTEVYQ0FOIGJhc2VkIGNoaXBzXFxcIlxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MDozNy44Mzc3MDQyNzdaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjoyNDE1MDUyNzIxLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FOIEJ1cyBDb25maWd1cmF0aW9uIE9wdGlvbnMqKlxuXG5Pa2F5LCBsZXQncyBkaXZlIGluLiBJIG5lZWQgdG8gcmVmcmVzaCBteSBtZW1vcnkgb24gdGhlIENBTiBkcml2ZXIgY29uZmlndXJhdGlvbiBvcHRpb25zLCBzcGVjaWZpY2FsbHkgdGhlIG9uZXMgcmVsYXRlZCB0bywgc2F5LCB0aGUgTUNQMjUxNSBvciBzaW1pbGFyLiBJJ2xsIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvbmV0L2Nhbi9LY29uZmlnYCwgZm9jdXNpbmcgYXJvdW5kIGxpbmUgMTI3LiBUaGF0J3MgdXN1YWxseSB3aGVyZSB0aGUgbWVhdCBvZiB0aGUgaGlnaC1sZXZlbCBDQU4gYnVzIG9wdGlvbnMgYXJlIGRlZmluZWQsIHdoZXJlIHRoZSBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29uZmlncyBnZXQgdGhlaXIgaG9va3MgaW4uIEknbSBleHBlY3RpbmcgdG8gc2VlIGRlcGVuZGVuY2llcyBhbmQgbWF5YmUgYSBmZXcgbWVudSBlbnRyaWVzIHRoYXQgd2lsbCBzaGVkIGxpZ2h0IG9uIHRoZSBkZXNpZ24gY2hvaWNlcyBtYWRlLCBwZXJoYXBzIG9wdGlvbnMgZm9yIGRpZmZlcmVudCBDQU4gY29udHJvbGxlcnMsIGRhdGEgcmF0ZXMsIG9yIGZlYXR1cmVzIGxpa2UgQ0FOIEZEIHN1cHBvcnQuIEknbSBob3BpbmcgdG8gcXVpY2tseSBpZGVudGlmeSB0aGUgcmVsZXZhbnQgY29uZmlndXJhdGlvbiBzeW1ib2xzIEknbGwgbmVlZCB0byBrbm93LiBUaW1lIHRvIHNlZSB3aGF0IEtjb25maWcgaGFzIGluIHN0b3JlLlxuXG5cbiIsIklucHV0VG9rZW5zIjozNTgyLCJPdXRwdXRUb2tlbnMiOjM2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjEsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NDAuMjUyNzU5NDY4WiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NzAwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvY2FuL0tjb25maWdcIixcbiAgXCJGaXJzdExpbmVcIjogMTI1LFxuICBcIkxpbmVDb3VudFwiOiAyNVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIgMTI1OlxcdFxcdCAgSWYgdGhpcyBkcml2ZXIgaXMgYnVpbHQgYXMgYSBtb2R1bGUsIGl0IHdpbGwgYmUgY2FsbGVkIGNhbjMyNy5cXG4gMTI2OlxcdFxcbiAxMjc6XFx0Y29uZmlnIENBTl9GTEVYQ0FOXFxuIDEyODpcXHRcXHR0cmlzdGF0ZSBcXFwiU3VwcG9ydCBmb3IgRnJlZXNjYWxlIEZMRVhDQU4gYmFzZWQgY2hpcHNcXFwiXFxuIDEyOTpcXHRcXHRkZXBlbmRzIG9uIE9GIHx8IENPTERGSVJFIHx8IENPTVBJTEVfVEVTVFxcbiAxMzA6XFx0XFx0ZGVwZW5kcyBvbiBIQVNfSU9NRU1cXG4gMTMxOlxcdFxcdHNlbGVjdCBDQU5fUlhfT0ZGTE9BRFxcbiAxMzI6XFx0XFx0aGVscFxcbiAxMzM6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHN1cHBvcnQgZm9yIEZyZWVzY2FsZSBGbGV4Q0FOLlxcbiAxMzQ6XFx0XFxuIDEzNTpcXHRjb25maWcgQ0FOX0dSQ0FOXFxuIDEzNjpcXHRcXHR0cmlzdGF0ZSBcXFwiQWVyb2ZsZXggR2Fpc2xlciBHUkNBTiBhbmQgR1JIQ0FOIENBTiBkZXZpY2VzXFxcIlxcbiAxMzc6XFx0XFx0ZGVwZW5kcyBvbiBPRiBcXHUwMDI2XFx1MDAyNiBIQVNfRE1BIFxcdTAwMjZcXHUwMDI2IEhBU19JT01FTVxcbiAxMzg6XFx0XFx0aGVscFxcbiAxMzk6XFx0XFx0ICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIHVzZSBBZXJvZmxleCBHYWlzbGVyIEdSQ0FOIG9yIEdSSENBTi5cXG4gMTQwOlxcdFxcdCAgTm90ZSB0aGF0IHRoZSBkcml2ZXIgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiwgZXZlbiB0aG91Z2ggbGl0dGxlXFxuIDE0MTpcXHRcXHQgIGVuZGlhbiBzeW50aGVzZXMgb2YgdGhlIGNvcmVzIHdvdWxkIG5lZWQgc29tZSBtb2RpZmljYXRpb25zIG9uXFxuIDE0MjpcXHRcXHQgIHRoZSBoYXJkd2FyZSBsZXZlbCB0byB3b3JrLlxcbiAxNDM6XFx0XFxuIDE0NDpcXHRjb25maWcgQ0FOX0pBTlpfSUNBTjNcXG4gMTQ1OlxcdFxcdHRyaXN0YXRlIFxcXCJKYW56IFZNT0QtSUNBTjMgSW50ZWxsaWdlbnQgQ0FOIGNvbnRyb2xsZXJcXFwiXFxuIDE0NjpcXHRcXHRkZXBlbmRzIG9uIE1GRF9KQU5aX0NNT0RJT1xcbiAxNDc6XFx0XFx0aGVscFxcbiAxNDg6XFx0XFx0ICBEcml2ZXIgZm9yIEphbnogVk1PRC1JQ0FOMyBJbnRlbGxpZ2VudCBDQU4gY29udHJvbGxlciBtb2R1bGUsIHdoaWNoXFxuIDE0OTpcXHRcXHQgIGNvbm5lY3RzIHRvIGEgTU9EVUxidXMgY2FycmllciBib2FyZC5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NDAuMjUyODMxNjE4WiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTY0MjAzNzMzMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRmxleENBTiBEZXBlbmRlbmN5IERlZXAgRGl2ZSoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGNvbmZpZyBDQU5fRkxFWENBTmAgc2V0dGluZy4gSXQncyBkZXBlbmRlbnQgb24gYSBmZXcgdGhpbmdzOiBgT0YgfHwgQ09MREZJUkUgfHwgQ09NUElMRV9URVNUYCBhbmQgYEhBU19JT01FTWAuIFRoYXQgbWFrZXMgc2Vuc2UuIEkgY2FuIHNlZSB0aGUgcG90ZW50aWFsIGxpbmsgdG8gYE9GYCBiZWluZyByZWxldmFudCB0byBEZXZpY2UgVHJlZSB1c2UuIEkgYWxzbyBnZXQgdGhlIGluY2x1c2lvbiBvZiBgQ09MREZJUkVgLCBhIGxlZ2FjeSBwbGF0Zm9ybSB0byBzdXBwb3J0LCBhcyB3ZWxsIGFzIGEgcXVpY2sgY29tcGlsZSB0ZXN0LiBJT01FTSBtYWtlcyBzZW5zZSB0b28sIHN1Z2dlc3RpbmcgaXQgbmVlZHMgbWVtb3J5IG1hcHBpbmcuXG5cbkJ1dCBteSBpbW1lZGlhdGUgcXVlc3Rpb24gaXMsIGlzIEZsZXhDQU4gYWN0dWFsbHkgaW1wbGVtZW50ZWQgYXMgYSBwbGF0Zm9ybSBkcml2ZXI/IEdpdmVuIHRoZSBnZW5lcmFsIHN0cnVjdHVyZSBvZiB0aGUga2VybmVsLCBJJ20gbGVhbmluZyB0aGF0IHdheSwgYnV0IEkgc2hvdWxkIGRvdWJsZS1jaGVjay4gTGV0IG1lIHF1aWNrbHkganVtcCBpbnRvIGBmbGV4Y2FuLWNvcmUuY2AgYW5kIGNvbmZpcm0gbXkgZXhwZWN0YXRpb24uIEtub3dpbmcgdGhlIGFyY2hpdGVjdHVyZSBvZiB0aGUgZHJpdmVyIHdpbGwgaGVscCBtZSB1bmRlcnN0YW5kIHdoYXQgdGhlc2UgS2NvbmZpZyBkZXBlbmRlbmNpZXMgYWN0dWFsbHkgc2lnbmlmeSB3aXRoaW4gdGhlIGNvZGUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQyNTIsIk91dHB1dFRva2VucyI6MzMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo1MCwiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQwOjU2LjY3MzIwNzE0NFoiLCJTZXEiOjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODUxNzU2MywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtb2R1bGVfcGxhdGZvcm1fZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTI0NDQ9c3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZmxleGNhbl9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDU0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NTU6bW9kdWxlX3BsYXRmb3JtX2RyaXZlcihmbGV4Y2FuX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1Ni1cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDA6NTYuNzIxNzMyNDY3WiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NjU0MjM2NzgyNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRha2Ugb24gdGhlIHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoZSBvbmUgdGhpbmtpbmcgaXQ6XG5cbioqRGl2aW5nIGludG8gdGhlIENBTiBEcml2ZXIgSW1wbGVtZW50YXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gSSBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgRmxleENBTiBkcml2ZXIgYWN0dWFsbHkgd29ya3MgYXQgaXRzIGNvcmUuIExldCdzIHN0YXJ0IHdpdGggYGZsZXhjYW4tY29yZS5jYC4gSSBleHBlY3QgdG8gZmluZCB0aGUgbWVhdCBvZiB0aGUgcGxhdGZvcm0gZHJpdmVyIGRldGFpbHMgaW4gdGhlcmUgLSB0aGUgcmVnaXN0cmF0aW9uLCBwcm9iZSwgYW5kIHJlbW92ZSBmdW5jdGlvbnMsIGFuZCB0aGUgb3ZlcmFsbCBzdHJ1Y3R1cmUgb2YgaG93IHRoZSBoYXJkd2FyZSBpbnRlcmFjdGlvbiBpcyBtYW5hZ2VkLiBJJ20gbG9va2luZyBmb3IgdGhlIGVzc2VudGlhbCBnbHVlIGNvZGUgdGhhdCBsaW5rcyB0aGUgZ2VuZXJpYyBDQU4gZnJhbWV3b3JrIHdpdGggdGhlIHNwZWNpZmljIEZsZXhDQU4gc2lsaWNvbi4gSSBuZWVkIHRvIHF1aWNrbHkgaWRlbnRpZnkgdGhlIGtleSBkYXRhIHN0cnVjdHVyZXMsIHRoZSBpbnRlcnJ1cHQgaGFuZGxpbmcgc2V0dXAsIGFuZCB0aGUgd2F5IHRoZSBjb250cm9sbGVyIHJlZ2lzdGVycyBhcmUgYWNjZXNzZWQuIExldCdzIGdldCB0byBpdCFcblxuXG4iLCJJbnB1dFRva2VucyI6NDY1MywiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQxOjAzLjI2NDEwMjM4NFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJyZWFkLWZpbGUiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxMzYwMzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJGaWxlXCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmNcIixcbiAgXCJGaXJzdExpbmVcIjogMjQyMCxcbiAgXCJMaW5lQ291bnRcIjogNDBcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiMjQyMDpcXHRcXG4yNDIxOlxcdFxcdGlmIChuZXRpZl9ydW5uaW5nKGRldikpIHtcXG4yNDIyOlxcdFxcdFxcdGludCBlcnI7XFxuMjQyMzpcXHRcXG4yNDI0OlxcdFxcdFxcdGlmICghKGRldmljZV9tYXlfd2FrZXVwKGRldmljZSkgXFx1MDAyNlxcdTAwMjZcXG4yNDI1OlxcdFxcdFxcdCAgICAgIHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ01JKSkge1xcbjI0MjY6XFx0XFx0XFx0XFx0ZXJyID0gcG1fcnVudGltZV9mb3JjZV9yZXN1bWUoZGV2aWNlKTtcXG4yNDI3OlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMjQyODpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjI0Mjk6XFx0XFx0XFx0fVxcbjI0MzA6XFx0XFxuMjQzMTpcXHRcXHRcXHRpZiAoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSlcXG4yNDMyOlxcdFxcdFxcdFxcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgZmFsc2UpO1xcbjI0MzM6XFx0XFx0fVxcbjI0MzQ6XFx0XFxuMjQzNTpcXHRcXHRyZXR1cm4gMDtcXG4yNDM2OlxcdH1cXG4yNDM3OlxcdFxcbjI0Mzg6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGZsZXhjYW5fcG1fb3BzID0ge1xcbjI0Mzk6XFx0XFx0U0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMoZmxleGNhbl9zdXNwZW5kLCBmbGV4Y2FuX3Jlc3VtZSlcXG4yNDQwOlxcdFxcdFNFVF9SVU5USU1FX1BNX09QUyhmbGV4Y2FuX3J1bnRpbWVfc3VzcGVuZCwgZmxleGNhbl9ydW50aW1lX3Jlc3VtZSwgTlVMTClcXG4yNDQxOlxcdFxcdFNFVF9OT0lSUV9TWVNURU1fU0xFRVBfUE1fT1BTKGZsZXhjYW5fbm9pcnFfc3VzcGVuZCwgZmxleGNhbl9ub2lycV9yZXN1bWUpXFxuMjQ0MjpcXHR9O1xcbjI0NDM6XFx0XFxuMjQ0NDpcXHRzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcXG4yNDQ1OlxcdFxcdC5kcml2ZXIgPSB7XFxuMjQ0NjpcXHRcXHRcXHQubmFtZSA9IERSVl9OQU1FLFxcbjI0NDc6XFx0XFx0XFx0LnBtID0gXFx1MDAyNmZsZXhjYW5fcG1fb3BzLFxcbjI0NDg6XFx0XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcXG4yNDQ5OlxcdFxcdH0sXFxuMjQ1MDpcXHRcXHQucHJvYmUgPSBmbGV4Y2FuX3Byb2JlLFxcbjI0NTE6XFx0XFx0LnJlbW92ZSA9IGZsZXhjYW5fcmVtb3ZlLFxcbjI0NTI6XFx0XFx0LmlkX3RhYmxlID0gZmxleGNhbl9pZF90YWJsZSxcXG4yNDUzOlxcdH07XFxuMjQ1NDpcXHRcXG4yNDU1OlxcdG1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoZmxleGNhbl9kcml2ZXIpO1xcbjI0NTY6XFx0XFxuMjQ1NzpcXHRNT0RVTEVfQVVUSE9SKFxcXCJTYXNjaGEgSGF1ZXIgXFx1MDAzY2tlcm5lbEBwZW5ndXRyb25peC5kZVxcdTAwM2UsIFxcXCJcXG4yNDU4OlxcdFxcdCAgICAgIFxcXCJNYXJjIEtsZWluZS1CdWRkZSBcXHUwMDNja2VybmVsQHBlbmd1dHJvbml4LmRlXFx1MDAzZVxcXCIpO1xcbjI0NTk6XFx0TU9EVUxFX0xJQ0VOU0UoXFxcIkdQTCB2MlxcXCIpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MTowMy4yNjQyNDA3NDRaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzkwMjU5MjM4MTQsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzOlxuXG4qKkFuYWx5emluZyB0aGUgQ0FOIERyaXZlcidzIElkZW50aWZpY2F0aW9uIFN0cmF0ZWd5KipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgYGZsZXhjYW5fZHJpdmVyYC4gRmlyc3Qgb2ZmLCBpdCdzIGEgcGxhdGZvcm0gZHJpdmVyLCBzbyB3ZSdyZSB0YWxraW5nIGFib3V0IGhhcmR3YXJlLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGlzIGdvb2QuIE5vdywgdGhlIGludGVyZXN0aW5nIHBhcnQgaXMgaG93IGl0J3MgaWRlbnRpZnlpbmcgdGhlIGhhcmR3YXJlIGl0IHN1cHBvcnRzLiBJdCBzZWVtcyB0byBiZSB1c2luZyB0d28gcHJpbWFyeSBtZXRob2RzLCBhbmQgSSBuZWVkIHRvIGludmVzdGlnYXRlIHRoZW0gZnVydGhlci4gSXQncyBlaXRoZXIgbWF0Y2hpbmcgYmFzZWQgb24gdGhlIGBvZl9tYXRjaF90YWJsZSA9IGZsZXhjYW5fb2ZfbWF0Y2hgIG9yIHRoZSBgaWRfdGFibGUgPSBmbGV4Y2FuX2lkX3RhYmxlYC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdCdzIGluIGBmbGV4Y2FuX29mX21hdGNoYCBhbmQgYGZsZXhjYW5faWRfdGFibGVgIHRvIHVuZGVyc3RhbmQgdGhlIHNwZWNpZmljIGhhcmR3YXJlIGlkZW50aWZpZXJzIGFuZCBwcm9wZXJ0aWVzIHRoaXMgZHJpdmVyIGlzIGxvb2tpbmcgZm9yLiBUaGlzIHdpbGwgZ2l2ZSBtZSBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIGhvdyB0aGUgZGV2aWNlIGlzIHNlbGVjdGVkIGFuZCBpbml0aWFsaXplZCwgYW5kIGlmIGl0J3MgdXNpbmcgRGV2aWNlIFRyZWUgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIElELWJhc2VkIHN5c3RlbS5cblxuXG4iLCJJbnB1dFRva2VucyI6NTQ5NCwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjY2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDIuMjkwMTY3NjY4WiIsIlNlcSI6MTIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjEzNTcxMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkZpbGVcIjogXCJkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuY1wiLFxuICBcIkZpcnN0TGluZVwiOiAyMzc1LFxuICBcIkxpbmVDb3VudFwiOiA0NVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiQ29udGVudHNcIjogXCIyMzc1OlxcdFxcbjIzNzY6XFx0XFx0cmV0dXJuIDA7XFxuMjM3NzpcXHR9XFxuMjM3ODpcXHRcXG4yMzc5OlxcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ydW50aW1lX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpXFxuMjM4MDpcXHR7XFxuMjM4MTpcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XFxuMjM4MjpcXHRcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG4yMzgzOlxcdFxcbjIzODQ6XFx0XFx0cmV0dXJuIGZsZXhjYW5fY2xrc19lbmFibGUocHJpdik7XFxuMjM4NTpcXHR9XFxuMjM4NjpcXHRcXG4yMzg3OlxcdHN0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgZmxleGNhbl9ub2lycV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldmljZSlcXG4yMzg4OlxcdHtcXG4yMzg5OlxcdFxcdHN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2aWNlKTtcXG4yMzkwOlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbjIzOTE6XFx0XFxuMjM5MjpcXHRcXHRpZiAobmV0aWZfcnVubmluZyhkZXYpKSB7XFxuMjM5MzpcXHRcXHRcXHRpbnQgZXJyO1xcbjIzOTQ6XFx0XFxuMjM5NTpcXHRcXHRcXHRpZiAoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSlcXG4yMzk2OlxcdFxcdFxcdFxcdGZsZXhjYW5fZW5hYmxlX3dha2V1cF9pcnEocHJpdiwgdHJ1ZSk7XFxuMjM5NzpcXHRcXG4yMzk4OlxcdFxcdFxcdC8qIEZvciBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ01JLCBpdCBuZWVkIEFURiB0byBzZW5kXFxuMjM5OTpcXHRcXHRcXHQgKiB0byBTTSB0aHJvdWdoIFNDTUkgcHJvdG9jb2wsIFNNIHdpbGwgYXNzZXJ0IHRoZSBJUEdfU1RPUFxcbjI0MDA6XFx0XFx0XFx0ICogc2lnbmFsLiBCdXQgYWxsIHRoaXMgd29ya3MgbmVlZCB0aGUgQ0FOIGNsb2NrcyBrZWVwIG9uLlxcbjI0MDE6XFx0XFx0XFx0ICogQWZ0ZXIgdGhlIENBTiBtb2R1bGUgZ2V0IHRoZSBJUEdfU1RPUCBtb2RlLCBhbmQgc3dpdGNoIHRvXFxuMjQwMjpcXHRcXHRcXHQgKiBTVE9QIG1vZGUsIHdoZXRoZXIgc3RpbGwga2VlcCB0aGUgQ0FOIGNsb2NrcyBvbiBvciBnYXRlIHRoZW1cXG4yNDAzOlxcdFxcdFxcdCAqIG9mZiBkZXBlbmQgb24gdGhlIEhhcmR3YXJlIGRlc2lnbi5cXG4yNDA0OlxcdFxcdFxcdCAqL1xcbjI0MDU6XFx0XFx0XFx0aWYgKCEoZGV2aWNlX21heV93YWtldXAoZGV2aWNlKSBcXHUwMDI2XFx1MDAyNlxcbjI0MDY6XFx0XFx0XFx0ICAgICAgcHJpdi1cXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDTUkpKSB7XFxuMjQwNzpcXHRcXHRcXHRcXHRlcnIgPSBwbV9ydW50aW1lX2ZvcmNlX3N1c3BlbmQoZGV2aWNlKTtcXG4yNDA4OlxcdFxcdFxcdFxcdGlmIChlcnIpXFxuMjQwOTpcXHRcXHRcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbjI0MTA6XFx0XFx0XFx0fVxcbjI0MTE6XFx0XFx0fVxcbjI0MTI6XFx0XFxuMjQxMzpcXHRcXHRyZXR1cm4gMDtcXG4yNDE0OlxcdH1cXG4yNDE1OlxcdFxcbjI0MTY6XFx0c3RhdGljIGludCBfX21heWJlX3VudXNlZCBmbGV4Y2FuX25vaXJxX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXZpY2UpXFxuMjQxNzpcXHR7XFxuMjQxODpcXHRcXHRzdHJ1Y3QgbmV0X2RldmljZSAqZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldmljZSk7XFxuMjQxOTpcXHRcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDIuMjkwMzA1MzQ4WiIsIlNlcSI6MTMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ5Njk0MzA4NTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6XG5cbioqQW5hbHl6aW5nIHRoZSBDQU4gTWF0Y2ggVGFibGVzKipcblxuT2theSwgc28gSSBuZWVkIHRvIGRpdmUgaW50byB0aGUgQ0FOIGZpbHRlcmluZyBsb2dpYy4gTGV0J3Mgc3RhcnQgYnkgbmF2aWdhdGluZyBpbnRvIGBmbGV4Y2FuLWNvcmUuY2AuIE15IHByaW1hcnkgaW50ZXJlc3QgcmlnaHQgbm93IGlzIHVuZGVyc3RhbmRpbmcgaG93IHRoZSBpbmNvbWluZyBDQU4gbWVzc2FnZXMgYXJlIG1hdGNoZWQgYW5kIHJvdXRlZC4gSSB3YW50IHRvIHplcm8gaW4gb24gdGhlIG1hdGNoIHRhYmxlcy4gSSdtIGFzc3VtaW5nIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGxvb2t1cCBtZWNoYW5pc20sIHBlcmhhcHMgYSBoYXNoIHRhYmxlIG9yIGEgbW9yZSBkaXJlY3QgaW5kZXhpbmcgbWV0aG9kLCB0byBxdWlja2x5IGRldGVybWluZSB3aGljaCBtYWlsYm94ZXMgb3IgYnVmZmVycyB0aGUgaW5jb21pbmcgZnJhbWVzIGdldCBkaXJlY3RlZCB0by4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgaG93IHRoZSBmaWx0ZXIgbWFza3MgYW5kIGlkZW50aWZpZXJzIGludGVyYWN0LCBhbmQgaG93IHRoZSBoYXJkd2FyZSBhY3R1YWxseSBwZXJmb3JtcyB0aGUgbWF0Y2hpbmcgdG8gb3B0aW1pemUgaG93IHRoZSBDQU4gZGF0YSBpcyBwcm9jZXNzZWQuIExldCdzIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NjUwMCwiT3V0cHV0VG9rZW5zIjo0MSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDE6NDcuMjU5NzM5NTM0WiIsIlNlcSI6MTQsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0Njk4OTg2MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuX29mX21hdGNofGZsZXhjYW5faWRfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW5cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjAyNT1zdGF0aWMgaW50IGZsZXhjYW5fc2V0dXBfc3RvcF9tb2RlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDYxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIwNjI6c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZmxleGNhbl9vZl9tYXRjaFtdID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNjMtXFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14OHFtLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OHFtX2RldnR5cGVfZGF0YSwgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwNzgtfTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMDc5Ok1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGZsZXhjYW5fb2ZfbWF0Y2gpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIwODAtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4MTpzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjA4Mi1cXHR7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDg4LX07XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MjA4OTpNT0RVTEVfREVWSUNFX1RBQkxFKHBsYXRmb3JtLCBmbGV4Y2FuX2lkX3RhYmxlKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMDkwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM9MjQ0ND1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBmbGV4Y2FuX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTI0NDctXFx0XFx0LnBtID0gXFx1MDAyNmZsZXhjYW5fcG1fb3BzLFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI0NDg6XFx0XFx0Lm9mX21hdGNoX3RhYmxlID0gZmxleGNhbl9vZl9tYXRjaCxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDQ5LVxcdH0sXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNDUxLVxcdC5yZW1vdmUgPSBmbGV4Y2FuX3JlbW92ZSxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyNDUyOlxcdC5pZF90YWJsZSA9IGZsZXhjYW5faWRfdGFibGUsXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjQ1My19O1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MTo0Ny4zMDY3MzY3NzRaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTU0MjY0MjQwMzIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2UgYW5kIHdyaXR0ZW4gaW4gdGhlIGZpcnN0IHBlcnNvbjpcblxuKipJbnZlc3RpZ2F0aW5nIHRoZSBgZmxleGNhbl9pZF90YWJsZWAqKlxuXG5Pa2F5LCBzbyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB3aGF0IHRoaXMgYGZsZXhjYW5faWRfdGFibGVgIGNvbnRhaW5zLiBNeSBpbnR1aXRpb24gaXMgdGVsbGluZyBtZSBpdCdzIGxpa2VseSBhIHN0cnVjdHVyZSBvciB0YWJsZSB0aGF0IG1hcHMgaWRlbnRpZmllcnMgcmVsYXRlZCB0byB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBHaXZlbiB0aGUgbmFtaW5nIGNvbnZlbnRpb24sIEkgc3VzcGVjdCBpdCdzIGNydWNpYWwgZm9yIGZpbHRlcmluZywgYWNjZXB0YW5jZSBtYXNraW5nLCBvciBwb3RlbnRpYWxseSBJRCBhc3NpZ25tZW50IHdpdGhpbiB0aGUgQ0FOIGJ1cyBjb21tdW5pY2F0aW9uIGZyYW1ld29yay4gSSB3YW50IHRvIHNlZSBob3cgdGhlc2UgSURzIGFyZSBiZWluZyBtYW5hZ2VkLiBJJ2xsIG5lZWQgdG8gZmlndXJlIG91dCB0aGUgdGFibGUncyBzdHJ1Y3R1cmUg4oCTIGlzIGl0IGFuIGFycmF5LCBhIGxpbmtlZCBsaXN0LCBvciBzb21ldGhpbmcgbW9yZSBjb21wbGV4PyBUaGUgc2l6ZSBhbmQgdGhlIGRhdGEgdHlwZXMgb2YgaXRzIGVsZW1lbnRzIHdpbGwgYmUga2V5IHRvIHVuZGVyc3RhbmRpbmcgaXRzIGludGVuZGVkIHVzZSBhbmQgcG90ZW50aWFsIGxpbWl0YXRpb25zLiBJIG5lZWQgdG8gcXVpY2tseSBpZGVudGlmeSB3aGVyZSB0aGUgdGFibGUgaXMgZGVmaW5lZCwgaG93IGl0J3MgcG9wdWxhdGVkIChzdGF0aWMgaW5pdGlhbGl6YXRpb24/IGR5bmFtaWMgdXBkYXRlcz8pLCBhbmQgd2hlcmUgaXQncyByZWZlcmVuY2VkIGluIHRoZSBjb2RlLiBVbmRlcnN0YW5kaW5nIHRoZSBjb250ZXh0IG9mIGhvdyB0aGlzIHRhYmxlIGlzIHVzZWQgd2lsbCBiZSBjcnVjaWFsIGZvciBhbnkgZGVidWdnaW5nIG9yIG9wdGltaXphdGlvbiBlZmZvcnRzLiBMZXQncyBkaWcgaW4gYW5kIHNlZSB3aGF0J3MgYWN0dWFsbHkgaW4gdGhlcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjczNDIsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0MjowMi43MzMxNjM5MDZaIiwiU2VxIjoxNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTIwMjUwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwODAsXG4gIFwiTGluZUNvdW50XCI6IDIwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwODA6XFx0XFxuMjA4MTpcXHRzdGF0aWMgY29uc3Qgc3RydWN0IHBsYXRmb3JtX2RldmljZV9pZCBmbGV4Y2FuX2lkX3RhYmxlW10gPSB7XFxuMjA4MjpcXHRcXHR7XFxuMjA4MzpcXHRcXHRcXHQubmFtZSA9IFxcXCJmbGV4Y2FuLW1jZjU0NDF4XFxcIixcXG4yMDg0OlxcdFxcdFxcdC5kcml2ZXJfZGF0YSA9IChrZXJuZWxfdWxvbmdfdClcXHUwMDI2ZnNsX21jZjU0NDF4X2RldnR5cGVfZGF0YSxcXG4yMDg1OlxcdFxcdH0sIHtcXG4yMDg2OlxcdFxcdFxcdC8qIHNlbnRpbmVsICovXFxuMjA4NzpcXHRcXHR9LFxcbjIwODg6XFx0fTtcXG4yMDg5OlxcdE1PRFVMRV9ERVZJQ0VfVEFCTEUocGxhdGZvcm0sIGZsZXhjYW5faWRfdGFibGUpO1xcbjIwOTA6XFx0XFxuMjA5MTpcXHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4yMDkyOlxcdHtcXG4yMDkzOlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSAqZGV2dHlwZV9kYXRhO1xcbjIwOTQ6XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4yMDk1OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXY7XFxuMjA5NjpcXHRcXHRzdHJ1Y3QgcmVndWxhdG9yICpyZWdfeGNlaXZlcjtcXG4yMDk3OlxcdFxcdHN0cnVjdCBwaHkgKnRyYW5zY2VpdmVyO1xcbjIwOTg6XFx0XFx0c3RydWN0IGNsayAqY2xrX2lwZyA9IE5VTEwsICpjbGtfcGVyID0gTlVMTDtcXG4yMDk5OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncztcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDI6MDIuNzMzMjg1OTE2WiIsIlNlcSI6MTcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjE4MzE1OTQ3Mzg1NiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3MgYnJlYWsgZG93biB0aGlzIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgIGZ1bmN0aW9uLlxuXG4qKkFuYWx5emluZyB0aGUgYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgRnVuY3Rpb24qKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhpcyBmdW5jdGlvbiwgYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAuIFRoZSBuYW1lIGl0c2VsZiBpcyBwcmV0dHkgc2VsZi1leHBsYW5hdG9yeSDigJMgaXQncyBkZXNpZ25lZCB0byByZXRyaWV2ZSB0aGUgYnVzIGVycm9yIGNvdW50ZXIgZnJvbSBhIEZsZXhDQU4gcGVyaXBoZXJhbC4gR2l2ZW4gbXkgdW5kZXJzdGFuZGluZyBvZiBDQU4gY29udHJvbGxlcnMgYW5kIHRoZSBjcml0aWNhbCByb2xlIG9mIGVycm9yIGRldGVjdGlvbiBpbiBlbnN1cmluZyByZWxpYWJsZSBjb21tdW5pY2F0aW9uLCB0aGlzIGlzIGEgY29yZSBmdW5jdGlvbi4gSSdsbCBuZWVkIHRvIHVuZGVyc3RhbmQgaG93IHRoaXMgaXMgaW1wbGVtZW50ZWQuIEZpcnN0IEkgbmVlZCB0byBrbm93IHdoZXJlIHRoZSBlcnJvciBjb3VudGVycyBhcmUgbG9jYXRlZCBpbiB0aGUgQ0FOIGNvbnRyb2xsZXIncyByZWdpc3RlciBtYXAuIElzIGl0IGEgc2luZ2xlIHJlZ2lzdGVyLCBvciBpcyBpdCBhIGZpZWxkIHdpdGhpbiBhIGxhcmdlciBzdGF0dXMgcmVnaXN0ZXI/IEtub3dpbmcgdGhpcyBpcyB2aXRhbCB0byB1bmRlcnN0YW5kaW5nIHRoZSBmdW5jdGlvbidzIGFjY2VzcyBtZXRob2QuXG5cbkkgZXhwZWN0IHRoaXMgZnVuY3Rpb24gd2lsbCBsaWtlbHkgaW52b2x2ZSByZWFkaW5nIGEgc3BlY2lmaWMgcmVnaXN0ZXIgb3IgYSBmaWVsZCB3aXRoaW4gYSByZWdpc3RlciBvZiB0aGUgRmxleENBTiBwZXJpcGhlcmFsLiBUaGVyZSBhcmUgdHlwaWNhbGx5IGRpZmZlcmVudCBlcnJvciBjb3VudGVycyDigJMgdHJhbnNtaXQgZXJyb3IgY291bnRlciAoVEVDKSBhbmQgcmVjZWl2ZSBlcnJvciBjb3VudGVyIChSRUMpIOKAkyBzbyB0aGUgZnVuY3Rpb24ncyBwYXJhbWV0ZXJzIHNob3VsZCBzcGVjaWZ5IHdoaWNoIG9uZSBpcyBvZiBpbnRlcmVzdC4gQXJlIHdlIGFjY2Vzc2luZyBib3RoPyBEb2VzIGl0IG9mZmVyIGJpdC1maWVsZCBncmFudWxhcml0eSB0byBjaGVjayBpbmRpdmlkdWFsIGNvdW50ZXJzPyBPciBkb2VzIGl0IG9mZmVyIGJvdGg/IEknbGwgaGF2ZSB0byBzZWUgdGhlIGNvZGUuIEknbSBob3BpbmcgaXQncyB3ZWxsLXdyaXR0ZW4sIHdpdGggYXBwcm9wcmlhdGUgZXJyb3IgaGFuZGxpbmcg4oCTIHdoYXQgaGFwcGVucyBpZiB0aGUgcGVyaXBoZXJhbCBpc24ndCBpbml0aWFsaXplZCwgb3IgdGhlIHBvaW50ZXIgdG8gdGhlIENBTiBjb250cm9sbGVyJ3MgYmFzZSBhZGRyZXNzIGlzIGludmFsaWQ/IEEgcm9idXN0IGltcGxlbWVudGF0aW9uIHdvdWxkIGluY2x1ZGUgY2hlY2tzIGZvciB0aGVzZSBjb25kaXRpb25zLCBwZXJoYXBzIHJldHVybmluZyBhbiBlcnJvciBjb2RlIG9yIHVzaW5nIGFzc2VydGlvbnMgdG8gY2F0Y2ggdW5leHBlY3RlZCBzY2VuYXJpb3MuXG5cbkZ1cnRoZXJtb3JlLCBob3cgZG9lcyB0aGUgZnVuY3Rpb24gaGFuZGxlIHBvdGVudGlhbCByYWNlIGNvbmRpdGlvbnM/IE11bHRpcGxlIHRhc2tzIG1pZ2h0IHRyeSB0byBhY2Nlc3MgdGhlIGVycm9yIGNvdW50ZXJzIHNpbXVsdGFuZW91c2x5LiBEb2VzIGl0IHVzZSBhbnkgbG9ja2luZyBtZWNoYW5pc21zIG9yIGF0b21pYyBvcGVyYXRpb25zIHRvIGVuc3VyZSBkYXRhIGludGVncml0eT8gSSdsbCBiZSBsb29raW5nIGZvciB0aGF0LiBUaGUgdW5kZXJseWluZyBoYXJkd2FyZSBkZXRhaWxzIGFyZSBjcnVjaWFsIGZvciBwZXJmb3JtYW5jZS4gSXQncyBsaWtlbHkgdGhpcyBpcyBnb2luZyB0byBiZSB3cml0dGVuIHdpdGggcmVnaXN0ZXIgYWNjZXNzIGluIG1pbmQgcmF0aGVyIHRoYW4gdGhlIGRhdGEgYmVpbmcgc3RvcmVkIG9uIHRoZSBoZWFwLiBJIHdhbnQgdG8ga25vdyBhYm91dCBob3cgdGhpcyBpcyB3cml0dGVuIHNvIEkgY2FuIGJlIHN1cmUgSSBjYW4gYWRhcHQgdGhlIGZ1bmN0aW9uIHRvIG15IG5lZWRzLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTYxLCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTUsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTowNS44OTI3NjMxMDJaIiwiU2VxIjoxOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTQ3MDEwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDc2MCxcbiAgXCJMaW5lQ291bnRcIjogMzVcbn0iLCJSZXN1bHRzIjoie1xuICBcIkNvbnRlbnRzXCI6IFwiIDc2MDpcXHR9XFxuIDc2MTpcXHRcXG4gNzYyOlxcdHN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuIDc2MzpcXHRcXHRcXHRcXHRcXHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG4gNzY0OlxcdHtcXG4gNzY1OlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiA3NjY6XFx0XFx0aW50IGVycjtcXG4gNzY3OlxcdFxcbiA3Njg6XFx0XFx0aWYgKCFuZXRpZl9ydW5uaW5nKGRldikpXFxuIDc2OTpcXHRcXHRcXHRyZXR1cm4gMDtcXG4gNzcwOlxcdFxcbiA3NzE6XFx0XFx0ZXJyID0gcG1fcnVudGltZV9yZXN1bWVfYW5kX2dldChwcml2LVxcdTAwM2VkZXYpO1xcbiA3NzI6XFx0XFx0aWYgKGVyciBcXHUwMDNjIDApXFxuIDc3MzpcXHRcXHRcXHRyZXR1cm4gZXJyO1xcbiA3NzQ6XFx0XFxuIDc3NTpcXHRcXHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XFxuIDc3NjpcXHRcXG4gNzc3OlxcdFxcdHBtX3J1bnRpbWVfcHV0KHByaXYtXFx1MDAzZWRldik7XFxuIDc3ODpcXHRcXG4gNzc5OlxcdFxcdHJldHVybiBlcnI7XFxuIDc4MDpcXHR9XFxuIDc4MTpcXHRcXG4gNzgyOlxcdHN0YXRpYyBuZXRkZXZfdHhfdCBmbGV4Y2FuX3N0YXJ0X3htaXQoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG4gNzgzOlxcdHtcXG4gNzg0OlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbiA3ODU6XFx0XFx0c3RydWN0IGNhbmZkX2ZyYW1lICpjZmQgPSAoc3RydWN0IGNhbmZkX2ZyYW1lICopc2tiLVxcdTAwM2VkYXRhO1xcbiA3ODY6XFx0XFx0dTMyIGNhbl9pZDtcXG4gNzg3OlxcdFxcdHUzMiBkYXRhO1xcbiA3ODg6XFx0XFx0dTMyIGN0cmwgPSBGTEVYQ0FOX01CX0NPREVfVFhfREFUQSB8ICgoY2FuX2ZkX2xlbjJkbGMoY2ZkLVxcdTAwM2VsZW4pKSBcXHUwMDNjXFx1MDAzYyAxNik7XFxuIDc4OTpcXHRcXHRpbnQgaTtcXG4gNzkwOlxcdFxcbiA3OTE6XFx0XFx0aWYgKGNhbl9kZXZfZHJvcHBlZF9za2IoZGV2LCBza2IpKVxcbiA3OTI6XFx0XFx0XFx0cmV0dXJuIE5FVERFVl9UWF9PSztcXG4gNzkzOlxcdFxcbiA3OTQ6XFx0XFx0bmV0aWZfc3RvcF9xdWV1ZShkZXYpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTowNS44OTI5MTI1MDJaIiwiU2VxIjoxOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MTQzMTQ1MzY1NTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIGNvZGU6XG5cbioqQW5hbHl6aW5nIHRoZSBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYCBGdW5jdGlvbioqXG5cbk9rYXksIHNvIGBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXJgIGlzIGNsZWFybHkgcGFydCBvZiB0aGUgQ0FOIHN1YnN5c3RlbSwgc3BlY2lmaWNhbGx5IHRpZWQgaW50byBgZG9fZ2V0X2JlcnJfY291bnRlcmAuIE15IGltbWVkaWF0ZSBxdWVzdGlvbiBpczogd2hlcmUgaXMgdGhpcyBmdW5jdGlvbiBhY3R1YWxseSBiZWluZyAqdXNlZCogb3IgKmFzc2lnbmVkKiB3aXRoaW4gdGhlIGxhcmdlciBmcmFtZXdvcms/IEkgbmVlZCB0byB1bmRlcnN0YW5kIGl0cyBjb250ZXh0LiBTaW5jZSB0aGlzIGxvb2tzIGxpa2UgYSBGTEVYQ0FOIHNwZWNpZmljIGZ1bmN0aW9uLCBhIHF1aWNrIHNlYXJjaCBpbiBgZmxleGNhbi1jb3JlLmNgIG1ha2VzIHRoZSBtb3N0IHNlbnNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuIExldCdzIGRpZyBpbiBhbmQgc2VlIHdoYXQgdGhhdCBmaWxlIHJldmVhbHMgYWJvdXQgaXRzIGltcGxlbWVudGF0aW9uIGFuZCBpbnRlZ3JhdGlvbiB3aXRoaW4gdGhlIEZMRVhDQU4gZHJpdmVyLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgaXRzIHJvbGUsIGFuZCBob3cgaXQgaXMgZW1wbG95ZWQgdG8gcmV0cmlldmUgdGhlIGJ1cyBlcnJvciBjb3VudGVyLiBJIGFudGljaXBhdGUgaXQgd2lsbCBiZSBlc3NlbnRpYWwgZm9yIG1vbml0b3JpbmcgQ0FOIGJ1cyBoZWFsdGggd2l0aGluIHRoZSBGTEVYQ0FOIGltcGxlbWVudGF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4OTc5LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NTYsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NToyMC4yMDc0NTEyM1oiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDQ1NjY5MzksIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhbl9nZXRfYmVycl9jb3VudGVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTczND1zdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9zb2Z0cmVzZXQoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc0OC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NDk6c3RhdGljIGludCBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc1MC1cXHRcXHRcXHRcXHQgICAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc2MjpzdGF0aWMgaW50IGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2My1cXHRcXHRcXHRcXHQgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NzU6XFx0ZXJyID0gX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBiZWMpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc3Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jPTg5Nj1zdGF0aWMgdm9pZCBmbGV4Y2FuX2lycV9zdGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNS1cXHR9IGVsc2Uge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjkxNjpcXHRcXHRfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIFxcdTAwMjZiZWMpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTkxNy1cXHRcXHRuZXdfc3RhdGUgPSBmbHQgPT0gRkxFWENBTl9FU1JfRkxUX0NPTkZfUEFTU0lWRSA/XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYz0yMDkxPXN0YXRpYyBpbnQgZmxleGNhbl9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNS1cXHRwcml2LVxcdTAwM2VjYW4uZG9fc2V0X21vZGUgPSBmbGV4Y2FuX3NldF9tb2RlO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjIyMDY6XFx0cHJpdi1cXHUwMDNlY2FuLmRvX2dldF9iZXJyX2NvdW50ZXIgPSBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXI7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjIwNy1cXHRwcml2LVxcdTAwM2VjYW4uY3RybG1vZGVfc3VwcG9ydGVkID0gQ0FOX0NUUkxNT0RFX0xPT1BCQUNLIHxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDU6MjAuMjUyMDUyNDI5WiIsIlNlcSI6MjEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjM2NDA3ODYzNDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqUmVhY2hhYmlsaXR5IGFuZCBGbGV4Q0FOIG9uIEFNRDY0KipcblxuT2theSwgbGV0J3MgZGl2ZSBpbnRvIHRoaXMgcmVhY2hhYmlsaXR5IHF1ZXN0aW9uLiBNeSBwcmltYXJ5IGNvbmNlcm4gaXMgd2hldGhlciBvciBub3Qgd2UgY2FuIHJlbGlhYmx5IHByb2JlIHRoZSBGbGV4Q0FOIGhhcmR3YXJlIGluIGEgc3RhbmRhcmQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IEdvb2dsZSBDb21wdXRlIEVuZ2luZSAoR0NFKSBvciBRRU1VLiBUaGVzZSBhcmUgY29tbW9uIHRlc3RpbmcgZ3JvdW5kcywgc28gYmVpbmcgYWJsZSB0byBjb25maXJtIEZsZXhDQU4ncyBwcmVzZW5jZSB0aGVyZSBpcyBrZXkuXG5cblRoZSBpbW1lZGlhdGUgZm9jdXMgaXMgdGhlIGFtZDY0IGFyY2hpdGVjdHVyZS4gQ2FuIHdlIGdldCBGbGV4Q0FOIHdvcmtpbmcgdGhlcmU/IFRvIGRldGVybWluZSB0aGF0LCBJIG5lZWQgdG8gY2hlY2sgaG93IHRoZSBzeXN0ZW0gcmVjb2duaXplcyB0aGlzLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgaXQncyBhIHBsYXRmb3JtIGRldmljZSwgc28gSSBuZWVkIHRvIGNoZWNrIHRoZSBtYXRjaCB0YWJsZSwgYGZsZXhjYW5fb2ZfbWF0Y2hgLiBJIG5lZWQgdG8gcmV2aWV3IHdoYXQgXCJjb21wYXRpYmxlIHN0cmluZ3NcIiBhcmUgcHJlc2VudCBpbiB0aGUgdGFibGUuIFRoZXNlIHN0cmluZ3MgYXJlIGdvaW5nIHRvIGJlIGtleSB0byBtYXRjaGluZyB0aGUgaGFyZHdhcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjk5MTQsIk91dHB1dFRva2VucyI6NDQsIk91dHB1dFRob3VnaHRzVG9rZW5zIjo5MSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NToyMy44OTI4NDExNjVaIiwiU2VxIjoyMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTE3NDcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwNjIsXG4gIFwiTGluZUNvdW50XCI6IDI1XG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwNjI6XFx0c3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZmxleGNhbl9vZl9tYXRjaFtdID0ge1xcbjIwNjM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14OHFtLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OHFtX2RldnR5cGVfZGF0YSwgfSxcXG4yMDY0OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDhtcC1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDhtcF9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA2NTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXg5My1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDkzX2RldnR5cGVfZGF0YSwgfSxcXG4yMDY2OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDk1LWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14OTVfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNjc6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14NnEtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9pbXg2cV9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA2ODpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXgyOC1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDI4X2RldnR5cGVfZGF0YSwgfSxcXG4yMDY5OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGlteDUzLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfaW14MjVfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzA6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsaW14MzUtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9pbXgyNV9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3MTpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2lteDI1X2RldnR5cGVfZGF0YSwgfSxcXG4yMDcyOlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLHAxMDEwLWZsZXhjYW5cXFwiLCAuZGF0YSA9IFxcdTAwMjZmc2xfcDEwMTBfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzM6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJmc2wsdmY2MTAtZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF92ZjYxMF9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3NDpcXHRcXHR7IC5jb21wYXRpYmxlID0gXFxcImZzbCxsczEwMjFhcjItZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNmZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSwgfSxcXG4yMDc1OlxcdFxcdHsgLmNvbXBhdGlibGUgPSBcXFwiZnNsLGx4MjE2MGFyMS1mbGV4Y2FuXFxcIiwgLmRhdGEgPSBcXHUwMDI2ZnNsX2x4MjE2MGFfcjFfZGV2dHlwZV9kYXRhLCB9LFxcbjIwNzY6XFx0XFx0eyAuY29tcGF0aWJsZSA9IFxcXCJueHAsczMyZzItZmxleGNhblxcXCIsIC5kYXRhID0gXFx1MDAyNm54cF9zMzJnMl9kZXZ0eXBlX2RhdGEsIH0sXFxuMjA3NzpcXHRcXHR7IC8qIHNlbnRpbmVsICovIH0sXFxuMjA3ODpcXHR9O1xcbjIwNzk6XFx0TU9EVUxFX0RFVklDRV9UQUJMRShvZiwgZmxleGNhbl9vZl9tYXRjaCk7XFxuMjA4MDpcXHRcXG4yMDgxOlxcdHN0YXRpYyBjb25zdCBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIGZsZXhjYW5faWRfdGFibGVbXSA9IHtcXG4yMDgyOlxcdFxcdHtcXG4yMDgzOlxcdFxcdFxcdC5uYW1lID0gXFxcImZsZXhjYW4tbWNmNTQ0MXhcXFwiLFxcbjIwODQ6XFx0XFx0XFx0LmRyaXZlcl9kYXRhID0gKGtlcm5lbF91bG9uZ190KVxcdTAwMjZmc2xfbWNmNTQ0MXhfZGV2dHlwZV9kYXRhLFxcbjIwODU6XFx0XFx0fSwge1xcbjIwODY6XFx0XFx0XFx0Lyogc2VudGluZWwgKi9cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDU6MjMuODkyOTU5OTk1WiIsIlNlcSI6MjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjIyMjYyODQwOTYwLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEluaXRpYWwgVGhvdWdodHMgb24gRmxleENBTioqXG5cbk9rYXksIHNvIEZsZXhDQU4uIEl0J3MgYSBwbGF0Zm9ybSBkcml2ZXIsIHNwZWNpZmljYWxseSBkZXNpZ25lZCBmb3IgdGhvc2UgRnJlZXNjYWxlL05YUCBpLk1YLCBRb3JJUSwgYW5kIENvbGRGaXJlIFNvQ3MuIEkndmUgZ290IGEgZGVjZW50IGxpc3Qgb2YgY29tcGF0aWJsZSBkZXZpY2VzIGhlcmU6IGBmc2wsaW14OHFtLWZsZXhjYW5gLCBgZnNsLGlteDhtcC1mbGV4Y2FuYCwgYWxsIHRoZSB3YXkgZG93biB0byBgZmxleGNhbi1tY2Y1NDQxeGAuIFN0YW5kYXJkIHN0dWZmIGZvciB0aGVzZSBlbWJlZGRlZCBzeXN0ZW1zLlxuXG5CdXQgd2FpdCBhIG1pbnV0ZS4uLiBjYW4gdGhpcyBhY3R1YWxseSBwcm9iZSBvbiBhbiBhbWQ2NCBzeXN0ZW0sIHJ1bm5pbmcgaW4gc29tZXRoaW5nIGxpa2UgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmU/IE15IGd1dCBzYXlzIHByb2JhYmx5IG5vdCBkaXJlY3RseSwgYnV0IGl0J3Mgd29ydGggY2hlY2tpbmcuIExldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IHZpcnR1YWwgZGV2aWNlcyBlbXVsYXRpbmcgYSBGbGV4Q0FOIGludGVyZmFjZSBpbiB0aG9zZSBlbnZpcm9ubWVudHMuIEFyZSB0aGVyZSBhbnkgUENJIGRldmljZXMsIFVTQiBkZXZpY2VzLCBvciBldmVuIHBsYXRmb3JtIGRldmljZSBpbnN0YW50aWF0aW9uIG1lY2hhbmlzbXMgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBzaW11bGF0ZSB0aGUgRmxleENBTiBiZWhhdmlvcj9cblxuU3BlY2lmaWNhbGx5LCBpcyB0aGVyZSBhIFBDSSB3cmFwcGVyIG9mIHNvbWUgc29ydCB0aGF0IG1pZ2h0IGV4cG9zZSBGbGV4Q0FOIGZ1bmN0aW9uYWxpdHk/IFRpbWUgdG8gZGlnIGludG8gdGhlIGtlcm5lbCBzb3VyY2UuIEknbGwgc3RhcnQgd2l0aCB0aGUgb2J2aW91cyBwbGFjZSwgYGRyaXZlcnMvbmV0L2Nhbi9gLCBidXQgSSdsbCBhbHNvIGJyb2FkZW4gbXkgc2VhcmNoLiBJdCB3b3VsZCBiZSBhIHVzZWZ1bCBwaWVjZSBvZiBpbmZvcm1hdGlvbiB0byBrbm93IGlmIHRoZXJlIGlzIGEgd3JhcHBlciBmb3IgaXQgaW4gUUVNVS5cblxuXG4iLCJJbnB1dFRva2VucyI6MTEwMTEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNzIsIlRvb2xDYWxscyI6WyJyZWFkLWZpbGUiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTo0Ni4xNTU4MDQ0NTVaIiwiU2VxIjoyNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjc0MDAzMTQwOSwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnNcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiA5OTAgbGluZXMuXFxuVXNlIG1vcmUgcHJlY2lzZSBleHByZXNzaW9uIGlmIHBvc3NpYmxlLlxcblxcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYz0xNzk9c3RhdGljIHZvaWQgX19pbml0IHZmNjEwX2Nsb2Nrc19pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqY2NtX25vZGUpXFxuLS1cXG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmMtNDI5LVxcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzA6XFx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMF9FTl0gPSBpbXhfY2xrX2dhdGUoXFxcImZsZXhjYW4wX2VuXFxcIiwgXFxcImlwZ19idXNcXFwiLCBDQ01fQ1NDRFIyLCAxMSk7XFxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jOjQzMTpcXHRjbGtbVkY2MTBfQ0xLX0ZMRVhDQU4wXSA9IGlteF9jbGtfZ2F0ZTIoXFxcImZsZXhjYW4wXFxcIiwgXFxcImZsZXhjYW4wX2VuXFxcIiwgQ0NNX0NDR1IwLCBDQ01fQ0NHUnhfQ0duKDApKTtcXG5kcml2ZXJzL2Nsay9pbXgvY2xrLXZmNjEwLmM6NDMyOlxcdGNsa1tWRjYxMF9DTEtfRkxFWENBTjFfRU5dID0gaW14X2Nsa19nYXRlKFxcXCJmbGV4Y2FuMV9lblxcXCIsIFxcXCJpcGdfYnVzXFxcIiwgQ0NNX0NTQ0RSMiwgMTIpO1xcbmRyaXZlcnMvY2xrL2lteC9jbGstdmY2MTAuYzo0MzM6XFx0Y2xrW1ZGNjEwX0NMS19GTEVYQ0FOMV0gPSBpbXhfY2xrX2dhdGUyKFxcXCJmbGV4Y2FuMVxcXCIsIFxcXCJmbGV4Y2FuMV9lblxcXCIsIENDTV9DQ0dSOSwgQ0NNX0NDR1J4X0NHbig0KSk7XFxuZHJpdmVycy9jbGsvaW14L2Nsay12ZjYxMC5jLTQzNC1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZT0yMz1vYmotJChDT05GSUdfQ0FOX0NUVUNBTkZEKVxcdCs9IGN0dWNhbmZkL1xcbmRyaXZlcnMvbmV0L2Nhbi9NYWtlZmlsZToyNDpvYmotJChDT05GSUdfQ0FOX0ZMRVhDQU4pXFx0Kz0gZmxleGNhbi9cXG5kcml2ZXJzL25ldC9jYW4vTWFrZWZpbGUtMjUtb2JqLSQoQ09ORklHX0NBTl9HUkNBTilcXHRcXHQrPSBncmNhbi5vXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZS0yLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjM6b2JqLSQoQ09ORklHX0NBTl9GTEVYQ0FOKSArPSBmbGV4Y2FuLm9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZS00LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL01ha2VmaWxlOjU6ZmxleGNhbi1vYmpzIDo9XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vTWFrZWZpbGU6NjpmbGV4Y2FuLW9ianMgKz0gZmxleGNhbi1jb3JlLm9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9NYWtlZmlsZTo3OmZsZXhjYW4tb2JqcyArPSBmbGV4Y2FuLWV0aHRvb2wub1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMi0vL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM6Ly8gZmxleGNhbi5jIC0gRkxFWENBTiBDQU4gY29udHJvbGxlciBkcml2ZXJcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00LS8vXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yNy0jaW5jbHVkZSBcXHUwMDNjbGludXgvcGxhdGZvcm1fZGV2aWNlLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mjg6I2luY2x1ZGUgXFx1MDAzY2xpbnV4L2Nhbi9wbGF0Zm9ybS9mbGV4Y2FuLmhcXHUwMDNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjktI2luY2x1ZGUgXFx1MDAzY2xpbnV4L3BoeS9waHkuaFxcdTAwM2VcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM1OiNpbmNsdWRlIFxcXCJmbGV4Y2FuLmhcXFwiXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzYtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Mzc6I2RlZmluZSBEUlZfTkFNRVxcdFxcdFxcdFxcXCJmbGV4Y2FuXFxcIlxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4LVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjEwLS8qIFN0cnVjdHVyZSBvZiB0aGUgbWVzc2FnZSBidWZmZXIgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTE6c3RydWN0IGZsZXhjYW5fbWIge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTIxMi1cXHR1MzIgY2FuX2N0cmw7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0yMTctLyogU3RydWN0dXJlIG9mIHRoZSBoYXJkd2FyZSByZWdpc3RlcnMgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoyMTg6c3RydWN0IGZsZXhjYW5fcmVncyB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjE5LVxcdHUzMiBtY3I7XFx0XFx0LyogMHgwMCAqL1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjkzLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NDpzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgZmxleGNhbl9yZWdzKSA9PSAgMHg0ICogMTggKyAweGZiOCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk1LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjI5NjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9tY2Y1NDQxeF9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMjk3LVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMwMi1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMDM6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfcDEwMTBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMwNC1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19CUk9LRU5fV0VSUl9TVEFURSB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTAtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzExOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDI1X2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zMTItXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMxODpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXgyOF9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzE5LVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0JST0tFTl9QRVJSX1NUQVRFIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMyMy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozMjQ6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfaW14NnFfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMyNS1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzMxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjMzMjpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg4cW1fZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTMzMy1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzM5LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0MDpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg4bXBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM0MS1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzQ4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM0OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9pbXg5M19kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzUwLVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTctXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzU4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgZnNsX2lteDk1X2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNTktXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozNjY6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfdmY2MTBfZGV2dHlwZV9kYXRhID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM2Ny1cXHQucXVpcmtzID0gRkxFWENBTl9RVUlSS19ESVNBQkxFX1JYRkcgfCBGTEVYQ0FOX1FVSVJLX0VOQUJMRV9FQUNFTl9SUlMgfFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzczLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjM3NDpzdGF0aWMgY29uc3Qgc3RydWN0IGZsZXhjYW5fZGV2dHlwZV9kYXRhIGZzbF9sczEwMjFhX3IyX2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zNzUtXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM4MC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzozODE6c3RhdGljIGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSBmc2xfbHgyMTYwYV9yMV9kZXZ0eXBlX2RhdGEgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMzgyLVxcdC5xdWlya3MgPSBGTEVYQ0FOX1FVSVJLX0RJU0FCTEVfUlhGRyB8IEZMRVhDQU5fUVVJUktfRU5BQkxFX0VBQ0VOX1JSUyB8XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zODktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MzkwOnN0YXRpYyBjb25zdCBzdHJ1Y3QgZmxleGNhbl9kZXZ0eXBlX2RhdGEgbnhwX3MzMmcyX2RldnR5cGVfZGF0YSA9IHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0zOTEtXFx0LnF1aXJrcyA9IEZMRVhDQU5fUVVJUktfRElTQUJMRV9SWEZHIHwgRkxFWENBTl9RVUlSS19FTkFCTEVfRUFDRU5fUlJTIHxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTM5OS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0MDA6c3RhdGljIGNvbnN0IHN0cnVjdCBjYW5fYml0dGltaW5nX2NvbnN0IGZsZXhjYW5fYml0dGltaW5nX2NvbnN0ID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQwMS1cXHQubmFtZSA9IERSVl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDExLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQxMjpzdGF0aWMgY29uc3Qgc3RydWN0IGNhbl9iaXR0aW1pbmdfY29uc3QgZmxleGNhbl9mZF9iaXR0aW1pbmdfY29uc3QgPSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDEzLVxcdC5uYW1lID0gRFJWX05BTUUsXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00MjMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDI0OnN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FuX2JpdHRpbWluZ19jb25zdCBmbGV4Y2FuX2ZkX2RhdGFfYml0dGltaW5nX2NvbnN0ID0ge1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQyNS1cXHQubmFtZSA9IERSVl9OQU1FLFxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDQ4LSAqL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ0OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfYmUodm9pZCBfX2lvbWVtICphZGRyKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ1MC17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDU0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2JlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NTUte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDU4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ1OTpzdGF0aWMgaW5saW5lIHUzMiBmbGV4Y2FuX3JlYWRfbGUodm9pZCBfX2lvbWVtICphZGRyKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ2MC17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NjMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NDY0OnN0YXRpYyBpbmxpbmUgdm9pZCBmbGV4Y2FuX3dyaXRlX2xlKHUzMiB2YWwsIHZvaWQgX19pb21lbSAqYWRkcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NjUte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDY4LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ2OTpzdGF0aWMgc3RydWN0IGZsZXhjYW5fbWIgX19pb21lbSAqZmxleGNhbl9nZXRfbWIoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdixcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00NzAtXFx0XFx0XFx0XFx0XFx0XFx0IHU4IG1iX2luZGV4KVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNDgzLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ4NDpcXHRyZXR1cm4gKHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODUtXFx0XFx0KFxcdTAwMjZwcml2LVxcdTAwM2VyZWdzLVxcdTAwM2VtYltiYW5rXVtwcml2LVxcdTAwM2VtYl9zaXplICogbWJfaW5kZXhdKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ4Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo0ODg6c3RhdGljIGludCBmbGV4Y2FuX2xvd19wb3dlcl9lbnRlcl9hY2soc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy00ODkte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjQ5MDpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTQ5MS1cXHR1bnNpZ25lZCBpbnQgdGltZW91dCA9IEZMRVhDQU5fVElNRU9VVF9VUyAvIDEwO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUwMjpzdGF0aWMgaW50IGZsZXhjYW5fbG93X3Bvd2VyX2V4aXRfYWNrKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTAzLXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MDQ6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MDUtXFx0dW5zaWduZWQgaW50IHRpbWVvdXQgPSBGTEVYQ0FOX1RJTUVPVVRfVVMgLyAxMDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxNS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MTY6c3RhdGljIHZvaWQgZmxleGNhbl9lbmFibGVfd2FrZXVwX2lycShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCBib29sIGVuYWJsZSlcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01MTcte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjUxODpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUxOS1cXHR1MzIgcmVnX21jcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTUzMC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1MzE6c3RhdGljIGludCBmbGV4Y2FuX3N0b3BfbW9kZV9lbmFibGVfc2NmdyhzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCBib29sIGVuYWJsZWQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTMyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU0Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NDg6c3RhdGljIGlubGluZSBpbnQgZmxleGNhbl9lbnRlcl9zdG9wX21vZGUoc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01NDkte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU1MDpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU1MS1cXHR1MzIgcmVnX21jcjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU1OS1cXHRpZiAocHJpdi1cXHUwMDNlZGV2dHlwZV9kYXRhLnF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU0VUVVBfU1RPUF9NT0RFX1NDRlcpIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1NjA6XFx0XFx0cmV0ID0gZmxleGNhbl9zdG9wX21vZGVfZW5hYmxlX3NjZncocHJpdiwgdHJ1ZSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTYxLVxcdFxcdGlmIChyZXQgXFx1MDAzYyAwKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3NTpcXHRyZXR1cm4gZmxleGNhbl9sb3dfcG93ZXJfZW50ZXJfYWNrKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTU3Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjU3ODpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX2V4aXRfc3RvcF9tb2RlKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNTc5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo1ODA6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01ODEtXFx0dTMyIHJlZ19tY3I7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01ODktXFx0aWYgKHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1NFVFVQX1NUT1BfTU9ERV9TQ0ZXKSB7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NTkwOlxcdFxcdHJldCA9IGZsZXhjYW5fc3RvcF9tb2RlX2VuYWJsZV9zY2Z3KHByaXYsIGZhbHNlKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy01OTEtXFx0XFx0aWYgKHJldCBcXHUwMDNjIDApXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDEtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjAyOlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02MDMtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MDU6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fZXJyb3JfaXJxX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYwNi17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjA3OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjA4LVxcdHUzMiByZWdfY3RybCA9IChwcml2LVxcdTAwM2VyZWdfY3RybF9kZWZhdWx0IHwgRkxFWENBTl9DVFJMX0VSUl9NU0spO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjEyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjYxMzpzdGF0aWMgaW5saW5lIHZvaWQgZmxleGNhbl9lcnJvcl9pcnFfZGlzYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYxNC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjE1OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjE2LVxcdHUzMiByZWdfY3RybCA9IChwcml2LVxcdTAwM2VyZWdfY3RybF9kZWZhdWx0IFxcdTAwMjYgfkZMRVhDQU5fQ1RSTF9FUlJfTVNLKTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYyMC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2MjE6c3RhdGljIGludCBmbGV4Y2FuX2Nsa3NfZW5hYmxlKGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjIyLXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTYzOS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2NDA6c3RhdGljIHZvaWQgZmxleGNhbl9jbGtzX2Rpc2FibGUoY29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NDEte1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjQ1LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjY0NjpzdGF0aWMgaW5saW5lIGludCBmbGV4Y2FuX3RyYW5zY2VpdmVyX2VuYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY0Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NTUtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjU2OnN0YXRpYyBpbmxpbmUgaW50IGZsZXhjYW5fdHJhbnNjZWl2ZXJfZGlzYWJsZShjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NjUtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjY2OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX2VuYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY2Ny17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjY4OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjY5LVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzQtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njc1OlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9leGl0X2Fjayhwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02NzYtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3Ny1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo2Nzg6c3RhdGljIGludCBmbGV4Y2FuX2NoaXBfZGlzYWJsZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY3OS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjgwOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjgxLVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODYtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6Njg3OlxcdHJldHVybiBmbGV4Y2FuX2xvd19wb3dlcl9lbnRlcl9hY2socHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjg4LX1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy02ODktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkwOnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX2ZyZWV6ZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTY5MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NjkyOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNjkzLVxcdHVuc2lnbmVkIGludCB0aW1lb3V0O1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjcxNTpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF91bmZyZWV6ZShzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTcxNi17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzE3OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzE4LVxcdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03MzMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM0OnN0YXRpYyBpbnQgZmxleGNhbl9jaGlwX3NvZnRyZXNldChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTczNS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzM2OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzM3LVxcdHVuc2lnbmVkIGludCB0aW1lb3V0ID0gRkxFWENBTl9USU1FT1VUX1VTIC8gMTA7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NDgtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzQ5OnN0YXRpYyBpbnQgX19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldixcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTAtXFx0XFx0XFx0XFx0ICAgICAgc3RydWN0IGNhbl9iZXJyX2NvdW50ZXIgKmJlYylcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTEte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc1MjpcXHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3NTM6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NTQtXFx0dTMyIHJlZyA9IHByaXYtXFx1MDAzZXJlYWQoXFx1MDAyNnJlZ3MtXFx1MDAzZWVjcik7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy03NjEtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzYyOnN0YXRpYyBpbnQgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzYzLVxcdFxcdFxcdFxcdCAgICBzdHJ1Y3QgY2FuX2JlcnJfY291bnRlciAqYmVjKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2NC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6NzY1OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTc2Ni1cXHRpbnQgZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzc0LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc3NTpcXHRlcnIgPSBfX2ZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcihkZXYsIGJlYyk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzc2LVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjc4MjpzdGF0aWMgbmV0ZGV2X3R4X3QgZmxleGNhbl9zdGFydF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzgzLXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo3ODQ6XFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtNzg1LVxcdHN0cnVjdCBjYW5mZF9mcmFtZSAqY2ZkID0gKHN0cnVjdCBjYW5mZF9mcmFtZSAqKXNrYi1cXHUwMDNlZGF0YTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTgzMy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4MzQ6c3RhdGljIHZvaWQgZmxleGNhbl9pcnFfYnVzX2VycihzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCB1MzIgcmVnX2VzcilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzUte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjgzNjpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4Mzc6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy04MzgtXFx0c3RydWN0IHNrX2J1ZmYgKnNrYjtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTg5NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTY6c3RhdGljIHZvaWQgZmxleGNhbl9pcnFfc3RhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdTMyIHJlZ19lc3IpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtODk3LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo4OTg6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6ODk5OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTAwLVxcdHN0cnVjdCBza19idWZmICpza2I7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05MTUtXFx0fSBlbHNlIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5MTY6XFx0XFx0X19mbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoZGV2LCBcXHUwMDI2YmVjKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05MTctXFx0XFx0bmV3X3N0YXRlID0gZmx0ID09IEZMRVhDQU5fRVNSX0ZMVF9DT05GX1BBU1NJVkUgP1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk0MzpzdGF0aWMgaW5saW5lIHU2NCBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYsIHZvaWQgX19pb21lbSAqYWRkciwgdTY0IG1hc2spXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTQ0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk1NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NTU6c3RhdGljIGlubGluZSB2b2lkIGZsZXhjYW5fd3JpdGU2NChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2LCB1NjQgdmFsLCB2b2lkIF9faW9tZW0gKmFkZHIpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTU2LXtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2Mi1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NjM6c3RhdGljIGlubGluZSB1NjQgZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2NC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTY1OlxcdHJldHVybiBmbGV4Y2FuX3JlYWQ2NF9tYXNrKHByaXYsIFxcdTAwMjZwcml2LVxcdTAwM2VyZWdzLVxcdTAwM2VpZmxhZzEsIHByaXYtXFx1MDAzZXJ4X21hc2spO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk2Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk2ODpzdGF0aWMgaW5saW5lIHU2NCBmbGV4Y2FuX3JlYWRfcmVnX2lmbGFnX3R4KHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTY5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzo5NzA6XFx0cmV0dXJuIGZsZXhjYW5fcmVhZDY0X21hc2socHJpdiwgXFx1MDAyNnByaXYtXFx1MDAzZXJlZ3MtXFx1MDAzZWlmbGFnMSwgcHJpdi1cXHUwMDNldHhfbWFzayk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTcxLX1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzItXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTczOnN0YXRpYyBpbmxpbmUgc3RydWN0IGZsZXhjYW5fcHJpdiAqcnhfb2ZmbG9hZF90b19wcml2KHN0cnVjdCBjYW5fcnhfb2ZmbG9hZCAqb2ZmbG9hZClcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzQte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3NTpcXHRyZXR1cm4gY29udGFpbmVyX29mKG9mZmxvYWQsIHN0cnVjdCBmbGV4Y2FuX3ByaXYsIG9mZmxvYWQpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk3Ni19XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTc3LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk3ODpzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmZsZXhjYW5fbWFpbGJveF9yZWFkKHN0cnVjdCBjYW5fcnhfb2ZmbG9hZCAqb2ZmbG9hZCxcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy05NzktXFx0XFx0XFx0XFx0XFx0ICAgIHVuc2lnbmVkIGludCBuLCB1MzIgKnRpbWVzdGFtcCxcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTgyOlxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSByeF9vZmZsb2FkX3RvX3ByaXYob2ZmbG9hZCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTgzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6OTg0OlxcdHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKm1iO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk4NS1cXHRzdHJ1Y3Qgc2tfYnVmZiAqc2tiO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtOTg5LVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjk5MDpcXHRtYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIG4pO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTk5MS1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNjItXFx0aWYgKHByaXYtXFx1MDAzZWRldnR5cGVfZGF0YS5xdWlya3MgXFx1MDAyNiBGTEVYQ0FOX1FVSVJLX1VTRV9SWF9NQUlMQk9YKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwNjM6XFx0XFx0ZmxleGNhbl93cml0ZTY0KHByaXYsIEZMRVhDQU5fSUZMQUdfTUIobiksIFxcdTAwMjZyZWdzLVxcdTAwM2VpZmxhZzEpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwNjQtXFx0ZWxzZVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA3NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDc2OnN0YXRpYyBpcnFyZXR1cm5fdCBmbGV4Y2FuX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA3Ny17XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDc5LVxcdHN0cnVjdCBuZXRfZGV2aWNlX3N0YXRzICpzdGF0cyA9IFxcdTAwMjZkZXYtXFx1MDAzZXN0YXRzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEwODA6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTA4MTpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEwODItXFx0aXJxcmV0dXJuX3QgaGFuZGxlZCA9IElSUV9OT05FO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTA5MS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMDkyOlxcdFxcdHdoaWxlICgocmVnX2lmbGFnX3J4ID0gZmxleGNhbl9yZWFkX3JlZ19pZmxhZ19yeChwcml2KSkpIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMDkzLVxcdFxcdFxcdGhhbmRsZWQgPSBJUlFfSEFORExFRDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTctXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTExODpcXHRyZWdfaWZsYWdfdHggPSBmbGV4Y2FuX3JlYWRfcmVnX2lmbGFnX3R4KHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExMTktXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTMyLVxcdFxcdFxcdCAgICBcXHUwMDI2cHJpdi1cXHUwMDNldHhfbWItXFx1MDAzZWNhbl9jdHJsKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTMzOlxcdFxcdGZsZXhjYW5fd3JpdGU2NChwcml2LCBwcml2LVxcdTAwM2V0eF9tYXNrLCBcXHUwMDI2cmVncy1cXHUwMDNlaWZsYWcxKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTM0LVxcdFxcdG5ldGlmX3dha2VfcXVldWUoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNDgtXFx0XFx0XFx0XFx0XFx0ICAgRkxFWENBTl9RVUlSS19CUk9LRU5fUEVSUl9TVEFURSkpKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjExNDk6XFx0XFx0ZmxleGNhbl9pcnFfc3RhdGUoZGV2LCByZWdfZXNyKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTUwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1My1cXHQgICAgKHByaXYtXFx1MDAzZWNhbi5jdHJsbW9kZSBcXHUwMDI2IENBTl9DVFJMTU9ERV9CRVJSX1JFUE9SVElORykpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE1NDpcXHRcXHRmbGV4Y2FuX2lycV9idXNfZXJyKGRldiwgcmVnX2Vzcik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzQtXFx0XFx0XFx0ICAgIEZMRVhDQU5fUVVJUktfQlJPS0VOX1dFUlJfU1RBVEUpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE3NTpcXHRcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9lbmFibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE3Ni1cXHRcXHRcXHRlbHNlXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE3NzpcXHRcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9kaXNhYmxlKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExNzgtXFx0XFx0XFx0YnJlYWs7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMTgwLVxcdFxcdGNhc2UgQ0FOX1NUQVRFX0VSUk9SX1dBUk5JTkc6XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTE4MTpcXHRcXHRcXHRmbGV4Y2FuX2Vycm9yX2lycV9lbmFibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Mi1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExODUtXFx0XFx0Y2FzZSBDQU5fU1RBVEVfQlVTX09GRjpcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMTg2OlxcdFxcdFxcdGZsZXhjYW5fZXJyb3JfaXJxX2Rpc2FibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTE4Ny1cXHRcXHRcXHRicmVhaztcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTExOTktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTIwMDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMDEte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEyMDI6XFx0Y29uc3Qgc3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwMy1cXHRjb25zdCBzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqYnQgPSBcXHUwMDI2cHJpdi1cXHUwMDNlY2FuLmJpdHRpbWluZztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjA0OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIwNS1cXHR1MzIgcmVnO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIyNy1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjI4OnN0YXRpYyB2b2lkIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMjI5LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMwOlxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEyMzEtXFx0c3RydWN0IGNhbl9iaXR0aW1pbmcgKmJ0ID0gXFx1MDAyNnByaXYtXFx1MDAzZWNhbi5iaXR0aW1pbmc7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzMi1cXHRzdHJ1Y3QgY2FuX2JpdHRpbWluZyAqZGJ0ID0gXFx1MDAyNnByaXYtXFx1MDAzZWNhbi5mZC5kYXRhX2JpdHRpbWluZztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMjMzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTIzNC1cXHR1MzIgcmVnX2NidCwgcmVnX2ZkY3RybDtcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzMzMtXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTMzNDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3NldF9iaXR0aW1pbmcoc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzM1LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzM2OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzMzc6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzM4LVxcdHUzMiByZWc7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU0LVxcdGlmIChwcml2LVxcdTAwM2VjYW4uY3RybG1vZGVfc3VwcG9ydGVkIFxcdTAwMjYgQ0FOX0NUUkxNT0RFX0ZEKVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzNTU6XFx0XFx0cmV0dXJuIGZsZXhjYW5fc2V0X2JpdHRpbWluZ19jYnQoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzU2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzU3OlxcdFxcdHJldHVybiBmbGV4Y2FuX3NldF9iaXR0aW1pbmdfY3RybChkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTgtfVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzNTktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MDpzdGF0aWMgdm9pZCBmbGV4Y2FuX3JhbV9pbml0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM2MS17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM2MjpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzYzOlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM2NC1cXHR1MzIgcmVnX2N0cmwyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM4Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxMzg3OnN0YXRpYyBpbnQgZmxleGNhbl9yeF9vZmZsb2FkX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM4OC17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM4OTpcXHRzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzkwLVxcdGludCBlcnI7XFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xMzkyLVxcdGlmIChwcml2LVxcdTAwM2VjYW4uY3RybG1vZGUgXFx1MDAyNiBDQU5fQ1RSTE1PREVfRkQpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTM5MzpcXHRcXHRwcml2LVxcdTAwM2VtYl9zaXplID0gc2l6ZW9mKHN0cnVjdCBmbGV4Y2FuX21iKSArIENBTkZEX01BWF9ETEVOO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTEzOTQtXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjEzOTU6XFx0XFx0cHJpdi1cXHUwMDNlbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZmxleGNhbl9tYikgKyBDQU5fTUFYX0RMRU47XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTM5Ni1cXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MDQtXFx0XFx0cHJpdi1cXHUwMDNldHhfbWJfcmVzZXJ2ZWQgPVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0MDU6XFx0XFx0XFx0ZmxleGNhbl9nZXRfbWIocHJpdiwgRkxFWENBTl9UWF9NQl9SRVNFUlZFRF9SWF9NQUlMQk9YKTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDA2LVxcdGVsc2VcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDA3LVxcdFxcdHByaXYtXFx1MDAzZXR4X21iX3Jlc2VydmVkID1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDA4OlxcdFxcdFxcdGZsZXhjYW5fZ2V0X21iKHByaXYsIEZMRVhDQU5fVFhfTUJfUkVTRVJWRURfUlhfRklGTyk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQwOS1cXHRwcml2LVxcdTAwM2V0eF9tYl9pZHggPSBwcml2LVxcdTAwM2VtYl9jb3VudCAtIDE7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQxMDpcXHRwcml2LVxcdTAwM2V0eF9tYiA9IGZsZXhjYW5fZ2V0X21iKHByaXYsIHByaXYtXFx1MDAzZXR4X21iX2lkeCk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQxMS1cXHRwcml2LVxcdTAwM2V0eF9tYXNrID0gRkxFWENBTl9JRkxBR19NQihwcml2LVxcdTAwM2V0eF9tYl9pZHgpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTItXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQxMzpcXHRwcml2LVxcdTAwM2VvZmZsb2FkLm1haWxib3hfcmVhZCA9IGZsZXhjYW5fbWFpbGJveF9yZWFkO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0MTQtXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDMxLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0MzI6c3RhdGljIHZvaWQgZmxleGNhbl9jaGlwX2ludGVycnVwdHNfZW5hYmxlKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQzMy17XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQzNDpcXHRjb25zdCBzdHJ1Y3QgZmxleGNhbl9wcml2ICpwcml2ID0gbmV0ZGV2X3ByaXYoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDM1OlxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncyA9IHByaXYtXFx1MDAzZXJlZ3M7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQzNi1cXHR1NjQgcmVnX2ltYXNrO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ0NS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ2OnN0YXRpYyB2b2lkIGZsZXhjYW5fY2hpcF9pbnRlcnJ1cHRzX2Rpc2FibGUoY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKmRldilcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDQ3LXtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDQ4OlxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXYgPSBuZXRkZXZfcHJpdihkZXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NDk6XFx0c3RydWN0IGZsZXhjYW5fcmVncyBfX2lvbWVtICpyZWdzID0gcHJpdi1cXHUwMDNlcmVncztcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDUwLVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ1Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDU3Oi8qIGZsZXhjYW5fY2hpcF9zdGFydFxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NTgtICpcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjEtICovXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2MjpzdGF0aWMgaW50IGZsZXhjYW5fY2hpcF9zdGFydChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2KVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjMte1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NjQ6XFx0c3RydWN0IGZsZXhjYW5fcHJpdiAqcHJpdiA9IG5ldGRldl9wcml2KGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ2NTpcXHRzdHJ1Y3QgZmxleGNhbl9yZWdzIF9faW9tZW0gKnJlZ3MgPSBwcml2LVxcdTAwM2VyZWdzO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjYtXFx0dTMyIHJlZ19tY3IsIHJlZ19jdHJsLCByZWdfY3RybDIsIHJlZ19tZWNyO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjctXFx0aW50IGVyciwgaTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDY4OlxcdHN0cnVjdCBmbGV4Y2FuX21iIF9faW9tZW0gKm1iO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NjktXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ3MC1cXHQvKiBlbmFibGUgbW9kdWxlICovXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmM6MTQ3MTpcXHRlcnIgPSBmbGV4Y2FuX2NoaXBfZW5hYmxlKHByaXYpO1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NzItXFx0aWYgKGVycilcXG4tLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jLTE0NzUtXFx0Lyogc29mdCByZXNldCAqL1xcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0NzY6XFx0ZXJyID0gZmxleGNhbl9jaGlwX3NvZnRyZXNldChwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDc3LVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgwLVxcdGlmIChwcml2LVxcdTAwM2VkZXZ0eXBlX2RhdGEucXVpcmtzIFxcdTAwMjYgRkxFWENBTl9RVUlSS19TVVBQT1JUX0VDQylcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDgxOlxcdFxcdGZsZXhjYW5fcmFtX2luaXQoZGV2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDgyLVxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE0ODM6XFx0ZmxleGNhbl9zZXRfYml0dGltaW5nKGRldik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4NC1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNDg1LVxcdC8qIHNldCBmcmVlemUsIGhhbHQgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNDg2OlxcdGVyciA9IGZsZXhjYW5fY2hpcF9mcmVlemUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTQ4Ny1cXHRpZiAoZXJyKVxcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTUxOC1cXHQgKiAgICAgICBvZiBhIHRyYW5zbWl0dGVkIG1lc3NhZ2UuIFRoaXMgaXMgbm90IGRvY3VtZW50ZWQgaW5cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNTE5OlxcdCAqICAgICAgIGVhcmxpZXIgdmVyc2lvbnMgb2YgZmxleGNhbiBibG9jayBndWlkZS5cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNTIwLVxcdCAqXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjA2LVxcdFxcdGZvciAoaSA9IHByaXYtXFx1MDAzZW9mZmxvYWQubWJfZmlyc3Q7IGkgXFx1MDAzYz0gcHJpdi1cXHUwMDNlb2ZmbG9hZC5tYl9sYXN0OyBpKyspIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjA3OlxcdFxcdFxcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYwOC1cXHRcXHRcXHRwcml2LVxcdTAwM2V3cml0ZShGTEVYQ0FOX01CX0NPREVfUlhfRU1QVFksXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjEzLVxcdFxcdGZvciAoaSA9IEZMRVhDQU5fVFhfTUJfUkVTRVJWRURfUlhfRklGTzsgaSBcXHUwMDNjIHByaXYtXFx1MDAzZW1iX2NvdW50OyBpKyspIHtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjE0OlxcdFxcdFxcdG1iID0gZmxleGNhbl9nZXRfbWIocHJpdiwgaSk7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTYxNS1cXHRcXHRcXHRwcml2LVxcdTAwM2V3cml0ZShGTEVYQ0FOX01CX0NPREVfUlhfSU5BQ1RJVkUsXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjc5LVxcdC8qIHN5bmNocm9uaXplIHdpdGggdGhlIGNhbiBidXMgKi9cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjgwOlxcdGVyciA9IGZsZXhjYW5fY2hpcF91bmZyZWV6ZShwcml2KTtcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjgxLVxcdGlmIChlcnIpXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjkyLSBvdXRfY2hpcF9kaXNhYmxlOlxcbmRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jOjE2OTM6XFx0ZmxleGNhbl9jaGlwX2Rpc2FibGUocHJpdik7XFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5NC1cXHRyZXR1cm4gZXJyO1xcbi0tXFxuZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMtMTY5Ni1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYzoxNjk3Oi8qIF9fZmxleGNhbl9jaGlwX3N0b3BcXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNjk4LSAqXFxuLS1cXG5kcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy0xNzAwLSAqL1xcblxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NTo0Ni44OTU4NDI0NjRaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6MzUyMTk1OTI1MTgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqRmxleENBTiBEcml2ZXIgUHJvYmUgSW52ZXN0aWdhdGlvbioqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiBJIGNhbiBwcm9iZSB0aGUgZmxleGNhbiBkcml2ZXIgaW4gYSBzdGFuZGFyZCBRRU1VIHNldHVwIG9yIGV2ZW4gb24gR29vZ2xlIENvbXB1dGUgRW5naW5lIChHQ0UpIG9uIGFtZDY0LiBBIHF1aWNrIHRob3VnaHQ6IERvZXMgUUVNVSBldmVuICplbXVsYXRlKiBGbGV4Q0FOPyBJIG5lZWQgdG8gY2hlY2suXG5cbkFscmlnaHQsIGEgcXVpY2sgUUVNVSByZWZlcmVuY2UgcmV2ZWFscyBpdCBkb2Vzbid0LiBJdCBvZmZlcnMga3Zhc2VyX3BjaSwgbWlvZTM2ODBfcGNpLCBwY20zNjgwX3BjaSDigJMgYWxsIFNKQTEwMDAgUENJIENBTiBjb250cm9sbGVycyDigJMgYW5kIGNhbl9ob3N0X3NvY2tldGNhbiwgYnV0IG5vIEZsZXhDQU4uIEhtbS4uLiB3YWl0LCBpcyB0aGVyZSBzb21lIHg4NiBzcGVjaWZpYyBtYWdpYyBpbiBRRU1VIHRoYXQgd291bGQgbGV0IG1lIGVtdWxhdGUgYSBmbGV4Y2FuPyBObywgdGhhdCdzIG5vdCByaWdodC4gRmxleENBTiBpcyBhbiBOWFAvRnJlZXNjYWxlIFNvQyBwZXJpcGhlcmFsLCBpbnRlbmRlZCBmb3IgaW14MjUvaW14Ni9pbXg4L3MzMmcvZXRjLiB0eXBlIHN5c3RlbXMuXG5cblNvLCBpZiBJIGNhbid0IGVtdWxhdGUgRmxleENBTiwgY2FuIEkgYXQgbGVhc3QgaW5zdGFudGlhdGUgaXQgZHluYW1pY2FsbHksIHNvbWVob3c/IExldCdzIGRlbHZlIGludG8gYGZsZXhjYW5fcHJvYmVgLiBXaGF0IGFyZSBpdHMgcmVxdWlyZW1lbnRzPyBJIG5lZWQgdG8gc2VlIHdoYXQgSSBoYXZlIHRvIHNhdGlzZnkgaW4gb3JkZXIgdG8gZXZlbiB0cmlnZ2VyIGl0LlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNDk5NiwiT3V0cHV0VG9rZW5zIjo0NCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE2NSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NjoyMi4xMTU0Mzc4NzJaIiwiU2VxIjoyNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoicmVhZC1maWxlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTM0NzAwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuL2ZsZXhjYW4tY29yZS5jXCIsXG4gIFwiRmlyc3RMaW5lXCI6IDIwOTAsXG4gIFwiTGluZUNvdW50XCI6IDgwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIjIwOTA6XFx0XFxuMjA5MTpcXHRzdGF0aWMgaW50IGZsZXhjYW5fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldilcXG4yMDkyOlxcdHtcXG4yMDkzOlxcdFxcdGNvbnN0IHN0cnVjdCBmbGV4Y2FuX2RldnR5cGVfZGF0YSAqZGV2dHlwZV9kYXRhO1xcbjIwOTQ6XFx0XFx0c3RydWN0IG5ldF9kZXZpY2UgKmRldjtcXG4yMDk1OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3ByaXYgKnByaXY7XFxuMjA5NjpcXHRcXHRzdHJ1Y3QgcmVndWxhdG9yICpyZWdfeGNlaXZlcjtcXG4yMDk3OlxcdFxcdHN0cnVjdCBwaHkgKnRyYW5zY2VpdmVyO1xcbjIwOTg6XFx0XFx0c3RydWN0IGNsayAqY2xrX2lwZyA9IE5VTEwsICpjbGtfcGVyID0gTlVMTDtcXG4yMDk5OlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3JlZ3MgX19pb21lbSAqcmVncztcXG4yMTAwOlxcdFxcdHN0cnVjdCBmbGV4Y2FuX3BsYXRmb3JtX2RhdGEgKnBkYXRhO1xcbjIxMDE6XFx0XFx0aW50IGVyciwgaXJxO1xcbjIxMDI6XFx0XFx0dTggY2xrX3NyYyA9IDE7XFxuMjEwMzpcXHRcXHR1MzIgY2xvY2tfZnJlcSA9IDA7XFxuMjEwNDpcXHRcXG4yMTA1OlxcdFxcdHJlZ194Y2VpdmVyID0gZGV2bV9yZWd1bGF0b3JfZ2V0X29wdGlvbmFsKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJ4Y2VpdmVyXFxcIik7XFxuMjEwNjpcXHRcXHRpZiAoUFRSX0VSUihyZWdfeGNlaXZlcikgPT0gLUVQUk9CRV9ERUZFUilcXG4yMTA3OlxcdFxcdFxcdHJldHVybiAtRVBST0JFX0RFRkVSO1xcbjIxMDg6XFx0XFx0ZWxzZSBpZiAoUFRSX0VSUihyZWdfeGNlaXZlcikgPT0gLUVOT0RFVilcXG4yMTA5OlxcdFxcdFxcdHJlZ194Y2VpdmVyID0gTlVMTDtcXG4yMTEwOlxcdFxcdGVsc2UgaWYgKElTX0VSUihyZWdfeGNlaXZlcikpXFxuMjExMTpcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihyZWdfeGNlaXZlcik7XFxuMjExMjpcXHRcXG4yMTEzOlxcdFxcdHRyYW5zY2VpdmVyID0gZGV2bV9waHlfb3B0aW9uYWxfZ2V0KFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIE5VTEwpO1xcbjIxMTQ6XFx0XFx0aWYgKElTX0VSUih0cmFuc2NlaXZlcikpXFxuMjExNTpcXHRcXHRcXHRyZXR1cm4gZGV2X2Vycl9wcm9iZShcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBQVFJfRVJSKHRyYW5zY2VpdmVyKSxcXG4yMTE2OlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcImZhaWxlZCB0byBnZXQgcGh5XFxcXG5cXFwiKTtcXG4yMTE3OlxcdFxcbjIxMTg6XFx0XFx0aWYgKHBkZXYtXFx1MDAzZWRldi5vZl9ub2RlKSB7XFxuMjExOTpcXHRcXHRcXHRvZl9wcm9wZXJ0eV9yZWFkX3UzMihwZGV2LVxcdTAwM2VkZXYub2Zfbm9kZSxcXG4yMTIwOlxcdFxcdFxcdFxcdFxcdCAgICAgXFxcImNsb2NrLWZyZXF1ZW5jeVxcXCIsIFxcdTAwMjZjbG9ja19mcmVxKTtcXG4yMTIxOlxcdFxcdFxcdG9mX3Byb3BlcnR5X3JlYWRfdTgocGRldi1cXHUwMDNlZGV2Lm9mX25vZGUsXFxuMjEyMjpcXHRcXHRcXHRcXHRcXHQgICAgXFxcImZzbCxjbGstc291cmNlXFxcIiwgXFx1MDAyNmNsa19zcmMpO1xcbjIxMjM6XFx0XFx0fSBlbHNlIHtcXG4yMTI0OlxcdFxcdFxcdHBkYXRhID0gZGV2X2dldF9wbGF0ZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4yMTI1OlxcdFxcdFxcdGlmIChwZGF0YSkge1xcbjIxMjY6XFx0XFx0XFx0XFx0Y2xvY2tfZnJlcSA9IHBkYXRhLVxcdTAwM2VjbG9ja19mcmVxdWVuY3k7XFxuMjEyNzpcXHRcXHRcXHRcXHRjbGtfc3JjID0gcGRhdGEtXFx1MDAzZWNsa19zcmM7XFxuMjEyODpcXHRcXHRcXHR9XFxuMjEyOTpcXHRcXHR9XFxuMjEzMDpcXHRcXG4yMTMxOlxcdFxcdGlmICghY2xvY2tfZnJlcSkge1xcbjIxMzI6XFx0XFx0XFx0Y2xrX2lwZyA9IGRldm1fY2xrX2dldChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwiaXBnXFxcIik7XFxuMjEzMzpcXHRcXHRcXHRpZiAoSVNfRVJSKGNsa19pcGcpKSB7XFxuMjEzNDpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJubyBpcGcgY2xvY2sgZGVmaW5lZFxcXFxuXFxcIik7XFxuMjEzNTpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihjbGtfaXBnKTtcXG4yMTM2OlxcdFxcdFxcdH1cXG4yMTM3OlxcdFxcbjIxMzg6XFx0XFx0XFx0Y2xrX3BlciA9IGRldm1fY2xrX2dldChcXHUwMDI2cGRldi1cXHUwMDNlZGV2LCBcXFwicGVyXFxcIik7XFxuMjEzOTpcXHRcXHRcXHRpZiAoSVNfRVJSKGNsa19wZXIpKSB7XFxuMjE0MDpcXHRcXHRcXHRcXHRkZXZfZXJyKFxcdTAwMjZwZGV2LVxcdTAwM2VkZXYsIFxcXCJubyBwZXIgY2xvY2sgZGVmaW5lZFxcXFxuXFxcIik7XFxuMjE0MTpcXHRcXHRcXHRcXHRyZXR1cm4gUFRSX0VSUihjbGtfcGVyKTtcXG4yMTQyOlxcdFxcdFxcdH1cXG4yMTQzOlxcdFxcdFxcdGNsb2NrX2ZyZXEgPSBjbGtfZ2V0X3JhdGUoY2xrX3Blcik7XFxuMjE0NDpcXHRcXHR9XFxuMjE0NTpcXHRcXG4yMTQ2OlxcdFxcdGlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7XFxuMjE0NzpcXHRcXHRpZiAoaXJxIFxcdTAwM2MgMClcXG4yMTQ4OlxcdFxcdFxcdHJldHVybiBpcnE7XFxuMjE0OTpcXHRcXG4yMTUwOlxcdFxcdHJlZ3MgPSBkZXZtX3BsYXRmb3JtX2lvcmVtYXBfcmVzb3VyY2UocGRldiwgMCk7XFxuMjE1MTpcXHRcXHRpZiAoSVNfRVJSKHJlZ3MpKVxcbjIxNTI6XFx0XFx0XFx0cmV0dXJuIFBUUl9FUlIocmVncyk7XFxuMjE1MzpcXHRcXG4yMTU0OlxcdFxcdGRldnR5cGVfZGF0YSA9IGRldmljZV9nZXRfbWF0Y2hfZGF0YShcXHUwMDI2cGRldi1cXHUwMDNlZGV2KTtcXG4yMTU1OlxcdFxcbjIxNTY6XFx0XFx0aWYgKChkZXZ0eXBlX2RhdGEtXFx1MDAzZXF1aXJrcyBcXHUwMDI2IEZMRVhDQU5fUVVJUktfU1VQUE9SVF9GRCkgXFx1MDAyNlxcdTAwMjZcXG4yMTU3OlxcdFxcdCAgICAhKChkZXZ0eXBlX2RhdGEtXFx1MDAzZXF1aXJrcyBcXHUwMDI2XFxuMjE1ODpcXHRcXHQgICAgICAgKEZMRVhDQU5fUVVJUktfVVNFX1JYX01BSUxCT1ggfFxcbjIxNTk6XFx0XFx0XFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1ggfFxcbjIxNjA6XFx0XFx0XFx0RkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSIHxcXG4yMTYxOlxcdFxcdFxcdEZMRVhDQU5fUVVJUktfU1VQUE9SVF9SWF9GSUZPKSkgPT1cXG4yMTYyOlxcdFxcdCAgICAgIChGTEVYQ0FOX1FVSVJLX1VTRV9SWF9NQUlMQk9YIHxcXG4yMTYzOlxcdFxcdCAgICAgICBGTEVYQ0FOX1FVSVJLX1NVUFBPUlRfUlhfTUFJTEJPWCB8XFxuMjE2NDpcXHRcXHQgICAgICAgRkxFWENBTl9RVUlSS19TVVBQT1JUX1JYX01BSUxCT1hfUlRSKSkpIHtcXG4yMTY1OlxcdFxcdFxcdGRldl9lcnIoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgXFxcIkNBTi1GRCBtb2RlIGRvZXNuJ3Qgd29yayBpbiBSWC1GSUZPIG1vZGUhXFxcXG5cXFwiKTtcXG4yMTY2OlxcdFxcdFxcdHJldHVybiAtRUlOVkFMO1xcbjIxNjc6XFx0XFx0fVxcbjIxNjg6XFx0XFxuMjE2OTpcXHRcXHRpZiAoKGRldnR5cGVfZGF0YS1cXHUwMDNlcXVpcmtzIFxcdTAwMjZcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6MjIuMTE1NTc1MzEyWiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjIyNTg4OTE0Njc2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIEZsZXhDQU4gRHJpdmVyIGFuZCBTeXprYWxsZXIncyBUZXN0aW5nIENhcGFiaWxpdGllcyoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgZmxleGNhbmAgZHJpdmVyLCBhbmQgaXQncyBmbGFnZ2VkIGFzIGEgcGxhdGZvcm0gZHJpdmVyLiBUaGF0IGltbWVkaWF0ZWx5IHRlbGxzIG1lIGl0IG5lZWRzIHNwZWNpZmljIHBsYXRmb3JtLWxldmVsIHJlc291cmNlcy4gSSBzZWUgaXQncyB1c2luZyBgZGV2bV9wbGF0Zm9ybV9pb3JlbWFwX3Jlc291cmNlYCwgYHBsYXRmb3JtX2dldF9pcnFgLCBhbmQgYGRldmljZV9nZXRfbWF0Y2hfZGF0YWAuIFRoYXQgbWVhbnMgaXQncyBleHBlY3RpbmcgYSBEZXZpY2UgVHJlZSAoYG9mX25vZGVgKSBvciBwbGF0Zm9ybSBkYXRhLCBhbG9uZyB3aXRoIGFuIEkvTyBtZW1vcnkgcmVzb3VyY2UgYW5kIGFuIGludGVycnVwdC5cblxuVGhlIHByb2JsZW0gaGl0cyBtZSBoYXJkIHdoZW4gSSBjb25zaWRlciBhbiB4ODYvYW1kNjQgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQgbGlrZSBHQ0Ugb3IgUUVNVS4gVGhlc2UgZG9uJ3QgdHlwaWNhbGx5IGhhdmUgdGhlIERldmljZSBUcmVlIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIHN0YW5kYXJkIGZvciB0aG9zZSBGcmVlc2NhbGUgaS5NWCBvciBRb3JJUSBzeXN0ZW1zLiBUaGF0IGltbWVkaWF0ZWx5IGludHJvZHVjZXMgYSBodWdlIGh1cmRsZS5cblxuV2FpdCwgY291bGQgc3l6a2FsbGVyIHNvbWVob3cgaW5zdGFudGlhdGUgdGhpcyB0aHJvdWdoIHN5c2ZzIG9yIGNvbmZpZ2ZzPyBObywgdGhhdCdzIG5vdCBmZWFzaWJsZS4gU3RhbmRhcmQgcGxhdGZvcm0gZGV2aWNlcyBjYW4ndCBiZSBwcm9iZWQgZnJvbSB1c2Vyc3BhY2Ugd2l0aG91dCBkZXZpY2UgdHJlZSBvdmVybGF5cywgd2hpY2ggcmVxdWlyZSBgQ09ORklHX09GX0NPTkZJR0ZTYCBhbmQgc28gb24uIEV2ZW4gaWYgdGhvc2Ugd2VyZSBwcmVzZW50LCB0aGUgY3J1Y2lhbCBpc3N1ZSBpcyB0aGUgbWVtb3J5LW1hcHBlZCByZWdpc3RlcnMgYXQgU29DIHBoeXNpY2FsIGFkZHJlc3NlcyB3b24ndCBleGlzdCBpbiB4ODYgUUVNVS9HQ0UuIFRoZSBwcm9iZSB3b3VsZCBlaXRoZXIgZmFpbCBvciwgd29yc2UsIGNyYXNoIGJlY2F1c2Ugb2YgYXR0ZW1wdGVkIHBoeXNpY2FsIG1lbW9yeSBhY2Nlc3MuXG5cbk9rYXksIHNvIHN5emthbGxlciBjYW4ndCBkaXJlY3RseSBwcm9iZSBwbGF0Zm9ybSBkZXZpY2VzIG9yIENBTiBkZXZpY2VzIGluIHRoZSB0cmFkaXRpb25hbCBzZW5zZSwgYXQgbGVhc3Qgbm90IHRoaXMgb25lLiBIb3cgdGhlbiBkb2VzIHN5emthbGxlciB0ZXN0IENBTiBkZXZpY2VzPyBJdCBtdXN0IGhhdmUgYSB3b3JrYXJvdW5kLiBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGlzLlxuXG5SaWdodCwgSSdtIHRoaW5raW5nLCBJJ3ZlIGdvdCBpdC4gU3l6a2FsbGVyIGxldmVyYWdlcyB0aGVzZSB2YXJpb3VzIHZpcnR1YWwgYW5kIGVtdWxhdGVkIGludGVyZmFjZXMsIGZvciB0ZXN0aW5nIENBTjogYHZjYW5gLCBgc2xjYW5gLCBgdnhjYW5gLCBkdW1teS9uZXRsaW5rIGludGVyZmFjZXMsIFVTQiBDQU4gYWRhcHRlcnMgdGhyb3VnaCBzeXprYWxsZXIncyBVU0IgZW11bGF0aW9uICh1c2luZyBgc3l6X3VzYl9jb25uZWN0YCksIGFuZCwgbXVjaCBsZXNzIGZyZXF1ZW50bHksIFBDSSBDQU4gYWRhcHRlcnMgaWYgUUVNVSBlbXVsYXRlcyB0aGVtLlxuXG5CdXQgKndhaXQqLCBnb2luZyBiYWNrIHRvIEZsZXhDQU4sIGRvZXMgKml0KiBoYXZlICphbnkqIG9mIHRob3NlIFVTQiBvciB2aXJ0dWFsIGZyb250LWVuZHMgdGhhdCBzeXprYWxsZXIgY2FuIHVzZT8gSSdtIGdvaW5nIHRvIHF1aWNrbHkgc2VhcmNoIHRoZSBrZXJuZWwgc291cmNlIGFuZCBtYWtlIHN1cmUgSSBkb24ndCBtaXNzIGFueXRoaW5nIHRoYXQgY291bGQgYmUgcmVsZXZhbnQuIFRpbWUgdG8gd2lkZW4gdGhlIHNlYXJjaCBiZXlvbmQganVzdCB0aGUgYGRyaXZlcnMvbmV0L2Nhbi9mbGV4Y2FuYCBkaXJlY3RvcnkuIEkgbmVlZCB0byBtYWtlIHN1cmUgSSB1bmRlcnN0YW5kIHRoZSBmdWxsIHNjb3BlIG9mIGhvdyB0aGlzIGRyaXZlciBpcyBiZWluZyB0ZXN0ZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI2ODYwLCJPdXRwdXRUb2tlbnMiOjIzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDM5LCJUb29sQ2FsbHMiOlsicmVhZC1maWxlIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NDQuNzA0NDkyMzc4WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoxNDc0MTgxNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJpbmNsdWRlXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImluY2x1ZGUvbGludXgvY2FuL3BsYXRmb3JtL2ZsZXhjYW4uaC0xNy1cXG5pbmNsdWRlL2xpbnV4L2Nhbi9wbGF0Zm9ybS9mbGV4Y2FuLmg6MTg6c3RydWN0IGZsZXhjYW5fcGxhdGZvcm1fZGF0YSB7XFxuaW5jbHVkZS9saW51eC9jYW4vcGxhdGZvcm0vZmxleGNhbi5oLTE5LVxcdHUzMiBjbG9ja19mcmVxdWVuY3k7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ2OjQ0Ljg1MTkxNzIwNVoiLCJTZXEiOjI5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo0MzQxMjE5NjE2LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgYSBzdW1tYXJ5IG9mIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaWYgSSB3ZXJlIHRoaW5raW5nIGl0OlxuXG4qKkRpZ2dpbmcgaW50byB0aGUgQ0FOIEJ1cyBJbXBsZW1lbnRhdGlvbioqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgYGZsZXhjYW5gIGRyaXZlciBpcyBiZWluZyB1c2VkIGFuZCBpbnRlZ3JhdGVkIGF0IHRoZSBhcmNoaXRlY3R1cmFsIGxldmVsLiBJJ2xsIHN0YXJ0IGJ5IHNlYXJjaGluZyBmb3IgYWxsIGluc3RhbmNlcyBvZiBcImZsZXhjYW5cIiB3aXRoaW4gdGhlIGBhcmNoL2AgZGlyZWN0b3J5LiBUaGF0J3MgdXN1YWxseSB0aGUgYmVzdCBwbGFjZSB0byBiZWdpbiB3aGVuIEknbSB0cnlpbmcgdG8gZ2V0IGEgaGFuZGxlIG9uIGxvdy1sZXZlbCBoYXJkd2FyZSBpbnRlcmFjdGlvbnMgbGlrZSB0aGlzLiBJJ20gZXhwZWN0aW5nIHRvIGZpbmQgcmVmZXJlbmNlcyBpbiBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlLCBkZXZpY2UgdHJlZSBiaW5kaW5ncywgYW5kIHBvc3NpYmx5IHNvbWUgY29yZSBpbml0aWFsaXphdGlvbiByb3V0aW5lcy4gVGhlIGdvYWwgaXMgdG8gc2VlIGhvdyBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlcyBhcmUgaW50ZXJmYWNpbmcgd2l0aCB0aGUgYGZsZXhjYW5gIGNvbnRyb2xsZXIgYW5kIHdoYXQgYWJzdHJhY3Rpb25zLCBpZiBhbnksIGFyZSBpbiBwbGF5LiBJIGFtIGxvb2tpbmcgZm9yIHRoZSB1c2FnZSBhbmQgaW1wbGVtZW50YXRpb24gZGV0YWlscy5cblxuXG4iLCJJbnB1dFRva2VucyI6Mjc5MjEsIk91dHB1dFRva2VucyI6MjMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNiwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0Njo0OS4xOTMxMzkyMzFaIiwiU2VxIjozMCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjMwNjQ2NTcyNiwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImFyY2hcIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiXFxuRnVsbCBvdXRwdXQgaXMgdG9vIGxvbmcsIHNob3dpbmcgNTAwIG91dCBvZiAyNTkxIGxpbmVzLlxcblVzZSBtb3JlIHByZWNpc2UgZXhwcmVzc2lvbiBpZiBwb3NzaWJsZS5cXG5cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTIyPVxcdFxcdFxcdGNhbjE6IGNhbkA0M2Y4ODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEyMzpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2ktMTI0LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDQzZjg4MDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2k9MTMxPVxcdFxcdFxcdGNhbjI6IGNhbkA0M2Y4YzAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgyNS5kdHNpOjEzMjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDI1LmR0c2ktMTMzLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDQzZjhjMDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2k9MzA0PVxcdFxcdFxcdGNhbjE6IGNhbkA1M2ZlNDAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpOjMwNTpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgzNS1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2ktMzA2LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmU0MDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2k9MzEzPVxcdFxcdFxcdGNhbjI6IGNhbkA1M2ZlODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXgzNS5kdHNpOjMxNDpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXgzNS1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDM1LmR0c2ktMzE1LVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmU4MDAwIDB4MTAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2k9NTcxPVxcdFxcdFxcdGNhbjE6IGNhbkA1M2ZjODAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpOjU3MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXg1My1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2ktNTczLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmM4MDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2k9NTgxPVxcdFxcdFxcdGNhbjI6IGNhbkA1M2ZjYzAwMCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg1My5kdHNpOjU4MjpcXHRcXHRcXHRcXHRjb21wYXRpYmxlID0gXFxcImZzbCxpbXg1My1mbGV4Y2FuXFxcIiwgXFxcImZzbCxpbXgyNS1mbGV4Y2FuXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDUzLmR0c2ktNTgzLVxcdFxcdFxcdFxcdHJlZyA9IFxcdTAwM2MweDUzZmNjMDAwIDB4NDAwMFxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cz01Nj1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNTctXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czo1ODpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTU5LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTYyPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy02My1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzOjY0OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHMtNjUtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM9MTg2PVxcdFxcdFxcdE1YNlFETF9QQURfU0QxX0NNRF9fR1BJTzFfSU8xOFxcdFxcdDB4MDAwMDAwMThcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE4OS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0czoxOTA6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzLTE5MS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NmRsLWVja2VsbWFubi1jaTR4MTAuZHRzPTE5Mz1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcXHRcXHQweDAwMDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy0xOTYtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2ZGwtZWNrZWxtYW5uLWNpNHgxMC5kdHM6MTk3OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZkbC1lY2tlbG1hbm4tY2k0eDEwLmR0cy0xOTgtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k9MTU5PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMTYwLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpOjE2MTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjItfTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0xNjQ9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaS0xNjUtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2k6MTY2OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTE2Ny19O1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpPTI1Mz1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fMTZfX0VORVRfUkVGX0NMSyAweDQwMDFiMGE4XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjU2LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNTc6XFx0cGluY3RybF9mbGV4Y2FuMTogY2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI1OC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaT0yNjA9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYICAgICAgICAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLWtwLmR0c2ktMjYzLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEta3AuZHRzaToyNjQ6XFx0cGluY3RybF9mbGV4Y2FuMjogY2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1rcC5kdHNpLTI2NS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cz0xNjM9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy0xNjQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHM6MTY1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS1waXN0YWNoaW8uZHRzLTE2Ni1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHM9Mzk1PVxcdFxcdFxcdE1YNlFETF9QQURfUkdNSUlfUlhfQ1RMX19SR01JSV9SWF9DVExcXHQweDEzMDMwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXBpc3RhY2hpby5kdHMtMzk4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0czozOTk6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnEtcGlzdGFjaGlvLmR0cy00MDAtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM9MTE5PVxcdFxcdFxcdE1YNlFETF9QQURfQ1NJMF9WU1lOQ19fSVBVMV9DU0kwX1ZTWU5DXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cS12YXItbXg2Y3VzdG9tYm9hcmQuZHRzLTEyMi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHM6MTIzOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxLXZhci1teDZjdXN0b21ib2FyZC5kdHMtMTI0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpPTIyOT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTIzMC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiLCBcXFwic2xlZXBcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzE6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX2RlZmF1bHRcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToyMzI6XFx0cGluY3RybC0xID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xX3NsZWVwXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMjMzLVxcdHN0YXR1cyA9IFxcXCJkaXNhYmxlZFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MjM2PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMjM3LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCIsIFxcXCJzbGVlcFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjIzODpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJfZGVmYXVsdFxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjIzOTpcXHRwaW5jdHJsLTEgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJfc2xlZXBcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0yNDAtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaT05OTY9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDAwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktOTk5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDAwOlxcdHBpbmN0cmxfZmxleGNhbjFfZGVmYXVsdDogZmxleGNhbjFkZWZncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDAxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpPTEwMDM9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaS0xMDA2LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDA3OlxcdHBpbmN0cmxfZmxleGNhbjFfc2xlZXA6IGZsZXhjYW4xc2xwZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAwOC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaT0xMDEwPVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT184X19HUElPMV9JTzA4IDB4MFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTMtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpOjEwMTQ6XFx0cGluY3RybF9mbGV4Y2FuMl9kZWZhdWx0OiBmbGV4Y2FuMmRlZmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwYWxpcy5kdHNpLTEwMTUtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2k9MTAxNz1cXHRcXHRcXHRNWDZRRExfUEFEX0tFWV9ST1c0X19GTEVYQ0FOMl9SWCAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAxOS1cXHR9O1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGFsaXMuZHRzaToxMDIwOlxcdHBpbmN0cmxfZmxleGNhbjJfc2xlZXA6IGZsZXhjYW4yc2xwZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBhbGlzLmR0c2ktMTAyMS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k9MTQzPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTE0NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcGY2ZGV2LmR0c2k6MTQ1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0xNDYtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ181dlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpPTMwMT1cXHRcXHRcXHRNWDZRRExfUEFEX0tFWV9DT0wyX19HUElPNF9JTzEwICAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpLTMwNC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXBmNmRldi5kdHNpOjMwNTpcXHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFwZjZkZXYuZHRzaS0zMDYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NTc9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS01OC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo1OTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02MC1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9NjM9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaTo2NTpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS02Ni1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2k9MjM3PVxcdFxcdFxcdE1YNlFETF9QQURfRU5FVF9DUlNfRFZfX0VORVRfUlhfRU4gIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDAtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpOjI0MTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvcy5kdHNpLTI0Mi1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaT0yNDQ9XFx0XFx0XFx0TVg2UURMX1BBRF9LRVlfQ09MMl9fRkxFWENBTjFfVFhcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zLmR0c2ktMjQ3LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaToyNDg6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MuZHRzaS0yNDktXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTEwMD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDEtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjEwMjpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktMTAzLVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k9MTA2PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTEwNy1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6MTA4OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS0xMDktXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaT00NzM9XFx0XFx0XFx0TVg2UURMX1BBRF9SR01JSV9SWF9DVExfX1JHTUlJX1JYX0NUTCAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ3Ni1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpOjQ3NzpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWFyaXN0YWluZXRvczIuZHRzaS00NzgtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpPTQ4MD1cXHRcXHRcXHRNWDZRRExfUEFEX1NEM19DTURfX0ZMRVhDQU4xX1RYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2ktNDgzLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1hcmlzdGFpbmV0b3MyLmR0c2k6NDg0OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtYXJpc3RhaW5ldG9zMi5kdHNpLTQ4NS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTcxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3Mi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTczOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xNzQtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9MTc4PVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtY29saWJyaS5kdHNpLTE3OS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k6MTgwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS0xODEtXFx0c3RhdHVzID0gXFxcImRpc2FibGVkXFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2k9ODI5PVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT18xNl9fRU5FVF9SRUZfQ0xLXFx0KCgxXFx1MDAzY1xcdTAwM2MzMCkgfCAweDFiMGIwKVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzItXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaTo4MzM6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODM0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaT04MzY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaS04MzktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWNvbGlicmkuZHRzaTo4NDA6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1jb2xpYnJpLmR0c2ktODQxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpPTgxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6ODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktODMtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT05ND1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpOjk1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTk2LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k9NjA4PVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzRfX0dQSU80X0lPMTVcXHRcXHQweGIxIC8qIEludCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2k6NjEyOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xLWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWRoY29tLXNvbS5kdHNpLTYxMy1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaT02MTU9XFx0XFx0XFx0TVg2UURMX1BBRF9LRVlfQ09MMl9fRkxFWENBTjFfVFhcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktNjE4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1kaGNvbS1zb20uZHRzaTo2MTk6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjItZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZGhjb20tc29tLmR0c2ktNjIwLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpPTE4MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTE4MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaToxODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktMTgzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV9zdGJ5XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUyeHguZHRzaT02MTg9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDFiMGIwIC8qIFBIWSBSZXNldCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTJ4eC5kdHNpLTYyMS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2k6NjIyOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1Mnh4LmR0c2ktNjIzLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpPTE4MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTN4eC5kdHNpLTE4MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaToxODI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktMTgzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV9zdGJ5XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaT02MDY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzE2X19FTkVUX1JFRl9DTEtcXHQweDQwMDFiMGE4XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1M3h4LmR0c2ktNjA5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaTo2MTA6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzUzeHguZHRzaS02MTEtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2k9MjAwPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NHh4LmR0c2ktMjAxLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjIwMjpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS0yMDMtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ19jYW4xX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpPTY4MT1cXHRcXHRcXHRNWDZRRExfUEFEX0VJTV9SV19fR1BJTzJfSU8yNlxcdDB4MTAwYjFcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU0eHguZHRzaS02ODQtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpOjY4NTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTR4eC5kdHNpLTY4Ni1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaT0xNTI9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS0xNTMtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2k6MTU0OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTE1NS1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NTF4LmR0c2k9NTE0PVxcdFxcdFxcdE1YNlFETF9QQURfRElTUDBfREFUMTNfX0FVRDVfUlhGU1xcdDB4MTMwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU1MXguZHRzaS01MTctXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpOjUxODpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTUxeC5kdHNpLTUxOS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaT0yMTg9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaS0yMTktXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2k6MjIwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktMjIxLVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaT02OTI9XFx0XFx0XFx0TVg2UURMX1BBRF9FTkVUX1RYRDBfX0dQSU8xX0lPMzBcXHQweDQwMDFiMGIwIC8qIFBIWV9SU1QjICovXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktNjk1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU2MHguZHRzaTo2OTY6XFx0cGluY3RybF9mbGV4Y2FuOiBmbGV4Y2FuZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1NjB4LmR0c2ktNjk3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpPTEyND1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWd3NTkxMi5kdHNpLTEyNS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaToxMjY6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktMTI3LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaT00MzE9XFx0XFx0XFx0TVg2UURMX1BBRF9FSU1fUldfX0dQSU8yX0lPMjZcXHQweDEwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtZ3c1OTEyLmR0c2ktNDM0LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaTo0MzU6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1ndzU5MTIuZHRzaS00MzYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2k9MTgxPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTgyLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWh1bW1pbmdib2FyZC5kdHNpOjE4MzpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfaHVtbWluZ2JvYXJkX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMTg0LVxcdHN0YXR1cyA9IFxcXCJva2F5XFxcIjtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1odW1taW5nYm9hcmQuZHRzaT0yMjU9XFx1MDAyNmlvbXV4YyB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWh1bW1pbmdib2FyZC5kdHNpOjIyNjpcXHRwaW5jdHJsX2h1bW1pbmdib2FyZF9mbGV4Y2FuMTogaHVtbWluZ2JvYXJkLWZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaHVtbWluZ2JvYXJkLmR0c2ktMjI3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MTMzPVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0xMzQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaToxMzU6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaS0xMzYtXFx0eGNlaXZlci1zdXBwbHkgPSBcXHUwMDNjXFx1MDAyNnJlZ18zcDN2XFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpPTEzOT1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQwLVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k6MTQxOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMTQyLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfM3AzdlxcdTAwM2U7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaT0zMTY9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzE3X19HUElPN19JTzEyXFx0XFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMzE5LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpOjMyMDpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2ktMzIxLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWljb3JlLmR0c2k9MzIzPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYIDB4MWIwMjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTMyNi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtaWNvcmUuZHRzaTozMjc6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1pY29yZS5kdHNpLTMyOC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpPTIzNT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM2LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6MjM3OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2ktMjM4LX07XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaT0yNDE9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTI0Mi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpOjI0MzpcXHRwaW5jdHJsLTAgPSBcXHUwMDNjXFx1MDAyNnBpbmN0cmxfZmxleGNhbjJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTI0NC19O1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k9NDc2PVxcdFxcdFxcdE1YNlFETF9QQURfRUlNX0QyNV9fR1BJTzNfSU8yNSAweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaS00NzktXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLWtvbnRyb24tc2FteDZpLmR0c2k6NDgwOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaS00ODEtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaT00ODM9XFx0XFx0XFx0TVg2UURMX1BBRF9HUElPXzhfX0ZMRVhDQU4xX1JYIDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4Ni1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwta29udHJvbi1zYW14NmkuZHRzaTo0ODc6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1rb250cm9uLXNhbXg2aS5kdHNpLTQ4OC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTUzPVxcdHJlZ19lbl9zd2l0Y2g6IHJlZ3VsYXRvci1lbi1zd2l0Y2gge1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktNjQtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6NjU6XFx0cmVnX2ZsZXhjYW4xOiByZWd1bGF0b3ItZmxleGNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTY2LVxcdFxcdGNvbXBhdGlibGUgPSBcXFwicmVndWxhdG9yLWZpeGVkXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS02Ny1cXHRcXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjY4OlxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMV9lblxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6Njk6XFx0XFx0cmVndWxhdG9yLW5hbWUgPSBcXFwiZmxleGNhbjEtcmVnXFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaS03MC1cXHRcXHRyZWd1bGF0b3ItbWluLW1pY3Jvdm9sdCA9IFxcdTAwM2MxNTAwMDAwXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpPTEzMz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMTM0LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MTM1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k6MTM2OlxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfZmxleGNhbjFcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTEzNy1cXHRzdGF0dXMgPSBcXFwiZGlzYWJsZWRcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k9Mjc3PVxcdFxcdFxcdE1YNlFETF9QQURfRUlNX0RBNF9fR1BJTzNfSU8wNFxcdFxcdDB4YjBiMVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgwLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpOjI4MTpcXHRwaW5jdHJsX2ZsZXhjYW4xOiBmbGV4Y2FuMWdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjgyLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2k9Mjg0PVxcdFxcdFxcdE1YNlFETF9QQURfR1BJT184X19GTEVYQ0FOMV9SWFxcdFxcdDB4MWIwYjBcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtbWlyYS5kdHNpLTI4Ny1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLW1pcmEuZHRzaToyODg6XFx0cGluY3RybF9mbGV4Y2FuMV9lbjogZmxleGNhbjFlbmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1taXJhLmR0c2ktMjg5LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaT02MD1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBoeXRlYy1wZmxhMDIuZHRzaS02MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k6NjI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTYzLVxcdHN0YXR1cyA9IFxcXCJkaXNhYmxlZFxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpPTI1Nz1cXHRcXHRcXHRNWDZRRExfUEFEX0VJTV9EMjNfX0dQSU8zX0lPMjNcXHRcXHQweDgwMDAwMDAwIC8qIFJlc2V0IEdQSU8gKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2ktMjYwLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waHl0ZWMtcGZsYTAyLmR0c2k6MjYxOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGh5dGVjLXBmbGEwMi5kdHNpLTI2Mi1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9MTQ4PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE0OS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6MTUwOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS0xNTEtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaT0xNTQ9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktMTU1LVxcdHBpbmN0cmwtbmFtZXMgPSBcXFwiZGVmYXVsdFxcXCI7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaToxNTY6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTE1Ny1cXHRzdGF0dXMgPSBcXFwib2theVxcXCI7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpPTQzNT1cXHRcXHRcXHRNWDZRRExfUEFEX0VORVRfUlhEMV9fR1BJTzFfSU8yNlxcdDB4MWYwYjFcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktNDM4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k6NDM5OlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtcGljby5kdHNpLTQ0MC1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2k9NDQyPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzJfX0ZMRVhDQU4xX1JYXFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaS00NDUtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXBpY28uZHRzaTo0NDY6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1waWNvLmR0c2ktNDQ3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxMT1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxMi1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMTM6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzE0LVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTMxOD1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTMxOS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTozMjA6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktMzIxLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuX3N0YnlcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpPTUzNT1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOV9fRVNBSV9SWF9GUyAgICAgICAweDFiMDMwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTM4LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaTo1Mzk6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC1zYWJyZWF1dG8uZHRzaS01NDAtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k9NTQyPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXFx0MHgxNzA1OVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXNhYnJlYXV0by5kdHNpLTU0NS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2k6NTQ2OlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtc2FicmVhdXRvLmR0c2ktNTQ3LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTg1PVxcdTAwMjZjYW4xIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODYtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6ODc6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktODgtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTkxPVxcdTAwMjZjYW4yIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktOTItXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6OTM6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktOTQtXFx0c3RhdHVzID0gXFxcIm9rYXlcXFwiO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpPTIwMj1cXHRcXHRcXHRNWDZRRExfUEFEX0RJMF9QSU40X19HUElPNF9JTzIwXFx0XFx0MHgxYjBiMSAvKiBFVEhfUEhZX1JFU0VUICovXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjA1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaToyMDY6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czQ5MDAuZHRzaS0yMDctXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k9MjA5PVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX0NPTDJfX0ZMRVhDQU4xX1RYXFx0MHgxYjBiMVxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNDkwMC5kdHNpLTIxMi1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2k6MjEzOlxcdHBpbmN0cmxfZmxleGNhbjI6IGZsZXhjYW4yZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM0OTAwLmR0c2ktMjE0LVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTE1Mz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE1NC1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaToxNTU6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4xXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTU2LVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMV8zdjNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTE2MD1cXHUwMDI2Y2FuMiB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTE2MS1cXHRwaW5jdHJsLW5hbWVzID0gXFxcImRlZmF1bHRcXFwiO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaToxNjI6XFx0cGluY3RybC0wID0gXFx1MDAzY1xcdTAwMjZwaW5jdHJsX2ZsZXhjYW4yXFx1MDAzZTtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMTYzLVxcdHhjZWl2ZXItc3VwcGx5ID0gXFx1MDAzY1xcdTAwMjZyZWdfY2FuMl8zdjNcXHUwMDNlO1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpPTMwMj1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fNl9fRU5FVF9JUlFcXHRcXHQweDAwMGIxXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2ktMzA1LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaTozMDY6XFx0cGluY3RybF9mbGV4Y2FuMTogZmxleGNhbjFncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMDctXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHM3OTcwLmR0c2k9MzEwPVxcdFxcdFxcdE1YNlFETF9QQURfRElTUDBfREFUMF9fR1BJTzRfSU8yMVxcdDB4MWIwODggLyogRU5fQ0FOXzEgKi9cXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10czc5NzAuZHRzaS0zMTMtXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpOjMxNDpcXHRwaW5jdHJsX2ZsZXhjYW4yOiBmbGV4Y2FuMmdycCB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXRzNzk3MC5kdHNpLTMxNS1cXHRcXHRmc2wscGlucyA9IFxcdTAwM2NcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT05ND1cXHRyZWdfY2FuX3hjdnI6IHJlZ3VsYXRvci1jYW4teGN2ciB7XFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktOTktXFx0XFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MTAwOlxcdFxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuX3hjdnJcXHUwMDNlO1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0xMDEtXFx0XFx0Z3BpbyA9IFxcdTAwM2NcXHUwMDI2Z3BpbzQgMjEgR1BJT19BQ1RJVkVfTE9XXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT0yMDM9XFx1MDAyNmNhbjEge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMDQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MjA1OlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMVxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIwNi1cXHR4Y2VpdmVyLXN1cHBseSA9IFxcdTAwM2NcXHUwMDI2cmVnX2Nhbl94Y3ZyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT0yMTA9XFx1MDAyNmNhbjIge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS0yMTEtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6MjEyOlxcdHBpbmN0cmwtMCA9IFxcdTAwM2NcXHUwMDI2cGluY3RybF9mbGV4Y2FuMlxcdTAwM2U7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTIxMy1cXHR4Y2VpdmVyLXN1cHBseSA9IFxcdTAwM2NcXHUwMDI2cmVnX2Nhbl94Y3ZyXFx1MDAzZTtcXG4tLVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaT00NTc9XFx0XFx0XFx0TVg2UURMX1BBRF9TRDNfREFUMl9fR1BJTzdfSU8wNlxcdFxcdDB4MWIwYjEgLyogRVROIFBIWSBSRVNFVCAqL1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ2MC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDYxOlxcdHBpbmN0cmxfZmxleGNhbjE6IGZsZXhjYW4xZ3JwIHtcXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDYyLVxcdFxcdGZzbCxwaW5zID0gXFx1MDAzY1xcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpPTQ2ND1cXHRcXHRcXHRNWDZRRExfUEFEX0dQSU9fOF9fRkxFWENBTjFfUlhcXHRcXHQweDFiMGIwXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2ktNDY3LVxcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaTo0Njg6XFx0cGluY3RybF9mbGV4Y2FuMjogZmxleGNhbjJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NjktXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k9NDcxPVxcdFxcdFxcdE1YNlFETF9QQURfS0VZX1JPVzRfX0ZMRVhDQU4yX1JYXFx0MHgxYjBiMFxcbi0tXFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXR4Ni5kdHNpLTQ3NC1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdHg2LmR0c2k6NDc1OlxcdHBpbmN0cmxfZmxleGNhbl94Y3ZyOiBmbGV4Y2FuLXhjdnJncnAge1xcbmFyY2gvYXJtL2Jvb3QvZHRzL254cC9pbXgvaW14NnFkbC10eDYuZHRzaS00NzYtXFx0XFx0ZnNsLHBpbnMgPSBcXHUwMDNjXFxuLS1cXG5hcmNoL2FybS9ib290L2R0cy9ueHAvaW14L2lteDZxZGwtdmFyLWRhcnQuZHRzaT02Mz1cXHUwMDI2Y2FuMSB7XFxuYXJjaC9hcm0vYm9vdC9kdHMvbnhwL2lteC9pbXg2cWRsLXZhci1kYXJ0LmR0c2ktNjQtXFx0cGluY3RybC1uYW1lcyA9IFxcXCJkZWZhdWx0XFxcIjtcXG5cXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NDkuNDk5NjEwMjE2WiIsIlNlcSI6MzEsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjczOTE1MzU4ODAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqTXkgQXNzZXNzbWVudCBvZiBmbGV4Y2FuIERUUyBGaWxlcyoqXG5cbkFscmlnaHQsIGxldCdzIGJyZWFrIHRoaXMgZG93bi4gTXkgaW5pdGlhbCBvYnNlcnZhdGlvbiBpcyB0aGF0IGV2ZXJ5IHNpbmdsZSBEZXZpY2UgVHJlZSBTb3VyY2UgKERUUykgZmlsZSBJJ20gc2VlaW5nIHRoYXQgbWVudGlvbnMgXCJmbGV4Y2FuXCIgc2VlbXMgZXhjbHVzaXZlbHkgcmVsYXRlZCB0byBBUk0sIEFSTTY0LCBQb3dlclBDLCBvciBtNjhrIFN5c3RlbS1vbi1DaGlwcyAoU29DcykuIEknbSB0aGlua2luZyBhYm91dCB0aGUgdXN1YWwgc3VzcGVjdHMgaGVyZSwgdGhlIGkuTVggc2VyaWVzLCB0aGUgTFMxMDIxQSwgdGhlIExYMjE2MCwgdGhlIFZGNjEwLCB0aGUgUzMyRyDigJMgdGhhdCB3aG9sZSBlY29zeXN0ZW0uXG5cbk5vdywgdGhlIGNydWNpYWwgcXVlc3Rpb24uIElzIHRoZXJlICphbnkqIGFyY2hpdGVjdHVyZSBsaWtlIHg4NiB0aGF0J3MgbGV2ZXJhZ2luZyBmbGV4Y2FuPyBJIG5lZWQgdG8gdmVyaWZ5IHRoaXMgYXNzdW1wdGlvbi4gTGV0J3MgZGlnIGRlZXBlciBhbmQgcGVyZm9ybSBhIHByb3BlciBjcm9zcy1yZWZlcmVuY2UgdG8gY29uZmlybSB0aGVyZSBhcmUgbm8geDg2LWJhc2VkIHN5c3RlbXMgdXNpbmcgZmxleGNhbi4gVGltZSB0byBkb3VibGUtY2hlY2suXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ0ODE5LCJPdXRwdXRUb2tlbnMiOjI3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NTYuODkxMTQ5MTk3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo2MDk3MTU5OSwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJhcmNoL3g4NlwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDY6NTYuOTUyMTMwMTk2WiIsIlNlcSI6MzMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjQ2MDk5NzE2NTIsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGlzIG15c2VsZjpcblxuKipJbnZlc3RpZ2F0aW5nIFBvdGVudGlhbCBDQU4tRmxleCBDb250cm9sbGVyIEludGVyYWN0aW9uIFBvaW50cyoqXG5cbk9rYXksIEkgbmVlZCB0byBwaW5wb2ludCB3aGVyZSB0aGUgQ0FOLUZsZXggY29udHJvbGxlciBtaWdodCBiZSBpbnRlcmFjdGluZyB3aXRoIHRoZSBzeXN0ZW0gYXQgYSBsb3cgbGV2ZWwuIEdpdmVuIHRoZSBsaWtlbHkgYXJjaGl0ZWN0dXJhbCBjb250ZXh0LCBteSBmaXJzdCBsaW5lIG9mIGF0dGFjayBpcyB0aGUgY2xhc3NpYyBwbGFjZXM6IGBpbmNsdWRlL2AgYW5kIGBkcml2ZXJzL2AuIEkgbmVlZCB0byB6ZXJvIGluIG9uIGFueSBwb3RlbnRpYWwgcG9pbnRzIG9mIGludGVncmF0aW9uIHJlbGF0ZWQgdG8geDg2IHBsYXRmb3JtcywgUENJIGNvbmZpZ3VyYXRpb24sIEFDUEkgcG93ZXIgbWFuYWdlbWVudCwgb3IgVVNCIGhvc3QgY29udHJvbGxlciBhc3NpZ25tZW50cy4gVGhlc2UgYXJlYXMgYXJlIGFsbCBsaWtlbHkgY2FuZGlkYXRlcyBmb3IgaGF2aW5nIGhvb2tzIG9yIGRyaXZlcnMgdGhhdCBtaWdodCByZWxhdGUgdG8gdGhlIENBTi1GbGV4IGNvbnRyb2xsZXIuIEknbGwgbmVlZCB0byBsb29rIGZvciBoZWFkZXJzIGFuZCBkcml2ZXIgc291cmNlIGZpbGVzIHRoYXQgbWVudGlvbiBcIng4NlwiLCBcIlBDSVwiLCBcIkFDUElcIiwgXCJVU0IsXCIgYW5kIG9mIGNvdXJzZSwgXCJmbGV4Y2FuXCIgaXRzZWxmLiBUaGlzIHdpbGwgaG9wZWZ1bGx5IHByb3ZpZGUgaW5zaWdodCBpbnRvIGhvdyB0aGUgY29udHJvbGxlciBpcyBpbml0aWFsaXplZCwgY29uZmlndXJlZCwgYW5kIG1hbmFnZWQgd2l0aGluIHRoZSBicm9hZGVyIHN5c3RlbS4gRnJvbSB0aGVyZSBJIGNhbiBkZXRlcm1pbmUgaG93IGl04oCZcyBiZWluZyBpbnRlcmZhY2VkIHdpdGggYnkgdGhlIGtlcm5lbC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUxMTUsIk91dHB1dFRva2VucyI6MjUsIk91dHB1dFRob3VnaHRzVG9rZW5zIjozMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowMS41NjIxMDQ5NThaIiwiU2VxIjozNCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ1ODgzNDM5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvYnVzXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowMS42MDc5OTc4MDdaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NDE5MDkxNjQ3OCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBjb25zaWRlcmluZyB0aGUgZ2l2ZW4gcHJvbXB0OlxuXG4qKkluaXRpYWwgQXNzZXNzbWVudDogTmF2aWdhdGluZyB0aGUgbWZkIFN1YnN5c3RlbSoqXG5cbkFscmlnaHQsIHRoZSBkaXJlY3RpdmUgaXMgY2xlYXIuIFdlJ3JlIHN0YXJ0aW5nIHdpdGggYGRyaXZlcnMvbWZkYC4gVGhhdCdzIGEgc2Vuc2libGUgYXBwcm9hY2gsIGdpdmVuIHRoZSBsaWtlbHkgY29udGV4dC4gVGhlIFwibWZkXCIgKG11bHRpLWZ1bmN0aW9uIGRldmljZSkgYXJlYSBpcyBhIGNvbW1vbiBlbnRyeSBwb2ludCBmb3IgaW52ZXN0aWdhdGluZyBjb21wbGV4IGhhcmR3YXJlIGludGVyYWN0aW9ucywgZXNwZWNpYWxseSB3aGVuIGRlYWxpbmcgd2l0aCBpbnRlZ3JhdGVkIHN5c3RlbXMuIE15IGV4cGVyaWVuY2UgdGVsbHMgbWUgdGhpcyBpcyBvZnRlbiB3aGVyZSB0aGUgYWJzdHJhY3Rpb24gbGF5ZXJzIGJlZ2luLiBJIGltbWVkaWF0ZWx5IHN0YXJ0IG1lbnRhbGx5IGNhdGFsb2dpbmcgcG90ZW50aWFsIGFyZWFzIG9mIGludGVyZXN0IHdpdGhpbiB0aGF0IGRpcmVjdG9yeS4gSSdsbCBiZSBsb29raW5nIGZvciBjb21tb24gcGF0dGVybnMsIHRoaW5ncyBsaWtlIGhvdyB0aGUgZHJpdmVyIGZyYW1ld29yayBpcyBpbXBsZW1lbnRlZCwgYW5kIHRoZSBsZXZlbCBvZiBhYnN0cmFjdGlvbiBpdCBwcmVzZW50cywgYnV0IGFsc28gaG93IGl0IGhhbmRsZXMgcG93ZXIgbWFuYWdlbWVudCBhbmQgcmVzb3VyY2UgYWxsb2NhdGlvbi4gSSBuZWVkIHRvIGdldCBhIGhpZ2gtbGV2ZWwgdmlldyBvZiB0aGUgYXJjaGl0ZWN0dXJlIGJlZm9yZSBkaXZpbmcgaW50byBzcGVjaWZpYyBkcml2ZXJzIG9yIGRldmljZSBpbnN0YW5jZXMuIEkgYW50aWNpcGF0ZSBmaW5kaW5nIHN0cnVjdHVyZXMsIGZ1bmN0aW9uIGNhbGxzLCBhbmQgcG90ZW50aWFsbHkgYSBEVCAoRGV2aWNlIFRyZWUpIHNldHVwLCB3aGljaCB3aWxsIGFsbCBiZSBjcnVjaWFsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBvdmVyYWxsIHN5c3RlbSBpbnRlZ3JhdGlvbi4gRnJvbSBteSBleHBlcmllbmNlIHdpdGggZW1iZWRkZWQgc3lzdGVtcywgdGhpcyBpcyBhIGdvb2QgZmlyc3Qgc3RlcC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDUzOTEsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzowNS43OTg5MTY0NjVaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjExNTIyOTI1OCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwiZmxleGNhblwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL21mZFwiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJlcnJvclwiOiBcIm5vIG1hdGNoZXNcIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDktMTVUMDc6NDc6MDUuOTE0MTU1MDgzWiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy44LWZsYXNoIiwiRHVyYXRpb24iOjgxMTg1NTA2NTAsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6Ik9rYXksIGhlcmUncyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSBhIHNlYXNvbmVkIHByb2Zlc3Npb25hbCBpbiB0aGUgZmllbGQsIHN0YXJ0aW5nIHdpdGggdGhlIHJlcXVlc3RlZCBib2xkZWQgaGVhZGVyOlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQQ0kgU3Vic3lzdGVtKipcblxuQWxyaWdodCwgdGltZSB0byBkaWcgaW4uIFRoZSBwcm9ibGVtIGxpa2VseSBsaWVzIHNvbWV3aGVyZSB3aXRoaW4gdGhlIFBDSSBzdWJzeXN0ZW0sIHNvIGxldCdzIHN0YXJ0IGJ5IHRha2luZyBhIGxvb2sgYXQgYGRyaXZlcnMvcGNpYC4gVGhpcyBpcyB0aGUgbG9naWNhbCBwbGFjZSB0byBiZWdpbiB0cm91Ymxlc2hvb3RpbmcsIGdpdmVuIG15IHVuZGVyc3RhbmRpbmcgb2YgdGhlIHN5c3RlbSBhcmNoaXRlY3R1cmUgYW5kIHRoZSBwb3RlbnRpYWwgYXJlYSBvZiBpbXBhY3QgZm9yIHRoZSByZXBvcnRlZCBpc3N1ZS4gSSBuZWVkIHRvIGdldCBhIGhpZ2ggbGV2ZWwgdW5kZXJzdGFuZGluZyBvZiB0aGUgY29kZSBhbmQgbG9vayBmb3IgbGlrZWx5IGN1bHByaXQsIGxpa2UgYSByZWNlbnQgY2hhbmdlLCBkcml2ZXIgaW50ZXJhY3Rpb24sIG9yIHBvdGVudGlhbCByZXNvdXJjZSBjb25mbGljdC4gVGhpcyBpbml0aWFsIHBlcnVzYWwgd2lsbCBwcm9iYWJseSBiZSBicm9hZCwgc2Nhbm5pbmcgZm9yIGFueXRoaW5nIHRoYXQganVtcHMgb3V0IOKAkyBhbnkgcmVjZW50IHBhdGNoZXMsIG9idmlvdXMgZXJyb3IgaGFuZGxpbmcgaXNzdWVzLCBvciB1bnVzdWFsIGRldmljZSBiZWhhdmlvci4gSSdsbCBiZSBsb29raW5nIGZvciBjbHVlcyBsaWtlIG1lbW9yeSBhbGxvY2F0aW9uIGlzc3VlcywgaW50ZXJydXB0IGhhbmRsaW5nIHByb2JsZW1zLCBvciBhbnl0aGluZyByZWxhdGVkIHRvIGRldmljZSBlbnVtZXJhdGlvbiBhbmQgaW5pdGlhbGl6YXRpb24uIEkgd2lsbCBrZWVwIGFuIGV5ZSBvdXQgZm9yIGhvdyB0aGlzIGlzIHdvcmtpbmcgYWxvbmdzaWRlIGRldmljZSBkcml2ZXJzIGFuZCBob3cgd2UgYXJlIGhhbmRsaW5nIHBvd2VyIG9yIGNvbmZpZ3VyYXRpb24gY2hhbmdlcy4gSXQncyBhIHN5c3RlbWF0aWMgcHJvY2VzcyDigJMgYSBicm9hZCBzY2FuIGZpcnN0LCB0aGVuIEknbGwgbmFycm93IG15IGZvY3VzIGJhc2VkIG9uIHdoYXQgSSBmaW5kLCBvciBkb24ndCBmaW5kLiBUaW1lIHRvIGdldCB0byBpdC5cblxuXG4iLCJJbnB1dFRva2VucyI6NDU2NjQsIk91dHB1dFRva2VucyI6MjYsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoxNC4wMzI3MDgzMTNaIiwiU2VxIjozOCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4MDIwNjc5LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGNpXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoxNC4wODA3Mzg4MzJaIiwiU2VxIjozOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjgtZmxhc2giLCJEdXJhdGlvbiI6NjQ3ODExMTU5NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIGEgc3VtbWFyeSBvZiBteSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIEkgd2VyZSB0aGUgb25lIHRoaW5raW5nIGl0OlxuXG4qKkRpdmluZyBpbnRvIHRoZSBQbGF0Zm9ybSBEcml2ZXJzKipcblxuT2theSwgdGltZSB0byBnZXQgdG8gdGhlIGhlYXJ0IG9mIHRoZSBtYXR0ZXIuIExldCdzIHN0YXJ0IGJ5IHplcm9pbmcgaW4gb24gdGhlIGBkcml2ZXJzL3BsYXRmb3JtYCBkaXJlY3RvcnkuIFRoaXMgaXMgdXN1YWxseSB3aGVyZSB0aGUgY29yZSBsb3ctbGV2ZWwgZHJpdmVycyBmb3IgaGFyZHdhcmUgdGhhdCBpcyBcInBsYXRmb3JtLXNwZWNpZmljXCIgcmVzaWRlLiBUaGF0J3MgYSBrZXkgdGVybS4gXCJQbGF0Zm9ybS1zcGVjaWZpY1wiIG1lYW5zIHRoZSBjb2RlIGlzIGhpZ2hseSB0aWVkIHRvIHRoZSBwYXJ0aWN1bGFyIGFyY2hpdGVjdHVyZSwgY2hpcHNldCwgb3IgYm9hcmQuIFRoaXMgaXMgd2hlcmUgSSdsbCBleHBlY3QgdG8gZmluZCBkcml2ZXJzIGZvciB0aGluZ3MgbGlrZSBpbnRlcnJ1cHQgY29udHJvbGxlcnMsIGNsb2NrIG1hbmFnZW1lbnQsIHBvd2VyIG1hbmFnZW1lbnQsIHBlcmhhcHMgdGhlIHN5c3RlbSB0aW1lciwgYW5kIG90aGVyIGNyaXRpY2FsIGluZnJhc3RydWN0dXJlIGNvbXBvbmVudHMgdGhhdCBhcmUgZnVuZGFtZW50YWwgdG8gdGhlIG9wZXJhdGlvbiBvZiB0aGlzIHBhcnRpY3VsYXIgc3lzdGVtLiBJIHdhbnQgdG8gc2VlIGhvdyB0aGVzZSBsb3ctbGV2ZWwgY29tcG9uZW50cyBhcmUgaW1wbGVtZW50ZWQgYW5kIGhvdyB0aGV5IGludGVyYWN0IHdpdGggdGhlIGtlcm5lbC4gSSBhbSBhbnRpY2lwYXRpbmcgdGhlIG9yZ2FuaXphdGlvbiBoZXJlLCB0aGUgbmFtaW5nIGNvbnZlbnRpb25zLCBhbmQgdGhlIG92ZXJhbGwgc3RydWN0dXJlLCBiYXNlZCBvbiBteSBwYXN0IGV4cGVyaWVuY2UuIEknbSBsb29raW5nIGZvciB0aGUga2V5IGVudHJ5IHBvaW50cyBhbmQgYW55IHVudXN1YWwgb3Igb3B0aW1pemVkIGNvZGUuIFRpbWUgdG8gZGlnIGluIGFuZCBzZWUgd2hhdCdzIHdoYXQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ1OTY0LCJPdXRwdXRUb2tlbnMiOjI1LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoyMC41NTg4NTM0NTZaIiwiU2VxIjo0MCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwOTQwNjAwLCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJmbGV4Y2FuXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvcGxhdGZvcm1cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ3OjIwLjYwOTc5OTg0NloiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuOC1mbGFzaCIsIkR1cmF0aW9uIjo4ODczOTMzMDI4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKkZsZXhDQU4gRHJpdmVyOiBVbnJlYWNoYWJsZSBIYXJkd2FyZSBvbiBhbWQ2NCwgV29ydGhGdXp6aW5nID0gRmFsc2UqKlxuXG5Pa2F5LCBsZXQncyBzb2xpZGlmeSB0aGlzLiBJIG5lZWQgdG8gbWFrZSBhIGp1ZGdtZW50IGNhbGwgb24gd2hldGhlciB0aGlzIEZsZXhDQU4gZHJpdmVyIGNvZGUgaXMgd29ydGggZnV6emluZyBvbiBhbWQ2NC4gRmlyc3QsIGxldCdzIHJlLWV4YW1pbmUgdGhvc2UgS2NvbmZpZyBkZXBlbmRlbmNpZXMuIFRoZSBgZmxleGNhbmAgZHJpdmVyLCBjbGVhcmx5LCByZWxpZXMgb24gZWl0aGVyIERldmljZSBUcmVlIChgT0ZgKSBvciBgQ09NUElMRV9URVNUYCwgYW5kLCBjcnVjaWFsbHksIHJlcXVpcmVzIGBIQVNfSU9NRU1gLiBFdmVuIGlmIHdlIHNvbWVob3cgZm9yY2UtZW5hYmxlIHRoZSBgQ0FOX0ZMRVhDQU5gIG9wdGlvbiwgZWl0aGVyIGRpcmVjdGx5IChgeWApIG9yIGFzIGEgbW9kdWxlIChgbWApLCB2aWEgYENPTVBJTEVfVEVTVGAgb3IgRFQsIGl0J3MgYSBkZWFkIGVuZC4gVGhlIGRyaXZlcidzIHByb2JlIGZ1bmN0aW9uIChgZmxleGNhbl9kcml2ZXJgKSBpcyBsb29raW5nIGZvciBzcGVjaWZpYyBwbGF0Zm9ybSBkZXZpY2VzLCBlaXRoZXIgYFwiZmxleGNhbi1tY2Y1NDQxeFwiYCAoQ29sZEZpcmUpIG9yIGEgZGV2aWNlIG1hdGNoaW5nIGEgRmxleENBTiBPRiBtYXRjaC5cblxuTm93LCBJIGtub3cgdGhpcyB3ZWxsOiBvbiBzdGFuZGFyZCBhbWQ2NCBlbnZpcm9ubWVudHMsIGxpa2UgdGhlIHR5cGljYWwgUUVNVSBvciBHb29nbGUgQ29tcHV0ZSBFbmdpbmUgaW5zdGFuY2VzIHdlIHVzZSwgdGhlcmUncyAqbm8qIGVtdWxhdGVkIEZsZXhDQU4uIFRoZSBkZXZpY2UgaXNuJ3QgcHJlc2VudCBpbiBhbnkgc3RhbmRhcmQgZGV2aWNlIHRyZWUsIGFuZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGUgaGFyZHdhcmUuIEV2ZW4gaWYgd2UgdHJpZWQgc29tZSBoYWNreSB1c2Vyc3BhY2UgZGV2aWNlIHRyZWUgb3ZlcmxheSAod2hpY2ggc3l6a2FsbGVyICpkb2Vzbid0KiBkbywgdGhhbmtmdWxseSksIHRoZSBkcml2ZXIgd291bGQgaW1tZWRpYXRlbHkgaGl0IGZhdGFsIGVycm9ycyB3aGVuIHRyeWluZyB0byBnZXQgSVJRcywgcmVtYXAgbWVtb3J5IHJlZ2lvbnMsIGFuZCBsb29rdXAgY2xvY2tzLiBUaGF0J3MgYSBmdW5kYW1lbnRhbCBhcmNoaXRlY3R1cmFsIGluY29tcGF0aWJpbGl0eS5cblxuTGV0J3MgcmVmZXIgYmFjayB0byBTZWN0aW9uIDIgb2Ygb3VyIGd1aWRlbGluZXMuICpTdHJ1Y3R1cmFsbHkgdW5yZWFjaGFibGUgaGFyZHdhcmUqIGlzIGEga2V5IG5lZ2F0aXZlIGNyaXRlcmlvbi4gVGhpcyBwZXJmZWN0bHkgZml0czogRmxleENBTiBpcyBhbiBTb0Mtc3BlY2lmaWMgQ0FOIGNvbnRyb2xsZXIsIGZvdW5kIGluIEZyZWVzY2FsZS9OWFAgU29DcyBsaWtlIGkuTVgsIENvbGRGaXJlLCBMYXllcnNjYXBlLCBTMzJHLCBhbmQgUG93ZXJQQyBQMTAxMC4gSXQncyBub3QgYSBnZW5lcmljIGRldmljZSBsaWtlIGEgUENJZSBjYXJkIG9yIGEgdmlydHVhbCBkZXZpY2UuIEl0ICpyZXF1aXJlcyogdGhlIHNwZWNpZmljIFNvQyBwbGF0Zm9ybSBhbmQgY29ycmVzcG9uZGluZyBEZXZpY2UgVHJlZSBkZWZpbml0aW9ucy4gSXQncyBub3QgbGlrZSB0aGUgZGV2aWNlcyB3ZSAqY2FuKiBmaW5kIGluIFFFTVUuXG5cbkFuZCwgYXMgYSBzcGVjaWZpYyBleGFtcGxlLCB0aGUgZnVuY3Rpb24gYGZsZXhjYW5fZ2V0X2JlcnJfY291bnRlcmAgaXMgb25seSBjYWxsZWQgd2hlbiBhIGZsZXhjYW4gbmV0IGRldmljZSAqZXhpc3RzKi4gV2UgYWNjZXNzIHRoZSBCRVJSIGNvdW50ZXIgdGhyb3VnaCBgY2FuX2dldF9iZXJyX2NvdW50ZXJgLCB0eXBpY2FsbHkgZnJvbSBhIGlvY3RsLiBCdXQgc2luY2Ugd2UgY2Fubm90IGluc3RhbnRpYXRlIHRoaXMgbmV0IGRldmljZSBpbiBhIHN0YW5kYXJkIGFtZDY0IGVudmlyb25tZW50LCB0aGlzIGlzIGVmZmVjdGl2ZWx5ICp1bnJlYWNoYWJsZSogY29kZSwgZXZlbiBpZiBpdCdzIHRoZXJlIGluIHRoZSBzb3VyY2UuXG5cblNvLCBqdXN0IHRvIGJlIGFic29sdXRlbHkgY2xlYXI6IFRhcmdldCBhcmNoaXRlY3R1cmU6IGFtZDY0LiBQYXRjaCBtb2RpZmllcyBgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyYC4gUmVzdWx0OiBgV29ydGhGdXp6aW5nID0gZmFsc2VgLiBgRm9jdXNTeW1ib2xzID0gW11gLCBubyBuZWVkIGZvciBzcGVjaWZpYyBgRW5hYmxlQ29uZmlnc2AuIFRoZSByZWFzb25pbmcgaXMgY2xlYXI6IEZsZXhDQU4gaXMgdW5yZWFjaGFibGUgaGFyZHdhcmUgaW4gb3VyIHN0YW5kYXJkIGFtZDY0IHZpcnR1YWxpemVkIGVudmlyb25tZW50LiBUaGlzIGlzIGEgc29saWQgXCJuby5cIiBJdCdzIG5vdCBhIHJlbGV2YW50IHRhcmdldCBmb3IgZnV6emluZyBpbiB0aGlzIGNvbnRleHQuIExldCdzIGNhbGwgdGhlIHJlc3VsdHMgYW5kIG1vdmUgb24uXG5cblxuIiwiSW5wdXRUb2tlbnMiOjQ2MjMyLCJPdXRwdXRUb2tlbnMiOjEyOSwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjkwMCwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOS0xNVQwNzo0NzoyOS40ODM3MzU3MDRaIiwiU2VxIjo0MiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoic2V0LXJlc3VsdHMiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjozMDMyMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkVuYWJsZUNvbmZpZ3NcIjogW10sXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIlJlYXNvbmluZ1wiOiBcIlRoZSBwYXRjaCBtb2RpZmllcyBmbGV4Y2FuX2dldF9iZXJyX2NvdW50ZXIoKSBpbiBkcml2ZXJzL25ldC9jYW4vZmxleGNhbi9mbGV4Y2FuLWNvcmUuYy4gRmxleENBTiBpcyBhbiBvbi1jaGlwIENBTiBjb250cm9sbGVyIGludGVncmF0ZWQgaW50byBGcmVlc2NhbGUvTlhQIFNvQ3MgKEFSTSwgUG93ZXJQQywgQ29sZEZpcmUpIGFuZCBiaW5kcyBleGNsdXNpdmVseSB2aWEgcGxhdGZvcm0vT0YgbWF0Y2hpbmcuIEl0IHJlcXVpcmVzIHBoeXNpY2FsIFNvQyBoYXJkd2FyZSBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVSBvciBHQ0UgdmlydHVhbCBlbnZpcm9ubWVudHMgb24gYW1kNjQuIENvbnNlcXVlbnRseSwgdGhlIG1vZGlmaWVkIGNvZGUgaXMgc3RydWN0dXJhbGx5IHVucmVhY2hhYmxlLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgZmxleGNhbl9nZXRfYmVycl9jb3VudGVyKCkgaW4gZHJpdmVycy9uZXQvY2FuL2ZsZXhjYW4vZmxleGNhbi1jb3JlLmMuIEZsZXhDQU4gaXMgYW4gb24tY2hpcCBDQU4gY29udHJvbGxlciBpbnRlZ3JhdGVkIGludG8gRnJlZXNjYWxlL05YUCBTb0NzIChBUk0sIFBvd2VyUEMsIENvbGRGaXJlKSBhbmQgYmluZHMgZXhjbHVzaXZlbHkgdmlhIHBsYXRmb3JtL09GIG1hdGNoaW5nLiBJdCByZXF1aXJlcyBwaHlzaWNhbCBTb0MgaGFyZHdhcmUgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUgb3IgR0NFIHZpcnR1YWwgZW52aXJvbm1lbnRzIG9uIGFtZDY0LiBDb25zZXF1ZW50bHksIHRoZSBtb2RpZmllZCBjb2RlIGlzIHN0cnVjdHVyYWxseSB1bnJlYWNoYWJsZS5cIixcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA5LTE1VDA3OjQ3OjI5LjQ4Mzc3MDY2NFoiLCJTZXEiOjQzLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6IklmIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MjUzMCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH1dOwoJCQlpZiAoIXJhd0RhdGEgfHwgcmF3RGF0YS5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpOwoJCQlkcmF3RHVyYXRpb25DaGFydChyYXdEYXRhKTsKCQkJZHJhd1Rva2VuQ29uc3VtcHRpb25DaGFydChyYXdEYXRhKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdTdW1tYXJ5VGFibGVzKHJhd0RhdGEpIHsKCQkJY29uc3Qgc3RhdHMgPSB7CgkJCQlsbG06IHsgY291bnQ6IDAsIHRva2VuczogMCwgZHVyYXRpb246IDAgfSwKCQkJCXRvb2w6IHsgY291bnQ6IDAsIGR1cmF0aW9uOiAwIH0KCQkJfTsKCgkJCXJhd0RhdGEuZm9yRWFjaChzID0+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-workflowtghr2[1] Phase: Running StartedAt: 2026-09-15 07:47:41 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowtghr2[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-09-15 07:47:41 +0000 UTC FinishedAt: 2026-09-15 07:47:45 +0000 UTC Input: &Inputs{Parameters:[]Parameter{Parameter{Name:code,Default:nil,Value:*1,ValueFrom:nil,GlobalName:,Enum:[],Description:nil,},},Artifacts:[]Artifact{},} Output: &Outputs{Parameters:[]Parameter{},Artifacts:[]Artifact{},Result:nil,ExitCode:*1,}