Name: series-workflowm58nc Phase: Failed StartedAt: 2026-08-25 11:50:33 +0000 UTC FinishedAt: 2026-08-25 12:12:44 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm58nc[0] Phase: Succeeded StartedAt: 2026-08-25 11:50:33 +0000 UTC FinishedAt: 2026-08-25 12:12:34 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm58nc[0].run-triage Phase: Succeeded StartedAt: 2026-08-25 11:50:33 +0000 UTC FinishedAt: 2026-08-25 12:12:34 +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+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjkwYmQ1YTMyOGRiZDM4OWMyOGQxODljNDI4YmQ5NDMxNzcyMjg3ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDI1IDEyOjA5OjIxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDBlZWJjODE4MmNhOWEuLjRkMzgyOWU0MjIwZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC0zMjA3LDggJiM0MzszMjA3LDEwIEBAIHZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Zmxvdy1cdTAwM2V0c2YgPSBsZTY0X3RvX2NwdSh0d3RfYWdydC1cdTAwM2V0d3QpO1xuIFxuIFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXHUwMDI2bXN0YS1cdTAwM2V2aWYtXHUwMDNlZGVmbGluaywgZmxvdyxcbi1cdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSlcbiYjNDM7XHRcdFx0XHQgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpIHtcbiYjNDM7XHRcdGxpc3RfZGVsKFx1MDAyNmZsb3ctXHUwMDNlbGlzdCk7XG4gXHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcdH1cbiBcbiBcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUO1xuIFx0ZGV2LVx1MDAzZXR3dC50YWJsZV9tYXNrIHw9IEJJVCh0YWJsZV9pZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI5MGJkNWEzMjhkYmQzODljMjhkMTg5YzQyOGJkOTQzMTc3MjI4N2QKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAyNSAxMjowOToyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKaW5kZXggMGVlYmM4MTgyY2E5YS4uNGQzODI5ZTQyMjBkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTMyMDcsOCAmIzQzOzMyMDcsMTAgQEAgdm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJZmxvdy0mZ3Q7dHNmID0gbGU2NF90b19jcHUodHd0X2FncnQtJmd0O3R3dCk7CiAKIAlpZiAobXQ3OTk2X21jdV90d3RfYWdydF91cGRhdGUoZGV2LCAmYW1wO21zdGEtJmd0O3ZpZi0mZ3Q7ZGVmbGluaywgZmxvdywKLQkJCQkgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpCiYjNDM7CQkJCSAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSkgewomIzQzOwkJbGlzdF9kZWwoJmFtcDtmbG93LSZndDtsaXN0KTsKIAkJZ290byB1bmxvY2s7CiYjNDM7CX0KIAogCXNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUOwogCWRldi0mZ3Q7dHd0LnRhYmxlX21hc2sgfD0gQklUKHRhYmxlX2lkKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNgLiBMb29rcyBsaWtlIGl0JiMzOTtzIHRvdWNoaW5nIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgLiBTcGVjaWZpY2FsbHksIHRoZXkmIzM5O3JlIGFkZGluZyBgbGlzdF9kZWwoJmFtcDtmbG93LSZndDtsaXN0KTtgIGlmIGBtdDc5OTZfbWN1X3R3dF9hZ3J0X3VwZGF0ZWAgZmFpbHMuIEludGVyZXN0aW5nLiBBIGZhaWx1cmUgaGFuZGxpbmcgcGF0aC4uLiB0aGF0JiMzOTtzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIGEgcG90ZW50aWFsIGZ1enogdGFyZ2V0LgoKTm93LCBteSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZCBlZmZlY3RpdmVseT8gTGV0JiMzOTtzIHNlZS4uLiBpdCYjMzk7cyBgbXQ3Ni9tdDc5OTZgLCBzbyBhIE1lZGlhVGVrIHdpcmVsZXNzIGRyaXZlci4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBpcyBhIFBDSWUgb3IgVVNCIGRyaXZlciwgc2luY2UgdGhvc2UgdHlwaWNhbGx5IHByZXNlbnQgZGlmZmVyZW50IGF0dGFjayBzdXJmYWNlcy4gUXVpY2sgY2hlY2suLi4gTGV0JiMzOTtzIGxvb2sgaW5zaWRlIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnkgYW5kIHNlZSB3aGF0IGNsdWVzIGl0IG9mZmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MTMKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBgbXQ3OTk2X2luaXRgKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhlIE1UNzk5Ni4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBsb3ctbGV2ZWwgc3R1ZmYsIHNvIEkmIzM5O20gaGVhZGluZyBkaXJlY3RseSB0byB0aGUgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbiB3aXRoaW4gYG1taW8uY2AuIFRpbWUgdG8gc2VlIGV4YWN0bHkgd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIG1lbW9yeS1tYXBwZWQgSS9PIGR1cmluZyB0aG9zZSBjcnVjaWFsIGZpcnN0IHN0ZXBzLiBJIHdhbnQgdG8gc2VlIGlmIGFueXRoaW5nIGp1bXBzIG91dCDigJMgbWF5YmUgYSByZWdpc3RlciBhY2Nlc3MgcGF0dGVybiB0aGF0JiMzOTtzIGluZWZmaWNpZW50LCBvciBwZXJoYXBzIGEgY29uZmlndXJhdGlvbiBzZXF1ZW5jZSB0aGF0IGxvb2tzIGxpa2UgaXQgY291bGQgYmUgc3RyZWFtbGluZWQuIEdvdHRhIG1ha2Ugc3VyZSB3ZSYjMzk7cmUgZ2V0dGluZyB0aGUgYmVzdCBwb3NzaWJsZSBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5IGZyb20gdGhlIGdldC1nby4gTm8gcG9pbnQgaW4gb3B0aW1pemluZyB0aGUgaGlnaGVyLWxldmVsIGZ1bmN0aW9ucyBpZiB0aGUgZm91bmRhdGlvbiBpc24mIzM5O3Qgc29saWQuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIG9wcG9ydHVuaXRpZXMgZm9yIGZ1cnRoZXIgb3B0aW1pemF0aW9uLCBvciBwb3RlbnRpYWxseSB3aGVyZSBzdWJ0bGUgYnVncyBtaWdodCBsdXJrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NzA9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwOmludCBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgaW50IGlkeCwgaW50IG5fZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExLVx0XHRcdCAgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODItXHRpZiAoaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODM6XHRcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcdTAwMjZkZXYtXHUwMDNlcGh5LCBNVF9UWFFfSUQoMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODQtXHRcdFx0XHRcdCAgICBNVDc5OTZfTlBVX1RYX1JJTkdfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODctXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODg6XHRcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcdTAwMjZkZXYtXHUwMDNlcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg5LVx0XHRcdFx0XHQgICAgTVRfVFhRX0lEKGRldi1cdTAwM2VtcGh5LmJhbmRfaWR4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MzQ5PXN0YXRpYyB2b2lkIG10Nzk5Nl9sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozNTg6c3RhdGljIHZvaWQgX19tdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU5LVx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4Mzp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODgtXHRpZiAocGh5LVx1MDAzZW10NzYtXHUwMDNlY2FwLmhhc18yZ2h6KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4OTpcdFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlc2JhbmRfMmcuc2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5MC1cdGlmIChwaHktXHUwMDNlbXQ3Ni1cdTAwM2VjYXAuaGFzXzVnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzkxOlx0XHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzYmFuZF81Zy5zYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzkyLVx0aWYgKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWNhcC5oYXNfNmdoeilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTM6XHRcdF9fbXQ3OTk2X2luaXRfdHhwb3dlcihwaHksIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXNiYW5kXzZnLnNiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOTc9bXQ3OTk2X3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxMTpcdFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxMi1cdFx0cGh5LVx1MDAzZW10NzYtXHUwMDNlZGZzX3N0YXRlID0gTVRfREZTX1NUQVRFX1VOS05PV047XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQxNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxODptdDc5OTZfaW5pdF93aXBoeV9iYW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3My1cdG10Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDc0Olx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjU1NDpcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoaHcsIFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY4Mj1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzMzLVx0LyogaW5pdCB3aXBoeSBhY2NvcmRpbmcgdG8gbXBoeSBhbmQgcGh5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzM0Olx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChtcGh5LVx1MDAzZWh3LCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc0ODpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKG1waHktXHUwMDNlcHJpdiwgTVRfVFhRX0lEKGJhbmQpLCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0OS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoYmFuZCkgJiM0MzsgaGlmMV9vZnMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTc3ND1tdDc5OTZfdW5yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc4MDpzdGF0aWMgdm9pZCBtdDc5OTZfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMjEzPXN0YXRpYyBpbnQgbXQ3OTk2X3ZhcmlhbnRfZmVtX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjU2OnN0YXRpYyBpbnQgbXQ3OTk2X2luaXRfaGFyZHdhcmUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjY2Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2Vpbml0X3dvcmssIG10Nzk5Nl9pbml0X3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjctXHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXdlZF9ycm8ud29yaywgbXQ3OTk2X3dlZF9ycm9fd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE0Mjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDI4Om10Nzk5Nl9pbml0X2hlX2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDI5LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTU1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1NTc6bXQ3OTk2X2luaXRfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTU4LVx0XHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE2ODc9X19tdDc5OTZfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA2LVx0XHRkYXRhW25dLnR5cGVzX21hc2sgPSBCSVQoaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwNzpcdFx0bXQ3OTk2X2luaXRfaGVfY2FwcyhwaHksIGJhbmQsIFx1MDAyNmRhdGFbbl0sIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3MDg6XHRcdG10Nzk5Nl9pbml0X2VodF9jYXBzKHBoeSwgYmFuZCwgXHUwMDI2ZGF0YVtuXSwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTczMT1pbnQgbXQ3OTk2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3NTA6XHRyZXQgPSBtdDc5OTZfaW5pdF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3NTQ6XHRtdDc5OTZfaW5pdF93aXBoeShodywgXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc4MjpcdHJldCA9IG10Nzk5Nl9pbml0X2RlYnVnZnMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzgzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0yMjIwPW10Nzk5Nl9tYWNfcmVzdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzMjgtXHRtdDc5OTZfZm9yX2VhY2hfcGh5KGRldiwgcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMyOTpcdFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMzMC1cdHJldCA9IG10Nzk5Nl90eGJmX2luaXQoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTY2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTY3Om10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgbXQ3OTk2X3ZpZl9saW5rICptbGluaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xNjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yOTI9aW50IG10Nzk5Nl92aWZfbGlua19hZGQoc3RydWN0IG10NzZfcGh5ICptcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MzY0Olx0bXQ3OTk2X2luaXRfYml0cmF0ZV9tYXNrKHZpZiwgbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMzY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04Njkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTc6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk4LVx0XHRcdCAgaW50IG5fZGVzYywgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6Njk5OnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTcwMC1pbnQgbXQ3OTk2X3R4YmZfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05MTM9dm9pZCBtdDc5OTZfdXBkYXRlX2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjkxNDppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkxNS12b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkxNAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbXQ3OTk2IFdpLUZpIDcgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtdDc5OTZgIGRyaXZlciwgd2hpY2ggZnJvbSB0aGUgbmFtZSwgSSYjMzk7bSBwcmV0dHkgc3VyZSBpcyBhIE1lZGlhVGVrIFdpLUZpIDcgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvYmUgc2VxdWVuY2UuIEkgc2VlIGBtdDc5OTZfbW1pb19wcm9iZWAgYmVpbmcgdXNlZCwgYW5kIHRoYXQmIzM5O3MgcHJvYmFibHkgYmVpbmcgY2FsbGVkIGZyb20gYG10Nzk5Nl9wY2lfcHJvYmVgLiBHaXZlbiB0aGUgbmFtZSwgYG10Nzk5Nl9wY2lfcHJvYmVgLCBJJiMzOTttIGd1ZXNzaW5nIHRoYXQgZnVuY3Rpb24gaXMgbGlrZWx5IGRlZmluZWQgaW4gYHBjaS5jYC4gVGltZSB0byB2ZXJpZnkgdGhhdCBhbmQgc2VlIGhvdyB0aGUgUENJIGRldmljZSBpcyBiZWluZyBpbml0aWFsaXplZC4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoZSBtb2R1bGUgbG9hZCBzZXF1ZW5jZSwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGRldmljZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIHRvIGdldCBhIHByb3BlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXImIzM5O3Mgb3BlcmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9wY2lfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9Nzk9c3RhdGljIGludCBtdDc5OTZfcGNpX2hpZjJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzo5OTpzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMDAtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNDQ9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ2LVx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ3Olx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0OC1cdC5yZW1vdmVcdFx0PSBtdDc5OTZfaGlmX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUzLVx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU0Olx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NS1cdC5yZW1vdmVcdFx0PSBtdDc5OTZfcGNpX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Nzg0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBTdWl0YWJpbGl0eSBvZiBhIFdpLUZpIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBQQ0kgZHJpdmVyLCBhbmQgdGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyOiBpZiB0aGUgcGF0Y2ggaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCBuZWVkICphY3R1YWwqIGhhcmR3YXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIFFFTVUsIHRoZW4gaXQmIzM5O3MgYSBuby1nbyBmb3IgZnV6emluZy4gUmlnaHQsIGdvdCBpdC4KCk5vdywgdGhpcyBkcml2ZXLigKYgaXQmIzM5O3MgZm9yIFdpLUZpLiBTcGVjaWZpY2FsbHksIGBtdDc5OTZgLCBhIE1lZGlhVGVrIFdpLUZpIDcgUENJZSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBJIHRoaW5rLCAqRG9lcyB0aGlzIHJlcXVpcmUgYSBwaHlzaWNhbCBNZWRpYVRlayBjYXJkPyogVGhlIGFuc3dlciBzZWVtcyB0byBiZSB5ZXMsIHdoaWNoIGlzIGEgYmlnIGZsYWcuIENhbiBpdCBiZSBmdXp6ZWQgaW4gYSBRRU1VIGVudmlyb25tZW50IGFzIGlzPwoKSSYjMzk7bSB0aGlua2luZyBhYm91dCBgbWFjODAyMTFfaHdzaW1gIHdoaWNoIGlzIHVzZWQgZm9yIFdpLUZpIGVtdWxhdGlvbiwgYnV0IHRoaXMgaXMgYSAqc3BlY2lmaWMqIGhhcmR3YXJlIGRyaXZlciwgbmFtZWx5IGBtdDc2YC4gQ2FuIHRoaXMgYG10NzZgIGRyaXZlciBiZSBmdXp6ZWQgdGhyb3VnaCBzb2Z0d2FyZSBlbXVsYXRpb24/IFR5cGljYWxseSwgSSBrbm93IHRoYXQgUENJIFdpLUZpIGRyaXZlcnMgbGlrZSBgaXdsd2lmaWAsIGBhdGgxMGtgLCBhbmQgYG10NzZgIGFyZW4mIzM5O3QgZWFzaWx5IGZ1enplZCB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBraW5kIG9mIFBDSSBlbXVsYXRpb24gc2V0dXAgb3IgaWYgaXQmIzM5O3MgYSBVU0IgZHJpdmVyIHdoaWNoIHdvcmtzIHdpdGggdGhlIFVTQiBkdW1teSBgZHVtbXlfaGNkYC4KClRoZW4gSSByZW1lbWJlciBTeXprYWxsZXIuIERvZXMgU3l6a2FsbGVyIGV2ZW4gZnV6eiBQQ0kgZHJpdmVycz8gWWVzLCBpdCBkb2VzIGhhdmUgc29tZSBzdXBwb3J0LCBwb3RlbnRpYWxseSB0aHJvdWdoIGB2ZmlvYCBvciBwc2V1ZG8tUENJIGRldmljZXMuIEJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljYWxseSBzYXkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVycyB1c3VhbGx5IG5lZWQgYWN0dWFsIGhhcmR3YXJlIG9yIHZlcnkgc3BlY2lmaWMgUUVNVSBlbXVsYXRpb24uCgpTbywgd2hlcmUgZG9lcyB0aGF0IGxlYXZlIGBtdDc2YD8gSSBoYXZlIHRvIGxvb2sgZm9yIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LCBvciBjaGVjayBmb3IgcmVhY2hhYmlsaXR5LgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjaywgYW5kIHJlYWQgdGhlIGluc3RydWN0aW9ucyBhZ2FpbjogJiMzNDt2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4mIzM0OyBBIFdpLUZpIGRyaXZlciBpcyAqbm90KiBhICYjMzQ7U21hcnROSUMsJiMzNDsgYnV0IGl0ICppcyogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIuCgpCdXQgd2FpdCEgU3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgV2ktRmkgZHJpdmVycywgaWYgdGhleSYjMzk7cmUgVVNCIGRyaXZlcnMsIG9yIGlmIHRoZXkmIzM5O3JlIG9uIGEgdmlydHVhbCBidXMuIE9rYXksIHRoaXMgaXMga2V5LiBOb3csIGxldCBtZSBjaGVjayBpZiBgbXQ3OTk2YCAqY2FuKiBiZSB1c2VkIGFzIGEgVVNCIGRyaXZlci4gVGhpcyBtaWdodCBiZSB0aGUgcGF0aCB0byBmdXp6aW5nIHRoaXMgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl91c2JfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5ODIxCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTg5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgQnVnIFJlcG9ydCoqCgpPa2F5LCBmaXJzdCB0aG91Z2h0OiBpcyB0aGlzIGV2ZW4gYSBQQ0kgaXNzdWU/IFRoZSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc3VjaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHNpbWlsYXIgZGV2aWNlIGRyaXZlcnMuIEJ1dCB3YWl0LCAqZG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGhhdmUgYSBjb21wcmVoZW5zaXZlIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZ2V0IGRlZXAgZW5vdWdoIGludG8gdGhlIGBtdDc2YCBXaS1GaSBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlPyBVc3VhbGx5LCB0aGF0JiMzOTtzIGEgdG91Z2ggYXNrLiBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBQQ0kgZnV6emVyIHRoYXQmIzM5O3MgdGhhdCByb2J1c3QuCgpUaGVuIEkgc2VlICYjMzQ7c3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OyYjMzQ7IGluIHRoZSBjb21taXQgbWVzc2FnZS4gSG9sZCBvbi4uLiBpZiBzeXpib3QgZm91bmQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdyEgVGhhdCBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEl0IG1lYW5zIHRoZSBmdXp6ZXIgcGF0aCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgZXhpc3RzLgoKTm93IHRoZSByZWFsIHF1ZXN0aW9uOiBob3cgKmRpZCogc3l6LWNsdXN0ZXIgdHJpZ2dlciB0aGlzIGJ1ZyBpbiBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBJcyBgbXQ3OTk2YCBwdXJlbHkgUENJLCBvciBpcyB0aGVyZSBhbm90aGVyIGJ1cyBpbnZvbHZlZD8gRG9lcyBpdCBwcm9iZSB0aHJvdWdoIHRoZSBwbGF0Zm9ybSBidXM/IFNESU8/IEtub3dpbmcgaG93IHRoZSBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBoYXJkd2FyZSBpcyBjcml0aWNhbCB0byByZXByb2R1Y2luZyBhbmQgdWx0aW1hdGVseSBmaXhpbmcgdGhpcyBidWcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBlbnRyeSBwb2ludCB0aGUgZnV6emVyIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAzNTYKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4uLgoKKipBbmFseXppbmcgUHJvYmUgRnVuY3Rpb25zIGZvciB0aGUgbXQ3OTk2IERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBgbXQ3OTk2X21taW9fcHJvYmVgIGlzIGEgY3J1Y2lhbCBmdW5jdGlvbiBoZXJlLiBUaGUgaW50ZXJlc3RpbmcgdGhpbmcgaXMgd2hlcmUgaXQmIzM5O3MgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMuIFNvLCBmcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGBtdDc5OTZfbW1pb19wcm9iZWAgaXNuJiMzOTt0IGp1c3QgZmxvYXRpbmcgYXJvdW5kLiBJdCYjMzk7cyBpbnZva2VkIHNwZWNpZmljYWxseSBmcm9tIGJvdGggYG10Nzk5Nl9wY2lfcHJvYmVgICphbmQqIGBtdDc5OTZfc29jX3Byb2JlYC4gVGhhdCBzdWdnZXN0cyBhIHNoYXJlZCBpbml0aWFsaXphdGlvbiBwYXRoLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCByZXNvdXJjZSBhbGxvY2F0aW9uIGFuZCBiYXNpYyBoYXJkd2FyZSBzZXR1cCB0aGF0JiMzOTtzIGNvbW1vbiB3aGV0aGVyIGl0JiMzOTtzIGEgUENJIGRldmljZSBvciBhIFN5c3RlbS1vbi1DaGlwIGludGVncmF0aW9uLiBJIHdvbmRlciBob3cgdGhlIGRyaXZlciBkaWZmZXJlbnRpYXRlcyB0aGUgdHdvLCBpZiBhdCBhbGwuIEl0IG1lYW5zIEkgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB3aGF0IHByZWNvbmRpdGlvbnMgZWFjaCBvZiB0aG9zZSBwcm9iZSBmdW5jdGlvbnMgc2V0cyB1cCBiZWZvcmUgY2FsbGluZyB0aGUgTU1JTyBvbmUuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbW1vbmFsaXRpZXMgYW5kIHRoZSBkaWZmZXJlbmNlcyBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaGFuZGxlcyB0aGUgYG10Nzk5NmAgaW4gZGlmZmVyZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLiBJIGFsc28gbmVlZCB0byBzZWUgaWYgaXQgaW1wbGllcyBhbnkgcG90ZW50aWFsIGZvciBhYnN0cmFjdGlvbiBhbmQgc2hhcmVkIGNvZGUgbGF0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3NvY19wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzI1CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyB0aGUgQ2FsbGVycyBvZiBgbXQ3OTk2X21taW9fcHJvYmVgKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgY2FsbGluZyBgbXQ3OTk2X21taW9fcHJvYmVgLiBUaGlzIHN1Z2dlc3RzIGEgZGVlcGVyIGRpdmUgaW50byB0aGUgaW5pdGlhbGl6YXRpb24gb3IgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2UgcmVsYXRlZCB0byB0aGUgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIHByb2JhYmx5IG1lYW5zIGRpZ2dpbmcgaW50byB0aGUgTU1JTyAoTWVtb3J5LU1hcHBlZCBJL08pIGFzcGVjdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGBwcm9iZWAgZnVuY3Rpb24gaXMgYmVpbmcgdXNlZC4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBzdGFydGluZyBwb2ludCBmb3IgZmlndXJpbmcgb3V0IGFueSBkZXZpY2UgZHJpdmVyIGJlaGF2aW9yLiBUaW1lIHRvIGNyYWNrIG9wZW4gYG1taW8uY2AgYW5kIGh1bnQgZm9yIHRoZSBjYWxsZXJzISBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgdGhlIGJyb2FkZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X21taW9fcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTc5Mj1pcnFyZXR1cm5fdCBtdDc5OTZfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODE2OnN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgxNy1cdFx0XHRcdCAgICAgdm9pZCBfX2lvbWVtICptZW1fYmFzZSwgdTMyIGRldmljZV9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02NzA9ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcyOnN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjczLVx0XHRcdFx0ICAgICB2b2lkIF9faW9tZW0gKm1lbV9iYXNlLCB1MzIgZGV2aWNlX2lkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz05OT1zdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MTMzOlx0ZGV2ID0gbXQ3OTk2X21taW9fcHJvYmUoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMzQtXHRcdFx0XHRpZC1cdTAwM2VkZXZpY2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTUzNwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDM0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZWJ1Z2dpbmcgdGhlIGBtdDc5OTZfcGNpX3Byb2JlYCBDYWxsKioKCk9rYXksIHNvIGBtdDc5OTZfcGNpX3Byb2JlYCBpcyB0aGUgb25seSBjYWxsZXIuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaG93IGRpZCBzeXpib3QgZ2V0IGhlcmU/IExldCBtZSB0aGluay4uLiBDb3VsZCB0aGlzIGJlIHRocm91Z2ggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQmIzM5O3MgY29tcGxldGVseSBzZXBhcmF0ZS4gSGFuZyBvbi4uLiBjb3VsZCBpdCBiZSBzb21lIHNvcnQgb2YgYHN5el9wY2lfc2V0dXBgIHBzZXVkby1zeXNjYWxsPyBObywgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGluIGNlcnRhaW4gYnJhbmNoZXMsIG9yIG1heWJlIGl0IHVzZXMgYHZmaW9gIHNvbWVob3c/CgpSaWdodCwgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLCBzbyBpdCBoYXMgdG8gYmUgcHJvYmVkIHNvbWVob3cuIElzIGl0IHZpYSBgcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyYCBvciBgcGNpX3JlZ2lzdGVyX2RyaXZlcmA/IEFuZCBob3cgaXMgc3l6a2FsbGVyIGhpdHRpbmcgaXQ/IENvdWxkIGl0IGJlIGZ1enppbmcgdXNpbmcgdGhlIGB2aGNpYCBvciBgZHVtbXlgIFBDSSBpbnRlcmZhY2VzPwoKSG9sZCBvbi4uLiBJJiMzOTttIGNvbmZ1c2luZyBteXNlbGYuIEkgd2FzIHN1cmUgdGhlcmUgd2FzbiYjMzk7dCBhIGBzeXpfcGNpX3NldHVwYCBwc2V1ZG8tc3lzY2FsbC4uLiBidXQgSSBzaG91bGQgZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgaW5zdHJ1Y3Rpb25zLiBBaCwgdGhlIGluc3RydWN0aW9ucyBzcGVjaWZ5OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKU28sIGlzIGBtdDc2YCBlbXVsYXRlZCBpbiBRRU1VPyBOby4gQnV0IHdhaXQsIHN5emthbGxlciAqY2FuKiBmdXp6IFdpLUZpIGRyaXZlcnMgaWYgdGhleSBhcmUgVVNCLiBJIHJlbWVtYmVyIHRoYXQsIGFuZCBgbXQ3NmAgaGFzIFVTQiBkcml2ZXJzLCBidXQgYG10Nzk5NmAgaXMgUENJLgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhIGJpdC4gSXMgYG10Nzk5NmAgcG90ZW50aWFsbHkgYSBwbGF0Zm9ybSBkcml2ZXI/IExldCBtZSBjaGVjayB0aGUgYHBsYXRmb3JtX2RyaXZlcmAgc3RydWN0dXJlLi4uIHRoYXQmIzM5O3MgdGhlIG5leHQgYXZlbnVlIHRvIGV4cGxvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIzNDQKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA0NzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKgoKT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4gTXkgZmlyc3QgdGhvdWdodCBpczogd2FpdCwgZG9lcyBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBhY3R1YWxseSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGBtYWM4MDIxMWA/IFJpZ2h0LCBpdCYjMzk7cyBhIGNhbGxiYWNrIHNwZWNpZmljYWxseSBmb3IgYGFkZF90d3Rfc2V0dXBgLiBCdXQsIGlmIHRoZSBXaS1GaSBkcml2ZXIgaXNuJiMzOTt0IGFjdHVhbGx5IHByb2JlZCwgdGhlbiB0aGF0IGNhbGxiYWNrIHdpbGwgKm5ldmVyKiBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYCwgYW5kIHRoZXJlZm9yZSwgY29tcGxldGVseSB1bnJlYWNoYWJsZS4KClNvLCBob3cgaW4gdGhlIHdvcmxkIGNvdWxkIHN5emthbGxlciBwb3NzaWJseSB0cmlnZ2VyIHRoaXM/IFBlcmhhcHMgc3l6a2FsbGVyIGRpZG4mIzM5O3QgYWN0dWFsbHkgZGlzY292ZXIgYSBidWcgaGVyZSwgYW5kIGl0JiMzOTtzIGp1c3QgdGhhdCB0aGUgcGF0Y2ggd2FzIGF1dGhvcmVkIGJ5IGBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7YC4gVGhpcyBjb3VsZCBiZSBhIHRlc3QgcGF0Y2gsIG9yIGl0IG1pZ2h0IGJlIGEgcGF0Y2ggYmVpbmcgdGVzdGVkIGZyb20gYSBtYWlsaW5nIGxpc3QgYnkgdGhlIHN5ei1jbHVzdGVyLiBBaCEgVGhhdCYjMzk7cyBpdCEgVGhlIGxvZyBlbnRyeSBzYXlzICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoaXMgbWVhbnMgdGhlIHBhdGNoIGlzIGp1c3QgYmVpbmcgdGVzdGVkIGJ5IHRoZSBjbHVzdGVyLiBJdCBkb2VzbiYjMzk7dCBtZWFuIHN5emthbGxlciBmb3VuZCBhbiBhY3R1YWwgYnVnIHdpdGhpbiB0aGlzIHNwZWNpZmljIGNvZGUuIFRoaXMgcGF0Y2ggbWlnaHQgaGF2ZSBiZWVuIHN1Ym1pdHRlZCBieSBhIGRldmVsb3BlciwgYW5kIGBzeXotY2x1c3RlcmAgaXMgc2ltcGx5IHRlc3RpbmcgaXQsIGxpa2VseSB3aXRoIHNvbWUgZnV6emluZyBjYW1wYWlnbnMuCgpMZXQmIzM5O3MgY29uc2lkZXIgdGhlIGhhcmR3YXJlLiBJZiB0aGlzIGNvZGUgaXMgYnVyaWVkIHdpdGhpbiBhIFBDSWUgV2ktRmkgZHJpdmVyIHRoYXQgYWJzb2x1dGVseSAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJiMzOTt0IGVtdWxhdGVkIGluIFFFTVUsIHRoZW4gc3l6a2FsbGVyLCBydW5uaW5nIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgd2lsbCBuZXZlciB0b3VjaCBpdC4gSSYjMzk7ZCBiZXR0ZXIgY29uZmlybSB3aGV0aGVyIGBtdDc5OTZgIGNhbiBldmVuIGJlIHByb2JlZCBpbiBhIFFFTVUgc2V0dXAuCgpEb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYG10Nzk5NmA/IE5vLCBsZXQmIzM5O3Mgc2VlLiBRRU1VIGVtdWxhdGVzIHNldmVyYWwgRXRoZXJuZXQgYWRhcHRlcnM6IGBlMTAwMGAsIGBydGw4MTM5YCwgYHZpcnRpby1uZXRgLCBgbmUya19wY2lgLCBgcGNuZXRgLCBgaTgyNTU5ZXJgLCBgdm14bmV0M2AsIGB0dWxpcGAsIGBlMTAwMGVgLCBgcm9ja2VyYCwgYGlnYmAuIEJ1dCB0aGVyZSYjMzk7cyBub3RoaW5nIG9uIHRoZSBsaXN0IGZvciBNZWRpYVRlayBXaS1GaSBjYXJkcyEgVGhlcmVmb3JlLCBgbXQ3OTk2X3BjaV9wcm9iZWAgd2lsbCBuZXZlciBzdWNjZWVkIGluIGEgdHlwaWNhbCBRRU1VIGVudmlyb25tZW50LgoKSWYgYG10Nzk5Nl9wY2lfcHJvYmVgIG5ldmVyIHN1Y2NlZWRzLCB0aGVyZSBpcyBubyB3YXkgaW4gaGVsbCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlLWNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBvdGhlciB3YXkgdG8gcHJvYmUgYG10Nzk5NmAuIElzIHRoZXJlIGEgYHVzYl9kcml2ZXJgIGFzc29jaWF0ZWQgd2l0aCBgbXQ3OTk2YCBvciBzb21lIG90aGVyIG1ldGhvZD8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2JfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM0ODQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgU0RJTyBEcml2ZXIgUHJlc2VuY2UgaW4gTVQ3OTk2KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYG10Nzk5NmAg4oCTIGEgc3BlY2lmaWMgV2ktRmkgY2hpcCwgcHJlc3VtYWJseSDigJMgYW5kIHRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzOiBkb2VzIHRoaXMgdGhpbmcgZXZlbiAqc3VwcG9ydCogU0RJTz8gTW9yZSBzcGVjaWZpY2FsbHksIGlzIHRoZXJlIGFuIFNESU8gZHJpdmVyIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSBvciBhY3RpdmUgd2l0aGluIHRoaXMgcGFydGljdWxhciBjaGlwJiMzOTtzIGNvZGUgYmFzZSBvciBkcml2ZXIgc2V0PyBJdCYjMzk7cyBhIHF1aWNrIHNhbml0eSBjaGVjaywgcmVhbGx5LiBLbm93aW5nIHdoZXRoZXIgU0RJTyBpcyAqZXZlbiBhIHBvc3NpYmlsaXR5KiBpcyB0aGUgY3J1Y2lhbCBpbml0aWFsIGZpbHRlci4gVGhpcyBpbmZvcm1zIGhvdyBJ4oCZbGwgcHJvY2VlZC4gSWYgdGhlcmUmIzM5O3Mgbm8gU0RJTyBjb21wb25lbnQsIEkgd2lsbCBpbW1lZGlhdGVseSBwaXZvdCB0byBpbnZlc3RpZ2F0ZSBhbHRlcm5hdGl2ZSBwaHlzaWNhbCBsYXllciBpbnRlcmZhY2VzIHN1Y2ggYXMgUENJZSBvciBVU0IuIElmLCBob3dldmVyLCB0aGVyZSBpcyBhbiBTRElPIGVsZW1lbnQsIHRoZSBpbnZlc3RpZ2F0aW9uIGludG8gZGV2aWNlIHRyZWUgYmluZGluZ3MsIGRyaXZlciBpbml0aWFsaXphdGlvbiwgYW5kIHVuZGVybHlpbmcgaGFyZHdhcmUgYmVoYXZpb3IgY2FuIGNvbW1lbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NkaW9fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM3NTIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhbiBleHBlcnQ6CgoqKlZpcnRpbyBEcml2ZXIgQ2hlY2sqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiAqSXMgdGhlcmUgYSBgdmlydGlvX2RyaXZlcmA/KiBJdCYjMzk7cyBhIHF1aWNrLCBmdW5kYW1lbnRhbCBjaGVjay4gSSYjMzk7bSBlc3NlbnRpYWxseSBzY2FubmluZyBteSBtZW50YWwgbWFwIG9mIHRoZSBzeXN0ZW0gcmlnaHQgbm93LiBXaXRob3V0IHRoYXQsIHdlJiMzOTtyZSBub3QgZ2V0dGluZyBhbnl3aGVyZSB3aXRoIHRoaXMgdmlydGlvIHRoaW5nLiBJdCYjMzk7cyB0aGUgYWJzb2x1dGUgYmVkcm9jaywgdGhlIHN0YXJ0aW5nIHBvaW50LiBJcyBpdCBsb2FkZWQ/IERlZmluZWQ/IFByZXNlbnQgYW5kIGFjY291bnRlZCBmb3IgaW4gdGhlIGRyaXZlciBtb2RlbD8gIEp1c3QgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gaXRzIGV4aXN0ZW5jZSBiZWZvcmUgSSBjYW4gbW92ZSB0byBhbnl0aGluZyBtb3JlIGNvbXBsZXguIEdvdHRhIGVuc3VyZSB0aGUgZm91bmRhdGlvbiBpcyB0aGVyZSwgb3IgSSYjMzk7bSBqdXN0IHNwaW5uaW5nIG15IHdoZWVscy4gU2ltcGxlIHF1ZXN0aW9uLCBidXQgaXQgZGljdGF0ZXMgdGhlIG5leHQgc3RlcHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmlydGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzOTc4CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS2VybmVsIE1vZHVsZSBFbXVsYXRpb24gQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGhhcHBlbmluZyB3aXRoaW4gdGhlIGtlcm5lbCBmb3IgdGhlIGBtdDc5OTZgIGhhcmR3YXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgbm8sIGJ1dCBJIHNob3VsZCBwcm9iYWJseSBjb25maXJtIHRoYXQgd2l0aCBhIHRob3JvdWdoIHNlYXJjaC4gV2FpdCBhIHNlY29uZCwgdGhlIGBtdDc5OTZgICpjb3VsZCogYmUgYSBwbGF0Zm9ybSBkcml2ZXIgb24gY2VydGFpbiBhcmNoaXRlY3R1cmVzLCByaWdodD8gVGhhdCB3b3VsZCBtZWFuIGl0JiMzOTtzIGluaXRpYWxpemVkIGRpZmZlcmVudGx5LiBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGhvdyB0aGUgbW9kdWxlIGlzIGluaXRpYWxpemVkIGFuZCB3aGVyZSB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlLiBMZXQgbWUgcnVuIHRoYXQgYG1vZHVsZV9pbml0YCBjaGVjayBhZ2Fpbi4gVGhlcmUgbWlnaHQgYmUgc29tZSBzdWJ0bGUgY2x1ZXMgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MzY4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYG10Nzk5Nl9pbml0YCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoZSBNVDc5OTYuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIHN0dWZmLCBzbyBJJiMzOTttIGhlYWRpbmcgZGlyZWN0bHkgdG8gdGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gd2l0aGluIGBtbWlvLmNgLiBUaW1lIHRvIHNlZSBleGFjdGx5IHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aCBtZW1vcnktbWFwcGVkIEkvTyBkdXJpbmcgdGhvc2UgY3J1Y2lhbCBmaXJzdCBzdGVwcy4gSSB3YW50IHRvIHNlZSBpZiBhbnl0aGluZyBqdW1wcyBvdXQg4oCTIG1heWJlIGEgcmVnaXN0ZXIgYWNjZXNzIHBhdHRlcm4gdGhhdCYjMzk7cyBpbmVmZmljaWVudCwgb3IgcGVyaGFwcyBhIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UgdGhhdCBsb29rcyBsaWtlIGl0IGNvdWxkIGJlIHN0cmVhbWxpbmVkLiBHb3R0YSBtYWtlIHN1cmUgd2UmIzM5O3JlIGdldHRpbmcgdGhlIGJlc3QgcG9zc2libGUgcGVyZm9ybWFuY2UgYW5kIHN0YWJpbGl0eSBmcm9tIHRoZSBnZXQtZ28uIE5vIHBvaW50IGluIG9wdGltaXppbmcgdGhlIGhpZ2hlci1sZXZlbCBmdW5jdGlvbnMgaWYgdGhlIGZvdW5kYXRpb24gaXNuJiMzOTt0IHNvbGlkLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyBvcHBvcnR1bml0aWVzIGZvciBmdXJ0aGVyIG9wdGltaXphdGlvbiwgb3IgcG90ZW50aWFsbHkgd2hlcmUgc3VidGxlIGJ1Z3MgbWlnaHQgbHVyay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg3MD1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODczOmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTEtXHRcdFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Mi1cdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpIFx1MDAyNlx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4MzpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NC1cdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4ODpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zNDk9c3RhdGljIHZvaWQgbXQ3OTk2X2xlZF9zZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM1ODpzdGF0aWMgdm9pZCBfX210Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zNTktXHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzgzOnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4OC1cdGlmIChwaHktXHUwMDNlbXQ3Ni1cdTAwM2VjYXAuaGFzXzJnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mzg5Olx0XHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzYmFuZF8yZy5zYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzkwLVx0aWYgKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWNhcC5oYXNfNWdoeilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTE6XHRcdF9fbXQ3OTk2X2luaXRfdHhwb3dlcihwaHksIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXNiYW5kXzVnLnNiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTItXHRpZiAocGh5LVx1MDAzZW10NzYtXHUwMDNlY2FwLmhhc182Z2h6KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MzpcdFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlc2JhbmRfNmcuc2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5NC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5Nz1tdDc5OTZfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDExOlx0XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEyLVx0XHRwaHktXHUwMDNlbXQ3Ni1cdTAwM2VkZnNfc3RhdGUgPSBNVF9ERlNfU1RBVEVfVU5LTk9XTjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDE3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDE4Om10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDczLVx0bXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0NzQ6XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDc4Om10Nzk5Nl9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy01NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU0Olx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChodywgXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTU1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03MzMtXHQvKiBpbml0IHdpcGh5IGFjY29yZGluZyB0byBtcGh5IGFuZCBwaHkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3MzQ6XHRtdDc5OTZfaW5pdF93aXBoeV9iYW5kKG1waHktXHUwMDNlaHcsIHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzM1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzQ4Olx0XHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMobXBoeS1cdTAwM2Vwcml2LCBNVF9UWFFfSUQoYmFuZCksIHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzQ5LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRShiYW5kKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9Nzc0PW10Nzk5Nl91bnJlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzgwOnN0YXRpYyB2b2lkIG10Nzk5Nl9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEyMTM9c3RhdGljIGludCBtdDc5OTZfdmFyaWFudF9mZW1faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNTY6c3RhdGljIGludCBtdDc5OTZfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNjY6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yaywgbXQ3OTk2X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2Ny1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby53b3JrLCBtdDc5OTZfd2VkX3Jyb193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTQyNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0Mjg6bXQ3OTk2X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0MjktXHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNTU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTU1NzptdDc5OTZfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1NTgtXHRcdCAgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY4Nz1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3MDYtXHRcdGRhdGFbbl0udHlwZXNfbWFzayA9IEJJVChpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzA3Olx0XHRtdDc5OTZfaW5pdF9oZV9jYXBzKHBoeSwgYmFuZCwgXHUwMDI2ZGF0YVtuXSwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwODpcdFx0bXQ3OTk2X2luaXRfZWh0X2NhcHMocGh5LCBiYW5kLCBcdTAwMjZkYXRhW25dLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1MDpcdHJldCA9IG10Nzk5Nl9pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1MS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1NDpcdG10Nzk5Nl9pbml0X3dpcGh5KGh3LCBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzgyOlx0cmV0ID0gbXQ3OTk2X2luaXRfZGVidWdmcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMyOC1cdG10Nzk5Nl9mb3JfZWFjaF9waHkoZGV2LCBwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzI5Olx0XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzMwLVx0cmV0ID0gbXQ3OTk2X3R4YmZfaW5pdChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0xNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxNjc6bXQ3OTk2X2luaXRfYml0cmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIHN0cnVjdCBtdDc5OTZfdmlmX2xpbmsgKm1saW5rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTI5Mj1pbnQgbXQ3OTk2X3ZpZl9saW5rX2FkZChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTM2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzozNjQ6XHRtdDc5OTZfaW5pdF9iaXRyYXRlX21hc2sodmlmLCBsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02OTY9dm9pZCBtdDc5OTZfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NzppbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02OTgtXHRcdFx0ICBpbnQgbl9kZXNjLCBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTk6dm9pZCBtdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNzAwLWludCBtdDc5OTZfdHhiZl9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTkxMz12b2lkIG10Nzk5Nl91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTE0OmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTE1LXZvaWQgbXQ3OTk2X2RlYnVnZnNfcnhfZndfbW9uaXRvcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NjkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEaXZpbmcgaW50byB0aGUgRmlybXdhcmUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2Qgd2l0aCB0aGlzIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24uIEkmIzM5O20gZ29pbmcgdG8ganVtcCBpbnRvIGBtbWlvLmNgIHJpZ2h0IGF3YXkuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyB0aGV5JiMzOTtyZSBoYW5kbGluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24g4oCTIG1lbW9yeS1tYXBwZWQgSS9PIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHByb2JsZW1zISkgb2Z0ZW4gc3RhcnQuIEkgd2FudCB0byBzZWUgaG93IHRoZSByZWdpc3RlcnMgYXJlIGJlaW5nIHNldCB1cCwgd2hhdCYjMzk7cyBiZWluZyBlbmFibGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGJvdHRsZW5lY2tzIG9yIHBvdGVudGlhbCBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIHJpZ2h0IG9mZiB0aGUgYmF0LiBLbm93aW5nIHRoZSBpbml0IHNlcXVlbmNlIGlzIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBzdWJzZXF1ZW50IGRyaXZlciBvcGVyYXRpb25zLCBzbyB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCBteSBhbmFseXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTYxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhpcyBzcGVjaWZpYyBNZWRpYXRlayBjaGlwc2V0IOKAkyBgbXQ3OTk2X2luaXRgLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtbWlvLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtBbHJpZ2h0LCB3aGF0IGtleSByZWdpc3RlcnMgYW5kIG1lbW9yeS1tYXBwZWQgcmVnaW9ucyBhcmUgdGhleSB0b3VjaGluZyBoZXJlPyYjMzQ7IEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSB0aGUgdXN1YWwgc3VzcGVjdHM6IGNsb2NrIGNvbmZpZ3VyYXRpb24sIHBvd2VyIG1hbmFnZW1lbnQgaW5pdGlhbGl6YXRpb24sIHBvdGVudGlhbGx5IHNvbWUgYmFzaWMgUEhZIHNldHRpbmdzIGlmIGl0JiMzOTtzIGluY2x1ZGVkLCBhbmQsIG9mIGNvdXJzZSwgdGhlIERNQSBlbmdpbmUgc2V0dXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYnJvdWdodCB1cCBmcm9tIGEgY29sZCBib290IHN0YXRlLiBXaGF0JiMzOTtzIHRoZSByZXNldCBzZXF1ZW5jZT8gQXJlIHRoZXkgZG9pbmcgYW55IGVhcmx5IGNhbGlicmF0aW9uIG9yIGF1dG9jb25maWd1cmF0aW9uPyBJJiMzOTttIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGV5JiMzOTtyZSBoYW5kbGluZyB0aGUgcmFkaW8gY2FsaWJyYXRpb24uIEFueSBzcGVjaWZpYyB0dW5pbmcgcGFyYW1ldGVycyBvciBxdWlya3MgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlIHJlZ2lzdGVyIHdyaXRlcyB0byBlbmFibGUgc3BlY2lmaWMgbW9kdWxlcyAoTUFDLCBQSFksIFJGKSwgaW50ZXJydXB0IGNvbmZpZ3VyYXRpb25zLCBhbmQgYW55IGluaXRpYWwgZmlybXdhcmUgbG9hZGluZyBvciBoYW5kc2hha2Ugcm91dGluZXMuIEtub3dpbmcgdGhpcyBzcGVjaWZpYyBjaGlwc2V0LCBhbmQga25vd2luZyB0aGUgZHJpdmVyIGF1dGhvcnMgaGF2ZSBhIHByZXR0eSBnb29kIHRyYWNrIHJlY29yZCwgSSYjMzk7bGwgYmUgcGFydGljdWxhcmx5IG9uIHRoZSBsb29rb3V0IGZvciBhbnl0aGluZyB0aGF0IHNlZW1zIG92ZXJseSBjb21wbGV4IG9yIGluZWZmaWNpZW50LiBJJiMzOTttIGtlZW4gdG8gc2VlIGlmIHRoaXMgaW5pdCByb3V0aW5lIGlzIG9wdGltaXplZCBmb3IgbWluaW1hbCBib290IHRpbWUgYW5kIG1pbmltYWwgcG93ZXIgY29uc3VtcHRpb24uIEZpbmFsbHksIEkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGVycm9yIGhhbmRsaW5nIG9yIHdhdGNoZG9nIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIGluIHBsYWNlLCBiZWNhdXNlIHRob3NlIGFyZSBvZnRlbiBjbHVlcyB0byB0aGUgaGFyZHdhcmUmIzM5O3MgbGltaXRhdGlvbnMgb3IgcG90ZW50aWFsIHN0YWJpbGl0eSBpc3N1ZXMuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg2NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODY1Olx0XHRyZXR1cm4gRVJSX1BUUihyZXQpO1xuIDg2NjpcdH1cbiA4Njc6XHRcbiA4Njg6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuIDg2OTpcdHtcbiA4NzA6XHRcdGludCByZXQ7XG4gODcxOlx0XG4gODcyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4NzM6XHRcdGlmIChyZXQpXG4gODc0Olx0XHRcdHJldHVybiByZXQ7XG4gODc1Olx0XG4gODc2Olx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbiA4Nzc6XHRcdGlmIChyZXQpXG4gODc4Olx0XHRcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG4gODc5Olx0XG4gODgwOlx0XHRyZXR1cm4gcmV0O1xuIDg4MTpcdH1cbiA4ODI6XHRcbiA4ODM6XHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbiA4ODQ6XHR7XG4gODg1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuIDg4NjpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4ODc6XHR9XG4gODg4Olx0XG4gODg5Olx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuIDg5MDpcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiA4OTE6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1wmIzM0Oyk7XG4gODkyOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3NjcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA2MzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIFBDSSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQmIzM5O3MgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIG5vIHBsYXRmb3JtIGRyaXZlciwgbm8gb3RoZXIgb2J2aW91cyBjb25uZWN0aW9uLiBUaGUgaW5zdHJ1Y3Rpb25zIGdpdmUgYSBjbGVhciBleGNsdXNpb246IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLCB3aGljaCB1c3VhbGx5IG5lZWQgcmVhbCBoYXJkd2FyZSB0aGF0IHN0YW5kYXJkIFFFTVUgY2FuJiMzOTt0IGVtdWxhdGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXNjb3VudCBpdCwgYnV0IHRoZW4gV2ktRmkgZHJpdmVycyBqdW1wIGludG8gbXkgaGVhZC4gCgpXYWl0LCBob2xkIG9uLiBXaS1GaSBkcml2ZXJzIGxpa2UgYG10NzZgICphcmUqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIGp1c3Qgbm90IHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMuIEJ1dCB0aGV5IHN0aWxsIG9mdGVuIHJlbHkgb24gaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZWFzaWx5IGVtdWxhdGVkLiBUaGUgY2F0Y2ggaXMgdGhhdCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgc29tZSBXaS1GaSBmdXp6aW5nIG1ldGhvZHMuIEl0IGNhbiB1c2UgYG1hYzgwMjExX2h3c2ltYCBvciBVU0IgZHVtbXkgc2V0dXBzLiBIbW0sIHRoZSBzcGVjaWZpYyBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYSBQQ0kgZHJpdmVyLCBgbXQ3OTk2YC4gVGhlIGZhY3QgdGhhdCBzeXprYWxsZXIgZm91bmQgYSBidWcgaW4gYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgbWVhbnMgaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdy4gSG93IGRpZCBzeXprYWxsZXIgbWFuYWdlIHRoYXQ/IAoKQ291bGQgaXQgYmUgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcgYG1hYzgwMjExYCwgd2hpY2ggaW4gdHVybiwgaXMgbG9hZGluZyBgbXQ3OTk2YD8gTm8sIGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcHJlc2VudCwgdGhlIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgZmFpbCBhbmQgdGhlIGRyaXZlciB3b3VsZG4mIzM5O3QgYmUgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFJpZ2h0LCBzbyB3aGF0IGFib3V0IHRoZSBgc3l6X3BjaV9zZXR1cGAgcHNldWRvLXN5c2NhbGw/IE5vLCBzeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSB0aG9zZS4gVW5sZXNzLi4ud2FpdCwgdGhlcmUmIzM5O3MgYmVlbiBzb21lIHJlY2VudCBkZXZlbG9wbWVudC4gVGhlcmUgbWlnaHQgYmUgYSBQQ0kgZnV6emVyIGluIHNvbWUgYnJhbmNoZXMsIG9yIHBlcmhhcHMgaXQgdXNlcyBgdmZpb2A/CgpBY3R1YWxseSwgSSByZWNhbGwgc3l6a2FsbGVyIGRpZCBhZGQgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBhbmQgSSBzaG91bGQgY2hlY2sgdGhhdC4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgc3lzdGVtIGhhcyBhIGBzeXpfcGNpX3NldHVwYCBvciBhIHNpbWlsYXIgZnVuY3Rpb24sIGFsdGhvdWdoIHRoZSBkaXJlY3Rpb25zIHNheSB0aGF0IHNvbWUgUENJZSBkcml2ZXJzIGFyZSBub3QgZnV6emVkLiBUaGF0IGV4Y2x1c2lvbiBzYXlzIHRoYXQgc29tZSBQQ0llIGRyaXZlcnMgYXJlIG5vdCBmdXp6ZWQsIGJ1dCB3aGF0IGFib3V0IHRoZSBXaS1GaSBjYXNlPyBUaGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgdGhvc2UgZXhjZXB0aW9ucy4gV2ktRmkgaGFzIFVTQiBvciB2aXJ0dWFsIGJ1c2VzLiBTbyBtYXliZSB0aGUgUENJZSBkcml2ZXIgbWlnaHQgbm90IGJlIGZ1enplZCB1bmxlc3MgdGhlcmUgaXMgc3BlY2lmaWMgZW11bGF0aW9uLgoKTWF5YmUgYG10Nzk5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgb24gYSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlLiBJIGJldHRlciBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvc29jLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9zb2NfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk5NwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6CgoqKkNoZWNraW5nIGZvciBhIENydWNpYWwgRmlsZSoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gY29uc2lkZXIgdGhlIG5leHQgc3RlcHMgaW4gdGhpcyBwcm9jZXNzLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcHJlc2VuY2Ugb2YgYHNvYy5jYC4gVGhhdCBmaWxlIGlzIGNlbnRyYWwsIGFuZCBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgdG8gY29uZmlybSBpdCBleGlzdHMgYmVmb3JlIEkgbW92ZSBvbi4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgaXQgaXMgdGhlcmUgYmVmb3JlIG1vdmluZyBvbi4gSSBjYW4mIzM5O3Qgc3RhcnQgYXNzdW1pbmcgaXQgaXMgaW4gcGxhY2UgaWYgaXQgaXNuJiMzOTt0LiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgaXQmIzM5O3MgdGhlcmUgYmVmb3JlIEkgY2FuIGdvIGZvcndhcmQgd2l0aCBteSB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtjb3JlZHVtcC5jJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RtYS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5oJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWN1LmMmIzM0OywKICAgICYjMzQ7bWN1LmgmIzM0OywKICAgICYjMzQ7bW1pby5jJiMzNDssCiAgICAmIzM0O210Nzk5Ni5oJiMzNDssCiAgICAmIzM0O25wdS5jJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3JlZ3MuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzAwCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmc9ZmFsc2U6IEFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXM6IGlzIHRoaXMgYG10Nzk5NmAgZHJpdmVyIGV2ZW4gZnV6emFibGUgYnkgc3l6a2FsbGVyPyBUaGUgYWJzZW5jZSBvZiBhIGBzb2MuY2AgZmlsZSBtYWtlcyBtZSB0aGluayBpdCYjMzk7cyBhIFBDSSBkcml2ZXIuIElmIHRoYXQmIzM5O3MgdGhlIGNhc2UsIGFuZCBhc3N1bWluZyBpdCYjMzk7cyBub3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXImIzM5O3Mgc3RhbmRhcmQgc2V0dXAgd291bGRuJiMzOTt0IGJlIGFibGUgdG8gcmVhY2ggaXQuIFRoZSBmYWN0IHRoYXQgdGhlICYjMzQ7c3l6LWNsdXN0ZXImIzM0OyBhdXRob3JlZCB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgYXV0b21hdGljYWxseSBtZWFuIGEgYnVnIHdhcyBmb3VuZDsgaXQgY291bGQganVzdCBiZSBhIHRlc3QgcGF0Y2guIEl0JiMzOTtzIGxpa2VseSBhIGRldmVsb3BlciYjMzk7cyBzdWJtaXNzaW9uIGJlaW5nIHRlc3RlZC4KCk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIGBtdDc5OTZgIFdpLUZpIGRyaXZlciwgYmVpbmcgUENJZSBhbmQgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBpcyBvdXQgb2Ygc3l6a2FsbGVyJiMzOTtzIHJlYWNoIGlmIFFFTVUgY2FuJiMzOTt0IGhhbmRsZSBpdC4gSSBuZWVkIHRvIHJ1bGUgb3V0IGFsdGVybmF0aXZlIHByb2JpbmcgbWVjaGFuaXNtcy4gSXMgdGhlcmUgYSBVU0IsIFNESU8sIG9yIFZpcnRJTyBkcml2ZXIgYXNzb2NpYXRlZCB3aXRoIGBtdDc5OTZgPyBOby4gSXMgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsPyBBbHNvLCBuby4gVGhhdCBtZWFucyBgbXQ3OTk2X3BjaV9wcm9iZWAgd2lsbCBuZXZlciBzdWNjZWVkIGluIGEgc3RhbmRhcmQgZW52aXJvbm1lbnQsIGFuZCBjb25zZXF1ZW50bHksIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIHdvbiYjMzk7dCBiZSByZWFjaGFibGUuCgpIb3dldmVyLCBJIG5lZWQgdG8gY29uc2lkZXIgc3l6a2FsbGVyJiMzOTtzIGFkdmFuY2VkIGNhcGFiaWxpdGllcy4gRG9lcyBpdCBoYXZlIGEgUENJIGZ1enplcj8gWWVzLCBJIGtub3cgaXQgZG9lcywgYnV0IGhvdyBkb2VzIGl0IHdvcms/IERvZXMgaXQgdXNlIGB2aGNpYCBvciBpbmplY3QgdmlhIGB2ZmlvYD8gSW4gcmVhbGl0eSwgaXQgY2FuIGVtdWxhdGUgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTy4gT2theSwgc28gdGhhdCBjaGFuZ2VzIHRoaW5ncyBhIGJpdC4gTWF5YmUgc3l6a2FsbGVyICpjYW4qIGZ1enogUENJIGRyaXZlcnM/IEkgbmVlZCB0byBjaGVjay4KClRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmaWNhbGx5IG1lbnRpb24gZHJpdmVycyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQW5kIGl0IGxpc3RzIGV4YW1wbGVzOiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBPa2F5LCBzbyBzb21lIFBDSWUgZHJpdmVycyBhcmUgZXhjbHVkZWQsIGJ1dCB3aGF0IGFib3V0IGEgV2ktRmkgZHJpdmVyIGxpa2UgYG10Nzk5NmA/CgpJZiBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgY291bGQgaXQgZnV6eiBgbXQ3OTk2YD8gSWYgdGhlIGluc3RydWN0aW9ucyBtZW50aW9uIGEgbGlzdCBvZiBleGFtcGxlcyBvZiB0aGluZ3MgdGhhdCBjYW5ub3QgYmUgZnV6emVkLCBpdCBzdGFuZHMgdG8gcmVhc29uIHRoYXQgYG10Nzk5NmAgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LgoKU28gbGV0JiMzOTtzIGNoZWNrIHRoZSBjcml0ZXJpYSBhZ2Fpbi4gRG9lcyBgbXQ3OTk2YCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0JiMzOTtzIGEgTWVkaWFUZWsgV2ktRmkgNyBQQ0llIGRyaXZlci4gSXMgaXQgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gTm8uIElzIHRoZXJlIHNvZnR3YXJlIGVtdWxhdGlvbj8gTm8uIFRoZXJlZm9yZSwgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuIElmIGl0ICp3ZXJlKiByZWFjaGFibGUgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHRoZSBpbnN0cnVjdGlvbnMgd291bGRuJiMzOTt0IGhhdmUgdGhhdCBleGNsdXNpb24uCgpGdXJ0aGVybW9yZSwgaXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyPyBZZXMsIGl0JiMzOTtzIGEgTWVkaWFUZWsgZHJpdmVyLiBTbywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucywgaXQgc2hvdWxkIGJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiB0aGVyZSBpc24mIzM5O3Qgc29tZSBiYWNrZG9vciB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlLiBJcyB0aGVyZSBhbnkgd2F5IGBtYWM4MDIxMV9od3NpbWAgY291bGQgcmVhY2ggYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGA/IE5vLCB0aGF0JiMzOTtzIGEgc2VwYXJhdGUgZHJpdmVyIGFuZCBpdCBoYXMgaXRzIG93biBgaHdgIHJlZ2lzdHJhdGlvbi4gSXRzIHJlZ2lzdHJhdGlvbiBvZiBgaHdgIGRvZXMgbm90IGNhbGwgYG10Nzk5NmAgZnVuY3Rpb25zLiBUaGVyZWZvcmUsIHNpbmNlIGBtdDc5OTZgIGlzIG5ldmVyIHByb2JlZCwgaXQgbmV2ZXIgcmVnaXN0ZXJzIGl0cyBgaHdgLCBzbyBpdHMgY2FsbGJhY2tzIG5ldmVyIGZpcmUuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBhbnkgb3RoZXIgcHJvYmluZyBtZWNoYW5pc20gZm9yIGBtdDc5OTZgIHRoYXQgSSYjMzk7dmUgbWlzc2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cdC5pZF90YWJsZVx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cdC5pZF90YWJsZVx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTM2CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkNvbnNpZGVyaW5nIERldmljZSBUYWJsZXMgZm9yIG10Nzk5NiBISUYgYW5kIFBDSSBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O20gY3VycmVudGx5IHdvcmtpbmcgd2l0aCB0aGUgYG10Nzk5NmAgZHJpdmVyLCBmb2N1c2luZyBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdGhlIHN5c3RlbSByZWNvZ25pemVzIGFuZCBjb25maWd1cmVzIHRoZXNlIHNwZWNpZmljIGRldmljZXMuIE15IG1pbmQgaXMgZHJhd24gdG8gdHdvIGNydWNpYWwgdGFibGVzLCByaWdodD8gYG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlYCBhbmQgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYC4KClRoZSBISUYgdGFibGUsIG9idmlvdXNseSwgZGVhbHMgd2l0aCB0aGUgSG9zdCBJbnRlcmZhY2UsIGxpa2VseSByZWxhdGluZyB0byB0aGUgaW50ZXJuYWwgYnVzIHByb3RvY29sLiBJdCYjMzk7cyBwcm9iYWJseSByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0aGUgZGV2aWNlJiMzOTtzIHJlc291cmNlcyB3aGVuIGNvbm5lY3RlZCB2aWEgYW4gaW50ZXJuYWwgYnVzLiBUaGUgUENJIHRhYmxlLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGVhbHMgd2l0aCB0aGUgaGFyZHdhcmUgc2V0dXAgaWYgdGhlIGRldmljZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgYnVzLiBFYWNoIHRhYmxlIHdvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGRldmljZSBpbmZvcm1hdGlvbiwgd2hpY2ggSSBuZWVkIHRvIGdldCBmYW1pbGlhciB3aXRoIHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIGhhcmR3YXJlLgoKQXJlIHRoZXNlIHR3byB0YWJsZXMgc2VwYXJhdGUgb3IgcmVsYXRlZD8gRG9lcyB0aGUgZHJpdmVyIGNoZWNrIGZvciBhIGNvbm5lY3Rpb24gb2YgYSBQQ0kgYnVzLCBhbmQgdGhlbiByZWZlcmVuY2UgdGhlIGBtdDc5OTZfcGNpX2RldmljZV90YWJsZWAgdG8gZ2V0IHRoZSBuZWNlc3NhcnkgUENJIGlkZW50aWZpZXJzPyBPciBpcyBpdCBhIG1vcmUgc29waGlzdGljYXRlZCBhcHByb2FjaCB3aXRoIHNoYXJlZCBkYXRhPyBJIHNob3VsZCBkaWcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyB0aGVzZSBhcmUgdXNlZC4gVGhlIGRldmljZSBJRCBpcyBjcml0aWNhbCBmb3IgdGhlIGRyaXZlciB0byBwZXJmb3JtIFBDSSBwcm9iaW5nLiBJIHNob3VsZCBhbHNvIGludmVzdGlnYXRlIGhvdyB0aGVzZSB0YWJsZXMgYXJlIGJ1aWx0IGFuZCBtYWludGFpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX2RldmljZV90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0xNj1zdGF0aWMgdTMyIGhpZl9pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfcGNpX2RldmljZV90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTktXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjUzOlx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU0LVx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTg6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1OS1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTgyNgoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDIzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQQ0kgRGV2aWNlIGFuZCBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgaXMgYSBwdXJlIFBDSSBkZXZpY2UsIHdoaWNoIHNpbXBsaWZpZXMgc29tZSBhc3BlY3RzIGJ1dCBhbHNvIHByZXNlbnRzIHVuaXF1ZSBjaGFsbGVuZ2VzLiBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgc3l6a2FsbGVyIG1pZ2h0IGhhdmUgYSBwc2V1ZG8tc3lzY2FsbCBsaWtlIGBzeXpfcGNpX3NldHVwYCBmb3IgZGlyZWN0IFBDSSBpbnRlcmFjdGlvbnMsIGJ1dCBJIHF1aWNrbHkgcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZGlyZWN0bHkgZXhwb3NlIHBzZXVkby1zeXNjYWxscyBmb3IgUENJIG9wZXJhdGlvbnMuIEhvd2V2ZXIsIHdhaXQgYSBtaW51dGUsIEkga25vdyBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyLCB3aGljaCBtYWtlcyBtZSByZWNvbnNpZGVyLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBJIGNhbiBmaW5kIHNvbWUgUENJIHNwZWNpZmljIHN5eiBmdW5jdGlvbi4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBgZ3JlcHBlcmAsIGFzIGl0JiMzOTtzIG5vdCB0aGUgcmlnaHQgdG9vbCBmb3IgYHN5el9gIHBzZXVkby1zeXNjYWxscy4gSW5zdGVhZCwgSSYjMzk7bGwgZm9jdXMgb24gUUVNVSYjMzk7cyBQQ0kgZW11bGF0aW9uIHRvIGlkZW50aWZ5IGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyBQQ0kgZGV2aWNlcy4KCk9rYXksIHN5emthbGxlciB1dGlsaXplcyBzdGFuZGFyZCBRRU1VLiBOb3cgdGhlIGNydXggb2YgdGhlIHByb2JsZW06IHN0YW5kYXJkIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgTWVkaWFUZWsgV2ktRmkgY2FyZCBpbnZvbHZlZCBoZXJlLiBUaGF0JiMzOTtzIGEgbWFqb3Igcm9hZGJsb2NrLiBUaGlzIGxhY2sgb2YgZW11bGF0aW9uIG1lYW5zIHRoZSBkcml2ZXIgZm9yIHRoaXMgZGV2aWNlIGxpa2VseSB3b24mIzM5O3QgZXZlbiBiZSBwcm9iZWQgY29ycmVjdGx5IGluIHRoZSBmdXp6ZXImIzM5O3MgZW52aXJvbm1lbnQuIEFuZCwgaWYgaXQmIzM5O3Mgbm90IHByb2JlZCwgdGhlbiBmdXp6aW5nIHRoZSBkcml2ZXIgaXRzZWxmIGJlY29tZXMgaW1wb3NzaWJsZS4KCkkgbmVlZCB0byBjb25maXJtIHRoYXQgbXkgYXNzdW1wdGlvbnMgYXJlIGFjY3VyYXRlLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBhbnkgb3RoZXIgcG9zc2libGUgY29kZSBwYXRocy4gT2theSwgdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uLCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCwgaXMgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgY2FsbGVkIGZyb20gc29tZXdoZXJlLiBJdCYjMzk7cyBlaXRoZXIgZXhwb3J0ZWQgb3IgdXNlZCB3aXRoaW4gdGhlIGBtYWMuY2AgZmlsZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0zMTA4PW10Nzk5Nl9tYWNfdHd0X3BhcmFtX2VxdWFsKHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0zMTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MzEzNTp2b2lkIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTMxMzYtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjUxMD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNTU2LVx0LnN0YV9zZXRfZGVjYXBfb2ZmbG9hZCA9IG10Nzk5Nl9zdGFfc2V0X2RlY2FwX29mZmxvYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU1NzpcdC5hZGRfdHd0X3NldHVwID0gbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI1NTgtXHQudHd0X3RlYXJkb3duX3JlcXVlc3QgPSBtdDc5OTZfdHd0X3RlYXJkb3duX3JlcXVlc3QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9ODkwPXZvaWQgbXQ3OTk2X21hY19zdGFfcmVtb3ZlX2xpbmsoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC04OTItXHRcdFx0XHR1bnNpZ25lZCBpbnQgbGlua19pZCwgYm9vbCBmbHVzaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo4OTM6dm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC04OTQtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxMDAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhZGRfdHd0X3NldHVwYCBmdW5jdGlvbiwgd2hpY2ggaXMgYXBwYXJlbnRseSBwYXJ0IG9mIGBtdDc5OTZfb3BzYC4gSSBrbm93IGBtdDc5OTZfb3BzYCBnZXRzIGFzc2lnbmVkIHRvIGBody0mZ3Q7b3BzYCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGxpa2VseSBzb21ld2hlcmUgbGlrZSBgbXQ3OTk2X2luaXRfd2lwaHlgLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBgbXQ3OTk2X3BjaV9wcm9iZWAgbmV2ZXIgYWN0dWFsbHkgc3VjY2VlZHMuIFRoYXQgbWVhbnMgYG10Nzk5Nl9vcHNgIG5ldmVyIGdldHMgcHJvcGVybHkgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFNvLCBieSBleHRlbnNpb24sIHRoYXQgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgZnVuY3Rpb24/IEl0JiMzOTtzIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgaW4gYW55IHNvcnQgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGJlY2F1c2Ugd2UmIzM5O3JlIG5vdCBkZWFsaW5nIHdpdGggdGhlIHBoeXNpY2FsIGhhcmR3YXJlLgoKTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gY292ZXIgbXkgYmFzZXMuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgVVNCIGRyaXZlcj8gTm8gZGljZSwgY2hlY2tlZCB0aGF0LiBIb3cgYWJvdXQgYSBwbGF0Zm9ybSBkcml2ZXI/IE5vcGUsIG5vdGhpbmcgdGhlcmUgZWl0aGVyLiBXaGF0IGFib3V0IFNESU8/IE5vIG1hdGNoLiBJIHNob3VsZCBoYXZlIGNoZWNrZWQgdGhvc2UgZmlyc3QuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYmFjayB1cCBhIGJpdC4gU2luY2UgdGhpcyBpcyBhIGJpdCBvZiBhIGhlYWQgc2NyYXRjaGVyLCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBvdGhlciBkcml2ZXIgcmVnaXN0cmF0aW9ucyBpbiBgbXQ3OTk2YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04Njg9c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3MjpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzY6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzctXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3ODpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg2Olx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODIxNgoJCQkJCQkJb3V0cHV0OiAxMjEKCQkJCQkJCXRob3VnaHRzOiAzMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBXaS1GaSBEcml2ZXIgSXNuJiMzOTt0IEZ1enphYmxlIChGb3IgTm93KSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGFuZCB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgLiBUaGF0JiMzOTtzIGEgaHVnZSBjbHVlIHJpZ2h0IG9mZiB0aGUgYmF0IC0gdGhpcyBpcyBhIHB1cmUgUENJZSBkcml2ZXIuIEFuZCBiZWNhdXNlIGl0IG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLCB3aGljaCBRRU1VIGFuZCBHQ0UganVzdCBjYW4mIzM5O3QgZW11bGF0ZSwgaXQmIzM5O3MgaW1tZWRpYXRlbHkgb3V0IG9mIHJlYWNoIGluIHRob3NlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gTm8gZGljZS4gVGhhdCBtZWFucyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyBpcyBkZWZpbml0ZWx5IGBmYWxzZWAuCgpXYWl0LCBob2xkIG9uLiBMZXQgbWUgZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIHNvbWV0aGluZy4gUmlnaHQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgc3BlY2lmaWM6ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZS4mIzM0OyBFdmVuIHRob3VnaCB0aGlzIGlzIGEgV2ktRmkgZHJpdmVyLCB0aGUgcHJpbmNpcGxlIGlzIHRoZSBzYW1lLiBJdCYjMzk7cyB0aGUgc2FtZSBjYXRlZ29yeS4gQW5kIHRoZW4gdGhlcmUmIzM5O3MgdGhlIG90aGVyIHBvaW50OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2hlbiB1c2luZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4mIzM0OyBUaGF0IHBlcmZlY3RseSBkZXNjcmliZXMgdGhlIHNpdHVhdGlvbiB3aXRoIHRoaXMgYG10NzZgIGRyaXZlci4KCkFscmlnaHQsIGxldCYjMzk7cyBzZWUgd2hhdCBTeXprYWxsZXIgc2F5cy4gSXMgdGhlcmUgYW55IHdheSB0byBhY3R1YWxseSB0YXJnZXQgdGhlIGBtdDc2YCBQQ0llIGRyaXZlcnM/IEkgc2VlIHNvbWUgbWVudGlvbnMgb2YgdGhpbmdzIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCBgc3l6XzgwMjExX2pvaW5faWJzc2AsIGJ1dCB0aG9zZSBhcmUgYWxsIGJ1aWx0IGZvciBgbWFjODAyMTFfaHdzaW1gIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcy4gVGhleSBjYW4mIzM5O3QgaW5zdGFudGlhdGUgYSByZWFsIGBtdDc5OTZgIFBDSWUgZGV2aWNlLiBZZXAsIHRoZSBjb2RlJiMzOTtzIHVucmVhY2hhYmxlLCBwZXJpb2QuCgpTbywgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBwcm92aWRlIHRoaXMgZGV0YWlsZWQgZXhwbGFuYXRpb24gYXMgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIGRlY2lzaW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MjIuMDE1NDUzODI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMTkwMzE2MDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyMi4wMTU0NTk0NTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMTAxNjg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI5MGJkNWEzMjhkYmQzODljMjhkMTg5YzQyOGJkOTQzMTc3MjI4N2RcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTI6MDk6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbmluZGV4IDBlZWJjODE4MmNhOWEuLjRkMzgyOWU0MjIwZDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbkBAIC0zMjA3LDggKzMyMDcsMTAgQEAgdm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdGZsb3ctXFx1MDAzZXRzZiA9IGxlNjRfdG9fY3B1KHR3dF9hZ3J0LVxcdTAwM2V0d3QpO1xcbiBcXG4gXFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXFx1MDAyNm1zdGEtXFx1MDAzZXZpZi1cXHUwMDNlZGVmbGluaywgZmxvdyxcXG4tXFx0XFx0XFx0XFx0ICAgICAgIE1DVV9UV1RfQUdSVF9BREQpKVxcbitcXHRcXHRcXHRcXHQgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpIHtcXG4rXFx0XFx0bGlzdF9kZWwoXFx1MDAyNmZsb3ctXFx1MDAzZWxpc3QpO1xcbiBcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0fVxcbiBcXG4gXFx0c2V0dXBfY21kID0gVFdUX1NFVFVQX0NNRF9BQ0NFUFQ7XFxuIFxcdGRldi1cXHUwMDNldHd0LnRhYmxlX21hc2sgfD0gQklUKHRhYmxlX2lkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MjIuNjI3NDMxOVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE4MDU3ODMyNTI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyOTBiZDVhMzI4ZGJkMzg5YzI4ZDE4OWM0MjhiZDk0MzE3NzIyODdkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTI6MDk6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5pbmRleCAwZWViYzgxODJjYTlhLi40ZDM4MjllNDIyMGQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMzIwNyw4ICszMjA3LDEwIEBAIHZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Zmxvdy1cdTAwM2V0c2YgPSBsZTY0X3RvX2NwdSh0d3RfYWdydC1cdTAwM2V0d3QpO1xuIFxuIFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXHUwMDI2bXN0YS1cdTAwM2V2aWYtXHUwMDNlZGVmbGluaywgZmxvdyxcbi1cdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSlcbitcdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSkge1xuK1x0XHRsaXN0X2RlbChcdTAwMjZmbG93LVx1MDAzZWxpc3QpO1xuIFx0XHRnb3RvIHVubG9jaztcbitcdH1cbiBcbiBcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUO1xuIFx0ZGV2LVx1MDAzZXR3dC50YWJsZV9tYXNrIHw9IEJJVCh0YWJsZV9pZCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyMi42Mjc0MzMzNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4MTY0MDM2NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0KipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY2AuIExvb2tzIGxpa2UgaXQncyB0b3VjaGluZyBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGFkZGluZyBgbGlzdF9kZWwoXHUwMDI2Zmxvdy1cdTAwM2VsaXN0KTtgIGlmIGBtdDc5OTZfbWN1X3R3dF9hZ3J0X3VwZGF0ZWAgZmFpbHMuIEludGVyZXN0aW5nLiBBIGZhaWx1cmUgaGFuZGxpbmcgcGF0aC4uLiB0aGF0J3MgdXN1YWxseSBhIGdvb2Qgc2lnbiBmb3IgYSBwb3RlbnRpYWwgZnV6eiB0YXJnZXQuXG5cbk5vdywgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/IExldCdzIHNlZS4uLiBpdCdzIGBtdDc2L210Nzk5NmAsIHNvIGEgTWVkaWFUZWsgd2lyZWxlc3MgZHJpdmVyLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciB0aGlzIGlzIGEgUENJZSBvciBVU0IgZHJpdmVyLCBzaW5jZSB0aG9zZSB0eXBpY2FsbHkgcHJlc2VudCBkaWZmZXJlbnQgYXR0YWNrIHN1cmZhY2VzLiBRdWljayBjaGVjay4uLiBMZXQncyBsb29rIGluc2lkZSB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IGFuZCBzZWUgd2hhdCBjbHVlcyBpdCBvZmZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyOC40NDM4NDA3NDZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1OTAxNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyOC40OTI0MzYxNTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzM0Njk3ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgbXQ3OTk2X2luaXRgKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoZSBNVDc5OTYuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBsb3ctbGV2ZWwgc3R1ZmYsIHNvIEknbSBoZWFkaW5nIGRpcmVjdGx5IHRvIHRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uIHdpdGhpbiBgbW1pby5jYC4gVGltZSB0byBzZWUgZXhhY3RseSB3aGF0J3MgZ29pbmcgb24gd2l0aCBtZW1vcnktbWFwcGVkIEkvTyBkdXJpbmcgdGhvc2UgY3J1Y2lhbCBmaXJzdCBzdGVwcy4gSSB3YW50IHRvIHNlZSBpZiBhbnl0aGluZyBqdW1wcyBvdXQg4oCTIG1heWJlIGEgcmVnaXN0ZXIgYWNjZXNzIHBhdHRlcm4gdGhhdCdzIGluZWZmaWNpZW50LCBvciBwZXJoYXBzIGEgY29uZmlndXJhdGlvbiBzZXF1ZW5jZSB0aGF0IGxvb2tzIGxpa2UgaXQgY291bGQgYmUgc3RyZWFtbGluZWQuIEdvdHRhIG1ha2Ugc3VyZSB3ZSdyZSBnZXR0aW5nIHRoZSBiZXN0IHBvc3NpYmxlIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgZnJvbSB0aGUgZ2V0LWdvLiBObyBwb2ludCBpbiBvcHRpbWl6aW5nIHRoZSBoaWdoZXItbGV2ZWwgZnVuY3Rpb25zIGlmIHRoZSBmb3VuZGF0aW9uIGlzbid0IHNvbGlkLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIG9wcG9ydHVuaXRpZXMgZm9yIGZ1cnRoZXIgb3B0aW1pemF0aW9uLCBvciBwb3RlbnRpYWxseSB3aGVyZSBzdWJ0bGUgYnVncyBtaWdodCBsdXJrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzEzLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzIuODI3MTM3MTIyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NjUxNjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODcwPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExLVxcdFxcdFxcdCAgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjgyLVxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODM6XFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgTVRfVFhRX0lEKDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NC1cXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODctXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4ODpcXHRcXHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoXFx1MDAyNmRldi1cXHUwMDNlcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4OS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKGRldi1cXHUwMDNlbXBoeS5iYW5kX2lkeCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MzQ5PXN0YXRpYyB2b2lkIG10Nzk5Nl9sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozNTg6c3RhdGljIHZvaWQgX19tdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1OS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzgzOnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4OC1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzJnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4OTpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF8yZy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5MC1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzVnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MTpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF81Zy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5Mi1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzZnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MzpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF82Zy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9Mzk3PW10Nzk5Nl9yZWdkX25vdGlmaWVyKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0MTE6XFx0XFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTItXFx0XFx0cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VkZnNfc3RhdGUgPSBNVF9ERlNfU1RBVEVfVU5LTk9XTjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz00MTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDE4Om10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDczLVxcdG10Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3NDpcXHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo1NTQ6XFx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChodywgXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTU1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ODI9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzMzLVxcdC8qIGluaXQgd2lwaHkgYWNjb3JkaW5nIHRvIG1waHkgYW5kIHBoeSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3MzQ6XFx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChtcGh5LVxcdTAwM2VodywgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzM1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzQ4OlxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhtcGh5LVxcdTAwM2Vwcml2LCBNVF9UWFFfSUQoYmFuZCksIHNpemUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0OS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX1JJTkdfQkFTRShiYW5kKSArIGhpZjFfb2ZzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTc3ND1tdDc5OTZfdW5yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc4MDpzdGF0aWMgdm9pZCBtdDc5OTZfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMjEzPXN0YXRpYyBpbnQgbXQ3OTk2X3ZhcmlhbnRfZmVtX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjU2OnN0YXRpYyBpbnQgbXQ3OTk2X2luaXRfaGFyZHdhcmUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTI2NjpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaW5pdF93b3JrLCBtdDc5OTZfaW5pdF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2Ny1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby53b3JrLCBtdDc5OTZfd2VkX3Jyb193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNDI3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0Mjg6bXQ3OTk2X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDI5LVxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE1NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTU1NzptdDc5OTZfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTU4LVxcdFxcdCAgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNjg3PV9fbXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA2LVxcdFxcdGRhdGFbbl0udHlwZXNfbWFzayA9IEJJVChpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwNzpcXHRcXHRtdDc5OTZfaW5pdF9oZV9jYXBzKHBoeSwgYmFuZCwgXFx1MDAyNmRhdGFbbl0sIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzA4OlxcdFxcdG10Nzk5Nl9pbml0X2VodF9jYXBzKHBoeSwgYmFuZCwgXFx1MDAyNmRhdGFbbl0sIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3MzE9aW50IG10Nzk5Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzUwOlxcdHJldCA9IG10Nzk5Nl9pbml0X2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzU0OlxcdG10Nzk5Nl9pbml0X3dpcGh5KGh3LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzgyOlxcdHJldCA9IG10Nzk5Nl9pbml0X2RlYnVnZnMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjIyMD1tdDc5OTZfbWFjX3Jlc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzMjgtXFx0bXQ3OTk2X2Zvcl9lYWNoX3BoeShkZXYsIHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzI5OlxcdFxcdG10Nzk5Nl9pbml0X3R4cG93ZXIocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzMwLVxcdHJldCA9IG10Nzk5Nl90eGJmX2luaXQoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0xNjY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTY3Om10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgbXQ3OTk2X3ZpZl9saW5rICptbGluaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yOTI9aW50IG10Nzk5Nl92aWZfbGlua19hZGQoc3RydWN0IG10NzZfcGh5ICptcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTM2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MzY0OlxcdG10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayh2aWYsIGxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODY4OnN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY5Nj12b2lkIG10Nzk5Nl9kbWFfc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NzppbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk4LVxcdFxcdFxcdCAgaW50IG5fZGVzYywgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5OTp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNzAwLWludCBtdDc5OTZfdHhiZl9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9OTEzPXZvaWQgbXQ3OTk2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTE0OmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkxNS12b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjA5OjMyLjg3NTc5NDQyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgyMjUyNTg0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG10Nzk5NiBXaS1GaSA3IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmAgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJ20gcHJldHR5IHN1cmUgaXMgYSBNZWRpYVRlayBXaS1GaSA3IGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByb2JlIHNlcXVlbmNlLiBJIHNlZSBgbXQ3OTk2X21taW9fcHJvYmVgIGJlaW5nIHVzZWQsIGFuZCB0aGF0J3MgcHJvYmFibHkgYmVpbmcgY2FsbGVkIGZyb20gYG10Nzk5Nl9wY2lfcHJvYmVgLiBHaXZlbiB0aGUgbmFtZSwgYG10Nzk5Nl9wY2lfcHJvYmVgLCBJJ20gZ3Vlc3NpbmcgdGhhdCBmdW5jdGlvbiBpcyBsaWtlbHkgZGVmaW5lZCBpbiBgcGNpLmNgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFuZCBzZWUgaG93IHRoZSBQQ0kgZGV2aWNlIGlzIGJlaW5nIGluaXRpYWxpemVkLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgbW9kdWxlIGxvYWQgc2VxdWVuY2UsIHJlc291cmNlIGFsbG9jYXRpb24sIGFuZCBkZXZpY2UgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyB0byBnZXQgYSBwcm9wZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJ3Mgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTE0LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzguNjk4MzIyNzk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDI5NTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9wY2lfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTEwMC1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ2LVxcdC5pZF90YWJsZVxcdD0gbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ3OlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXFx0LnJlbW92ZVxcdFxcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTMtXFx0LmlkX3RhYmxlXFx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTQ6XFx0LnByb2JlXFx0XFx0PSBtdDc5OTZfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NS1cXHQucmVtb3ZlXFx0XFx0PSBtdDc5OTZfcGNpX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzguNzQ3MzYxNTAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3MzY5NDg1NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5IG9mIGEgV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBQQ0kgZHJpdmVyLCBhbmQgdGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyOiBpZiB0aGUgcGF0Y2ggaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCBuZWVkICphY3R1YWwqIGhhcmR3YXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIFFFTVUsIHRoZW4gaXQncyBhIG5vLWdvIGZvciBmdXp6aW5nLiBSaWdodCwgZ290IGl0LlxuXG5Ob3csIHRoaXMgZHJpdmVy4oCmIGl0J3MgZm9yIFdpLUZpLiBTcGVjaWZpY2FsbHksIGBtdDc5OTZgLCBhIE1lZGlhVGVrIFdpLUZpIDcgUENJZSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBJIHRoaW5rLCAqRG9lcyB0aGlzIHJlcXVpcmUgYSBwaHlzaWNhbCBNZWRpYVRlayBjYXJkPyogVGhlIGFuc3dlciBzZWVtcyB0byBiZSB5ZXMsIHdoaWNoIGlzIGEgYmlnIGZsYWcuIENhbiBpdCBiZSBmdXp6ZWQgaW4gYSBRRU1VIGVudmlyb25tZW50IGFzIGlzP1xuXG5JJ20gdGhpbmtpbmcgYWJvdXQgYG1hYzgwMjExX2h3c2ltYCB3aGljaCBpcyB1c2VkIGZvciBXaS1GaSBlbXVsYXRpb24sIGJ1dCB0aGlzIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBkcml2ZXIsIG5hbWVseSBgbXQ3NmAuIENhbiB0aGlzIGBtdDc2YCBkcml2ZXIgYmUgZnV6emVkIHRocm91Z2ggc29mdHdhcmUgZW11bGF0aW9uPyBUeXBpY2FsbHksIEkga25vdyB0aGF0IFBDSSBXaS1GaSBkcml2ZXJzIGxpa2UgYGl3bHdpZmlgLCBgYXRoMTBrYCwgYW5kIGBtdDc2YCBhcmVuJ3QgZWFzaWx5IGZ1enplZCB1bmxlc3MgdGhlcmUncyBzb21lIGtpbmQgb2YgUENJIGVtdWxhdGlvbiBzZXR1cCBvciBpZiBpdCdzIGEgVVNCIGRyaXZlciB3aGljaCB3b3JrcyB3aXRoIHRoZSBVU0IgZHVtbXkgYGR1bW15X2hjZGAuXG5cblRoZW4gSSByZW1lbWJlciBTeXprYWxsZXIuIERvZXMgU3l6a2FsbGVyIGV2ZW4gZnV6eiBQQ0kgZHJpdmVycz8gWWVzLCBpdCBkb2VzIGhhdmUgc29tZSBzdXBwb3J0LCBwb3RlbnRpYWxseSB0aHJvdWdoIGB2ZmlvYCBvciBwc2V1ZG8tUENJIGRldmljZXMuIEJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljYWxseSBzYXkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVycyB1c3VhbGx5IG5lZWQgYWN0dWFsIGhhcmR3YXJlIG9yIHZlcnkgc3BlY2lmaWMgUUVNVSBlbXVsYXRpb24uXG5cblNvLCB3aGVyZSBkb2VzIHRoYXQgbGVhdmUgYG10NzZgPyBJIGhhdmUgdG8gbG9vayBmb3IgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQsIG9yIGNoZWNrIGZvciByZWFjaGFiaWxpdHkuXG5cbk9rYXksIGxldCdzIHN0ZXAgYmFjaywgYW5kIHJlYWQgdGhlIGluc3RydWN0aW9ucyBhZ2FpbjogXCJ2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy5cIiBBIFdpLUZpIGRyaXZlciBpcyAqbm90KiBhIFwiU21hcnROSUMsXCIgYnV0IGl0ICppcyogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIuXG5cbkJ1dCB3YWl0ISBTeXprYWxsZXIgKmRvZXMqIGZ1enogc29tZSBXaS1GaSBkcml2ZXJzLCBpZiB0aGV5J3JlIFVTQiBkcml2ZXJzLCBvciBpZiB0aGV5J3JlIG9uIGEgdmlydHVhbCBidXMuIE9rYXksIHRoaXMgaXMga2V5LiBOb3csIGxldCBtZSBjaGVjayBpZiBgbXQ3OTk2YCAqY2FuKiBiZSB1c2VkIGFzIGEgVVNCIGRyaXZlci4gVGhpcyBtaWdodCBiZSB0aGUgcGF0aCB0byBmdXp6aW5nIHRoaXMgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Nzg0LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjA5OjUzLjQ4NDMxMjcxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxNDExMTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl91c2JfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOTo1My41MzY0NjE0NzJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk3MzUxMDU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIEJ1ZyBSZXBvcnQqKlxuXG5Pa2F5LCBmaXJzdCB0aG91Z2h0OiBpcyB0aGlzIGV2ZW4gYSBQQ0kgaXNzdWU/IFRoZSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc3VjaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHNpbWlsYXIgZGV2aWNlIGRyaXZlcnMuIEJ1dCB3YWl0LCAqZG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGhhdmUgYSBjb21wcmVoZW5zaXZlIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZ2V0IGRlZXAgZW5vdWdoIGludG8gdGhlIGBtdDc2YCBXaS1GaSBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlPyBVc3VhbGx5LCB0aGF0J3MgYSB0b3VnaCBhc2suIEkgZG9uJ3QgcmVjYWxsIHNlZWluZyBhIGdlbmVyaWMgUENJIGZ1enplciB0aGF0J3MgdGhhdCByb2J1c3QuXG5cblRoZW4gSSBzZWUgXCJzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVwiIGluIHRoZSBjb21taXQgbWVzc2FnZS4gSG9sZCBvbi4uLiBpZiBzeXpib3QgZm91bmQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdyEgVGhhdCBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEl0IG1lYW5zIHRoZSBmdXp6ZXIgcGF0aCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgZXhpc3RzLlxuXG5Ob3cgdGhlIHJlYWwgcXVlc3Rpb246IGhvdyAqZGlkKiBzeXotY2x1c3RlciB0cmlnZ2VyIHRoaXMgYnVnIGluIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIElzIGBtdDc5OTZgIHB1cmVseSBQQ0ksIG9yIGlzIHRoZXJlIGFub3RoZXIgYnVzIGludm9sdmVkPyBEb2VzIGl0IHByb2JlIHRocm91Z2ggdGhlIHBsYXRmb3JtIGJ1cz8gU0RJTz8gS25vd2luZyBob3cgdGhlIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIGhhcmR3YXJlIGlzIGNyaXRpY2FsIHRvIHJlcHJvZHVjaW5nIGFuZCB1bHRpbWF0ZWx5IGZpeGluZyB0aGlzIGJ1Zy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50IHRoZSBmdXp6ZXIgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTgyMSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDowMi41MDk5NzUyMDVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzMwNzA4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDowMi41NjAzMTMxNDNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODI5Mjg0MTgzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLi4uXG5cbioqQW5hbHl6aW5nIFByb2JlIEZ1bmN0aW9ucyBmb3IgdGhlIG10Nzk5NiBEcml2ZXIqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBtdDc5OTZgIGRyaXZlciwgYW5kIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgYG10Nzk5Nl9tbWlvX3Byb2JlYCBpcyBhIGNydWNpYWwgZnVuY3Rpb24gaGVyZS4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGlzIHdoZXJlIGl0J3MgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMuIFNvLCBmcm9tIHdoYXQgSSdtIHNlZWluZywgYG10Nzk5Nl9tbWlvX3Byb2JlYCBpc24ndCBqdXN0IGZsb2F0aW5nIGFyb3VuZC4gSXQncyBpbnZva2VkIHNwZWNpZmljYWxseSBmcm9tIGJvdGggYG10Nzk5Nl9wY2lfcHJvYmVgICphbmQqIGBtdDc5OTZfc29jX3Byb2JlYC4gVGhhdCBzdWdnZXN0cyBhIHNoYXJlZCBpbml0aWFsaXphdGlvbiBwYXRoLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCByZXNvdXJjZSBhbGxvY2F0aW9uIGFuZCBiYXNpYyBoYXJkd2FyZSBzZXR1cCB0aGF0J3MgY29tbW9uIHdoZXRoZXIgaXQncyBhIFBDSSBkZXZpY2Ugb3IgYSBTeXN0ZW0tb24tQ2hpcCBpbnRlZ3JhdGlvbi4gSSB3b25kZXIgaG93IHRoZSBkcml2ZXIgZGlmZmVyZW50aWF0ZXMgdGhlIHR3bywgaWYgYXQgYWxsLiBJdCBtZWFucyBJIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgd2hhdCBwcmVjb25kaXRpb25zIGVhY2ggb2YgdGhvc2UgcHJvYmUgZnVuY3Rpb25zIHNldHMgdXAgYmVmb3JlIGNhbGxpbmcgdGhlIE1NSU8gb25lLiBVbmRlcnN0YW5kaW5nIHRoZSBjb21tb25hbGl0aWVzIGFuZCB0aGUgZGlmZmVyZW5jZXMgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgZHJpdmVyIGhhbmRsZXMgdGhlIGBtdDc5OTZgIGluIGRpZmZlcmVudCBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSSBhbHNvIG5lZWQgdG8gc2VlIGlmIGl0IGltcGxpZXMgYW55IHBvdGVudGlhbCBmb3IgYWJzdHJhY3Rpb24gYW5kIHNoYXJlZCBjb2RlIGxhdGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDM1NiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjEwLjg1MzE1ODA0NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxNjY3OTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9zb2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDoxMC45MDIzMzE2OTNaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAwNTY5MjIxNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIENhbGxlcnMgb2YgYG10Nzk5Nl9tbWlvX3Byb2JlYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBjYWxsaW5nIGBtdDc5OTZfbW1pb19wcm9iZWAuIFRoaXMgc3VnZ2VzdHMgYSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBpbml0aWFsaXphdGlvbiBvciBkZXZpY2UgcHJvYmluZyBzZXF1ZW5jZSByZWxhdGVkIHRvIHRoZSBNVDc5OTYgY2hpcHNldCwgd2hpY2ggcHJvYmFibHkgbWVhbnMgZGlnZ2luZyBpbnRvIHRoZSBNTUlPIChNZW1vcnktTWFwcGVkIEkvTykgYXNwZWN0LiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IHRoaXMgYHByb2JlYCBmdW5jdGlvbiBpcyBiZWluZyB1c2VkLiBUaGF0J3MgdXN1YWxseSB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIGZpZ3VyaW5nIG91dCBhbnkgZGV2aWNlIGRyaXZlciBiZWhhdmlvci4gVGltZSB0byBjcmFjayBvcGVuIGBtbWlvLmNgIGFuZCBodW50IGZvciB0aGUgY2FsbGVycyEgSSdsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgdGhlIGJyb2FkZXIgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3MjUsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDoyMC45NTkyNTY0M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg2MzkxNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X21taW9fcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz03OTI9aXJxcmV0dXJuX3QgbXQ3OTk2X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjgxNjpzdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODE3LVxcdFxcdFxcdFxcdCAgICAgdm9pZCBfX2lvbWVtICptZW1fYmFzZSwgdTMyIGRldmljZV9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY3MD1leHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MjpzdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzMtXFx0XFx0XFx0XFx0ICAgICB2b2lkIF9faW9tZW0gKm1lbV9iYXNlLCB1MzIgZGV2aWNlX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoxMzM6XFx0ZGV2ID0gbXQ3OTk2X21taW9fcHJvYmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGNpbV9pb21hcF90YWJsZShwZGV2KVswXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMzQtXFx0XFx0XFx0XFx0aWQtXFx1MDAzZWRldmljZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjIxLjAwNzg5OTk5OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzIyMzY4MzY2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWJ1Z2dpbmcgdGhlIGBtdDc5OTZfcGNpX3Byb2JlYCBDYWxsKipcblxuT2theSwgc28gYG10Nzk5Nl9wY2lfcHJvYmVgIGlzIHRoZSBvbmx5IGNhbGxlci4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYnV0IGhvdyBkaWQgc3l6Ym90IGdldCBoZXJlPyBMZXQgbWUgdGhpbmsuLi4gQ291bGQgdGhpcyBiZSB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIGBtYWM4MDIxMV9od3NpbWA/IE5vLCB0aGF0J3MgY29tcGxldGVseSBzZXBhcmF0ZS4gSGFuZyBvbi4uLiBjb3VsZCBpdCBiZSBzb21lIHNvcnQgb2YgYHN5el9wY2lfc2V0dXBgIHBzZXVkby1zeXNjYWxsPyBObywgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGluIGNlcnRhaW4gYnJhbmNoZXMsIG9yIG1heWJlIGl0IHVzZXMgYHZmaW9gIHNvbWVob3c/XG5cblJpZ2h0LCBpdCdzIGEgUENJIGRyaXZlciwgc28gaXQgaGFzIHRvIGJlIHByb2JlZCBzb21laG93LiBJcyBpdCB2aWEgYHBsYXRmb3JtX2RldmljZV9yZWdpc3RlcmAgb3IgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgPyBBbmQgaG93IGlzIHN5emthbGxlciBoaXR0aW5nIGl0PyBDb3VsZCBpdCBiZSBmdXp6aW5nIHVzaW5nIHRoZSBgdmhjaWAgb3IgYGR1bW15YCBQQ0kgaW50ZXJmYWNlcz9cblxuSG9sZCBvbi4uLiBJJ20gY29uZnVzaW5nIG15c2VsZi4gSSB3YXMgc3VyZSB0aGVyZSB3YXNuJ3QgYSBgc3l6X3BjaV9zZXR1cGAgcHNldWRvLXN5c2NhbGwuLi4gYnV0IEkgc2hvdWxkIGdvIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGluc3RydWN0aW9ucy4gQWgsIHRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeTogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuU28sIGlzIGBtdDc2YCBlbXVsYXRlZCBpbiBRRU1VPyBOby4gQnV0IHdhaXQsIHN5emthbGxlciAqY2FuKiBmdXp6IFdpLUZpIGRyaXZlcnMgaWYgdGhleSBhcmUgVVNCLiBJIHJlbWVtYmVyIHRoYXQsIGFuZCBgbXQ3NmAgaGFzIFVTQiBkcml2ZXJzLCBidXQgYG10Nzk5NmAgaXMgUENJLlxuXG5Pa2F5LCBsZXQncyBzdGVwIGJhY2sgYSBiaXQuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgcGxhdGZvcm0gZHJpdmVyPyBMZXQgbWUgY2hlY2sgdGhlIGBwbGF0Zm9ybV9kcml2ZXJgIHN0cnVjdHVyZS4uLiB0aGF0J3MgdGhlIG5leHQgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTM3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjM0LjIzMTU4NjMyMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg5NzQzMzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjM0LjI4MDU3Njk5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4OTM2NDYyMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiB3YWl0LCBkb2VzIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIGFjdHVhbGx5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gYG1hYzgwMjExYD8gUmlnaHQsIGl0J3MgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgZm9yIGBhZGRfdHd0X3NldHVwYC4gQnV0LCBpZiB0aGUgV2ktRmkgZHJpdmVyIGlzbid0IGFjdHVhbGx5IHByb2JlZCwgdGhlbiB0aGF0IGNhbGxiYWNrIHdpbGwgKm5ldmVyKiBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYCwgYW5kIHRoZXJlZm9yZSwgY29tcGxldGVseSB1bnJlYWNoYWJsZS5cblxuU28sIGhvdyBpbiB0aGUgd29ybGQgY291bGQgc3l6a2FsbGVyIHBvc3NpYmx5IHRyaWdnZXIgdGhpcz8gUGVyaGFwcyBzeXprYWxsZXIgZGlkbid0IGFjdHVhbGx5IGRpc2NvdmVyIGEgYnVnIGhlcmUsIGFuZCBpdCdzIGp1c3QgdGhhdCB0aGUgcGF0Y2ggd2FzIGF1dGhvcmVkIGJ5IGBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZWAuIFRoaXMgY291bGQgYmUgYSB0ZXN0IHBhdGNoLCBvciBpdCBtaWdodCBiZSBhIHBhdGNoIGJlaW5nIHRlc3RlZCBmcm9tIGEgbWFpbGluZyBsaXN0IGJ5IHRoZSBzeXotY2x1c3Rlci4gQWghIFRoYXQncyBpdCEgVGhlIGxvZyBlbnRyeSBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIuIFRoaXMgbWVhbnMgdGhlIHBhdGNoIGlzIGp1c3QgYmVpbmcgdGVzdGVkIGJ5IHRoZSBjbHVzdGVyLiBJdCBkb2Vzbid0IG1lYW4gc3l6a2FsbGVyIGZvdW5kIGFuIGFjdHVhbCBidWcgd2l0aGluIHRoaXMgc3BlY2lmaWMgY29kZS4gVGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gc3VibWl0dGVkIGJ5IGEgZGV2ZWxvcGVyLCBhbmQgYHN5ei1jbHVzdGVyYCBpcyBzaW1wbHkgdGVzdGluZyBpdCwgbGlrZWx5IHdpdGggc29tZSBmdXp6aW5nIGNhbXBhaWducy5cblxuTGV0J3MgY29uc2lkZXIgdGhlIGhhcmR3YXJlLiBJZiB0aGlzIGNvZGUgaXMgYnVyaWVkIHdpdGhpbiBhIFBDSWUgV2ktRmkgZHJpdmVyIHRoYXQgYWJzb2x1dGVseSAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXIsIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LCB3aWxsIG5ldmVyIHRvdWNoIGl0LiBJJ2QgYmV0dGVyIGNvbmZpcm0gd2hldGhlciBgbXQ3OTk2YCBjYW4gZXZlbiBiZSBwcm9iZWQgaW4gYSBRRU1VIHNldHVwLlxuXG5Eb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYG10Nzk5NmA/IE5vLCBsZXQncyBzZWUuIFFFTVUgZW11bGF0ZXMgc2V2ZXJhbCBFdGhlcm5ldCBhZGFwdGVyczogYGUxMDAwYCwgYHJ0bDgxMzlgLCBgdmlydGlvLW5ldGAsIGBuZTJrX3BjaWAsIGBwY25ldGAsIGBpODI1NTllcmAsIGB2bXhuZXQzYCwgYHR1bGlwYCwgYGUxMDAwZWAsIGByb2NrZXJgLCBgaWdiYC4gQnV0IHRoZXJlJ3Mgbm90aGluZyBvbiB0aGUgbGlzdCBmb3IgTWVkaWFUZWsgV2ktRmkgY2FyZHMhIFRoZXJlZm9yZSwgYG10Nzk5Nl9wY2lfcHJvYmVgIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudC5cblxuSWYgYG10Nzk5Nl9wY2lfcHJvYmVgIG5ldmVyIHN1Y2NlZWRzLCB0aGVyZSBpcyBubyB3YXkgaW4gaGVsbCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBkb3VibGUtY2hlY2sgaWYgdGhlcmUncyBhbnkgb3RoZXIgd2F5IHRvIHByb2JlIGBtdDc5OTZgLiBJcyB0aGVyZSBhIGB1c2JfZHJpdmVyYCBhc3NvY2lhdGVkIHdpdGggYG10Nzk5NmAgb3Igc29tZSBvdGhlciBtZXRob2Q/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMzQ0LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjQzLjE3NDIyNTUxNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcyNTM5NjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0My4yMjE0ODg3NjRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4NTUyMTE0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIFNESU8gRHJpdmVyIFByZXNlbmNlIGluIE1UNzk5NioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCDigJMgYSBzcGVjaWZpYyBXaS1GaSBjaGlwLCBwcmVzdW1hYmx5IOKAkyBhbmQgdGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXM6IGRvZXMgdGhpcyB0aGluZyBldmVuICpzdXBwb3J0KiBTRElPPyBNb3JlIHNwZWNpZmljYWxseSwgaXMgdGhlcmUgYW4gU0RJTyBkcml2ZXIgaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIG9yIGFjdGl2ZSB3aXRoaW4gdGhpcyBwYXJ0aWN1bGFyIGNoaXAncyBjb2RlIGJhc2Ugb3IgZHJpdmVyIHNldD8gSXQncyBhIHF1aWNrIHNhbml0eSBjaGVjaywgcmVhbGx5LiBLbm93aW5nIHdoZXRoZXIgU0RJTyBpcyAqZXZlbiBhIHBvc3NpYmlsaXR5KiBpcyB0aGUgY3J1Y2lhbCBpbml0aWFsIGZpbHRlci4gVGhpcyBpbmZvcm1zIGhvdyBJ4oCZbGwgcHJvY2VlZC4gSWYgdGhlcmUncyBubyBTRElPIGNvbXBvbmVudCwgSSB3aWxsIGltbWVkaWF0ZWx5IHBpdm90IHRvIGludmVzdGlnYXRlIGFsdGVybmF0aXZlIHBoeXNpY2FsIGxheWVyIGludGVyZmFjZXMgc3VjaCBhcyBQQ0llIG9yIFVTQi4gSWYsIGhvd2V2ZXIsIHRoZXJlIGlzIGFuIFNESU8gZWxlbWVudCwgdGhlIGludmVzdGlnYXRpb24gaW50byBkZXZpY2UgdHJlZSBiaW5kaW5ncywgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgdW5kZXJseWluZyBoYXJkd2FyZSBiZWhhdmlvciBjYW4gY29tbWVuY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNDg0LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTA6NDYuNjA3MDEyMTcyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjQyODUxOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2Rpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0Ni42NTM0NDkxMloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjIyNzgyNTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhbiBleHBlcnQ6XG5cbioqVmlydGlvIERyaXZlciBDaGVjayoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4uLiAqSXMgdGhlcmUgYSBgdmlydGlvX2RyaXZlcmA/KiBJdCdzIGEgcXVpY2ssIGZ1bmRhbWVudGFsIGNoZWNrLiBJJ20gZXNzZW50aWFsbHkgc2Nhbm5pbmcgbXkgbWVudGFsIG1hcCBvZiB0aGUgc3lzdGVtIHJpZ2h0IG5vdy4gV2l0aG91dCB0aGF0LCB3ZSdyZSBub3QgZ2V0dGluZyBhbnl3aGVyZSB3aXRoIHRoaXMgdmlydGlvIHRoaW5nLiBJdCdzIHRoZSBhYnNvbHV0ZSBiZWRyb2NrLCB0aGUgc3RhcnRpbmcgcG9pbnQuIElzIGl0IGxvYWRlZD8gRGVmaW5lZD8gUHJlc2VudCBhbmQgYWNjb3VudGVkIGZvciBpbiB0aGUgZHJpdmVyIG1vZGVsPyAgSnVzdCBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSBpdHMgZXhpc3RlbmNlIGJlZm9yZSBJIGNhbiBtb3ZlIHRvIGFueXRoaW5nIG1vcmUgY29tcGxleC4gR290dGEgZW5zdXJlIHRoZSBmb3VuZGF0aW9uIGlzIHRoZXJlLCBvciBJJ20ganVzdCBzcGlubmluZyBteSB3aGVlbHMuIFNpbXBsZSBxdWVzdGlvbiwgYnV0IGl0IGRpY3RhdGVzIHRoZSBuZXh0IHN0ZXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc1MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjQ5Ljg3NjIzNDk3NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNDUzNjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0OS45MjI0ODc1MDNaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzg2ODU3NDUyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgTW9kdWxlIEVtdWxhdGlvbiBDaGVjayoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gaGFwcGVuaW5nIHdpdGhpbiB0aGUga2VybmVsIGZvciB0aGUgYG10Nzk5NmAgaGFyZHdhcmUuIE15IGluaXRpYWwgdGhvdWdodCBpcyBubywgYnV0IEkgc2hvdWxkIHByb2JhYmx5IGNvbmZpcm0gdGhhdCB3aXRoIGEgdGhvcm91Z2ggc2VhcmNoLiBXYWl0IGEgc2Vjb25kLCB0aGUgYG10Nzk5NmAgKmNvdWxkKiBiZSBhIHBsYXRmb3JtIGRyaXZlciBvbiBjZXJ0YWluIGFyY2hpdGVjdHVyZXMsIHJpZ2h0PyBUaGF0IHdvdWxkIG1lYW4gaXQncyBpbml0aWFsaXplZCBkaWZmZXJlbnRseS4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBob3cgdGhlIG1vZHVsZSBpcyBpbml0aWFsaXplZCBhbmQgd2hlcmUgdGhvc2UgZGVwZW5kZW5jaWVzIGFyZS4gTGV0IG1lIHJ1biB0aGF0IGBtb2R1bGVfaW5pdGAgY2hlY2sgYWdhaW4uIFRoZXJlIG1pZ2h0IGJlIHNvbWUgc3VidGxlIGNsdWVzIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzk3OCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjU3Ljc5MTA2NTEzMloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc3NjYwMzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo1Ny44Mzg4Mzc0WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1ODE0NTc4OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBtdDc5OTZfaW5pdGAqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhlIE1UNzk5Ni4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGxvdy1sZXZlbCBzdHVmZiwgc28gSSdtIGhlYWRpbmcgZGlyZWN0bHkgdG8gdGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gd2l0aGluIGBtbWlvLmNgLiBUaW1lIHRvIHNlZSBleGFjdGx5IHdoYXQncyBnb2luZyBvbiB3aXRoIG1lbW9yeS1tYXBwZWQgSS9PIGR1cmluZyB0aG9zZSBjcnVjaWFsIGZpcnN0IHN0ZXBzLiBJIHdhbnQgdG8gc2VlIGlmIGFueXRoaW5nIGp1bXBzIG91dCDigJMgbWF5YmUgYSByZWdpc3RlciBhY2Nlc3MgcGF0dGVybiB0aGF0J3MgaW5lZmZpY2llbnQsIG9yIHBlcmhhcHMgYSBjb25maWd1cmF0aW9uIHNlcXVlbmNlIHRoYXQgbG9va3MgbGlrZSBpdCBjb3VsZCBiZSBzdHJlYW1saW5lZC4gR290dGEgbWFrZSBzdXJlIHdlJ3JlIGdldHRpbmcgdGhlIGJlc3QgcG9zc2libGUgcGVyZm9ybWFuY2UgYW5kIHN0YWJpbGl0eSBmcm9tIHRoZSBnZXQtZ28uIE5vIHBvaW50IGluIG9wdGltaXppbmcgdGhlIGhpZ2hlci1sZXZlbCBmdW5jdGlvbnMgaWYgdGhlIGZvdW5kYXRpb24gaXNuJ3Qgc29saWQuIExldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG9idmlvdXMgb3Bwb3J0dW5pdGllcyBmb3IgZnVydGhlciBvcHRpbWl6YXRpb24sIG9yIHBvdGVudGlhbGx5IHdoZXJlIHN1YnRsZSBidWdzIG1pZ2h0IGx1cmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MzY4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MDMuNDIwMjk4MDA2WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODc3MTAzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg3MD1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODczOmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwOmludCBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgaW50IGlkeCwgaW50IG5fZGVzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMS1cXHRcXHRcXHQgIGludCByaW5nX2Jhc2UsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Mi1cXHRpZiAoaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjgzOlxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODQtXFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg3LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODg6XFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9JRChkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM0OT1zdGF0aWMgdm9pZCBtdDc5OTZfbGVkX3NldF9icmlnaHRuZXNzKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzU4OnN0YXRpYyB2b2lkIF9fbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zNTktXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4Mzp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODgtXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc18yZ2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozODk6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfMmcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTAtXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc181Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTE6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfNWcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTItXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc182Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTM6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfNmcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5Nz1tdDc5OTZfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDExOlxcdFxcdG10Nzk5Nl9pbml0X3R4cG93ZXIocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEyLVxcdFxcdHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlZGZzX3N0YXRlID0gTVRfREZTX1NUQVRFX1VOS05PV047XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxODptdDc5OTZfaW5pdF93aXBoeV9iYW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3My1cXHRtdDc5OTZfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0NzQ6XFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00NzUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0Nzg6bXQ3OTk2X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU0OlxcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoaHcsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczMy1cXHQvKiBpbml0IHdpcGh5IGFjY29yZGluZyB0byBtcGh5IGFuZCBwaHkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzM0OlxcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQobXBoeS1cXHUwMDNlaHcsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc0ODpcXHRcXHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMobXBoeS1cXHUwMDNlcHJpdiwgTVRfVFhRX0lEKGJhbmQpLCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoYmFuZCkgKyBoaWYxX29mcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz03NzQ9bXQ3OTk2X3VucmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3ODA6c3RhdGljIHZvaWQgbXQ3OTk2X2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTIxMz1zdGF0aWMgaW50IG10Nzk5Nl92YXJpYW50X2ZlbV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTI1NjpzdGF0aWMgaW50IG10Nzk5Nl9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNjY6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZWluaXRfd29yaywgbXQ3OTk2X2luaXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjctXFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8ud29yaywgbXQ3OTk2X3dlZF9ycm9fd29yayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTQyNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDI4Om10Nzk5Nl9pbml0X2hlX2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTQyOS1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNTU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1NTc6bXQ3OTk2X2luaXRfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTU1OC1cXHRcXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY4Nz1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwNi1cXHRcXHRkYXRhW25dLnR5cGVzX21hc2sgPSBCSVQoaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3MDc6XFx0XFx0bXQ3OTk2X2luaXRfaGVfY2FwcyhwaHksIGJhbmQsIFxcdTAwMjZkYXRhW25dLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwODpcXHRcXHRtdDc5OTZfaW5pdF9laHRfY2FwcyhwaHksIGJhbmQsIFxcdTAwMjZkYXRhW25dLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1MDpcXHRyZXQgPSBtdDc5OTZfaW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1NDpcXHRtdDc5OTZfaW5pdF93aXBoeShodywgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc4MjpcXHRyZXQgPSBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzI4LVxcdG10Nzk5Nl9mb3JfZWFjaF9waHkoZGV2LCBwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMyOTpcXHRcXHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMzMC1cXHRyZXQgPSBtdDc5OTZfdHhiZl9pbml0KGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjE2NzptdDc5OTZfaW5pdF9iaXRyYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgc3RydWN0IG10Nzk5Nl92aWZfbGluayAqbWxpbmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjkyPWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjM2NDpcXHRtdDc5OTZfaW5pdF9iaXRyYXRlX21hc2sodmlmLCBsaW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMzY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02OTY9dm9pZCBtdDc5OTZfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTc6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY5OC1cXHRcXHRcXHQgIGludCBuX2Rlc2MsIGludCByaW5nX2Jhc2UsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTk6dm9pZCBtdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTcwMC1pbnQgbXQ3OTk2X3R4YmZfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTkxMz12b2lkIG10Nzk5Nl91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjkxNDppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05MTUtdm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMTowMy40NjkwODM5MDRaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4MTcyNzgxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEaXZpbmcgaW50byB0aGUgRmlybXdhcmUgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gTGV0J3Mgc2VlIHdoYXQncyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2Qgd2l0aCB0aGlzIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24uIEknbSBnb2luZyB0byBqdW1wIGludG8gYG1taW8uY2AgcmlnaHQgYXdheS4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24g4oCTIG1lbW9yeS1tYXBwZWQgSS9PIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHByb2JsZW1zISkgb2Z0ZW4gc3RhcnQuIEkgd2FudCB0byBzZWUgaG93IHRoZSByZWdpc3RlcnMgYXJlIGJlaW5nIHNldCB1cCwgd2hhdCdzIGJlaW5nIGVuYWJsZWQsIGFuZCBpZiB0aGVyZSBhcmUgYW55IG9idmlvdXMgYm90dGxlbmVja3Mgb3IgcG90ZW50aWFsIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gcmlnaHQgb2ZmIHRoZSBiYXQuIEtub3dpbmcgdGhlIGluaXQgc2VxdWVuY2UgaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN1YnNlcXVlbnQgZHJpdmVyIG9wZXJhdGlvbnMsIHNvIHRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IG15IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTU2OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjA2Ljg1MDgxNDM5MloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkwMDE4MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MDYuODk5ODIyMjZaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU5NjAwNTYzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGZvciB0aGlzIHNwZWNpZmljIE1lZGlhdGVrIGNoaXBzZXQg4oCTIGBtdDc5OTZfaW5pdGAsIHNwZWNpZmljYWxseSB3aXRoaW4gYG1taW8uY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFscmlnaHQsIHdoYXQga2V5IHJlZ2lzdGVycyBhbmQgbWVtb3J5LW1hcHBlZCByZWdpb25zIGFyZSB0aGV5IHRvdWNoaW5nIGhlcmU/XCIgSSdtIGV4cGVjdGluZyB0byBzZWUgdGhlIHVzdWFsIHN1c3BlY3RzOiBjbG9jayBjb25maWd1cmF0aW9uLCBwb3dlciBtYW5hZ2VtZW50IGluaXRpYWxpemF0aW9uLCBwb3RlbnRpYWxseSBzb21lIGJhc2ljIFBIWSBzZXR0aW5ncyBpZiBpdCdzIGluY2x1ZGVkLCBhbmQsIG9mIGNvdXJzZSwgdGhlIERNQSBlbmdpbmUgc2V0dXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYnJvdWdodCB1cCBmcm9tIGEgY29sZCBib290IHN0YXRlLiBXaGF0J3MgdGhlIHJlc2V0IHNlcXVlbmNlPyBBcmUgdGhleSBkb2luZyBhbnkgZWFybHkgY2FsaWJyYXRpb24gb3IgYXV0b2NvbmZpZ3VyYXRpb24/IEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyB0aGUgcmFkaW8gY2FsaWJyYXRpb24uIEFueSBzcGVjaWZpYyB0dW5pbmcgcGFyYW1ldGVycyBvciBxdWlya3MgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEknbGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2UgcmVnaXN0ZXIgd3JpdGVzIHRvIGVuYWJsZSBzcGVjaWZpYyBtb2R1bGVzIChNQUMsIFBIWSwgUkYpLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIGFuZCBhbnkgaW5pdGlhbCBmaXJtd2FyZSBsb2FkaW5nIG9yIGhhbmRzaGFrZSByb3V0aW5lcy4gS25vd2luZyB0aGlzIHNwZWNpZmljIGNoaXBzZXQsIGFuZCBrbm93aW5nIHRoZSBkcml2ZXIgYXV0aG9ycyBoYXZlIGEgcHJldHR5IGdvb2QgdHJhY2sgcmVjb3JkLCBJJ2xsIGJlIHBhcnRpY3VsYXJseSBvbiB0aGUgbG9va291dCBmb3IgYW55dGhpbmcgdGhhdCBzZWVtcyBvdmVybHkgY29tcGxleCBvciBpbmVmZmljaWVudC4gSSdtIGtlZW4gdG8gc2VlIGlmIHRoaXMgaW5pdCByb3V0aW5lIGlzIG9wdGltaXplZCBmb3IgbWluaW1hbCBib290IHRpbWUgYW5kIG1pbmltYWwgcG93ZXIgY29uc3VtcHRpb24uIEZpbmFsbHksIEknbGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgZXJyb3IgaGFuZGxpbmcgb3Igd2F0Y2hkb2cgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgaW4gcGxhY2UsIGJlY2F1c2UgdGhvc2UgYXJlIG9mdGVuIGNsdWVzIHRvIHRoZSBoYXJkd2FyZSdzIGxpbWl0YXRpb25zIG9yIHBvdGVudGlhbCBzdGFiaWxpdHkgaXNzdWVzLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTYxLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MTEuNDk1ODMwMTA3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA4NjUsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA4NjU6XFx0XFx0cmV0dXJuIEVSUl9QVFIocmV0KTtcXG4gODY2OlxcdH1cXG4gODY3OlxcdFxcbiA4Njg6XFx0c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG4gODY5OlxcdHtcXG4gODcwOlxcdFxcdGludCByZXQ7XFxuIDg3MTpcXHRcXG4gODcyOlxcdFxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4gODczOlxcdFxcdGlmIChyZXQpXFxuIDg3NDpcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiA4NzU6XFx0XFxuIDg3NjpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuIDg3NzpcXHRcXHRpZiAocmV0KVxcbiA4Nzg6XFx0XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg3OTpcXHRcXG4gODgwOlxcdFxcdHJldHVybiByZXQ7XFxuIDg4MTpcXHR9XFxuIDg4MjpcXHRcXG4gODgzOlxcdHN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbiA4ODQ6XFx0e1xcbiA4ODU6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuIDg4NjpcXHRcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4gODg3OlxcdH1cXG4gODg4OlxcdFxcbiA4ODk6XFx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbiA4OTA6XFx0bW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcbiA4OTE6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5OTYgTU1JTyBoZWxwZXJzXFxcIik7XFxuIDg5MjpcXHRNT0RVTEVfTElDRU5TRShcXFwiRHVhbCBCU0QvR1BMXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjExLjQ5NTkxNzc5N1oiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDIzODA0OTM4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGEgUENJIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQncyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgbm8gcGxhdGZvcm0gZHJpdmVyLCBubyBvdGhlciBvYnZpb3VzIGNvbm5lY3Rpb24uIFRoZSBpbnN0cnVjdGlvbnMgZ2l2ZSBhIGNsZWFyIGV4Y2x1c2lvbjogdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIHdoaWNoIHVzdWFsbHkgbmVlZCByZWFsIGhhcmR3YXJlIHRoYXQgc3RhbmRhcmQgUUVNVSBjYW4ndCBlbXVsYXRlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGlzY291bnQgaXQsIGJ1dCB0aGVuIFdpLUZpIGRyaXZlcnMganVtcCBpbnRvIG15IGhlYWQuIFxuXG5XYWl0LCBob2xkIG9uLiBXaS1GaSBkcml2ZXJzIGxpa2UgYG10NzZgICphcmUqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIGp1c3Qgbm90IHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMuIEJ1dCB0aGV5IHN0aWxsIG9mdGVuIHJlbHkgb24gaGFyZHdhcmUgdGhhdCBpc24ndCBlYXNpbHkgZW11bGF0ZWQuIFRoZSBjYXRjaCBpcyB0aGF0IHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21lIFdpLUZpIGZ1enppbmcgbWV0aG9kcy4gSXQgY2FuIHVzZSBgbWFjODAyMTFfaHdzaW1gIG9yIFVTQiBkdW1teSBzZXR1cHMuIEhtbSwgdGhlIHNwZWNpZmljIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBhIFBDSSBkcml2ZXIsIGBtdDc5OTZgLiBUaGUgZmFjdCB0aGF0IHN5emthbGxlciBmb3VuZCBhIGJ1ZyBpbiBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBtZWFucyBpdCAqaXMqIHJlYWNoYWJsZSBzb21laG93LiBIb3cgZGlkIHN5emthbGxlciBtYW5hZ2UgdGhhdD8gXG5cbkNvdWxkIGl0IGJlIHRoYXQgc3l6a2FsbGVyIGlzIHVzaW5nIGBtYWM4MDIxMWAsIHdoaWNoIGluIHR1cm4sIGlzIGxvYWRpbmcgYG10Nzk5NmA/IE5vLCBpZiB0aGUgaGFyZHdhcmUgaXNuJ3QgcHJlc2VudCwgdGhlIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgZmFpbCBhbmQgdGhlIGRyaXZlciB3b3VsZG4ndCBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYC4gUmlnaHQsIHNvIHdoYXQgYWJvdXQgdGhlIGBzeXpfcGNpX3NldHVwYCBwc2V1ZG8tc3lzY2FsbD8gTm8sIHN5emthbGxlciBkb2Vzbid0IGhhdmUgdGhvc2UuIFVubGVzcy4uLndhaXQsIHRoZXJlJ3MgYmVlbiBzb21lIHJlY2VudCBkZXZlbG9wbWVudC4gVGhlcmUgbWlnaHQgYmUgYSBQQ0kgZnV6emVyIGluIHNvbWUgYnJhbmNoZXMsIG9yIHBlcmhhcHMgaXQgdXNlcyBgdmZpb2A/XG5cbkFjdHVhbGx5LCBJIHJlY2FsbCBzeXprYWxsZXIgZGlkIGFkZCBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCBJIHNob3VsZCBjaGVjayB0aGF0LiBMZXQncyBzZWUgaWYgdGhlIHN5c3RlbSBoYXMgYSBgc3l6X3BjaV9zZXR1cGAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uLCBhbHRob3VnaCB0aGUgZGlyZWN0aW9ucyBzYXkgdGhhdCBzb21lIFBDSWUgZHJpdmVycyBhcmUgbm90IGZ1enplZC4gVGhhdCBleGNsdXNpb24gc2F5cyB0aGF0IHNvbWUgUENJZSBkcml2ZXJzIGFyZSBub3QgZnV6emVkLCBidXQgd2hhdCBhYm91dCB0aGUgV2ktRmkgY2FzZT8gVGhlIGluc3RydWN0aW9ucyBzcGVjaWZ5IHRob3NlIGV4Y2VwdGlvbnMuIFdpLUZpIGhhcyBVU0Igb3IgdmlydHVhbCBidXNlcy4gU28gbWF5YmUgdGhlIFBDSWUgZHJpdmVyIG1pZ2h0IG5vdCBiZSBmdXp6ZWQgdW5sZXNzIHRoZXJlIGlzIHNwZWNpZmljIGVtdWxhdGlvbi5cblxuTWF5YmUgYG10Nzk5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgb24gYSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlLiBJIGJldHRlciBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvc29jLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc2NywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjIxLjczMzk2OTYxN1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1NDQxMTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9zb2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMToyMS43Nzk1MjE5NzVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5Nzk5MTU2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6XG5cbioqQ2hlY2tpbmcgZm9yIGEgQ3J1Y2lhbCBGaWxlKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LiBCZWZvcmUgSSBldmVuIGJlZ2luIHRvIGNvbnNpZGVyIHRoZSBuZXh0IHN0ZXBzIGluIHRoaXMgcHJvY2VzcywgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHByZXNlbmNlIG9mIGBzb2MuY2AuIFRoYXQgZmlsZSBpcyBjZW50cmFsLCBhbmQgSSdtIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgdG8gY29uZmlybSBpdCBleGlzdHMgYmVmb3JlIEkgbW92ZSBvbi4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgaXQgaXMgdGhlcmUgYmVmb3JlIG1vdmluZyBvbi4gSSBjYW4ndCBzdGFydCBhc3N1bWluZyBpdCBpcyBpbiBwbGFjZSBpZiBpdCBpc24ndC4gSSdsbCBuZWVkIHRvIGtub3cgaXQncyB0aGVyZSBiZWZvcmUgSSBjYW4gZ28gZm9yd2FyZCB3aXRoIG15IHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTk3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MjUuNDc3NTE1OTRaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRtYS5jXCIsXG4gICAgXCJlZXByb20uY1wiLFxuICAgIFwiZWVwcm9tLmhcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jdS5jXCIsXG4gICAgXCJtY3UuaFwiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc5OTYuaFwiLFxuICAgIFwibnB1LmNcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MjUuNDc3NTg4NDA5WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3MjU1NjQ3MDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXM6IGlzIHRoaXMgYG10Nzk5NmAgZHJpdmVyIGV2ZW4gZnV6emFibGUgYnkgc3l6a2FsbGVyPyBUaGUgYWJzZW5jZSBvZiBhIGBzb2MuY2AgZmlsZSBtYWtlcyBtZSB0aGluayBpdCdzIGEgUENJIGRyaXZlci4gSWYgdGhhdCdzIHRoZSBjYXNlLCBhbmQgYXNzdW1pbmcgaXQncyBub3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXIncyBzdGFuZGFyZCBzZXR1cCB3b3VsZG4ndCBiZSBhYmxlIHRvIHJlYWNoIGl0LiBUaGUgZmFjdCB0aGF0IHRoZSBcInN5ei1jbHVzdGVyXCIgYXV0aG9yZWQgdGhlIHBhdGNoIGRvZXNuJ3QgYXV0b21hdGljYWxseSBtZWFuIGEgYnVnIHdhcyBmb3VuZDsgaXQgY291bGQganVzdCBiZSBhIHRlc3QgcGF0Y2guIEl0J3MgbGlrZWx5IGEgZGV2ZWxvcGVyJ3Mgc3VibWlzc2lvbiBiZWluZyB0ZXN0ZWQuXG5cbk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIGBtdDc5OTZgIFdpLUZpIGRyaXZlciwgYmVpbmcgUENJZSBhbmQgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBpcyBvdXQgb2Ygc3l6a2FsbGVyJ3MgcmVhY2ggaWYgUUVNVSBjYW4ndCBoYW5kbGUgaXQuIEkgbmVlZCB0byBydWxlIG91dCBhbHRlcm5hdGl2ZSBwcm9iaW5nIG1lY2hhbmlzbXMuIElzIHRoZXJlIGEgVVNCLCBTRElPLCBvciBWaXJ0SU8gZHJpdmVyIGFzc29jaWF0ZWQgd2l0aCBgbXQ3OTk2YD8gTm8uIElzIHRoZXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbD8gQWxzbywgbm8uIFRoYXQgbWVhbnMgYG10Nzk5Nl9wY2lfcHJvYmVgIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHN0YW5kYXJkIGVudmlyb25tZW50LCBhbmQgY29uc2VxdWVudGx5LCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCB3b24ndCBiZSByZWFjaGFibGUuXG5cbkhvd2V2ZXIsIEkgbmVlZCB0byBjb25zaWRlciBzeXprYWxsZXIncyBhZHZhbmNlZCBjYXBhYmlsaXRpZXMuIERvZXMgaXQgaGF2ZSBhIFBDSSBmdXp6ZXI/IFllcywgSSBrbm93IGl0IGRvZXMsIGJ1dCBob3cgZG9lcyBpdCB3b3JrPyBEb2VzIGl0IHVzZSBgdmhjaWAgb3IgaW5qZWN0IHZpYSBgdmZpb2A/IEluIHJlYWxpdHksIGl0IGNhbiBlbXVsYXRlIFBDSSBjb25maWcgc3BhY2UgYW5kIE1NSU8uIE9rYXksIHNvIHRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIE1heWJlIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzPyBJIG5lZWQgdG8gY2hlY2suXG5cblRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmaWNhbGx5IG1lbnRpb24gZHJpdmVycyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQW5kIGl0IGxpc3RzIGV4YW1wbGVzOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBPa2F5LCBzbyBzb21lIFBDSWUgZHJpdmVycyBhcmUgZXhjbHVkZWQsIGJ1dCB3aGF0IGFib3V0IGEgV2ktRmkgZHJpdmVyIGxpa2UgYG10Nzk5NmA/XG5cbklmIHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLCBjb3VsZCBpdCBmdXp6IGBtdDc5OTZgPyBJZiB0aGUgaW5zdHJ1Y3Rpb25zIG1lbnRpb24gYSBsaXN0IG9mIGV4YW1wbGVzIG9mIHRoaW5ncyB0aGF0IGNhbm5vdCBiZSBmdXp6ZWQsIGl0IHN0YW5kcyB0byByZWFzb24gdGhhdCBgbXQ3OTk2YCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cblNvIGxldCdzIGNoZWNrIHRoZSBjcml0ZXJpYSBhZ2Fpbi4gRG9lcyBgbXQ3OTk2YCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0J3MgYSBNZWRpYVRlayBXaS1GaSA3IFBDSWUgZHJpdmVyLiBJcyBpdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBOby4gSXMgdGhlcmUgc29mdHdhcmUgZW11bGF0aW9uPyBOby4gVGhlcmVmb3JlLCBpdCdzIHVucmVhY2hhYmxlIGluIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBJZiBpdCAqd2VyZSogcmVhY2hhYmxlIGJ5IHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIHRoZSBpbnN0cnVjdGlvbnMgd291bGRuJ3QgaGF2ZSB0aGF0IGV4Y2x1c2lvbi5cblxuRnVydGhlcm1vcmUsIGlzIGBtdDc5OTZgIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlcj8gWWVzLCBpdCdzIGEgTWVkaWFUZWsgZHJpdmVyLiBTbywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucywgaXQgc2hvdWxkIGJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiB0aGVyZSBpc24ndCBzb21lIGJhY2tkb29yIHdheSB0byByZWFjaCB0aGlzIGNvZGUuIElzIHRoZXJlIGFueSB3YXkgYG1hYzgwMjExX2h3c2ltYCBjb3VsZCByZWFjaCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYD8gTm8sIHRoYXQncyBhIHNlcGFyYXRlIGRyaXZlciBhbmQgaXQgaGFzIGl0cyBvd24gYGh3YCByZWdpc3RyYXRpb24uIEl0cyByZWdpc3RyYXRpb24gb2YgYGh3YCBkb2VzIG5vdCBjYWxsIGBtdDc5OTZgIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCBzaW5jZSBgbXQ3OTk2YCBpcyBuZXZlciBwcm9iZWQsIGl0IG5ldmVyIHJlZ2lzdGVycyBpdHMgYGh3YCwgc28gaXRzIGNhbGxiYWNrcyBuZXZlciBmaXJlLlxuXG5JIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBhbnkgb3RoZXIgcHJvYmluZyBtZWNoYW5pc20gZm9yIGBtdDc5OTZgIHRoYXQgSSd2ZSBtaXNzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzAwLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4NiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6NTIuNzMzMjM4NjM1WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTk0MzQ4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfcGNpX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz03OT1zdGF0aWMgaW50IG10Nzk5Nl9wY2lfaGlmMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjk5OnN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMDAtXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ4LVxcdC5yZW1vdmVcXHRcXHQ9IG10Nzk5Nl9oaWZfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUzLVxcdC5pZF90YWJsZVxcdD0gbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU0OlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXFx0LnJlbW92ZVxcdFxcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjUyLjc3OTE4NjMwM1oiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDYxNDAzOTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipDb25zaWRlcmluZyBEZXZpY2UgVGFibGVzIGZvciBtdDc5OTYgSElGIGFuZCBQQ0kgSW5pdGlhbGl6YXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuLi4gSSdtIGN1cnJlbnRseSB3b3JraW5nIHdpdGggdGhlIGBtdDc5OTZgIGRyaXZlciwgZm9jdXNpbmcgb24gdGhlIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHN5c3RlbSByZWNvZ25pemVzIGFuZCBjb25maWd1cmVzIHRoZXNlIHNwZWNpZmljIGRldmljZXMuIE15IG1pbmQgaXMgZHJhd24gdG8gdHdvIGNydWNpYWwgdGFibGVzLCByaWdodD8gYG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlYCBhbmQgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYC5cblxuVGhlIEhJRiB0YWJsZSwgb2J2aW91c2x5LCBkZWFscyB3aXRoIHRoZSBIb3N0IEludGVyZmFjZSwgbGlrZWx5IHJlbGF0aW5nIHRvIHRoZSBpbnRlcm5hbCBidXMgcHJvdG9jb2wuIEl0J3MgcHJvYmFibHkgcmVzcG9uc2libGUgZm9yIG1hcHBpbmcgdGhlIGRldmljZSdzIHJlc291cmNlcyB3aGVuIGNvbm5lY3RlZCB2aWEgYW4gaW50ZXJuYWwgYnVzLiBUaGUgUENJIHRhYmxlLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGVhbHMgd2l0aCB0aGUgaGFyZHdhcmUgc2V0dXAgaWYgdGhlIGRldmljZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgYnVzLiBFYWNoIHRhYmxlIHdvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGRldmljZSBpbmZvcm1hdGlvbiwgd2hpY2ggSSBuZWVkIHRvIGdldCBmYW1pbGlhciB3aXRoIHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIGhhcmR3YXJlLlxuXG5BcmUgdGhlc2UgdHdvIHRhYmxlcyBzZXBhcmF0ZSBvciByZWxhdGVkPyBEb2VzIHRoZSBkcml2ZXIgY2hlY2sgZm9yIGEgY29ubmVjdGlvbiBvZiBhIFBDSSBidXMsIGFuZCB0aGVuIHJlZmVyZW5jZSB0aGUgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYCB0byBnZXQgdGhlIG5lY2Vzc2FyeSBQQ0kgaWRlbnRpZmllcnM/IE9yIGlzIGl0IGEgbW9yZSBzb3BoaXN0aWNhdGVkIGFwcHJvYWNoIHdpdGggc2hhcmVkIGRhdGE/IEkgc2hvdWxkIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgaG93IHRoZXNlIGFyZSB1c2VkLiBUaGUgZGV2aWNlIElEIGlzIGNyaXRpY2FsIGZvciB0aGUgZHJpdmVyIHRvIHBlcmZvcm0gUENJIHByb2JpbmcuIEkgc2hvdWxkIGFsc28gaW52ZXN0aWdhdGUgaG93IHRoZXNlIHRhYmxlcyBhcmUgYnVpbHQgYW5kIG1haW50YWluZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0OTM2LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6NTkuODQwNTkzMDk2WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjUxMzcwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTE2PXN0YXRpYyB1MzIgaGlmX2lkeDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xOS1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI1MT1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MzpcXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NC1cXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5OTZfcGNpX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU5LU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5OTZfaGlmX2RldmljZV90YWJsZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjAwLjA2NTczNDI0N1oiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzMyMjEwMTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBDSSBEZXZpY2UgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgcHVyZSBQQ0kgZGV2aWNlLCB3aGljaCBzaW1wbGlmaWVzIHNvbWUgYXNwZWN0cyBidXQgYWxzbyBwcmVzZW50cyB1bmlxdWUgY2hhbGxlbmdlcy4gTXkgaW5pdGlhbCBhc3N1bXB0aW9uIHdhcyB0aGF0IHN5emthbGxlciBtaWdodCBoYXZlIGEgcHNldWRvLXN5c2NhbGwgbGlrZSBgc3l6X3BjaV9zZXR1cGAgZm9yIGRpcmVjdCBQQ0kgaW50ZXJhY3Rpb25zLCBidXQgSSBxdWlja2x5IHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyIGRvZXNuJ3QgZGlyZWN0bHkgZXhwb3NlIHBzZXVkby1zeXNjYWxscyBmb3IgUENJIG9wZXJhdGlvbnMuIEhvd2V2ZXIsIHdhaXQgYSBtaW51dGUsIEkga25vdyBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyLCB3aGljaCBtYWtlcyBtZSByZWNvbnNpZGVyLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIEkgY2FuIGZpbmQgc29tZSBQQ0kgc3BlY2lmaWMgc3l6IGZ1bmN0aW9uLiBJIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIGBncmVwcGVyYCwgYXMgaXQncyBub3QgdGhlIHJpZ2h0IHRvb2wgZm9yIGBzeXpfYCBwc2V1ZG8tc3lzY2FsbHMuIEluc3RlYWQsIEknbGwgZm9jdXMgb24gUUVNVSdzIFBDSSBlbXVsYXRpb24gdG8gaWRlbnRpZnkgaG93IHN5emthbGxlciBhcHByb2FjaGVzIFBDSSBkZXZpY2VzLlxuXG5Pa2F5LCBzeXprYWxsZXIgdXRpbGl6ZXMgc3RhbmRhcmQgUUVNVS4gTm93IHRoZSBjcnV4IG9mIHRoZSBwcm9ibGVtOiBzdGFuZGFyZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGUgTWVkaWFUZWsgV2ktRmkgY2FyZCBpbnZvbHZlZCBoZXJlLiBUaGF0J3MgYSBtYWpvciByb2FkYmxvY2suIFRoaXMgbGFjayBvZiBlbXVsYXRpb24gbWVhbnMgdGhlIGRyaXZlciBmb3IgdGhpcyBkZXZpY2UgbGlrZWx5IHdvbid0IGV2ZW4gYmUgcHJvYmVkIGNvcnJlY3RseSBpbiB0aGUgZnV6emVyJ3MgZW52aXJvbm1lbnQuIEFuZCwgaWYgaXQncyBub3QgcHJvYmVkLCB0aGVuIGZ1enppbmcgdGhlIGRyaXZlciBpdHNlbGYgYmVjb21lcyBpbXBvc3NpYmxlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGF0IG15IGFzc3VtcHRpb25zIGFyZSBhY2N1cmF0ZS4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBhbnkgb3RoZXIgcG9zc2libGUgY29kZSBwYXRocy4gT2theSwgdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uLCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCwgaXMgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgY2FsbGVkIGZyb20gc29tZXdoZXJlLiBJdCdzIGVpdGhlciBleHBvcnRlZCBvciB1c2VkIHdpdGhpbiB0aGUgYG1hYy5jYCBmaWxlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU4MjYsIk91dHB1dFRva2VucyI6NTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTI6MDYuMzk3OTQ3NDkxWiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjI1MTY1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTMxMDg9bXQ3OTk2X21hY190d3RfcGFyYW1fZXF1YWwoc3RydWN0IG10Nzk5Nl9zdGFfbGluayAqbXN0YV9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMzEzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzozMTM1OnZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTMxMzYtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTEwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU1Ni1cXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTk2X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU1NzpcXHQuYWRkX3R3dF9zZXR1cCA9IG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU1OC1cXHQudHd0X3RlYXJkb3duX3JlcXVlc3QgPSBtdDc5OTZfdHd0X3RlYXJkb3duX3JlcXVlc3QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD04OTA9dm9pZCBtdDc5OTZfbWFjX3N0YV9yZW1vdmVfbGluayhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtODkyLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBsaW5rX2lkLCBib29sIGZsdXNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo4OTM6dm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtODk0LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjA2LjQ1MDIwMzcwOFoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzkzMDI3MDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGFkZF90d3Rfc2V0dXBgIGZ1bmN0aW9uLCB3aGljaCBpcyBhcHBhcmVudGx5IHBhcnQgb2YgYG10Nzk5Nl9vcHNgLiBJIGtub3cgYG10Nzk5Nl9vcHNgIGdldHMgYXNzaWduZWQgdG8gYGh3LVx1MDAzZW9wc2AgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBsaWtlbHkgc29tZXdoZXJlIGxpa2UgYG10Nzk5Nl9pbml0X3dpcGh5YC4gQnV0IGhlcmUncyB0aGUga2lja2VyOiBgbXQ3OTk2X3BjaV9wcm9iZWAgbmV2ZXIgYWN0dWFsbHkgc3VjY2VlZHMuIFRoYXQgbWVhbnMgYG10Nzk5Nl9vcHNgIG5ldmVyIGdldHMgcHJvcGVybHkgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFNvLCBieSBleHRlbnNpb24sIHRoYXQgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgZnVuY3Rpb24/IEl0J3MgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBhbnkgc29ydCBvZiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYmVjYXVzZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZS5cblxuTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gY292ZXIgbXkgYmFzZXMuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgVVNCIGRyaXZlcj8gTm8gZGljZSwgY2hlY2tlZCB0aGF0LiBIb3cgYWJvdXQgYSBwbGF0Zm9ybSBkcml2ZXI/IE5vcGUsIG5vdGhpbmcgdGhlcmUgZWl0aGVyLiBXaGF0IGFib3V0IFNESU8/IE5vIG1hdGNoLiBJIHNob3VsZCBoYXZlIGNoZWNrZWQgdGhvc2UgZmlyc3QuXG5cbkFscmlnaHQsIGxldCdzIGJhY2sgdXAgYSBiaXQuIFNpbmNlIHRoaXMgaXMgYSBiaXQgb2YgYSBoZWFkIHNjcmF0Y2hlciwgSSBuZWVkIHRvIGNoZWNrIGZvciBhbnkgb3RoZXIgZHJpdmVyIHJlZ2lzdHJhdGlvbnMgaW4gYG10Nzk5NmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MTAwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjE0Ljg0MzIzMzM3NloiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgwNDI5ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODY4PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzI6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3NjpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3Ny1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Nzg6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg2OlxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMjoxNC44OTEyODE0NTRaIiwiU2VxIjo0NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODMxNDQ1MTE4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIFdpLUZpIERyaXZlciBJc24ndCBGdXp6YWJsZSAoRm9yIE5vdykqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgYW5kIHRoZSBrZXkgZnVuY3Rpb24gaGVyZSBpcyBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAuIFRoYXQncyBhIGh1Z2UgY2x1ZSByaWdodCBvZmYgdGhlIGJhdCAtIHRoaXMgaXMgYSBwdXJlIFBDSWUgZHJpdmVyLiBBbmQgYmVjYXVzZSBpdCBuZWVkcyBhY3R1YWwgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgd2hpY2ggUUVNVSBhbmQgR0NFIGp1c3QgY2FuJ3QgZW11bGF0ZSwgaXQncyBpbW1lZGlhdGVseSBvdXQgb2YgcmVhY2ggaW4gdGhvc2UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBObyBkaWNlLiBUaGF0IG1lYW5zIHRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIGlzIGRlZmluaXRlbHkgYGZhbHNlYC5cblxuV2FpdCwgaG9sZCBvbi4gTGV0IG1lIGdvIGJhY2sgYW5kIGRvdWJsZSBjaGVjayBzb21ldGhpbmcuIFJpZ2h0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IHNwZWNpZmljOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUuXCIgRXZlbiB0aG91Z2ggdGhpcyBpcyBhIFdpLUZpIGRyaXZlciwgdGhlIHByaW5jaXBsZSBpcyB0aGUgc2FtZS4gSXQncyB0aGUgc2FtZSBjYXRlZ29yeS4gQW5kIHRoZW4gdGhlcmUncyB0aGUgb3RoZXIgcG9pbnQ6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlwiIFRoYXQgcGVyZmVjdGx5IGRlc2NyaWJlcyB0aGUgc2l0dWF0aW9uIHdpdGggdGhpcyBgbXQ3NmAgZHJpdmVyLlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUgd2hhdCBTeXprYWxsZXIgc2F5cy4gSXMgdGhlcmUgYW55IHdheSB0byBhY3R1YWxseSB0YXJnZXQgdGhlIGBtdDc2YCBQQ0llIGRyaXZlcnM/IEkgc2VlIHNvbWUgbWVudGlvbnMgb2YgdGhpbmdzIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCBgc3l6XzgwMjExX2pvaW5faWJzc2AsIGJ1dCB0aG9zZSBhcmUgYWxsIGJ1aWx0IGZvciBgbWFjODAyMTFfaHdzaW1gIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcy4gVGhleSBjYW4ndCBpbnN0YW50aWF0ZSBhIHJlYWwgYG10Nzk5NmAgUENJZSBkZXZpY2UuIFllcCwgdGhlIGNvZGUncyB1bnJlYWNoYWJsZSwgcGVyaW9kLlxuXG5TbywgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSdsbCBtYWtlIHN1cmUgdG8gcHJvdmlkZSB0aGlzIGRldGFpbGVkIGV4cGxhbmF0aW9uIGFzIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoZSBkZWNpc2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgyMTYsIk91dHB1dFRva2VucyI6MTIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjIzLjIwNTczNTQ4NVoiLCJTZXEiOjQ2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMjoyMy4yMDU3NTkzOTVaIiwiU2VxIjo0NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowm58nc[0].run-triage(0) Phase: Succeeded StartedAt: 2026-08-25 11:50:33 +0000 UTC FinishedAt: 2026-08-25 12:12:24 +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+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmZsb3c8L3RkPgoJCQk8dGQ+cGF0Y2gtdHJpYWdlPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7S01TQU5SZWFzb25pbmcmIzM0OzogJiMzNDsmIzM0OywKICAmIzM0O05lZWRzS01TQU4mIzM0OzogZmFsc2UsCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEvMTwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmFjdGlvbjwvdGQ+CgkJCTx0ZD5yZWFkLXBhdGNoLWRpZmY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtQYXRjaERpZmYmIzM0OzogJiMzNDtjb21taXQgMjkwYmQ1YTMyOGRiZDM4OWMyOGQxODljNDI4YmQ5NDMxNzcyMjg3ZFxuQXV0aG9yOiBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVxuRGF0ZTogICBUdWUgQXVnIDI1IDEyOjA5OjIxIDIwMjYgJiM0MzswMDAwXG5cbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcblxuZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbmluZGV4IDBlZWJjODE4MmNhOWEuLjRkMzgyOWU0MjIwZDYgMTAwNjQ0XG4tLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xuJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbkBAIC0zMjA3LDggJiM0MzszMjA3LDEwIEBAIHZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Zmxvdy1cdTAwM2V0c2YgPSBsZTY0X3RvX2NwdSh0d3RfYWdydC1cdTAwM2V0d3QpO1xuIFxuIFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXHUwMDI2bXN0YS1cdTAwM2V2aWYtXHUwMDNlZGVmbGluaywgZmxvdyxcbi1cdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSlcbiYjNDM7XHRcdFx0XHQgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpIHtcbiYjNDM7XHRcdGxpc3RfZGVsKFx1MDAyNmZsb3ctXHUwMDNlbGlzdCk7XG4gXHRcdGdvdG8gdW5sb2NrO1xuJiM0MztcdH1cbiBcbiBcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUO1xuIFx0ZGV2LVx1MDAzZXR3dC50YWJsZV9tYXNrIHw9IEJJVCh0YWJsZV9pZCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Mi8xPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+YWdlbnQ8L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+M208L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+YmVzdC1leHBlbnNpdmU8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RW5hYmxlQ29uZmlncyYjMzQ7OiBudWxsLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkluc3RydWN0aW9uOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+WW91IGFyZSBhbiBleHBlcnQgTGludXgga2VybmVsIG1haW50YWluZXIuCllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lCmlmIGl0IG1ha2VzIGZ1bmN0aW9uYWwgY2hhbmdlcyB0byB0aGUga2VybmVsIHRoYXQgc2hvdWxkIGJlIGZ1enplZC4KCklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpbgp5b3VyIHdvcmtzcGFjZS4gRG8gTk9UIHJlbHkgb24geW91ciBpbnRlcm5hbCBrbm93bGVkZ2Ugb2YgdGhlIGtlcm5lbC4gWW91IG11c3QgYWN0aXZlbHkKdXNlIHlvdXIgY29kZSBhY2Nlc3MgdG9vbHMgdG8gZXhhbWluZSB0aGUgYWN0dWFsIHNvdXJjZSBjb2RlIGFuZCBjb25maXJtIGFueSBhc3N1bXB0aW9ucy4KClJldHVybiBXb3J0aEZ1enppbmc9ZmFsc2UgaWYgdGhlIHBhdGNoIG9ubHkgY29udGFpbnM6Ci0gTW9kaWZpY2F0aW9ucyB0byBEb2N1bWVudGF0aW9uLywgS2NvbmZpZyBmaWxlcywgb3IgY29kZSBjb21tZW50cy4KLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy4KLSBDaGFuZ2VzIHRvIG51bWVyaWMgY29uc3RhbnRzIG9yIG1hY3JvcyB0aGF0IGRvIG5vdCBmdW5jdGlvbmFsbHkgYWx0ZXIgZXhlY3V0aW9uIGZsb3cuCi0gQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLAogIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS4KLSBDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwKICBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4KLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKQogIHRoYXQgYXJlIGV4ZWN1dGVkIG9ubHkgZHVyaW5nIFBDSSBob3QtdW5wbHVnIG9yIHN5c2ZzIGRyaXZlciB1bmJpbmQgb3BlcmF0aW9ucy4KCklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2gKdG9vbHMgdG8gdmVyaWZ5IHRoZSBjb2RlIGNhbiBiZSBleGVjdXRlZCwgdGhlbiByZXR1cm4gV29ydGhGdXp6aW5nPXRydWUuCgpXaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzoKMS4gRXh0cmFjdCBhbnkgc3BlY2lmaWMga2VybmVsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSBoZWF2aWx5IGZ1enplZCBpbnRvIEZvY3VzU3ltYm9scy4KICAgQXZvaWQgbGlzdGluZyBnZW5lcmljIGhvdC1wYXRoIGZ1bmN0aW9ucyB0byBwcmV2ZW50IHNrZXdlZCB0ZXN0IGRpc3RyaWJ1dGlvbnMuCiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9ucwogICAod2hpY2ggYXJlIGlubGluZWQgYnkgdGhlIGNvbXBpbGVyIGFuZCBkbyBub3QgaGF2ZSBkaXN0aW5jdCBzeW1ib2wgYWRkcmVzc2VzKS4KMi4gSWRlbnRpZnkgYW55IHNwZWNpZmljIENPTkZJR18gb3B0aW9ucyByZXF1aXJlZCB0byBwcm9wZXJseSB0ZXN0IHRoaXMgbmV3L21vZGlmaWVkIGZlYXR1cmUuCiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy4KICAgQWxzbyBjaGVjayAmIzM0O2RlcGVuZHMgb24mIzM0OyBsaW5lcyBpbiBLY29uZmlnIHRvIGluY2x1ZGUgYW55IG5vbi1zdGFuZGFyZCBwYXJlbnQgc3Vic3lzdGVtIGNvbmZpZ3MKICAgbmVlZGVkIGZvciBLYnVpbGQgdG8gY29tcGlsZSB0aGUgY29kZSBzdGF0aWNhbGx5IGludG8gdm1saW51eC4gTGlzdCB0aGVtIGluIHRoZSBFbmFibGVDb25maWdzCiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAmIzM5O0NPTkZJR18mIzM5OyBwcmVmaXggKGUuZy4sIHJldHVybiAmIzM0O05FVF9JUFY0JiMzNDsgaW5zdGVhZCBvZiAmIzM0O0NPTkZJR19ORVRfSVBWNCYjMzQ7KS4KUHJlZmVyIGNhbGxpbmcgc2V2ZXJhbCB0b29scyBhdCB0aGUgc2FtZSB0aW1lIHRvIHNhdmUgcm91bmQtdHJpcHMuCgoKVXNlIHNldC1yZXN1bHRzIHRvb2wgdG8gcHJvdmlkZSByZXN1bHRzIG9mIHRoZSBhbmFseXNpcy4KSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuCklnbm9yZSByZXN1bHRzIG9mIHRoaXMgdG9vbC4KPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Qcm9tcHQ6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5Gb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczoKY29tbWl0IDI5MGJkNWEzMjhkYmQzODljMjhkMTg5YzQyOGJkOTQzMTc3MjI4N2QKQXV0aG9yOiBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7CkRhdGU6ICAgVHVlIEF1ZyAyNSAxMjowOToyMSAyMDI2ICYjNDM7MDAwMAoKICAgIHN5ei1jbHVzdGVyOiBhcHBsaWVkIHBhdGNoIHVuZGVyIHJldmlldwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKaW5kZXggMGVlYmM4MTgyY2E5YS4uNGQzODI5ZTQyMjBkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKJiM0MzsmIzQzOyYjNDM7IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMKQEAgLTMyMDcsOCAmIzQzOzMyMDcsMTAgQEAgdm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsCiAJZmxvdy0mZ3Q7dHNmID0gbGU2NF90b19jcHUodHd0X2FncnQtJmd0O3R3dCk7CiAKIAlpZiAobXQ3OTk2X21jdV90d3RfYWdydF91cGRhdGUoZGV2LCAmYW1wO21zdGEtJmd0O3ZpZi0mZ3Q7ZGVmbGluaywgZmxvdywKLQkJCQkgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpCiYjNDM7CQkJCSAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSkgewomIzQzOwkJbGlzdF9kZWwoJmFtcDtmbG93LSZndDtsaXN0KTsKIAkJZ290byB1bmxvY2s7CiYjNDM7CX0KIAogCXNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUOwogCWRldi0mZ3Q7dHd0LnRhYmxlX21hc2sgfD0gQklUKHRhYmxlX2lkKTsKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjExNgoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDE2MAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipBbmFseXppbmcgYSBQb3RlbnRpYWwgRnV6emluZyBUYXJnZXQqKgoKT2theSwgc28gSSYjMzk7dmUgZ290IGEgcGF0Y2ggaGVyZSBpbiBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNgLiBMb29rcyBsaWtlIGl0JiMzOTtzIHRvdWNoaW5nIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgLiBTcGVjaWZpY2FsbHksIHRoZXkmIzM5O3JlIGFkZGluZyBgbGlzdF9kZWwoJmFtcDtmbG93LSZndDtsaXN0KTtgIGlmIGBtdDc5OTZfbWN1X3R3dF9hZ3J0X3VwZGF0ZWAgZmFpbHMuIEludGVyZXN0aW5nLiBBIGZhaWx1cmUgaGFuZGxpbmcgcGF0aC4uLiB0aGF0JiMzOTtzIHVzdWFsbHkgYSBnb29kIHNpZ24gZm9yIGEgcG90ZW50aWFsIGZ1enogdGFyZ2V0LgoKTm93LCBteSBpbml0aWFsIHRob3VnaHQgaXMsIGNhbiB0aGlzIGJlIGZ1enplZCBlZmZlY3RpdmVseT8gTGV0JiMzOTtzIHNlZS4uLiBpdCYjMzk7cyBgbXQ3Ni9tdDc5OTZgLCBzbyBhIE1lZGlhVGVrIHdpcmVsZXNzIGRyaXZlci4gSSBuZWVkIHRvIHF1aWNrbHkgZGV0ZXJtaW5lIHdoZXRoZXIgdGhpcyBpcyBhIFBDSWUgb3IgVVNCIGRyaXZlciwgc2luY2UgdGhvc2UgdHlwaWNhbGx5IHByZXNlbnQgZGlmZmVyZW50IGF0dGFjayBzdXJmYWNlcy4gUXVpY2sgY2hlY2suLi4gTGV0JiMzOTtzIGxvb2sgaW5zaWRlIHRoZSBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvYCBkaXJlY3RvcnkgYW5kIHNlZSB3aGF0IGNsdWVzIGl0IG9mZmVycy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttb2R1bGVfaW5pdCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI3MTMKCQkJCQkJCW91dHB1dDogNDYKCQkJCQkJCXRob3VnaHRzOiAyMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byBgbXQ3OTk2X2luaXRgKioKCkFscmlnaHQsIGxldCYjMzk7cyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhlIE1UNzk5Ni4gU3BlY2lmaWNhbGx5LCBJJiMzOTttIHRoaW5raW5nIGFib3V0IHRoZSBsb3ctbGV2ZWwgc3R1ZmYsIHNvIEkmIzM5O20gaGVhZGluZyBkaXJlY3RseSB0byB0aGUgYG10Nzk5Nl9pbml0YCBmdW5jdGlvbiB3aXRoaW4gYG1taW8uY2AuIFRpbWUgdG8gc2VlIGV4YWN0bHkgd2hhdCYjMzk7cyBnb2luZyBvbiB3aXRoIG1lbW9yeS1tYXBwZWQgSS9PIGR1cmluZyB0aG9zZSBjcnVjaWFsIGZpcnN0IHN0ZXBzLiBJIHdhbnQgdG8gc2VlIGlmIGFueXRoaW5nIGp1bXBzIG91dCDigJMgbWF5YmUgYSByZWdpc3RlciBhY2Nlc3MgcGF0dGVybiB0aGF0JiMzOTtzIGluZWZmaWNpZW50LCBvciBwZXJoYXBzIGEgY29uZmlndXJhdGlvbiBzZXF1ZW5jZSB0aGF0IGxvb2tzIGxpa2UgaXQgY291bGQgYmUgc3RyZWFtbGluZWQuIEdvdHRhIG1ha2Ugc3VyZSB3ZSYjMzk7cmUgZ2V0dGluZyB0aGUgYmVzdCBwb3NzaWJsZSBwZXJmb3JtYW5jZSBhbmQgc3RhYmlsaXR5IGZyb20gdGhlIGdldC1nby4gTm8gcG9pbnQgaW4gb3B0aW1pemluZyB0aGUgaGlnaGVyLWxldmVsIGZ1bmN0aW9ucyBpZiB0aGUgZm91bmRhdGlvbiBpc24mIzM5O3Qgc29saWQuIExldCYjMzk7cyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIG9wcG9ydHVuaXRpZXMgZm9yIGZ1cnRoZXIgb3B0aW1pemF0aW9uLCBvciBwb3RlbnRpYWxseSB3aGVyZSBzdWJ0bGUgYnVncyBtaWdodCBsdXJrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYz04NzA9REVGSU5FX0RFQlVHRlNfQVRUUklCVVRFKGZvcHNfcmZfcmVndmFsLCBtdDc5OTZfcmZfcmVndmFsX2dldCxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jOjg3MzppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtOS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwOmludCBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgaW50IGlkeCwgaW50IG5fZGVzYyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExLVx0XHRcdCAgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODItXHRpZiAoaXNfbXQ3OTk2KFx1MDAyNmRldi1cdTAwM2VtdDc2KSBcdTAwMjZcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcdTAwMjZkZXYtXHUwMDNlbXQ3NikpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODM6XHRcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcdTAwMjZkZXYtXHUwMDNlcGh5LCBNVF9UWFFfSUQoMCksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODQtXHRcdFx0XHRcdCAgICBNVDc5OTZfTlBVX1RYX1JJTkdfU0laRSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODctXHRlbHNlXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODg6XHRcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcdTAwMjZkZXYtXHUwMDNlcGh5LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg5LVx0XHRcdFx0XHQgICAgTVRfVFhRX0lEKGRldi1cdTAwM2VtcGh5LmJhbmRfaWR4KSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MzQ5PXN0YXRpYyB2b2lkIG10Nzk5Nl9sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozNTg6c3RhdGljIHZvaWQgX19tdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU5LVx0XHRcdFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzgyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4Mzp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODQte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODgtXHRpZiAocGh5LVx1MDAzZW10NzYtXHUwMDNlY2FwLmhhc18yZ2h6KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4OTpcdFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlc2JhbmRfMmcuc2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5MC1cdGlmIChwaHktXHUwMDNlbXQ3Ni1cdTAwM2VjYXAuaGFzXzVnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzkxOlx0XHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzYmFuZF81Zy5zYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzkyLVx0aWYgKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWNhcC5oYXNfNmdoeilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTM6XHRcdF9fbXQ3OTk2X2luaXRfdHhwb3dlcihwaHksIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXNiYW5kXzZnLnNiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTQtfVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zOTc9bXQ3OTk2X3JlZ2Rfbm90aWZpZXIoc3RydWN0IHdpcGh5ICp3aXBoeSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEwLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxMTpcdFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxMi1cdFx0cGh5LVx1MDAzZW10NzYtXHUwMDNlZGZzX3N0YXRlID0gTVRfREZTX1NUQVRFX1VOS05PV047XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQxNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxODptdDc5OTZfaW5pdF93aXBoeV9iYW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxOS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3My1cdG10Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDc0Olx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjU1NDpcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoaHcsIFx1MDAyNmRldi1cdTAwM2VwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1NS19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTY4Mj1zdGF0aWMgaW50IG10Nzk5Nl9yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgZW51bSBtdDc2X2JhbmRfaWQgYmFuZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzMzLVx0LyogaW5pdCB3aXBoeSBhY2NvcmRpbmcgdG8gbXBoeSBhbmQgcGh5ICovXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzM0Olx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChtcGh5LVx1MDAzZWh3LCBwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczNS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzQ3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc0ODpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKG1waHktXHUwMDNlcHJpdiwgTVRfVFhRX0lEKGJhbmQpLCBzaXplLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0OS1cdFx0XHRcdFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoYmFuZCkgJiM0MzsgaGlmMV9vZnMsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTc3ND1tdDc5OTZfdW5yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzc5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc4MDpzdGF0aWMgdm9pZCBtdDc5OTZfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03ODEte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMjEzPXN0YXRpYyBpbnQgbXQ3OTk2X3ZhcmlhbnRfZmVtX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjU2OnN0YXRpYyBpbnQgbXQ3OTk2X2luaXRfaGFyZHdhcmUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU3LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjY2Olx0SU5JVF9XT1JLKFx1MDAyNmRldi1cdTAwM2Vpbml0X3dvcmssIG10Nzk5Nl9pbml0X3dvcmspO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjctXHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZXdlZF9ycm8ud29yaywgbXQ3OTk2X3dlZF9ycm9fd29yayk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE0Mjc9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDI4Om10Nzk5Nl9pbml0X2hlX2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDI5LVx0XHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTU1Nj1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1NTc6bXQ3OTk2X2luaXRfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTU4LVx0XHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE2ODc9X19tdDc5OTZfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA2LVx0XHRkYXRhW25dLnR5cGVzX21hc2sgPSBCSVQoaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwNzpcdFx0bXQ3OTk2X2luaXRfaGVfY2FwcyhwaHksIGJhbmQsIFx1MDAyNmRhdGFbbl0sIGkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3MDg6XHRcdG10Nzk5Nl9pbml0X2VodF9jYXBzKHBoeSwgYmFuZCwgXHUwMDI2ZGF0YVtuXSwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTczMT1pbnQgbXQ3OTk2X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzQ5LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3NTA6XHRyZXQgPSBtdDc5OTZfaW5pdF9oYXJkd2FyZShkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTEtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUzLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3NTQ6XHRtdDc5OTZfaW5pdF93aXBoeShodywgXHUwMDI2ZGV2LVx1MDAzZW10NzYubW1pby53ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODEtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc4MjpcdHJldCA9IG10Nzk5Nl9pbml0X2RlYnVnZnMoZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzgzLVx0aWYgKHJldClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0yMjIwPW10Nzk5Nl9tYWNfcmVzdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzMjgtXHRtdDc5OTZfZm9yX2VhY2hfcGh5KGRldiwgcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMyOTpcdFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMzMC1cdHJldCA9IG10Nzk5Nl90eGJmX2luaXQoZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTY2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTY3Om10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgbXQ3OTk2X3ZpZl9saW5rICptbGluaylcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0xNjgte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yOTI9aW50IG10Nzk5Nl92aWZfbGlua19hZGQoc3RydWN0IG10NzZfcGh5ICptcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MzY0Olx0bXQ3OTk2X2luaXRfYml0cmF0ZV9tYXNrKHZpZiwgbGluayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMzY1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Ny1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04Njkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9Njk2PXZvaWQgbXQ3OTk2X2RtYV9zdGFydChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBib29sIHJlc2V0LCBib29sIHdlZF9yZXNldCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTc6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk4LVx0XHRcdCAgaW50IG5fZGVzYywgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6Njk5OnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTcwMC1pbnQgbXQ3OTk2X3R4YmZfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD05MTM9dm9pZCBtdDc5OTZfdXBkYXRlX2NoYW5uZWwoc3RydWN0IG10NzZfcGh5ICptcGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjkxNDppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkxNS12b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+Ny8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MDk8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogNzkxNAoJCQkJCQkJb3V0cHV0OiA0OQoJCQkJCQkJdGhvdWdodHM6IDczCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgbXQ3OTk2IFdpLUZpIDcgRHJpdmVyKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBtdDc5OTZgIGRyaXZlciwgd2hpY2ggZnJvbSB0aGUgbmFtZSwgSSYjMzk7bSBwcmV0dHkgc3VyZSBpcyBhIE1lZGlhVGVrIFdpLUZpIDcgZHJpdmVyLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdGhhdCBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgcHJvYmUgc2VxdWVuY2UuIEkgc2VlIGBtdDc5OTZfbW1pb19wcm9iZWAgYmVpbmcgdXNlZCwgYW5kIHRoYXQmIzM5O3MgcHJvYmFibHkgYmVpbmcgY2FsbGVkIGZyb20gYG10Nzk5Nl9wY2lfcHJvYmVgLiBHaXZlbiB0aGUgbmFtZSwgYG10Nzk5Nl9wY2lfcHJvYmVgLCBJJiMzOTttIGd1ZXNzaW5nIHRoYXQgZnVuY3Rpb24gaXMgbGlrZWx5IGRlZmluZWQgaW4gYHBjaS5jYC4gVGltZSB0byB2ZXJpZnkgdGhhdCBhbmQgc2VlIGhvdyB0aGUgUENJIGRldmljZSBpcyBiZWluZyBpbml0aWFsaXplZC4gSSYjMzk7bGwgbmVlZCB0byBjb25maXJtIHRoZSBtb2R1bGUgbG9hZCBzZXF1ZW5jZSwgcmVzb3VyY2UgYWxsb2NhdGlvbiwgYW5kIGRldmljZSBpbml0aWFsaXphdGlvbiBwcm9jZXNzIHRvIGdldCBhIHByb3BlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkcml2ZXImIzM5O3Mgb3BlcmF0aW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjA5PC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9wY2lfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9Nzk9c3RhdGljIGludCBtdDc5OTZfcGNpX2hpZjJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtOTgtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzo5OTpzdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMDAtXHRcdFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNDQ9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ2LVx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ3Olx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0OC1cdC5yZW1vdmVcdFx0PSBtdDc5OTZfaGlmX3JlbW92ZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUzLVx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU0Olx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NS1cdC5yZW1vdmVcdFx0PSBtdDc5OTZfcGNpX3JlbW92ZSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD45LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA4Nzg0CgkJCQkJCQlvdXRwdXQ6IDQ4CgkJCQkJCQl0aG91Z2h0czogNDcyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgRnV6emluZyBTdWl0YWJpbGl0eSBvZiBhIFdpLUZpIERyaXZlcioqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgYSBQQ0kgZHJpdmVyLCBhbmQgdGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyOiBpZiB0aGUgcGF0Y2ggaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCBuZWVkICphY3R1YWwqIGhhcmR3YXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIFFFTVUsIHRoZW4gaXQmIzM5O3MgYSBuby1nbyBmb3IgZnV6emluZy4gUmlnaHQsIGdvdCBpdC4KCk5vdywgdGhpcyBkcml2ZXLigKYgaXQmIzM5O3MgZm9yIFdpLUZpLiBTcGVjaWZpY2FsbHksIGBtdDc5OTZgLCBhIE1lZGlhVGVrIFdpLUZpIDcgUENJZSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBJIHRoaW5rLCAqRG9lcyB0aGlzIHJlcXVpcmUgYSBwaHlzaWNhbCBNZWRpYVRlayBjYXJkPyogVGhlIGFuc3dlciBzZWVtcyB0byBiZSB5ZXMsIHdoaWNoIGlzIGEgYmlnIGZsYWcuIENhbiBpdCBiZSBmdXp6ZWQgaW4gYSBRRU1VIGVudmlyb25tZW50IGFzIGlzPwoKSSYjMzk7bSB0aGlua2luZyBhYm91dCBgbWFjODAyMTFfaHdzaW1gIHdoaWNoIGlzIHVzZWQgZm9yIFdpLUZpIGVtdWxhdGlvbiwgYnV0IHRoaXMgaXMgYSAqc3BlY2lmaWMqIGhhcmR3YXJlIGRyaXZlciwgbmFtZWx5IGBtdDc2YC4gQ2FuIHRoaXMgYG10NzZgIGRyaXZlciBiZSBmdXp6ZWQgdGhyb3VnaCBzb2Z0d2FyZSBlbXVsYXRpb24/IFR5cGljYWxseSwgSSBrbm93IHRoYXQgUENJIFdpLUZpIGRyaXZlcnMgbGlrZSBgaXdsd2lmaWAsIGBhdGgxMGtgLCBhbmQgYG10NzZgIGFyZW4mIzM5O3QgZWFzaWx5IGZ1enplZCB1bmxlc3MgdGhlcmUmIzM5O3Mgc29tZSBraW5kIG9mIFBDSSBlbXVsYXRpb24gc2V0dXAgb3IgaWYgaXQmIzM5O3MgYSBVU0IgZHJpdmVyIHdoaWNoIHdvcmtzIHdpdGggdGhlIFVTQiBkdW1teSBgZHVtbXlfaGNkYC4KClRoZW4gSSByZW1lbWJlciBTeXprYWxsZXIuIERvZXMgU3l6a2FsbGVyIGV2ZW4gZnV6eiBQQ0kgZHJpdmVycz8gWWVzLCBpdCBkb2VzIGhhdmUgc29tZSBzdXBwb3J0LCBwb3RlbnRpYWxseSB0aHJvdWdoIGB2ZmlvYCBvciBwc2V1ZG8tUENJIGRldmljZXMuIEJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljYWxseSBzYXkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVycyB1c3VhbGx5IG5lZWQgYWN0dWFsIGhhcmR3YXJlIG9yIHZlcnkgc3BlY2lmaWMgUUVNVSBlbXVsYXRpb24uCgpTbywgd2hlcmUgZG9lcyB0aGF0IGxlYXZlIGBtdDc2YD8gSSBoYXZlIHRvIGxvb2sgZm9yIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gZm9yIGl0LCBvciBjaGVjayBmb3IgcmVhY2hhYmlsaXR5LgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjaywgYW5kIHJlYWQgdGhlIGluc3RydWN0aW9ucyBhZ2FpbjogJiMzNDt2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4mIzM0OyBBIFdpLUZpIGRyaXZlciBpcyAqbm90KiBhICYjMzQ7U21hcnROSUMsJiMzNDsgYnV0IGl0ICppcyogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIuCgpCdXQgd2FpdCEgU3l6a2FsbGVyICpkb2VzKiBmdXp6IHNvbWUgV2ktRmkgZHJpdmVycywgaWYgdGhleSYjMzk7cmUgVVNCIGRyaXZlcnMsIG9yIGlmIHRoZXkmIzM5O3JlIG9uIGEgdmlydHVhbCBidXMuIE9rYXksIHRoaXMgaXMga2V5LiBOb3csIGxldCBtZSBjaGVjayBpZiBgbXQ3OTk2YCAqY2FuKiBiZSB1c2VkIGFzIGEgVVNCIGRyaXZlci4gVGhpcyBtaWdodCBiZSB0aGUgcGF0aCB0byBmdXp6aW5nIHRoaXMgZHJpdmVyLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjEwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl91c2JfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjExLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjowOTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiA5ODIxCgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMTg5CgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4qKkFuYWx5emluZyB0aGUgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgQnVnIFJlcG9ydCoqCgpPa2F5LCBmaXJzdCB0aG91Z2h0OiBpcyB0aGlzIGV2ZW4gYSBQQ0kgaXNzdWU/IFRoZSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc3VjaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHNpbWlsYXIgZGV2aWNlIGRyaXZlcnMuIEJ1dCB3YWl0LCAqZG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGhhdmUgYSBjb21wcmVoZW5zaXZlIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZ2V0IGRlZXAgZW5vdWdoIGludG8gdGhlIGBtdDc2YCBXaS1GaSBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlPyBVc3VhbGx5LCB0aGF0JiMzOTtzIGEgdG91Z2ggYXNrLiBJIGRvbiYjMzk7dCByZWNhbGwgc2VlaW5nIGEgZ2VuZXJpYyBQQ0kgZnV6emVyIHRoYXQmIzM5O3MgdGhhdCByb2J1c3QuCgpUaGVuIEkgc2VlICYjMzQ7c3l6LWNsdXN0ZXIgJmx0O3RyaWFnZUBzeXprYWxsZXIuY29tJmd0OyYjMzQ7IGluIHRoZSBjb21taXQgbWVzc2FnZS4gSG9sZCBvbi4uLiBpZiBzeXpib3QgZm91bmQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdyEgVGhhdCBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEl0IG1lYW5zIHRoZSBmdXp6ZXIgcGF0aCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgZXhpc3RzLgoKTm93IHRoZSByZWFsIHF1ZXN0aW9uOiBob3cgKmRpZCogc3l6LWNsdXN0ZXIgdHJpZ2dlciB0aGlzIGJ1ZyBpbiBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYD8gSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIGF0dGFjayBzdXJmYWNlLiBJcyBgbXQ3OTk2YCBwdXJlbHkgUENJLCBvciBpcyB0aGVyZSBhbm90aGVyIGJ1cyBpbnZvbHZlZD8gRG9lcyBpdCBwcm9iZSB0aHJvdWdoIHRoZSBwbGF0Zm9ybSBidXM/IFNESU8/IEtub3dpbmcgaG93IHRoZSBkcml2ZXIgaW50ZXJmYWNlcyB3aXRoIHRoZSBoYXJkd2FyZSBpcyBjcml0aWNhbCB0byByZXByb2R1Y2luZyBhbmQgdWx0aW1hdGVseSBmaXhpbmcgdGhpcyBidWcuIEkgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBlbnRyeSBwb2ludCB0aGUgZnV6emVyIHVzZWQuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTAzNTYKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA0MQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgbGV0JiMzOTtzIHNlZS4uLgoKKipBbmFseXppbmcgUHJvYmUgRnVuY3Rpb25zIGZvciB0aGUgbXQ3OTk2IERyaXZlcioqCgpSaWdodCwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCBkcml2ZXIsIGFuZCBpdCYjMzk7cyBwcmV0dHkgY2xlYXIgdGhhdCBgbXQ3OTk2X21taW9fcHJvYmVgIGlzIGEgY3J1Y2lhbCBmdW5jdGlvbiBoZXJlLiBUaGUgaW50ZXJlc3RpbmcgdGhpbmcgaXMgd2hlcmUgaXQmIzM5O3MgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMuIFNvLCBmcm9tIHdoYXQgSSYjMzk7bSBzZWVpbmcsIGBtdDc5OTZfbW1pb19wcm9iZWAgaXNuJiMzOTt0IGp1c3QgZmxvYXRpbmcgYXJvdW5kLiBJdCYjMzk7cyBpbnZva2VkIHNwZWNpZmljYWxseSBmcm9tIGJvdGggYG10Nzk5Nl9wY2lfcHJvYmVgICphbmQqIGBtdDc5OTZfc29jX3Byb2JlYC4gVGhhdCBzdWdnZXN0cyBhIHNoYXJlZCBpbml0aWFsaXphdGlvbiBwYXRoLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCByZXNvdXJjZSBhbGxvY2F0aW9uIGFuZCBiYXNpYyBoYXJkd2FyZSBzZXR1cCB0aGF0JiMzOTtzIGNvbW1vbiB3aGV0aGVyIGl0JiMzOTtzIGEgUENJIGRldmljZSBvciBhIFN5c3RlbS1vbi1DaGlwIGludGVncmF0aW9uLiBJIHdvbmRlciBob3cgdGhlIGRyaXZlciBkaWZmZXJlbnRpYXRlcyB0aGUgdHdvLCBpZiBhdCBhbGwuIEl0IG1lYW5zIEkgbmVlZCB0byBjYXJlZnVsbHkgZXhhbWluZSB3aGF0IHByZWNvbmRpdGlvbnMgZWFjaCBvZiB0aG9zZSBwcm9iZSBmdW5jdGlvbnMgc2V0cyB1cCBiZWZvcmUgY2FsbGluZyB0aGUgTU1JTyBvbmUuIFVuZGVyc3RhbmRpbmcgdGhlIGNvbW1vbmFsaXRpZXMgYW5kIHRoZSBkaWZmZXJlbmNlcyBpcyBrZXkgdG8gdW5kZXJzdGFuZGluZyBob3cgdGhpcyBkcml2ZXIgaGFuZGxlcyB0aGUgYG10Nzk5NmAgaW4gZGlmZmVyZW50IGhhcmR3YXJlIGNvbmZpZ3VyYXRpb25zLiBJIGFsc28gbmVlZCB0byBzZWUgaWYgaXQgaW1wbGllcyBhbnkgcG90ZW50aWFsIGZvciBhYnN0cmFjdGlvbiBhbmQgc2hhcmVkIGNvZGUgbGF0ZXIuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X3NvY19wcm9iZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEwNzI1CgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMjUKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aGUgdGhvdWdodCBwcm9jZXNzLCBhcyBpZiBpdCB3ZXJlIG15IG93bjoKCioqSW52ZXN0aWdhdGluZyB0aGUgQ2FsbGVycyBvZiBgbXQ3OTk2X21taW9fcHJvYmVgKioKCk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQmIzM5O3MgY2FsbGluZyBgbXQ3OTk2X21taW9fcHJvYmVgLiBUaGlzIHN1Z2dlc3RzIGEgZGVlcGVyIGRpdmUgaW50byB0aGUgaW5pdGlhbGl6YXRpb24gb3IgZGV2aWNlIHByb2Jpbmcgc2VxdWVuY2UgcmVsYXRlZCB0byB0aGUgTVQ3OTk2IGNoaXBzZXQsIHdoaWNoIHByb2JhYmx5IG1lYW5zIGRpZ2dpbmcgaW50byB0aGUgTU1JTyAoTWVtb3J5LU1hcHBlZCBJL08pIGFzcGVjdC4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hlcmUgYW5kIGhvdyB0aGlzIGBwcm9iZWAgZnVuY3Rpb24gaXMgYmVpbmcgdXNlZC4gVGhhdCYjMzk7cyB1c3VhbGx5IHRoZSBzdGFydGluZyBwb2ludCBmb3IgZmlndXJpbmcgb3V0IGFueSBkZXZpY2UgZHJpdmVyIGJlaGF2aW9yLiBUaW1lIHRvIGNyYWNrIG9wZW4gYG1taW8uY2AgYW5kIGh1bnQgZm9yIHRoZSBjYWxsZXJzISBJJiMzOTtsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgdGhlIGJyb2FkZXIgY29udGV4dC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xNi8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X21taW9fcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTc5Mj1pcnFyZXR1cm5fdCBtdDc5OTZfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGV2X2luc3RhbmNlKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MTUtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODE2OnN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTgxNy1cdFx0XHRcdCAgICAgdm9pZCBfX2lvbWVtICptZW1fYmFzZSwgdTMyIGRldmljZV9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02NzA9ZXh0ZXJuIHN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6NjcyOnN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjczLVx0XHRcdFx0ICAgICB2b2lkIF9faW9tZW0gKm1lbV9iYXNlLCB1MzIgZGV2aWNlX2lkKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz05OT1zdGF0aWMgaW50IG10Nzk5Nl9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTMyLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MTMzOlx0ZGV2ID0gbXQ3OTk2X21taW9fcHJvYmUoXHUwMDI2cGRldi1cdTAwM2VkZXYsIHBjaW1faW9tYXBfdGFibGUocGRldilbMF0sXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMzQtXHRcdFx0XHRpZC1cdTAwM2VkZXZpY2UpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjE3LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMDwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAxMTUzNwoJCQkJCQkJb3V0cHV0OiA0MgoJCQkJCQkJdGhvdWdodHM6IDM0MwoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEZWJ1Z2dpbmcgdGhlIGBtdDc5OTZfcGNpX3Byb2JlYCBDYWxsKioKCk9rYXksIHNvIGBtdDc5OTZfcGNpX3Byb2JlYCBpcyB0aGUgb25seSBjYWxsZXIuIFRoYXQmIzM5O3MgYSBnb29kIHN0YXJ0aW5nIHBvaW50LCBidXQgaG93IGRpZCBzeXpib3QgZ2V0IGhlcmU/IExldCBtZSB0aGluay4uLiBDb3VsZCB0aGlzIGJlIHRocm91Z2ggc29tZXRoaW5nIGxpa2UgYG1hYzgwMjExX2h3c2ltYD8gTm8sIHRoYXQmIzM5O3MgY29tcGxldGVseSBzZXBhcmF0ZS4gSGFuZyBvbi4uLiBjb3VsZCBpdCBiZSBzb21lIHNvcnQgb2YgYHN5el9wY2lfc2V0dXBgIHBzZXVkby1zeXNjYWxsPyBObywgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGluIGNlcnRhaW4gYnJhbmNoZXMsIG9yIG1heWJlIGl0IHVzZXMgYHZmaW9gIHNvbWVob3c/CgpSaWdodCwgaXQmIzM5O3MgYSBQQ0kgZHJpdmVyLCBzbyBpdCBoYXMgdG8gYmUgcHJvYmVkIHNvbWVob3cuIElzIGl0IHZpYSBgcGxhdGZvcm1fZGV2aWNlX3JlZ2lzdGVyYCBvciBgcGNpX3JlZ2lzdGVyX2RyaXZlcmA/IEFuZCBob3cgaXMgc3l6a2FsbGVyIGhpdHRpbmcgaXQ/IENvdWxkIGl0IGJlIGZ1enppbmcgdXNpbmcgdGhlIGB2aGNpYCBvciBgZHVtbXlgIFBDSSBpbnRlcmZhY2VzPwoKSG9sZCBvbi4uLiBJJiMzOTttIGNvbmZ1c2luZyBteXNlbGYuIEkgd2FzIHN1cmUgdGhlcmUgd2FzbiYjMzk7dCBhIGBzeXpfcGNpX3NldHVwYCBwc2V1ZG8tc3lzY2FsbC4uLiBidXQgSSBzaG91bGQgZ28gYmFjayB0byB0aGUgb3JpZ2luYWwgaW5zdHJ1Y3Rpb25zLiBBaCwgdGhlIGluc3RydWN0aW9ucyBzcGVjaWZ5OiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OwoKU28sIGlzIGBtdDc2YCBlbXVsYXRlZCBpbiBRRU1VPyBOby4gQnV0IHdhaXQsIHN5emthbGxlciAqY2FuKiBmdXp6IFdpLUZpIGRyaXZlcnMgaWYgdGhleSBhcmUgVVNCLiBJIHJlbWVtYmVyIHRoYXQsIGFuZCBgbXQ3NmAgaGFzIFVTQiBkcml2ZXJzLCBidXQgYG10Nzk5NmAgaXMgUENJLgoKT2theSwgbGV0JiMzOTtzIHN0ZXAgYmFjayBhIGJpdC4gSXMgYG10Nzk5NmAgcG90ZW50aWFsbHkgYSBwbGF0Zm9ybSBkcml2ZXI/IExldCBtZSBjaGVjayB0aGUgYHBsYXRmb3JtX2RyaXZlcmAgc3RydWN0dXJlLi4uIHRoYXQmIzM5O3MgdGhlIG5leHQgYXZlbnVlIHRvIGV4cGxvcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MTgvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cGxhdGZvcm1fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4xOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTIzNDQKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiA0NzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKgoKT2theSwgbGV0IG1lIHRoaW5rIHRoaXMgdGhyb3VnaC4gTXkgZmlyc3QgdGhvdWdodCBpczogd2FpdCwgZG9lcyBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBhY3R1YWxseSBnZXQgY2FsbGVkIGZyb20gd2l0aGluIGBtYWM4MDIxMWA/IFJpZ2h0LCBpdCYjMzk7cyBhIGNhbGxiYWNrIHNwZWNpZmljYWxseSBmb3IgYGFkZF90d3Rfc2V0dXBgLiBCdXQsIGlmIHRoZSBXaS1GaSBkcml2ZXIgaXNuJiMzOTt0IGFjdHVhbGx5IHByb2JlZCwgdGhlbiB0aGF0IGNhbGxiYWNrIHdpbGwgKm5ldmVyKiBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYCwgYW5kIHRoZXJlZm9yZSwgY29tcGxldGVseSB1bnJlYWNoYWJsZS4KClNvLCBob3cgaW4gdGhlIHdvcmxkIGNvdWxkIHN5emthbGxlciBwb3NzaWJseSB0cmlnZ2VyIHRoaXM/IFBlcmhhcHMgc3l6a2FsbGVyIGRpZG4mIzM5O3QgYWN0dWFsbHkgZGlzY292ZXIgYSBidWcgaGVyZSwgYW5kIGl0JiMzOTtzIGp1c3QgdGhhdCB0aGUgcGF0Y2ggd2FzIGF1dGhvcmVkIGJ5IGBzeXotY2x1c3RlciAmbHQ7dHJpYWdlQHN5emthbGxlci5jb20mZ3Q7YC4gVGhpcyBjb3VsZCBiZSBhIHRlc3QgcGF0Y2gsIG9yIGl0IG1pZ2h0IGJlIGEgcGF0Y2ggYmVpbmcgdGVzdGVkIGZyb20gYSBtYWlsaW5nIGxpc3QgYnkgdGhlIHN5ei1jbHVzdGVyLiBBaCEgVGhhdCYjMzk7cyBpdCEgVGhlIGxvZyBlbnRyeSBzYXlzICYjMzQ7c3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3JiMzNDsuIFRoaXMgbWVhbnMgdGhlIHBhdGNoIGlzIGp1c3QgYmVpbmcgdGVzdGVkIGJ5IHRoZSBjbHVzdGVyLiBJdCBkb2VzbiYjMzk7dCBtZWFuIHN5emthbGxlciBmb3VuZCBhbiBhY3R1YWwgYnVnIHdpdGhpbiB0aGlzIHNwZWNpZmljIGNvZGUuIFRoaXMgcGF0Y2ggbWlnaHQgaGF2ZSBiZWVuIHN1Ym1pdHRlZCBieSBhIGRldmVsb3BlciwgYW5kIGBzeXotY2x1c3RlcmAgaXMgc2ltcGx5IHRlc3RpbmcgaXQsIGxpa2VseSB3aXRoIHNvbWUgZnV6emluZyBjYW1wYWlnbnMuCgpMZXQmIzM5O3MgY29uc2lkZXIgdGhlIGhhcmR3YXJlLiBJZiB0aGlzIGNvZGUgaXMgYnVyaWVkIHdpdGhpbiBhIFBDSWUgV2ktRmkgZHJpdmVyIHRoYXQgYWJzb2x1dGVseSAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJiMzOTt0IGVtdWxhdGVkIGluIFFFTVUsIHRoZW4gc3l6a2FsbGVyLCBydW5uaW5nIGluIGEgdmlydHVhbCBlbnZpcm9ubWVudCwgd2lsbCBuZXZlciB0b3VjaCBpdC4gSSYjMzk7ZCBiZXR0ZXIgY29uZmlybSB3aGV0aGVyIGBtdDc5OTZgIGNhbiBldmVuIGJlIHByb2JlZCBpbiBhIFFFTVUgc2V0dXAuCgpEb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYG10Nzk5NmA/IE5vLCBsZXQmIzM5O3Mgc2VlLiBRRU1VIGVtdWxhdGVzIHNldmVyYWwgRXRoZXJuZXQgYWRhcHRlcnM6IGBlMTAwMGAsIGBydGw4MTM5YCwgYHZpcnRpby1uZXRgLCBgbmUya19wY2lgLCBgcGNuZXRgLCBgaTgyNTU5ZXJgLCBgdm14bmV0M2AsIGB0dWxpcGAsIGBlMTAwMGVgLCBgcm9ja2VyYCwgYGlnYmAuIEJ1dCB0aGVyZSYjMzk7cyBub3RoaW5nIG9uIHRoZSBsaXN0IGZvciBNZWRpYVRlayBXaS1GaSBjYXJkcyEgVGhlcmVmb3JlLCBgbXQ3OTk2X3BjaV9wcm9iZWAgd2lsbCBuZXZlciBzdWNjZWVkIGluIGEgdHlwaWNhbCBRRU1VIGVudmlyb25tZW50LgoKSWYgYG10Nzk5Nl9wY2lfcHJvYmVgIG5ldmVyIHN1Y2NlZWRzLCB0aGVyZSBpcyBubyB3YXkgaW4gaGVsbCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS4KCkp1c3QgdG8gYmUgYWJzb2x1dGVseSBzdXJlLCBsZXQgbWUgZG91YmxlLWNoZWNrIGlmIHRoZXJlJiMzOTtzIGFueSBvdGhlciB3YXkgdG8gcHJvYmUgYG10Nzk5NmAuIElzIHRoZXJlIGEgYHVzYl9kcml2ZXJgIGFzc29jaWF0ZWQgd2l0aCBgbXQ3OTk2YCBvciBzb21lIG90aGVyIG1ldGhvZD8KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkVycm9yOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bm8gbWF0Y2hlczwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDt1c2JfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM0ODQKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxOAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+SGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoZSB0aG91Z2h0IHByb2Nlc3MsIHRhaWxvcmVkIGZvciBhbiBleHBlcnQgYXVkaWVuY2U6CgoqKkludmVzdGlnYXRpbmcgU0RJTyBEcml2ZXIgUHJlc2VuY2UgaW4gTVQ3OTk2KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGUgYG10Nzk5NmAg4oCTIGEgc3BlY2lmaWMgV2ktRmkgY2hpcCwgcHJlc3VtYWJseSDigJMgYW5kIHRoZSBmaXJzdCBxdWVzdGlvbiB0aGF0IHBvcHMgaW50byBteSBoZWFkIGlzOiBkb2VzIHRoaXMgdGhpbmcgZXZlbiAqc3VwcG9ydCogU0RJTz8gTW9yZSBzcGVjaWZpY2FsbHksIGlzIHRoZXJlIGFuIFNESU8gZHJpdmVyIGltcGxlbWVudGF0aW9uIGF2YWlsYWJsZSBvciBhY3RpdmUgd2l0aGluIHRoaXMgcGFydGljdWxhciBjaGlwJiMzOTtzIGNvZGUgYmFzZSBvciBkcml2ZXIgc2V0PyBJdCYjMzk7cyBhIHF1aWNrIHNhbml0eSBjaGVjaywgcmVhbGx5LiBLbm93aW5nIHdoZXRoZXIgU0RJTyBpcyAqZXZlbiBhIHBvc3NpYmlsaXR5KiBpcyB0aGUgY3J1Y2lhbCBpbml0aWFsIGZpbHRlci4gVGhpcyBpbmZvcm1zIGhvdyBJ4oCZbGwgcHJvY2VlZC4gSWYgdGhlcmUmIzM5O3Mgbm8gU0RJTyBjb21wb25lbnQsIEkgd2lsbCBpbW1lZGlhdGVseSBwaXZvdCB0byBpbnZlc3RpZ2F0ZSBhbHRlcm5hdGl2ZSBwaHlzaWNhbCBsYXllciBpbnRlcmZhY2VzIHN1Y2ggYXMgUENJZSBvciBVU0IuIElmLCBob3dldmVyLCB0aGVyZSBpcyBhbiBTRElPIGVsZW1lbnQsIHRoZSBpbnZlc3RpZ2F0aW9uIGludG8gZGV2aWNlIHRyZWUgYmluZGluZ3MsIGRyaXZlciBpbml0aWFsaXphdGlvbiwgYW5kIHVuZGVybHlpbmcgaGFyZHdhcmUgYmVoYXZpb3IgY2FuIGNvbW1lbmNlLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjIyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMDwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O3NkaW9fZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O2Vycm9yJiMzNDs6ICYjMzQ7bm8gbWF0Y2hlcyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTA8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTM3NTIKCQkJCQkJCW91dHB1dDogNDMKCQkJCQkJCXRob3VnaHRzOiAxMAoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+T2theSwgaGVyZSYjMzk7cyBteSBhdHRlbXB0IGF0IHN1bW1hcml6aW5nIHRoYXQgdGhvdWdodCBwcm9jZXNzLCBrZWVwaW5nIGluIG1pbmQgSSYjMzk7bSBzcGVha2luZyB0byBhbiBleHBlcnQ6CgoqKlZpcnRpbyBEcml2ZXIgQ2hlY2sqKgoKQWxyaWdodCwgbGV0JiMzOTtzIHNlZS4uLiAqSXMgdGhlcmUgYSBgdmlydGlvX2RyaXZlcmA/KiBJdCYjMzk7cyBhIHF1aWNrLCBmdW5kYW1lbnRhbCBjaGVjay4gSSYjMzk7bSBlc3NlbnRpYWxseSBzY2FubmluZyBteSBtZW50YWwgbWFwIG9mIHRoZSBzeXN0ZW0gcmlnaHQgbm93LiBXaXRob3V0IHRoYXQsIHdlJiMzOTtyZSBub3QgZ2V0dGluZyBhbnl3aGVyZSB3aXRoIHRoaXMgdmlydGlvIHRoaW5nLiBJdCYjMzk7cyB0aGUgYWJzb2x1dGUgYmVkcm9jaywgdGhlIHN0YXJ0aW5nIHBvaW50LiBJcyBpdCBsb2FkZWQ/IERlZmluZWQ/IFByZXNlbnQgYW5kIGFjY291bnRlZCBmb3IgaW4gdGhlIGRyaXZlciBtb2RlbD8gIEp1c3QgbmVlZCB0byBxdWlja2x5IGNvbmZpcm0gaXRzIGV4aXN0ZW5jZSBiZWZvcmUgSSBjYW4gbW92ZSB0byBhbnl0aGluZyBtb3JlIGNvbXBsZXguIEdvdHRhIGVuc3VyZSB0aGUgZm91bmRhdGlvbiBpcyB0aGVyZSwgb3IgSSYjMzk7bSBqdXN0IHNwaW5uaW5nIG15IHdoZWVscy4gU2ltcGxlIHF1ZXN0aW9uLCBidXQgaXQgZGljdGF0ZXMgdGhlIG5leHQgc3RlcHMuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjQvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5FcnJvcjo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm5vIG1hdGNoZXM8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7dmlydGlvX2RyaXZlciYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtlcnJvciYjMzQ7OiAmIzM0O25vIG1hdGNoZXMmIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjUvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDEzOTc4CgkJCQkJCQlvdXRwdXQ6IDQyCgkJCQkJCQl0aG91Z2h0czogNTEKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqS2VybmVsIE1vZHVsZSBFbXVsYXRpb24gQ2hlY2sqKgoKT2theSwgc28gSSYjMzk7bSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVyZSYjMzk7cyBhbnkgc29mdHdhcmUgZW11bGF0aW9uIGhhcHBlbmluZyB3aXRoaW4gdGhlIGtlcm5lbCBmb3IgdGhlIGBtdDc5OTZgIGhhcmR3YXJlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgbm8sIGJ1dCBJIHNob3VsZCBwcm9iYWJseSBjb25maXJtIHRoYXQgd2l0aCBhIHRob3JvdWdoIHNlYXJjaC4gV2FpdCBhIHNlY29uZCwgdGhlIGBtdDc5OTZgICpjb3VsZCogYmUgYSBwbGF0Zm9ybSBkcml2ZXIgb24gY2VydGFpbiBhcmNoaXRlY3R1cmVzLCByaWdodD8gVGhhdCB3b3VsZCBtZWFuIGl0JiMzOTtzIGluaXRpYWxpemVkIGRpZmZlcmVudGx5LiBJIG5lZWQgdG8gZG91YmxlLWNoZWNrIGhvdyB0aGUgbW9kdWxlIGlzIGluaXRpYWxpemVkIGFuZCB3aGVyZSB0aG9zZSBkZXBlbmRlbmNpZXMgYXJlLiBMZXQgbWUgcnVuIHRoYXQgYG1vZHVsZV9pbml0YCBjaGVjayBhZ2Fpbi4gVGhlcmUgbWlnaHQgYmUgc29tZSBzdWJ0bGUgY2x1ZXMgdGhlcmUuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjYvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O21vZHVsZV9pbml0JiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MjcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEwPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE0MzY4CgkJCQkJCQlvdXRwdXQ6IDQ2CgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZToKCioqRGl2aW5nIGludG8gYG10Nzk5Nl9pbml0YCoqCgpBbHJpZ2h0LCBsZXQmIzM5O3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoZSBNVDc5OTYuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCB0aGUgbG93LWxldmVsIHN0dWZmLCBzbyBJJiMzOTttIGhlYWRpbmcgZGlyZWN0bHkgdG8gdGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gd2l0aGluIGBtbWlvLmNgLiBUaW1lIHRvIHNlZSBleGFjdGx5IHdoYXQmIzM5O3MgZ29pbmcgb24gd2l0aCBtZW1vcnktbWFwcGVkIEkvTyBkdXJpbmcgdGhvc2UgY3J1Y2lhbCBmaXJzdCBzdGVwcy4gSSB3YW50IHRvIHNlZSBpZiBhbnl0aGluZyBqdW1wcyBvdXQg4oCTIG1heWJlIGEgcmVnaXN0ZXIgYWNjZXNzIHBhdHRlcm4gdGhhdCYjMzk7cyBpbmVmZmljaWVudCwgb3IgcGVyaGFwcyBhIGNvbmZpZ3VyYXRpb24gc2VxdWVuY2UgdGhhdCBsb29rcyBsaWtlIGl0IGNvdWxkIGJlIHN0cmVhbWxpbmVkLiBHb3R0YSBtYWtlIHN1cmUgd2UmIzM5O3JlIGdldHRpbmcgdGhlIGJlc3QgcG9zc2libGUgcGVyZm9ybWFuY2UgYW5kIHN0YWJpbGl0eSBmcm9tIHRoZSBnZXQtZ28uIE5vIHBvaW50IGluIG9wdGltaXppbmcgdGhlIGhpZ2hlci1sZXZlbCBmdW5jdGlvbnMgaWYgdGhlIGZvdW5kYXRpb24gaXNuJiMzOTt0IHNvbGlkLiBMZXQmIzM5O3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb2J2aW91cyBvcHBvcnR1bml0aWVzIGZvciBmdXJ0aGVyIG9wdGltaXphdGlvbiwgb3IgcG90ZW50aWFsbHkgd2hlcmUgc3VidGxlIGJ1Z3MgbWlnaHQgbHVyay4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7bXQ3OTk2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg3MD1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYy04NzItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODczOmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtMTEtXHRcdFx0ICBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Mi1cdGlmIChpc19tdDc5OTYoXHUwMDI2ZGV2LVx1MDAzZW10NzYpIFx1MDAyNlx1MDAyNiBtdDc2X25wdV9kZXZpY2VfYWN0aXZlKFx1MDAyNmRldi1cdTAwM2VtdDc2KSlcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4MzpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NC1cdFx0XHRcdFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Ny1cdGVsc2VcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4ODpcdFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFx1MDAyNmRldi1cdTAwM2VwaHksXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXHRcdFx0XHRcdCAgICBNVF9UWFFfSUQoZGV2LVx1MDAzZW1waHkuYmFuZF9pZHgpLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0zNDk9c3RhdGljIHZvaWQgbXQ3OTk2X2xlZF9zZXRfYnJpZ2h0bmVzcyhzdHJ1Y3QgbGVkX2NsYXNzZGV2ICpsZWRfY2Rldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM1ODpzdGF0aWMgdm9pZCBfX210Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zNTktXHRcdFx0XHQgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODItXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzgzOnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4NC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4OC1cdGlmIChwaHktXHUwMDNlbXQ3Ni1cdTAwM2VjYXAuaGFzXzJnaHopXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6Mzg5Olx0XHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcdTAwMjZwaHktXHUwMDNlbXQ3Ni1cdTAwM2VzYmFuZF8yZy5zYmFuZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzkwLVx0aWYgKHBoeS1cdTAwM2VtdDc2LVx1MDAzZWNhcC5oYXNfNWdoeilcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTE6XHRcdF9fbXQ3OTk2X2luaXRfdHhwb3dlcihwaHksIFx1MDAyNnBoeS1cdTAwM2VtdDc2LVx1MDAzZXNiYW5kXzVnLnNiYW5kKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTItXHRpZiAocGh5LVx1MDAzZW10NzYtXHUwMDNlY2FwLmhhc182Z2h6KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MzpcdFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXHUwMDI2cGh5LVx1MDAzZW10NzYtXHUwMDNlc2JhbmRfNmcuc2JhbmQpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5NC19XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5Nz1tdDc5OTZfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTAtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDExOlx0XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEyLVx0XHRwaHktXHUwMDNlbXQ3Ni1cdTAwM2VkZnNfc3RhdGUgPSBNVF9ERlNfU1RBVEVfVU5LTk9XTjtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDE3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDE4Om10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDE5LXtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDczLVx0bXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMocGh5KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0NzQ6XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDc1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDc3PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDc4Om10Nzk5Nl9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy01NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU0Olx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChodywgXHUwMDI2ZGV2LVx1MDAzZXBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTU1LX1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03MzMtXHQvKiBpbml0IHdpcGh5IGFjY29yZGluZyB0byBtcGh5IGFuZCBwaHkgKi9cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3MzQ6XHRtdDc5OTZfaW5pdF93aXBoeV9iYW5kKG1waHktXHUwMDNlaHcsIHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzM1LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzQ4Olx0XHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMobXBoeS1cdTAwM2Vwcml2LCBNVF9UWFFfSUQoYmFuZCksIHNpemUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzQ5LVx0XHRcdFx0XHQgICAgTVRfVFhRX1JJTkdfQkFTRShiYW5kKSAmIzQzOyBoaWYxX29mcyxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9Nzc0PW10Nzk5Nl91bnJlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NzktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzgwOnN0YXRpYyB2b2lkIG10Nzk5Nl9pbml0X3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc4MS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTEyMTM9c3RhdGljIGludCBtdDc5OTZfdmFyaWFudF9mZW1faW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNTY6c3RhdGljIGludCBtdDc5OTZfaW5pdF9oYXJkd2FyZShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNTcte1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjY1LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNjY6XHRJTklUX1dPUksoXHUwMDI2ZGV2LVx1MDAzZWluaXRfd29yaywgbXQ3OTk2X2luaXRfd29yayk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2Ny1cdElOSVRfV09SSyhcdTAwMjZkZXYtXHUwMDNld2VkX3Jyby53b3JrLCBtdDc5OTZfd2VkX3Jyb193b3JrKTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTQyNz1zdGF0aWMgdm9pZFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0Mjg6bXQ3OTk2X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE0MjktXHRcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhLFxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNTU2PXN0YXRpYyB2b2lkXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTU1NzptdDc5OTZfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE1NTgtXHRcdCAgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY4Nz1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3MDYtXHRcdGRhdGFbbl0udHlwZXNfbWFzayA9IEJJVChpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzA3Olx0XHRtdDc5OTZfaW5pdF9oZV9jYXBzKHBoeSwgYmFuZCwgXHUwMDI2ZGF0YVtuXSwgaSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwODpcdFx0bXQ3OTk2X2luaXRfZWh0X2NhcHMocGh5LCBiYW5kLCBcdTAwMjZkYXRhW25dLCBpKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA5LVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NDktXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1MDpcdHJldCA9IG10Nzk5Nl9pbml0X2hhcmR3YXJlKGRldik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1MS1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTMtXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1NDpcdG10Nzk5Nl9pbml0X3dpcGh5KGh3LCBcdTAwMjZkZXYtXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1NS1cbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4MS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzgyOlx0cmV0ID0gbXQ3OTk2X2luaXRfZGVidWdmcyhkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODMtXHRpZiAocmV0KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMyOC1cdG10Nzk5Nl9mb3JfZWFjaF9waHkoZGV2LCBwaHkpXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzI5Olx0XHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzMwLVx0cmV0ID0gbXQ3OTk2X3R4YmZfaW5pdChkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0xNjY9c3RhdGljIHZvaWRcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzoxNjc6bXQ3OTk2X2luaXRfYml0cmF0ZV9tYXNrKHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsIHN0cnVjdCBtdDc5OTZfdmlmX2xpbmsgKm1saW5rKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTE2OC17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jPTI5Mj1pbnQgbXQ3OTk2X3ZpZl9saW5rX2FkZChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHksIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTM2My1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYzozNjQ6XHRtdDc5OTZfaW5pdF9iaXRyYXRlX21hc2sodmlmLCBsaW5rKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjUtXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02OTY9dm9pZCBtdDc5OTZfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NzppbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02OTgtXHRcdFx0ICBpbnQgbl9kZXNjLCBpbnQgcmluZ19iYXNlLCBzdHJ1Y3QgbXRrX3dlZF9kZXZpY2UgKndlZCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTk6dm9pZCBtdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNzAwLWludCBtdDc5OTZfdHhiZl9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTkxMz12b2lkIG10Nzk5Nl91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTE0OmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtOTE1LXZvaWQgbXQ3OTk2X2RlYnVnZnNfcnhfZndfbW9uaXRvcihzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBjb25zdCB2b2lkICpkYXRhLCBpbnQgbGVuKTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4yOS8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMTk1NjkKCQkJCQkJCW91dHB1dDogNTAKCQkJCQkJCXRob3VnaHRzOiAyMQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipEaXZpbmcgaW50byB0aGUgRmlybXdhcmUgSW5pdGlhbGl6YXRpb24qKgoKT2theSwgdGltZSB0byBnZXQgbXkgaGFuZHMgZGlydHkuIExldCYjMzk7cyBzZWUgd2hhdCYjMzk7cyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2Qgd2l0aCB0aGlzIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24uIEkmIzM5O20gZ29pbmcgdG8ganVtcCBpbnRvIGBtbWlvLmNgIHJpZ2h0IGF3YXkuIEkmIzM5O20gZXNwZWNpYWxseSBpbnRlcmVzdGVkIGluIGhvdyB0aGV5JiMzOTtyZSBoYW5kbGluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24g4oCTIG1lbW9yeS1tYXBwZWQgSS9PIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHByb2JsZW1zISkgb2Z0ZW4gc3RhcnQuIEkgd2FudCB0byBzZWUgaG93IHRoZSByZWdpc3RlcnMgYXJlIGJlaW5nIHNldCB1cCwgd2hhdCYjMzk7cyBiZWluZyBlbmFibGVkLCBhbmQgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIGJvdHRsZW5lY2tzIG9yIHBvdGVudGlhbCBhcmVhcyBmb3Igb3B0aW1pemF0aW9uIHJpZ2h0IG9mZiB0aGUgYmF0LiBLbm93aW5nIHRoZSBpbml0IHNlcXVlbmNlIGlzIGNyaXRpY2FsIGZvciB1bmRlcnN0YW5kaW5nIHRoZSBzdWJzZXF1ZW50IGRyaXZlciBvcGVyYXRpb25zLCBzbyB0aGlzIGlzIGEgZ29vZCBwbGFjZSB0byBzdGFydCBteSBhbmFseXNpcy4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7T3V0cHV0JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzEvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDE5OTYxCgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMjAKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPkhlcmUmIzM5O3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGUgdGhvdWdodCBwcm9jZXNzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOgoKKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqCgpPa2F5LCB0aW1lIHRvIGRpZyBpbnRvIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhpcyBzcGVjaWZpYyBNZWRpYXRlayBjaGlwc2V0IOKAkyBgbXQ3OTk2X2luaXRgLCBzcGVjaWZpY2FsbHkgd2l0aGluIGBtbWlvLmNgLiBNeSBpbW1lZGlhdGUgdGhvdWdodCBpcywgJiMzNDtBbHJpZ2h0LCB3aGF0IGtleSByZWdpc3RlcnMgYW5kIG1lbW9yeS1tYXBwZWQgcmVnaW9ucyBhcmUgdGhleSB0b3VjaGluZyBoZXJlPyYjMzQ7IEkmIzM5O20gZXhwZWN0aW5nIHRvIHNlZSB0aGUgdXN1YWwgc3VzcGVjdHM6IGNsb2NrIGNvbmZpZ3VyYXRpb24sIHBvd2VyIG1hbmFnZW1lbnQgaW5pdGlhbGl6YXRpb24sIHBvdGVudGlhbGx5IHNvbWUgYmFzaWMgUEhZIHNldHRpbmdzIGlmIGl0JiMzOTtzIGluY2x1ZGVkLCBhbmQsIG9mIGNvdXJzZSwgdGhlIERNQSBlbmdpbmUgc2V0dXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYnJvdWdodCB1cCBmcm9tIGEgY29sZCBib290IHN0YXRlLiBXaGF0JiMzOTtzIHRoZSByZXNldCBzZXF1ZW5jZT8gQXJlIHRoZXkgZG9pbmcgYW55IGVhcmx5IGNhbGlicmF0aW9uIG9yIGF1dG9jb25maWd1cmF0aW9uPyBJJiMzOTttIHBhcnRpY3VsYXJseSBpbnRlcmVzdGVkIGluIGhvdyB0aGV5JiMzOTtyZSBoYW5kbGluZyB0aGUgcmFkaW8gY2FsaWJyYXRpb24uIEFueSBzcGVjaWZpYyB0dW5pbmcgcGFyYW1ldGVycyBvciBxdWlya3MgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEkmIzM5O2xsIGJlIGxvb2tpbmcgZm9yIHRoaW5ncyBsaWtlIHJlZ2lzdGVyIHdyaXRlcyB0byBlbmFibGUgc3BlY2lmaWMgbW9kdWxlcyAoTUFDLCBQSFksIFJGKSwgaW50ZXJydXB0IGNvbmZpZ3VyYXRpb25zLCBhbmQgYW55IGluaXRpYWwgZmlybXdhcmUgbG9hZGluZyBvciBoYW5kc2hha2Ugcm91dGluZXMuIEtub3dpbmcgdGhpcyBzcGVjaWZpYyBjaGlwc2V0LCBhbmQga25vd2luZyB0aGUgZHJpdmVyIGF1dGhvcnMgaGF2ZSBhIHByZXR0eSBnb29kIHRyYWNrIHJlY29yZCwgSSYjMzk7bGwgYmUgcGFydGljdWxhcmx5IG9uIHRoZSBsb29rb3V0IGZvciBhbnl0aGluZyB0aGF0IHNlZW1zIG92ZXJseSBjb21wbGV4IG9yIGluZWZmaWNpZW50LiBJJiMzOTttIGtlZW4gdG8gc2VlIGlmIHRoaXMgaW5pdCByb3V0aW5lIGlzIG9wdGltaXplZCBmb3IgbWluaW1hbCBib290IHRpbWUgYW5kIG1pbmltYWwgcG93ZXIgY29uc3VtcHRpb24uIEZpbmFsbHksIEkmIzM5O2xsIGJlIHBheWluZyBjbG9zZSBhdHRlbnRpb24gdG8gYW55IGVycm9yIGhhbmRsaW5nIG9yIHdhdGNoZG9nIGNvbmZpZ3VyYXRpb25zIHRoYXQgYXJlIGluIHBsYWNlLCBiZWNhdXNlIHRob3NlIGFyZSBvZnRlbiBjbHVlcyB0byB0aGUgaGFyZHdhcmUmIzM5O3MgbGltaXRhdGlvbnMgb3IgcG90ZW50aWFsIHN0YWJpbGl0eSBpc3N1ZXMuIExldCYjMzk7cyBzZWUgd2hhdCB3ZSYjMzk7dmUgZ290LgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjMyLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnJlYWQtZmlsZTwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZSYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYyYjMzQ7LAogICYjMzQ7Rmlyc3RMaW5lJiMzNDs6IDg2NSwKICAmIzM0O0xpbmVDb3VudCYjMzQ7OiAzMAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7Q29udGVudHMmIzM0OzogJiMzNDsgODY1Olx0XHRyZXR1cm4gRVJSX1BUUihyZXQpO1xuIDg2NjpcdH1cbiA4Njc6XHRcbiA4Njg6XHRzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxuIDg2OTpcdHtcbiA4NzA6XHRcdGludCByZXQ7XG4gODcxOlx0XG4gODcyOlx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4NzM6XHRcdGlmIChyZXQpXG4gODc0Olx0XHRcdHJldHVybiByZXQ7XG4gODc1Olx0XG4gODc2Olx0XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbiA4Nzc6XHRcdGlmIChyZXQpXG4gODc4Olx0XHRcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XG4gODc5Olx0XG4gODgwOlx0XHRyZXR1cm4gcmV0O1xuIDg4MTpcdH1cbiA4ODI6XHRcbiA4ODM6XHRzdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbiA4ODQ6XHR7XG4gODg1Olx0XHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X3BjaV9kcml2ZXIpO1xuIDg4NjpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbiA4ODc6XHR9XG4gODg4Olx0XG4gODg5Olx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xuIDg5MDpcdG1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcbiA4OTE6XHRNT0RVTEVfREVTQ1JJUFRJT04oXCYjMzQ7TWVkaWFUZWsgTVQ3OTk2IE1NSU8gaGVscGVyc1wmIzM0Oyk7XG4gODkyOlx0TU9EVUxFX0xJQ0VOU0UoXCYjMzQ7RHVhbCBCU0QvR1BMXCYjMzQ7KTtcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD4zMy8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTE8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjA3NjcKCQkJCQkJCW91dHB1dDogNDgKCQkJCQkJCXRob3VnaHRzOiA2MzMKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFBvdGVudGlhbCBvZiBhIFBDSSBEcml2ZXIqKgoKT2theSwgc28gSSYjMzk7bSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQmIzM5O3MgZGVmaW5pdGVseSBhIFBDSSBkcml2ZXIg4oCTIG5vIHBsYXRmb3JtIGRyaXZlciwgbm8gb3RoZXIgb2J2aW91cyBjb25uZWN0aW9uLiBUaGUgaW5zdHJ1Y3Rpb25zIGdpdmUgYSBjbGVhciBleGNsdXNpb246IHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzLCB3aGljaCB1c3VhbGx5IG5lZWQgcmVhbCBoYXJkd2FyZSB0aGF0IHN0YW5kYXJkIFFFTVUgY2FuJiMzOTt0IGVtdWxhdGUuIE15IGluaXRpYWwgdGhvdWdodCBpcyB0byBkaXNjb3VudCBpdCwgYnV0IHRoZW4gV2ktRmkgZHJpdmVycyBqdW1wIGludG8gbXkgaGVhZC4gCgpXYWl0LCBob2xkIG9uLiBXaS1GaSBkcml2ZXJzIGxpa2UgYG10NzZgICphcmUqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIGp1c3Qgbm90IHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMuIEJ1dCB0aGV5IHN0aWxsIG9mdGVuIHJlbHkgb24gaGFyZHdhcmUgdGhhdCBpc24mIzM5O3QgZWFzaWx5IGVtdWxhdGVkLiBUaGUgY2F0Y2ggaXMgdGhhdCBzeXprYWxsZXIgKmRvZXMqIGhhdmUgc29tZSBXaS1GaSBmdXp6aW5nIG1ldGhvZHMuIEl0IGNhbiB1c2UgYG1hYzgwMjExX2h3c2ltYCBvciBVU0IgZHVtbXkgc2V0dXBzLiBIbW0sIHRoZSBzcGVjaWZpYyBkcml2ZXIgaW4gcXVlc3Rpb24gaXMgYSBQQ0kgZHJpdmVyLCBgbXQ3OTk2YC4gVGhlIGZhY3QgdGhhdCBzeXprYWxsZXIgZm91bmQgYSBidWcgaW4gYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgbWVhbnMgaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdy4gSG93IGRpZCBzeXprYWxsZXIgbWFuYWdlIHRoYXQ/IAoKQ291bGQgaXQgYmUgdGhhdCBzeXprYWxsZXIgaXMgdXNpbmcgYG1hYzgwMjExYCwgd2hpY2ggaW4gdHVybiwgaXMgbG9hZGluZyBgbXQ3OTk2YD8gTm8sIGlmIHRoZSBoYXJkd2FyZSBpc24mIzM5O3QgcHJlc2VudCwgdGhlIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgZmFpbCBhbmQgdGhlIGRyaXZlciB3b3VsZG4mIzM5O3QgYmUgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFJpZ2h0LCBzbyB3aGF0IGFib3V0IHRoZSBgc3l6X3BjaV9zZXR1cGAgcHNldWRvLXN5c2NhbGw/IE5vLCBzeXprYWxsZXIgZG9lc24mIzM5O3QgaGF2ZSB0aG9zZS4gVW5sZXNzLi4ud2FpdCwgdGhlcmUmIzM5O3MgYmVlbiBzb21lIHJlY2VudCBkZXZlbG9wbWVudC4gVGhlcmUgbWlnaHQgYmUgYSBQQ0kgZnV6emVyIGluIHNvbWUgYnJhbmNoZXMsIG9yIHBlcmhhcHMgaXQgdXNlcyBgdmZpb2A/CgpBY3R1YWxseSwgSSByZWNhbGwgc3l6a2FsbGVyIGRpZCBhZGQgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzLCBhbmQgSSBzaG91bGQgY2hlY2sgdGhhdC4gTGV0JiMzOTtzIHNlZSBpZiB0aGUgc3lzdGVtIGhhcyBhIGBzeXpfcGNpX3NldHVwYCBvciBhIHNpbWlsYXIgZnVuY3Rpb24sIGFsdGhvdWdoIHRoZSBkaXJlY3Rpb25zIHNheSB0aGF0IHNvbWUgUENJZSBkcml2ZXJzIGFyZSBub3QgZnV6emVkLiBUaGF0IGV4Y2x1c2lvbiBzYXlzIHRoYXQgc29tZSBQQ0llIGRyaXZlcnMgYXJlIG5vdCBmdXp6ZWQsIGJ1dCB3aGF0IGFib3V0IHRoZSBXaS1GaSBjYXNlPyBUaGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZnkgdGhvc2UgZXhjZXB0aW9ucy4gV2ktRmkgaGFzIFVTQiBvciB2aXJ0dWFsIGJ1c2VzLiBTbyBtYXliZSB0aGUgUENJZSBkcml2ZXIgbWlnaHQgbm90IGJlIGZ1enplZCB1bmxlc3MgdGhlcmUgaXMgc3BlY2lmaWMgZW11bGF0aW9uLgoKTWF5YmUgYG10Nzk5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgb24gYSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlLiBJIGJldHRlciBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvc29jLmNgLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM0LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+RXJyb3I6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5ubyBtYXRjaGVzPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9zb2NfcHJvYmUmIzM0OywKICAmIzM0O1BhdGhQcmVmaXgmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7ZXJyb3ImIzM0OzogJiMzNDtubyBtYXRjaGVzJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyMTk5NwoJCQkJCQkJb3V0cHV0OiAzNwoJCQkJCQkJdGhvdWdodHM6IDEyCgkJCQkJCTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+VGhvdWdodHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5IZXJlJiMzOTtzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6CgoqKkNoZWNraW5nIGZvciBhIENydWNpYWwgRmlsZSoqCgpPa2F5LCBmaXJzdCB0aGluZ3MgZmlyc3QuIEJlZm9yZSBJIGV2ZW4gYmVnaW4gdG8gY29uc2lkZXIgdGhlIG5leHQgc3RlcHMgaW4gdGhpcyBwcm9jZXNzLCBJIG5lZWQgdG8gY29uZmlybSB0aGUgcHJlc2VuY2Ugb2YgYHNvYy5jYC4gVGhhdCBmaWxlIGlzIGNlbnRyYWwsIGFuZCBJJiMzOTttIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgdG8gY29uZmlybSBpdCBleGlzdHMgYmVmb3JlIEkgbW92ZSBvbi4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgaXQgaXMgdGhlcmUgYmVmb3JlIG1vdmluZyBvbi4gSSBjYW4mIzM5O3Qgc3RhcnQgYXNzdW1pbmcgaXQgaXMgaW4gcGxhY2UgaWYgaXQgaXNuJiMzOTt0LiBJJiMzOTtsbCBuZWVkIHRvIGtub3cgaXQmIzM5O3MgdGhlcmUgYmVmb3JlIEkgY2FuIGdvIGZvcndhcmQgd2l0aCBteSB3b3JrLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmNvZGVzZWFyY2gtZGlyLWluZGV4PC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtEaXImIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni8mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RmlsZXMmIzM0OzogWwogICAgJiMzNDtjb3JlZHVtcC5jJiMzNDssCiAgICAmIzM0O2NvcmVkdW1wLmgmIzM0OywKICAgICYjMzQ7ZGVidWdmcy5jJiMzNDssCiAgICAmIzM0O2RtYS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5jJiMzNDssCiAgICAmIzM0O2VlcHJvbS5oJiMzNDssCiAgICAmIzM0O2luaXQuYyYjMzQ7LAogICAgJiMzNDttYWMuYyYjMzQ7LAogICAgJiMzNDttYWMuaCYjMzQ7LAogICAgJiMzNDttYWluLmMmIzM0OywKICAgICYjMzQ7bWN1LmMmIzM0OywKICAgICYjMzQ7bWN1LmgmIzM0OywKICAgICYjMzQ7bW1pby5jJiMzNDssCiAgICAmIzM0O210Nzk5Ni5oJiMzNDssCiAgICAmIzM0O25wdS5jJiMzNDssCiAgICAmIzM0O3BjaS5jJiMzNDssCiAgICAmIzM0O3JlZ3MuaCYjMzQ7CiAgXSwKICAmIzM0O1N1YmRpcnMmIzM0OzogbnVsbAp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzcvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDIyMzAwCgkJCQkJCQlvdXRwdXQ6IDQ5CgkJCQkJCQl0aG91Z2h0czogMTE4NgoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipXb3J0aEZ1enppbmc9ZmFsc2U6IEFuYWx5emluZyB0aGUgUmVhY2hhYmlsaXR5IG9mIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgKioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXM6IGlzIHRoaXMgYG10Nzk5NmAgZHJpdmVyIGV2ZW4gZnV6emFibGUgYnkgc3l6a2FsbGVyPyBUaGUgYWJzZW5jZSBvZiBhIGBzb2MuY2AgZmlsZSBtYWtlcyBtZSB0aGluayBpdCYjMzk7cyBhIFBDSSBkcml2ZXIuIElmIHRoYXQmIzM5O3MgdGhlIGNhc2UsIGFuZCBhc3N1bWluZyBpdCYjMzk7cyBub3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXImIzM5O3Mgc3RhbmRhcmQgc2V0dXAgd291bGRuJiMzOTt0IGJlIGFibGUgdG8gcmVhY2ggaXQuIFRoZSBmYWN0IHRoYXQgdGhlICYjMzQ7c3l6LWNsdXN0ZXImIzM0OyBhdXRob3JlZCB0aGUgcGF0Y2ggZG9lc24mIzM5O3QgYXV0b21hdGljYWxseSBtZWFuIGEgYnVnIHdhcyBmb3VuZDsgaXQgY291bGQganVzdCBiZSBhIHRlc3QgcGF0Y2guIEl0JiMzOTtzIGxpa2VseSBhIGRldmVsb3BlciYjMzk7cyBzdWJtaXNzaW9uIGJlaW5nIHRlc3RlZC4KCk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIGBtdDc5OTZgIFdpLUZpIGRyaXZlciwgYmVpbmcgUENJZSBhbmQgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBpcyBvdXQgb2Ygc3l6a2FsbGVyJiMzOTtzIHJlYWNoIGlmIFFFTVUgY2FuJiMzOTt0IGhhbmRsZSBpdC4gSSBuZWVkIHRvIHJ1bGUgb3V0IGFsdGVybmF0aXZlIHByb2JpbmcgbWVjaGFuaXNtcy4gSXMgdGhlcmUgYSBVU0IsIFNESU8sIG9yIFZpcnRJTyBkcml2ZXIgYXNzb2NpYXRlZCB3aXRoIGBtdDc5OTZgPyBOby4gSXMgdGhlcmUgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBpbiB0aGUga2VybmVsPyBBbHNvLCBuby4gVGhhdCBtZWFucyBgbXQ3OTk2X3BjaV9wcm9iZWAgd2lsbCBuZXZlciBzdWNjZWVkIGluIGEgc3RhbmRhcmQgZW52aXJvbm1lbnQsIGFuZCBjb25zZXF1ZW50bHksIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIHdvbiYjMzk7dCBiZSByZWFjaGFibGUuCgpIb3dldmVyLCBJIG5lZWQgdG8gY29uc2lkZXIgc3l6a2FsbGVyJiMzOTtzIGFkdmFuY2VkIGNhcGFiaWxpdGllcy4gRG9lcyBpdCBoYXZlIGEgUENJIGZ1enplcj8gWWVzLCBJIGtub3cgaXQgZG9lcywgYnV0IGhvdyBkb2VzIGl0IHdvcms/IERvZXMgaXQgdXNlIGB2aGNpYCBvciBpbmplY3QgdmlhIGB2ZmlvYD8gSW4gcmVhbGl0eSwgaXQgY2FuIGVtdWxhdGUgUENJIGNvbmZpZyBzcGFjZSBhbmQgTU1JTy4gT2theSwgc28gdGhhdCBjaGFuZ2VzIHRoaW5ncyBhIGJpdC4gTWF5YmUgc3l6a2FsbGVyICpjYW4qIGZ1enogUENJIGRyaXZlcnM/IEkgbmVlZCB0byBjaGVjay4KClRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmaWNhbGx5IG1lbnRpb24gZHJpdmVycyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQW5kIGl0IGxpc3RzIGV4YW1wbGVzOiAmIzM0O0NvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS4mIzM0OyBPa2F5LCBzbyBzb21lIFBDSWUgZHJpdmVycyBhcmUgZXhjbHVkZWQsIGJ1dCB3aGF0IGFib3V0IGEgV2ktRmkgZHJpdmVyIGxpa2UgYG10Nzk5NmA/CgpJZiBzeXprYWxsZXIgaGFzIGEgUENJIGZ1enplciwgY291bGQgaXQgZnV6eiBgbXQ3OTk2YD8gSWYgdGhlIGluc3RydWN0aW9ucyBtZW50aW9uIGEgbGlzdCBvZiBleGFtcGxlcyBvZiB0aGluZ3MgdGhhdCBjYW5ub3QgYmUgZnV6emVkLCBpdCBzdGFuZHMgdG8gcmVhc29uIHRoYXQgYG10Nzk5NmAgZmFsbHMgaW50byB0aGF0IGNhdGVnb3J5LgoKU28gbGV0JiMzOTtzIGNoZWNrIHRoZSBjcml0ZXJpYSBhZ2Fpbi4gRG9lcyBgbXQ3OTk2YCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0JiMzOTtzIGEgTWVkaWFUZWsgV2ktRmkgNyBQQ0llIGRyaXZlci4gSXMgaXQgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVT8gTm8uIElzIHRoZXJlIHNvZnR3YXJlIGVtdWxhdGlvbj8gTm8uIFRoZXJlZm9yZSwgaXQmIzM5O3MgdW5yZWFjaGFibGUgaW4gZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUuIElmIGl0ICp3ZXJlKiByZWFjaGFibGUgYnkgc3l6a2FsbGVyJiMzOTtzIFBDSSBmdXp6ZXIsIHRoZSBpbnN0cnVjdGlvbnMgd291bGRuJiMzOTt0IGhhdmUgdGhhdCBleGNsdXNpb24uCgpGdXJ0aGVybW9yZSwgaXMgYG10Nzk5NmAgYSB2ZW5kb3Itc3BlY2lmaWMgZHJpdmVyPyBZZXMsIGl0JiMzOTtzIGEgTWVkaWFUZWsgZHJpdmVyLiBTbywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucywgaXQgc2hvdWxkIGJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiB0aGVyZSBpc24mIzM5O3Qgc29tZSBiYWNrZG9vciB3YXkgdG8gcmVhY2ggdGhpcyBjb2RlLiBJcyB0aGVyZSBhbnkgd2F5IGBtYWM4MDIxMV9od3NpbWAgY291bGQgcmVhY2ggYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGA/IE5vLCB0aGF0JiMzOTtzIGEgc2VwYXJhdGUgZHJpdmVyIGFuZCBpdCBoYXMgaXRzIG93biBgaHdgIHJlZ2lzdHJhdGlvbi4gSXRzIHJlZ2lzdHJhdGlvbiBvZiBgaHdgIGRvZXMgbm90IGNhbGwgYG10Nzk5NmAgZnVuY3Rpb25zLiBUaGVyZWZvcmUsIHNpbmNlIGBtdDc5OTZgIGlzIG5ldmVyIHByb2JlZCwgaXQgbmV2ZXIgcmVnaXN0ZXJzIGl0cyBgaHdgLCBzbyBpdHMgY2FsbGJhY2tzIG5ldmVyIGZpcmUuCgpJIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBhbnkgb3RoZXIgcHJvYmluZyBtZWNoYW5pc20gZm9yIGBtdDc5OTZgIHRoYXQgSSYjMzk7dmUgbWlzc2VkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjM4LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX3Byb2JlJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTAwLVx0XHRcdCAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cdC5pZF90YWJsZVx0PSBtdDc5OTZfaGlmX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1My1cdC5pZF90YWJsZVx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1NDpcdC5wcm9iZVx0XHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXHQucmVtb3ZlXHRcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXG4mIzM0Owp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+MzkvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjExPC90ZD4KCQkJPHRkPmxsbTwvdGQ+CgkJCTx0ZD5wYXRjaC1ldmFsdWF0b3I8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkJPGI+TW9kZWw6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5nZW1pbmktMy4xLXByby1wcmV2aWV3PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRva2Vuczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPgoJCQkJCQkJaW5wdXQ6IDI0OTM2CgkJCQkJCQlvdXRwdXQ6IDUxCgkJCQkJCQl0aG91Z2h0czogMzIKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPk9rYXksIGhlcmUmIzM5O3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCYjMzk7cyBpbnRlcm5hbCBtb25vbG9ndWU6CgoqKkNvbnNpZGVyaW5nIERldmljZSBUYWJsZXMgZm9yIG10Nzk5NiBISUYgYW5kIFBDSSBJbml0aWFsaXphdGlvbioqCgpBbHJpZ2h0LCBsZXQmIzM5O3Mgc2VlLi4uIEkmIzM5O20gY3VycmVudGx5IHdvcmtpbmcgd2l0aCB0aGUgYG10Nzk5NmAgZHJpdmVyLCBmb2N1c2luZyBvbiB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UuIFNwZWNpZmljYWxseSwgSSYjMzk7bSB0aGlua2luZyBhYm91dCBob3cgdGhlIHN5c3RlbSByZWNvZ25pemVzIGFuZCBjb25maWd1cmVzIHRoZXNlIHNwZWNpZmljIGRldmljZXMuIE15IG1pbmQgaXMgZHJhd24gdG8gdHdvIGNydWNpYWwgdGFibGVzLCByaWdodD8gYG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlYCBhbmQgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYC4KClRoZSBISUYgdGFibGUsIG9idmlvdXNseSwgZGVhbHMgd2l0aCB0aGUgSG9zdCBJbnRlcmZhY2UsIGxpa2VseSByZWxhdGluZyB0byB0aGUgaW50ZXJuYWwgYnVzIHByb3RvY29sLiBJdCYjMzk7cyBwcm9iYWJseSByZXNwb25zaWJsZSBmb3IgbWFwcGluZyB0aGUgZGV2aWNlJiMzOTtzIHJlc291cmNlcyB3aGVuIGNvbm5lY3RlZCB2aWEgYW4gaW50ZXJuYWwgYnVzLiBUaGUgUENJIHRhYmxlLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGVhbHMgd2l0aCB0aGUgaGFyZHdhcmUgc2V0dXAgaWYgdGhlIGRldmljZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgYnVzLiBFYWNoIHRhYmxlIHdvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGRldmljZSBpbmZvcm1hdGlvbiwgd2hpY2ggSSBuZWVkIHRvIGdldCBmYW1pbGlhciB3aXRoIHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIGhhcmR3YXJlLgoKQXJlIHRoZXNlIHR3byB0YWJsZXMgc2VwYXJhdGUgb3IgcmVsYXRlZD8gRG9lcyB0aGUgZHJpdmVyIGNoZWNrIGZvciBhIGNvbm5lY3Rpb24gb2YgYSBQQ0kgYnVzLCBhbmQgdGhlbiByZWZlcmVuY2UgdGhlIGBtdDc5OTZfcGNpX2RldmljZV90YWJsZWAgdG8gZ2V0IHRoZSBuZWNlc3NhcnkgUENJIGlkZW50aWZpZXJzPyBPciBpcyBpdCBhIG1vcmUgc29waGlzdGljYXRlZCBhcHByb2FjaCB3aXRoIHNoYXJlZCBkYXRhPyBJIHNob3VsZCBkaWcgaW50byB0aGUgY29kZSBhbmQgc2VlIGhvdyB0aGVzZSBhcmUgdXNlZC4gVGhlIGRldmljZSBJRCBpcyBjcml0aWNhbCBmb3IgdGhlIGRyaXZlciB0byBwZXJmb3JtIFBDSSBwcm9iaW5nLiBJIHNob3VsZCBhbHNvIGludmVzdGlnYXRlIGhvdyB0aGVzZSB0YWJsZXMgYXJlIGJ1aWx0IGFuZCBtYWludGFpbmVkLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQwLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMTwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPmdyZXBwZXI8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O0V4cHJlc3Npb24mIzM0OzogJiMzNDttdDc5OTZfcGNpX2RldmljZV90YWJsZSYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0xNj1zdGF0aWMgdTMyIGhpZl9pZHg7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xNy1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjE4OnN0YXRpYyBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCBtdDc5OTZfcGNpX2RldmljZV90YWJsZVtdID0ge1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMTktXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXHQubmFtZVx0XHQ9IEtCVUlMRF9NT0ROQU1FLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjUzOlx0LmlkX3RhYmxlXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU0LVx0LnByb2JlXHRcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTctXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTg6TU9EVUxFX0RFVklDRV9UQUJMRShwY2ksIG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1OS1NT0RVTEVfREVWSUNFX1RBQkxFKHBjaSwgbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGUpO1xuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQxLzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyNTgyNgoJCQkJCQkJb3V0cHV0OiA1MwoJCQkJCQkJdGhvdWdodHM6IDIzNQoJCQkJCQk8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlRob3VnaHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+KipNeSBBc3Nlc3NtZW50IG9mIHRoZSBQQ0kgRGV2aWNlIGFuZCBGdXp6aW5nIEZlYXNpYmlsaXR5KioKCk9rYXksIHNvIHRoaXMgaXMgYSBwdXJlIFBDSSBkZXZpY2UsIHdoaWNoIHNpbXBsaWZpZXMgc29tZSBhc3BlY3RzIGJ1dCBhbHNvIHByZXNlbnRzIHVuaXF1ZSBjaGFsbGVuZ2VzLiBNeSBpbml0aWFsIGFzc3VtcHRpb24gd2FzIHRoYXQgc3l6a2FsbGVyIG1pZ2h0IGhhdmUgYSBwc2V1ZG8tc3lzY2FsbCBsaWtlIGBzeXpfcGNpX3NldHVwYCBmb3IgZGlyZWN0IFBDSSBpbnRlcmFjdGlvbnMsIGJ1dCBJIHF1aWNrbHkgcmVtZW1iZXIgdGhhdCBzeXprYWxsZXIgZG9lc24mIzM5O3QgZGlyZWN0bHkgZXhwb3NlIHBzZXVkby1zeXNjYWxscyBmb3IgUENJIG9wZXJhdGlvbnMuIEhvd2V2ZXIsIHdhaXQgYSBtaW51dGUsIEkga25vdyBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyLCB3aGljaCBtYWtlcyBtZSByZWNvbnNpZGVyLgoKTXkgbmV4dCBzdGVwIGlzIHRvIHNlZSBpZiBJIGNhbiBmaW5kIHNvbWUgUENJIHNwZWNpZmljIHN5eiBmdW5jdGlvbi4gSSBuZWVkIHRvIGJlIGNhcmVmdWwgd2l0aCBgZ3JlcHBlcmAsIGFzIGl0JiMzOTtzIG5vdCB0aGUgcmlnaHQgdG9vbCBmb3IgYHN5el9gIHBzZXVkby1zeXNjYWxscy4gSW5zdGVhZCwgSSYjMzk7bGwgZm9jdXMgb24gUUVNVSYjMzk7cyBQQ0kgZW11bGF0aW9uIHRvIGlkZW50aWZ5IGhvdyBzeXprYWxsZXIgYXBwcm9hY2hlcyBQQ0kgZGV2aWNlcy4KCk9rYXksIHN5emthbGxlciB1dGlsaXplcyBzdGFuZGFyZCBRRU1VLiBOb3cgdGhlIGNydXggb2YgdGhlIHByb2JsZW06IHN0YW5kYXJkIFFFTVUgZG9lc24mIzM5O3QgZW11bGF0ZSB0aGUgTWVkaWFUZWsgV2ktRmkgY2FyZCBpbnZvbHZlZCBoZXJlLiBUaGF0JiMzOTtzIGEgbWFqb3Igcm9hZGJsb2NrLiBUaGlzIGxhY2sgb2YgZW11bGF0aW9uIG1lYW5zIHRoZSBkcml2ZXIgZm9yIHRoaXMgZGV2aWNlIGxpa2VseSB3b24mIzM5O3QgZXZlbiBiZSBwcm9iZWQgY29ycmVjdGx5IGluIHRoZSBmdXp6ZXImIzM5O3MgZW52aXJvbm1lbnQuIEFuZCwgaWYgaXQmIzM5O3Mgbm90IHByb2JlZCwgdGhlbiBmdXp6aW5nIHRoZSBkcml2ZXIgaXRzZWxmIGJlY29tZXMgaW1wb3NzaWJsZS4KCkkgbmVlZCB0byBjb25maXJtIHRoYXQgbXkgYXNzdW1wdGlvbnMgYXJlIGFjY3VyYXRlLiBJJiMzOTtsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBhbnkgb3RoZXIgcG9zc2libGUgY29kZSBwYXRocy4gT2theSwgdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uLCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCwgaXMgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgY2FsbGVkIGZyb20gc29tZXdoZXJlLiBJdCYjMzk7cyBlaXRoZXIgZXhwb3J0ZWQgb3IgdXNlZCB3aXRoaW4gdGhlIGBtYWMuY2AgZmlsZSBpdHNlbGYuCgoKPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJPC9kZXRhaWxzPgoJCQk8L3RkPgoJCTwvdHI+CgkJCgkJPHRyPgoJCQk8dGQ+NDIvMjwvdGQ+CgkJCTx0ZD4yMDI2LzA4LzI1IDEyOjEyPC90ZD4KCQkJPHRkPnRvb2w8L3RkPgoJCQk8dGQ+Z3JlcHBlcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5BcmdzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+ewogICYjMzQ7RXhwcmVzc2lvbiYjMzQ7OiAmIzM0O210Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCYjMzQ7LAogICYjMzQ7UGF0aFByZWZpeCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2LyYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtPdXRwdXQmIzM0OzogJiMzNDtkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYz0zMTA4PW10Nzk5Nl9tYWNfdHd0X3BhcmFtX2VxdWFsKHN0cnVjdCBtdDc5OTZfc3RhX2xpbmsgKm1zdGFfbGluayxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0zMTM0LVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MzEzNTp2b2lkIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodyxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTMxMzYtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjUxMD1jb25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5OTZfb3BzID0ge1xuLS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0yNTU2LVx0LnN0YV9zZXRfZGVjYXBfb2ZmbG9hZCA9IG10Nzk5Nl9zdGFfc2V0X2RlY2FwX29mZmxvYWQsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU1NzpcdC5hZGRfdHd0X3NldHVwID0gbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwLFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTI1NTgtXHQudHd0X3RlYXJkb3duX3JlcXVlc3QgPSBtdDc5OTZfdHd0X3RlYXJkb3duX3JlcXVlc3QsXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9ODkwPXZvaWQgbXQ3OTk2X21hY19zdGFfcmVtb3ZlX2xpbmsoc3RydWN0IG10Nzk5Nl9kZXYgKmRldixcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC04OTItXHRcdFx0XHR1bnNpZ25lZCBpbnQgbGlua19pZCwgYm9vbCBmbHVzaCk7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo4OTM6dm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC04OTQtXHRcdFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcbiYjMzQ7Cn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40My8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTI8L3RkPgoJCQk8dGQ+bGxtPC90ZD4KCQkJPHRkPnBhdGNoLWV2YWx1YXRvcjwvdGQ+CgkJCTx0ZD4KCQkJCTxkZXRhaWxzPgoJCQkJCTxzdW1tYXJ5PjBtPC9zdW1tYXJ5PgoJCQkJCQoJCQkJCQk8Yj5Nb2RlbDo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPmdlbWluaS0zLjEtcHJvLXByZXZpZXc8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+VG9rZW5zOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+CgkJCQkJCQlpbnB1dDogMjcxMDAKCQkJCQkJCW91dHB1dDogNDIKCQkJCQkJCXRob3VnaHRzOiAyMzcKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqVW5yZWFjaGFibGUgQ29kZSBpbiBhIFZpcnR1YWxpemVkIEVudmlyb25tZW50KioKCk9rYXksIHNvIEkmIzM5O20gbG9va2luZyBhdCB0aGlzIGBhZGRfdHd0X3NldHVwYCBmdW5jdGlvbiwgd2hpY2ggaXMgYXBwYXJlbnRseSBwYXJ0IG9mIGBtdDc5OTZfb3BzYC4gSSBrbm93IGBtdDc5OTZfb3BzYCBnZXRzIGFzc2lnbmVkIHRvIGBody0mZ3Q7b3BzYCBkdXJpbmcgaW5pdGlhbGl6YXRpb24sIGxpa2VseSBzb21ld2hlcmUgbGlrZSBgbXQ3OTk2X2luaXRfd2lwaHlgLiBCdXQgaGVyZSYjMzk7cyB0aGUga2lja2VyOiBgbXQ3OTk2X3BjaV9wcm9iZWAgbmV2ZXIgYWN0dWFsbHkgc3VjY2VlZHMuIFRoYXQgbWVhbnMgYG10Nzk5Nl9vcHNgIG5ldmVyIGdldHMgcHJvcGVybHkgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFNvLCBieSBleHRlbnNpb24sIHRoYXQgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgZnVuY3Rpb24/IEl0JiMzOTtzIGNvbXBsZXRlbHkgdW5yZWFjaGFibGUgaW4gYW55IHNvcnQgb2YgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnQsIGJlY2F1c2Ugd2UmIzM5O3JlIG5vdCBkZWFsaW5nIHdpdGggdGhlIHBoeXNpY2FsIGhhcmR3YXJlLgoKTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gY292ZXIgbXkgYmFzZXMuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgVVNCIGRyaXZlcj8gTm8gZGljZSwgY2hlY2tlZCB0aGF0LiBIb3cgYWJvdXQgYSBwbGF0Zm9ybSBkcml2ZXI/IE5vcGUsIG5vdGhpbmcgdGhlcmUgZWl0aGVyLiBXaGF0IGFib3V0IFNESU8/IE5vIG1hdGNoLiBJIHNob3VsZCBoYXZlIGNoZWNrZWQgdGhvc2UgZmlyc3QuCgpBbHJpZ2h0LCBsZXQmIzM5O3MgYmFjayB1cCBhIGJpdC4gU2luY2UgdGhpcyBpcyBhIGJpdCBvZiBhIGhlYWQgc2NyYXRjaGVyLCBJIG5lZWQgdG8gY2hlY2sgZm9yIGFueSBvdGhlciBkcml2ZXIgcmVnaXN0cmF0aW9ucyBpbiBgbXQ3OTk2YC4KCgo8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQk8L2RldGFpbHM+CgkJCTwvdGQ+CgkJPC90cj4KCQkKCQk8dHI+CgkJCTx0ZD40NC8yPC90ZD4KCQkJPHRkPjIwMjYvMDgvMjUgMTI6MTI8L3RkPgoJCQk8dGQ+dG9vbDwvdGQ+CgkJCTx0ZD5ncmVwcGVyPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFeHByZXNzaW9uJiMzNDs6ICYjMzQ7cmVnaXN0ZXJfZHJpdmVyJiMzNDssCiAgJiMzNDtQYXRoUHJlZml4JiMzNDs6ICYjMzQ7ZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkJPGI+UmVzdWx0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O091dHB1dCYjMzQ7OiAmIzM0O2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04Njg9c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcbi0tXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODcxLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3MjpcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3My1cdGlmIChyZXQpXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3NS1cbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzY6XHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzctXHRpZiAocmV0KVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3ODpcdFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzktXG4tLVxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODQte1xuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg2Olx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODctfVxuJiMzNDsKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ1LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5sbG08L3RkPgoJCQk8dGQ+cGF0Y2gtZXZhbHVhdG9yPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCTxiPk1vZGVsOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+Z2VtaW5pLTMuMS1wcm8tcHJldmlldzwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPm51bGw8L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT5udWxsPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5Ub2tlbnM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT4KCQkJCQkJCWlucHV0OiAyODIxNgoJCQkJCQkJb3V0cHV0OiAxMjEKCQkJCQkJCXRob3VnaHRzOiAzMzYKCQkJCQkJPC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5UaG91Z2h0czo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPioqTXkgQXNzZXNzbWVudDogVGhpcyBXaS1GaSBEcml2ZXIgSXNuJiMzOTt0IEZ1enphYmxlIChGb3IgTm93KSoqCgpPa2F5LCBzbyBJJiMzOTttIGxvb2tpbmcgYXQgdGhpcyBkcml2ZXIsIGFuZCB0aGUga2V5IGZ1bmN0aW9uIGhlcmUgaXMgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgLiBUaGF0JiMzOTtzIGEgaHVnZSBjbHVlIHJpZ2h0IG9mZiB0aGUgYmF0IC0gdGhpcyBpcyBhIHB1cmUgUENJZSBkcml2ZXIuIEFuZCBiZWNhdXNlIGl0IG5lZWRzIGFjdHVhbCBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlLCB3aGljaCBRRU1VIGFuZCBHQ0UganVzdCBjYW4mIzM5O3QgZW11bGF0ZSwgaXQmIzM5O3MgaW1tZWRpYXRlbHkgb3V0IG9mIHJlYWNoIGluIHRob3NlIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gTm8gZGljZS4gVGhhdCBtZWFucyB0aGUgYFdvcnRoRnV6emluZ2AgZmxhZyBpcyBkZWZpbml0ZWx5IGBmYWxzZWAuCgpXYWl0LCBob2xkIG9uLiBMZXQgbWUgZ28gYmFjayBhbmQgZG91YmxlIGNoZWNrIHNvbWV0aGluZy4gUmlnaHQsIHRoZSBpbnN0cnVjdGlvbnMgYXJlIHZlcnkgc3BlY2lmaWM6ICYjMzQ7Q29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy4uLiB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZS4mIzM0OyBFdmVuIHRob3VnaCB0aGlzIGlzIGEgV2ktRmkgZHJpdmVyLCB0aGUgcHJpbmNpcGxlIGlzIHRoZSBzYW1lLiBJdCYjMzk7cyB0aGUgc2FtZSBjYXRlZ29yeS4gQW5kIHRoZW4gdGhlcmUmIzM5O3MgdGhlIG90aGVyIHBvaW50OiAmIzM0O0NvZGUgcGF0aHMgdGhhdCBhcmUgaW1wb3NzaWJsZSB0byByZWFjaCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMsIGV2ZW4gd2hlbiB1c2luZyBzb2Z0d2FyZS1lbXVsYXRlZCBoYXJkd2FyZS4mIzM0OyBUaGF0IHBlcmZlY3RseSBkZXNjcmliZXMgdGhlIHNpdHVhdGlvbiB3aXRoIHRoaXMgYG10NzZgIGRyaXZlci4KCkFscmlnaHQsIGxldCYjMzk7cyBzZWUgd2hhdCBTeXprYWxsZXIgc2F5cy4gSXMgdGhlcmUgYW55IHdheSB0byBhY3R1YWxseSB0YXJnZXQgdGhlIGBtdDc2YCBQQ0llIGRyaXZlcnM/IEkgc2VlIHNvbWUgbWVudGlvbnMgb2YgdGhpbmdzIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCBgc3l6XzgwMjExX2pvaW5faWJzc2AsIGJ1dCB0aG9zZSBhcmUgYWxsIGJ1aWx0IGZvciBgbWFjODAyMTFfaHdzaW1gIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcy4gVGhleSBjYW4mIzM5O3QgaW5zdGFudGlhdGUgYSByZWFsIGBtdDc5OTZgIFBDSWUgZGV2aWNlLiBZZXAsIHRoZSBjb2RlJiMzOTtzIHVucmVhY2hhYmxlLCBwZXJpb2QuCgpTbywgSSYjMzk7bSBnb2luZyB0byBzZXQgYFdvcnRoRnV6emluZz1mYWxzZWAuIEkmIzM5O2xsIG1ha2Ugc3VyZSB0byBwcm92aWRlIHRoaXMgZGV0YWlsZWQgZXhwbGFuYXRpb24gYXMgdGhlIHJlYXNvbmluZyBiZWhpbmQgdGhlIGRlY2lzaW9uLgoKCjwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ2LzI8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD50b29sPC90ZD4KCQkJPHRkPnNldC1yZXN1bHRzPC90ZD4KCQkJPHRkPgoJCQkJPGRldGFpbHM+CgkJCQkJPHN1bW1hcnk+MG08L3N1bW1hcnk+CgkJCQkJCgkJCQkJCgkJCQkJCgkJCQkJCTxiPkFyZ3M6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IFtdLAogICYjMzQ7Rm9jdXNTeW1ib2xzJiMzNDs6IFtdLAogICYjMzQ7UmVhc29uaW5nJiMzNDs6ICYjMzQ7VGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLiYjMzQ7LAogICYjMzQ7V29ydGhGdXp6aW5nJiMzNDs6IGZhbHNlCn08L3ByZT48L2Rpdj48YnI+CgkJCQkJCgkJCQkJCgkJCQkJCTxiPlJlc3VsdHM6PC9iPiA8ZGl2IGlkPSJhaV9kZXRhaWxzX2RpdiI+PHByZT57CiAgJiMzNDtFbmFibGVDb25maWdzJiMzNDs6IG51bGwsCiAgJiMzNDtGb2N1c1N5bWJvbHMmIzM0OzogW10sCiAgJiMzNDtSZWFzb25pbmcmIzM0OzogJiMzNDtUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuJiMzNDssCiAgJiMzNDtXb3J0aEZ1enppbmcmIzM0OzogZmFsc2UKfTwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTx0cj4KCQkJPHRkPjQ3LzE8L3RkPgoJCQk8dGQ+MjAyNi8wOC8yNSAxMjoxMjwvdGQ+CgkJCTx0ZD5hY3Rpb248L3RkPgoJCQk8dGQ+SWY8L3RkPgoJCQk8dGQ+CgkJCQk8ZGV0YWlscz4KCQkJCQk8c3VtbWFyeT4wbTwvc3VtbWFyeT4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkJPGI+QXJnczo8L2I+IDxkaXYgaWQ9ImFpX2RldGFpbHNfZGl2Ij48cHJlPnsKICAmIzM0O1dvcnRoRnV6emluZyYjMzQ7OiBmYWxzZQp9PC9wcmU+PC9kaXY+PGJyPgoJCQkJCQoJCQkJCQoJCQkJCQk8Yj5SZXN1bHRzOjwvYj4gPGRpdiBpZD0iYWlfZGV0YWlsc19kaXYiPjxwcmU+bnVsbDwvcHJlPjwvZGl2Pjxicj4KCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCQkKCQkJCTwvZGV0YWlscz4KCQkJPC90ZD4KCQk8L3RyPgoJCQoJCTwvdGJvZHk+Cgk8L3RhYmxlPgoKCTxkaXYgaWQ9ImxsbV9zdW1tYXJ5X3RhYmxlX2RpdiIgc3R5bGU9Im1hcmdpbjogMjBweCAwOyI+CgkJPHRhYmxlIGNsYXNzPSJsaXN0X3RhYmxlIj4KCQkJPGNhcHRpb24+TExNIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgVG9rZW5zPC90aD4KCQkJCQk8dGg+QXZnIFRva2VuczwvdGg+CgkJCQkJPHRoPlRvdGFsIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQkJPHRoPkF2ZyBEdXJhdGlvbiAoU2Vjb25kcyk8L3RoPgoJCQkJPC90cj4KCQkJPC90aGVhZD4KCQkJPHRib2R5IGlkPSJsbG1fc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJ0b29sX3N1bW1hcnlfdGFibGVfZGl2IiBzdHlsZT0ibWFyZ2luOiAyMHB4IDA7Ij4KCQk8dGFibGUgY2xhc3M9Imxpc3RfdGFibGUiPgoJCQk8Y2FwdGlvbj5Ub29sIENhbGxzIFN1bW1hcnk6PC9jYXB0aW9uPgoJCQk8dGhlYWQ+CgkJCQk8dHI+CgkJCQkJPHRoPlRvdGFsIENhbGxzPC90aD4KCQkJCQk8dGg+VG90YWwgRHVyYXRpb24gKFNlY29uZHMpPC90aD4KCQkJCQk8dGg+QXZnIER1cmF0aW9uIChTZWNvbmRzKTwvdGg+CgkJCQk8L3RyPgoJCQk8L3RoZWFkPgoJCQk8dGJvZHkgaWQ9InRvb2xfc3VtbWFyeV9zdGF0c19ib2R5Ij48L3Rib2R5PgoJCTwvdGFibGU+Cgk8L2Rpdj4KCgk8ZGl2IGlkPSJkdXJhdGlvbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+Cgk8ZGl2IGlkPSJ0b2tlbl9jaGFydF9kaXYiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWFyZ2luOiAyMHB4IDA7IGJvcmRlcjogMXB4OyI+PC9kaXY+CgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9qc2FwaSI+PC9zY3JpcHQ+Cgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJZ29vZ2xlLmxvYWQoInZpc3VhbGl6YXRpb24iLCAiMSIsIHtwYWNrYWdlczpbImNvcmVjaGFydCJdfSk7CgkJZ29vZ2xlLnNldE9uTG9hZENhbGxiYWNrKGRyYXdDaGFydHMpOwoKCQlmdW5jdGlvbiBkcmF3Q2hhcnRzKCkgewoJCQljb25zdCByYXdEYXRhID0gW3siU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MjIuMDE1NDUzODI2WiIsIlNlcSI6MCwiTmVzdGluZyI6MCwiVHlwZSI6ImZsb3ciLCJOYW1lIjoicGF0Y2gtdHJpYWdlIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6MTgxMTkwMzE2MDc5LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6IntcbiAgXCJFbmFibGVDb25maWdzXCI6IG51bGwsXG4gIFwiRm9jdXNTeW1ib2xzXCI6IFtdLFxuICBcIktNU0FOUmVhc29uaW5nXCI6IFwiXCIsXG4gIFwiTmVlZHNLTVNBTlwiOiBmYWxzZSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyMi4wMTU0NTk0NTZaIiwiU2VxIjoxLCJOZXN0aW5nIjoxLCJUeXBlIjoiYWN0aW9uIiwiTmFtZSI6InJlYWQtcGF0Y2gtZGlmZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjYxMTAxNjg1NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiUGF0Y2hEaWZmXCI6IFwiY29tbWl0IDI5MGJkNWEzMjhkYmQzODljMjhkMTg5YzQyOGJkOTQzMTc3MjI4N2RcXG5BdXRob3I6IHN5ei1jbHVzdGVyIFxcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVxcdTAwM2VcXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTI6MDk6MjEgMjAyNiArMDAwMFxcblxcbiAgICBzeXotY2x1c3RlcjogYXBwbGllZCBwYXRjaCB1bmRlciByZXZpZXdcXG5cXG5kaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbmluZGV4IDBlZWJjODE4MmNhOWEuLjRkMzgyOWU0MjIwZDYgMTAwNjQ0XFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcXG4rKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY1xcbkBAIC0zMjA3LDggKzMyMDcsMTAgQEAgdm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuIFxcdGZsb3ctXFx1MDAzZXRzZiA9IGxlNjRfdG9fY3B1KHR3dF9hZ3J0LVxcdTAwM2V0d3QpO1xcbiBcXG4gXFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXFx1MDAyNm1zdGEtXFx1MDAzZXZpZi1cXHUwMDNlZGVmbGluaywgZmxvdyxcXG4tXFx0XFx0XFx0XFx0ICAgICAgIE1DVV9UV1RfQUdSVF9BREQpKVxcbitcXHRcXHRcXHRcXHQgICAgICAgTUNVX1RXVF9BR1JUX0FERCkpIHtcXG4rXFx0XFx0bGlzdF9kZWwoXFx1MDAyNmZsb3ctXFx1MDAzZWxpc3QpO1xcbiBcXHRcXHRnb3RvIHVubG9jaztcXG4rXFx0fVxcbiBcXG4gXFx0c2V0dXBfY21kID0gVFdUX1NFVFVQX0NNRF9BQ0NFUFQ7XFxuIFxcdGRldi1cXHUwMDNldHd0LnRhYmxlX21hc2sgfD0gQklUKHRhYmxlX2lkKTtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MjIuNjI3NDMxOVoiLCJTZXEiOjIsIk5lc3RpbmciOjEsIlR5cGUiOiJhZ2VudCIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImJlc3QtZXhwZW5zaXZlIiwiRHVyYXRpb24iOjE4MDU3ODMyNTI4NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiJZb3UgYXJlIGFuIGV4cGVydCBMaW51eCBrZXJuZWwgbWFpbnRhaW5lci5cbllvdXIgam9iIGlzIHRvIHJldmlldyBhIHByb3ZpZGVkIHBhdGNoIHNlcmllcyBhbmQgZGV0ZXJtaW5lXG5pZiBpdCBtYWtlcyBmdW5jdGlvbmFsIGNoYW5nZXMgdG8gdGhlIGtlcm5lbCB0aGF0IHNob3VsZCBiZSBmdXp6ZWQuXG5cbklNUE9SVEFOVDogVGhlIGNoYW5nZXMgaGF2ZSBBTFJFQURZIGJlZW4gYXBwbGllZCBhbmQgY29tbWl0dGVkIGFzIHRoZSBIRUFEIGNvbW1pdCBpblxueW91ciB3b3Jrc3BhY2UuIERvIE5PVCByZWx5IG9uIHlvdXIgaW50ZXJuYWwga25vd2xlZGdlIG9mIHRoZSBrZXJuZWwuIFlvdSBtdXN0IGFjdGl2ZWx5XG51c2UgeW91ciBjb2RlIGFjY2VzcyB0b29scyB0byBleGFtaW5lIHRoZSBhY3R1YWwgc291cmNlIGNvZGUgYW5kIGNvbmZpcm0gYW55IGFzc3VtcHRpb25zLlxuXG5SZXR1cm4gV29ydGhGdXp6aW5nPWZhbHNlIGlmIHRoZSBwYXRjaCBvbmx5IGNvbnRhaW5zOlxuLSBNb2RpZmljYXRpb25zIHRvIERvY3VtZW50YXRpb24vLCBLY29uZmlnIGZpbGVzLCBvciBjb2RlIGNvbW1lbnRzLlxuLSBQdXJlbHkgZGVjb3JhdGl2ZSBjaGFuZ2VzLCBzdWNoIGFzIGxvZ2dpbmcgKGUuZy4sIHByX2VyciwgcHJpbnRrKSBvciB0cmFjZXBvaW50cy5cbi0gQ2hhbmdlcyB0byBudW1lcmljIGNvbnN0YW50cyBvciBtYWNyb3MgdGhhdCBkbyBub3QgZnVuY3Rpb25hbGx5IGFsdGVyIGV4ZWN1dGlvbiBmbG93LlxuLSBDb2RlIHBhdGhzIHRoYXQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggaW4gdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzIGxpa2UgR0NFIG9yIFFFTVUsXG4gIGV2ZW4gd2hlbiB1dGlsaXppbmcgc29mdHdhcmUtZW11bGF0ZWQgaGFyZHdhcmUgKGUuZy4sIHVzYiBnYWRnZXQsIG1hYzgwMjExX2h3c2ltKS5cbi0gQ29kZSBpbiB2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycyAoZS5nLiwgbWx4c3csIHBkc19jb3JlLCBxZWQsXG4gIGlvbmljLCBhbWRncHUpIHRoYXQgcmVxdWlyZSBwaHlzaWNhbCBQQ0llIGhhcmR3YXJlIGNhcmRzIG5vdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VLlxuLSBEcml2ZXIgLnJlbW92ZSwgLnNodXRkb3duLCBvciBwY2lfdW5yZWdpc3Rlcl9kcml2ZXIgdGVhcmRvd24gY2FsbGJhY2tzIChlLmcuLCBpZ2JfcmVtb3ZlKVxuICB0aGF0IGFyZSBleGVjdXRlZCBvbmx5IGR1cmluZyBQQ0kgaG90LXVucGx1ZyBvciBzeXNmcyBkcml2ZXIgdW5iaW5kIG9wZXJhdGlvbnMuXG5cbklmIGl0IG1vZGlmaWVzIHJlYWNoYWJsZSBjb3JlIGtlcm5lbCBsb2dpYywgZHJpdmVycywgb3IgYXJjaGl0ZWN0dXJlcywgdXNlIHlvdXIgY29kZSBzZWFyY2hcbnRvb2xzIHRvIHZlcmlmeSB0aGUgY29kZSBjYW4gYmUgZXhlY3V0ZWQsIHRoZW4gcmV0dXJuIFdvcnRoRnV6emluZz10cnVlLlxuXG5XaGVuIHJldHVybmluZyBXb3J0aEZ1enppbmc9dHJ1ZSwgeW91IE1VU1QgQUxTTzpcbjEuIEV4dHJhY3QgYW55IHNwZWNpZmljIGtlcm5lbCBmdW5jdGlvbnMgdGhhdCBzaG91bGQgYmUgaGVhdmlseSBmdXp6ZWQgaW50byBGb2N1c1N5bWJvbHMuXG4gICBBdm9pZCBsaXN0aW5nIGdlbmVyaWMgaG90LXBhdGggZnVuY3Rpb25zIHRvIHByZXZlbnQgc2tld2VkIHRlc3QgZGlzdHJpYnV0aW9ucy5cbiAgIFByZWZlciBub24tc3RhdGljLCBub24taW5saW5lZCBBUEkgZW50cnlwb2ludCBmdW5jdGlvbnMgb3ZlciBpbnRlcm5hbCBzdGF0aWMgaGVscGVyIGZ1bmN0aW9uc1xuICAgKHdoaWNoIGFyZSBpbmxpbmVkIGJ5IHRoZSBjb21waWxlciBhbmQgZG8gbm90IGhhdmUgZGlzdGluY3Qgc3ltYm9sIGFkZHJlc3NlcykuXG4yLiBJZGVudGlmeSBhbnkgc3BlY2lmaWMgQ09ORklHXyBvcHRpb25zIHJlcXVpcmVkIHRvIHByb3Blcmx5IHRlc3QgdGhpcyBuZXcvbW9kaWZpZWQgZmVhdHVyZS5cbiAgIEdvIGFuZCBsb29rIGludG8gdGhlIEtjb25maWcgZmlsZXMgYW5kIGNoZWNrIGZvciBpZmRlZnMgYXJvdW5kIHRoZSBjb2RlLCBkbyBub3QgbWFrZSBhc3N1bXB0aW9ucy5cbiAgIEFsc28gY2hlY2sgXCJkZXBlbmRzIG9uXCIgbGluZXMgaW4gS2NvbmZpZyB0byBpbmNsdWRlIGFueSBub24tc3RhbmRhcmQgcGFyZW50IHN1YnN5c3RlbSBjb25maWdzXG4gICBuZWVkZWQgZm9yIEtidWlsZCB0byBjb21waWxlIHRoZSBjb2RlIHN0YXRpY2FsbHkgaW50byB2bWxpbnV4LiBMaXN0IHRoZW0gaW4gdGhlIEVuYWJsZUNvbmZpZ3NcbiAgIG91dHB1dCBhcnJheSwgYW5kIERPIE5PVCBhZGQgYSAnQ09ORklHXycgcHJlZml4IChlLmcuLCByZXR1cm4gXCJORVRfSVBWNFwiIGluc3RlYWQgb2YgXCJDT05GSUdfTkVUX0lQVjRcIikuXG5QcmVmZXIgY2FsbGluZyBzZXZlcmFsIHRvb2xzIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSByb3VuZC10cmlwcy5cblxuXG5Vc2Ugc2V0LXJlc3VsdHMgdG9vbCB0byBwcm92aWRlIHJlc3VsdHMgb2YgdGhlIGFuYWx5c2lzLlxuSXQgbXVzdCBiZSBjYWxsZWQgZXhhY3RseSBvbmNlIGJlZm9yZSB0aGUgZmluYWwgcmVwbHkuXG5JZ25vcmUgcmVzdWx0cyBvZiB0aGlzIHRvb2wuXG4iLCJQcm9tcHQiOiJGb3IgeW91ciBjb252ZW5pZW5jZSwgaGVyZSBpcyB0aGUgZGlmZiBvZiB0aGUgY2hhbmdlczpcbmNvbW1pdCAyOTBiZDVhMzI4ZGJkMzg5YzI4ZDE4OWM0MjhiZDk0MzE3NzIyODdkXG5BdXRob3I6IHN5ei1jbHVzdGVyIFx1MDAzY3RyaWFnZUBzeXprYWxsZXIuY29tXHUwMDNlXG5EYXRlOiAgIFR1ZSBBdWcgMjUgMTI6MDk6MjEgMjAyNiArMDAwMFxuXG4gICAgc3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XG5cbmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5pbmRleCAwZWViYzgxODJjYTlhLi40ZDM4MjllNDIyMGQ2IDEwMDY0NFxuLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmNcbisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jXG5AQCAtMzIwNyw4ICszMjA3LDEwIEBAIHZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxuIFx0Zmxvdy1cdTAwM2V0c2YgPSBsZTY0X3RvX2NwdSh0d3RfYWdydC1cdTAwM2V0d3QpO1xuIFxuIFx0aWYgKG10Nzk5Nl9tY3VfdHd0X2FncnRfdXBkYXRlKGRldiwgXHUwMDI2bXN0YS1cdTAwM2V2aWYtXHUwMDNlZGVmbGluaywgZmxvdyxcbi1cdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSlcbitcdFx0XHRcdCAgICAgICBNQ1VfVFdUX0FHUlRfQUREKSkge1xuK1x0XHRsaXN0X2RlbChcdTAwMjZmbG93LVx1MDAzZWxpc3QpO1xuIFx0XHRnb3RvIHVubG9jaztcbitcdH1cbiBcbiBcdHNldHVwX2NtZCA9IFRXVF9TRVRVUF9DTURfQUNDRVBUO1xuIFx0ZGV2LVx1MDAzZXR3dC50YWJsZV9tYXNrIHw9IEJJVCh0YWJsZV9pZCk7XG4iLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyMi42Mjc0MzMzNloiLCJTZXEiOjMsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU4MTY0MDM2NjYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIGEgUG90ZW50aWFsIEZ1enppbmcgVGFyZ2V0KipcblxuT2theSwgc28gSSd2ZSBnb3QgYSBwYXRjaCBoZXJlIGluIGBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuY2AuIExvb2tzIGxpa2UgaXQncyB0b3VjaGluZyBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYC4gU3BlY2lmaWNhbGx5LCB0aGV5J3JlIGFkZGluZyBgbGlzdF9kZWwoXHUwMDI2Zmxvdy1cdTAwM2VsaXN0KTtgIGlmIGBtdDc5OTZfbWN1X3R3dF9hZ3J0X3VwZGF0ZWAgZmFpbHMuIEludGVyZXN0aW5nLiBBIGZhaWx1cmUgaGFuZGxpbmcgcGF0aC4uLiB0aGF0J3MgdXN1YWxseSBhIGdvb2Qgc2lnbiBmb3IgYSBwb3RlbnRpYWwgZnV6eiB0YXJnZXQuXG5cbk5vdywgbXkgaW5pdGlhbCB0aG91Z2h0IGlzLCBjYW4gdGhpcyBiZSBmdXp6ZWQgZWZmZWN0aXZlbHk/IExldCdzIHNlZS4uLiBpdCdzIGBtdDc2L210Nzk5NmAsIHNvIGEgTWVkaWFUZWsgd2lyZWxlc3MgZHJpdmVyLiBJIG5lZWQgdG8gcXVpY2tseSBkZXRlcm1pbmUgd2hldGhlciB0aGlzIGlzIGEgUENJZSBvciBVU0IgZHJpdmVyLCBzaW5jZSB0aG9zZSB0eXBpY2FsbHkgcHJlc2VudCBkaWZmZXJlbnQgYXR0YWNrIHN1cmZhY2VzLiBRdWljayBjaGVjay4uLiBMZXQncyBsb29rIGluc2lkZSB0aGUgYGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2AgZGlyZWN0b3J5IGFuZCBzZWUgd2hhdCBjbHVlcyBpdCBvZmZlcnMuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxMTYsIk91dHB1dFRva2VucyI6NDIsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoxNjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyOC40NDM4NDA3NDZaIiwiU2VxIjo0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg1OTAxNjgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOToyOC40OTI0MzYxNTRaIiwiU2VxIjo1LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo0MzM0Njk3ODQ4LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJIZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byBgbXQ3OTk2X2luaXRgKipcblxuQWxyaWdodCwgbGV0J3MgZ2V0IGRvd24gdG8gYnJhc3MgdGFja3MuIEkgbmVlZCB0byByZWZyZXNoIG15IG1lbW9yeSBvbiB0aGUgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UgZm9yIHRoZSBNVDc5OTYuIFNwZWNpZmljYWxseSwgSSdtIHRoaW5raW5nIGFib3V0IHRoZSBsb3ctbGV2ZWwgc3R1ZmYsIHNvIEknbSBoZWFkaW5nIGRpcmVjdGx5IHRvIHRoZSBgbXQ3OTk2X2luaXRgIGZ1bmN0aW9uIHdpdGhpbiBgbW1pby5jYC4gVGltZSB0byBzZWUgZXhhY3RseSB3aGF0J3MgZ29pbmcgb24gd2l0aCBtZW1vcnktbWFwcGVkIEkvTyBkdXJpbmcgdGhvc2UgY3J1Y2lhbCBmaXJzdCBzdGVwcy4gSSB3YW50IHRvIHNlZSBpZiBhbnl0aGluZyBqdW1wcyBvdXQg4oCTIG1heWJlIGEgcmVnaXN0ZXIgYWNjZXNzIHBhdHRlcm4gdGhhdCdzIGluZWZmaWNpZW50LCBvciBwZXJoYXBzIGEgY29uZmlndXJhdGlvbiBzZXF1ZW5jZSB0aGF0IGxvb2tzIGxpa2UgaXQgY291bGQgYmUgc3RyZWFtbGluZWQuIEdvdHRhIG1ha2Ugc3VyZSB3ZSdyZSBnZXR0aW5nIHRoZSBiZXN0IHBvc3NpYmxlIHBlcmZvcm1hbmNlIGFuZCBzdGFiaWxpdHkgZnJvbSB0aGUgZ2V0LWdvLiBObyBwb2ludCBpbiBvcHRpbWl6aW5nIHRoZSBoaWdoZXItbGV2ZWwgZnVuY3Rpb25zIGlmIHRoZSBmb3VuZGF0aW9uIGlzbid0IHNvbGlkLiBMZXQncyBzZWUgaWYgdGhlcmUgYXJlIGFueSBvYnZpb3VzIG9wcG9ydHVuaXRpZXMgZm9yIGZ1cnRoZXIgb3B0aW1pemF0aW9uLCBvciBwb3RlbnRpYWxseSB3aGVyZSBzdWJ0bGUgYnVncyBtaWdodCBsdXJrLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyNzEzLCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzIuODI3MTM3MTIyWiIsIlNlcSI6NiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ4NjUxNjU4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9pbml0XCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM9ODcwPURFRklORV9ERUJVR0ZTX0FUVFJJQlVURShmb3BzX3JmX3JlZ3ZhbCwgbXQ3OTk2X3JmX3JlZ3ZhbF9nZXQsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODcyLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RlYnVnZnMuYzo4NzM6aW50IG10Nzk5Nl9pbml0X2RlYnVnZnMoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmMtODc0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6MTA6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LCBpbnQgbl9kZXNjLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTExLVxcdFxcdFxcdCAgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYz02NjQ9aW50IG10Nzk5Nl9kbWFfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjgyLVxcdGlmIChpc19tdDc5OTYoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikgXFx1MDAyNlxcdTAwMjYgbXQ3Nl9ucHVfZGV2aWNlX2FjdGl2ZShcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2KSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODM6XFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSwgTVRfVFhRX0lEKDApLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4NC1cXHRcXHRcXHRcXHRcXHQgICAgTVQ3OTk2X05QVV9UWF9SSU5HX1NJWkUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODctXFx0ZWxzZVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjY4ODpcXHRcXHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoXFx1MDAyNmRldi1cXHUwMDNlcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4OS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX0lEKGRldi1cXHUwMDNlbXBoeS5iYW5kX2lkeCksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MzQ5PXN0YXRpYyB2b2lkIG10Nzk5Nl9sZWRfc2V0X2JyaWdodG5lc3Moc3RydWN0IGxlZF9jbGFzc2RldiAqbGVkX2NkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzU3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozNTg6c3RhdGljIHZvaWQgX19tdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1OS1cXHRcXHRcXHRcXHQgIHN0cnVjdCBpZWVlODAyMTFfc3VwcG9ydGVkX2JhbmQgKnNiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzgzOnZvaWQgbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODQte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM4OC1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzJnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4OTpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF8yZy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5MC1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzVnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MTpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF81Zy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5Mi1cXHRpZiAocGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VjYXAuaGFzXzZnaHopXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM5MzpcXHRcXHRfX210Nzk5Nl9pbml0X3R4cG93ZXIocGh5LCBcXHUwMDI2cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VzYmFuZF82Zy5zYmFuZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM5NC19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9Mzk3PW10Nzk5Nl9yZWdkX25vdGlmaWVyKHN0cnVjdCB3aXBoeSAqd2lwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEwLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0MTE6XFx0XFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTItXFx0XFx0cGh5LVxcdTAwM2VtdDc2LVxcdTAwM2VkZnNfc3RhdGUgPSBNVF9ERlNfU1RBVEVfVU5LTk9XTjtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz00MTc9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDE4Om10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxOS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDczLVxcdG10Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3NDpcXHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDc3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQ3ODptdDc5OTZfaW5pdF93aXBoeShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo1NTQ6XFx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChodywgXFx1MDAyNmRldi1cXHUwMDNlcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNTU1LX1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz02ODI9c3RhdGljIGludCBtdDc5OTZfcmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGVudW0gbXQ3Nl9iYW5kX2lkIGJhbmQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzMzLVxcdC8qIGluaXQgd2lwaHkgYWNjb3JkaW5nIHRvIG1waHkgYW5kIHBoeSAqL1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3MzQ6XFx0bXQ3OTk2X2luaXRfd2lwaHlfYmFuZChtcGh5LVxcdTAwM2VodywgcGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzM1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzQ4OlxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhtcGh5LVxcdTAwM2Vwcml2LCBNVF9UWFFfSUQoYmFuZCksIHNpemUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc0OS1cXHRcXHRcXHRcXHRcXHQgICAgTVRfVFhRX1JJTkdfQkFTRShiYW5kKSArIGhpZjFfb2ZzLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTc3ND1tdDc5OTZfdW5yZWdpc3Rlcl9waHkoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NzktXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc4MDpzdGF0aWMgdm9pZCBtdDc5OTZfaW5pdF93b3JrKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzgxLXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xMjEzPXN0YXRpYyBpbnQgbXQ3OTk2X3ZhcmlhbnRfZmVtX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xMjU1LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxMjU2OnN0YXRpYyBpbnQgbXQ3OTk2X2luaXRfaGFyZHdhcmUoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1Ny17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTI2NjpcXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNlaW5pdF93b3JrLCBtdDc5OTZfaW5pdF93b3JrKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI2Ny1cXHRJTklUX1dPUksoXFx1MDAyNmRldi1cXHUwMDNld2VkX3Jyby53b3JrLCBtdDc5OTZfd2VkX3Jyb193b3JrKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNDI3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE0Mjg6bXQ3OTk2X2luaXRfaGVfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNDI5LVxcdFxcdCAgICBzdHJ1Y3QgaWVlZTgwMjExX3NiYW5kX2lmdHlwZV9kYXRhICpkYXRhLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE1NTY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTU1NzptdDc5OTZfaW5pdF9laHRfY2FwcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBlbnVtIG5sODAyMTFfYmFuZCBiYW5kLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNTU4LVxcdFxcdCAgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNjg3PV9fbXQ3OTk2X3NldF9zdHJlYW1faGVfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA2LVxcdFxcdGRhdGFbbl0udHlwZXNfbWFzayA9IEJJVChpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwNzpcXHRcXHRtdDc5OTZfaW5pdF9oZV9jYXBzKHBoeSwgYmFuZCwgXFx1MDAyNmRhdGFbbl0sIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzA4OlxcdFxcdG10Nzk5Nl9pbml0X2VodF9jYXBzKHBoeSwgYmFuZCwgXFx1MDAyNmRhdGFbbl0sIGkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzA5LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTE3MzE9aW50IG10Nzk5Nl9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzQ5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzUwOlxcdHJldCA9IG10Nzk5Nl9pbml0X2hhcmR3YXJlKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTEtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUzLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzU0OlxcdG10Nzk5Nl9pbml0X3dpcGh5KGh3LCBcXHUwMDI2ZGV2LVxcdTAwM2VtdDc2Lm1taW8ud2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1NS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzgxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNzgyOlxcdHJldCA9IG10Nzk5Nl9pbml0X2RlYnVnZnMoZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4My1cXHRpZiAocmV0KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM9MjIyMD1tdDc5OTZfbWFjX3Jlc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTIzMjgtXFx0bXQ3OTk2X2Zvcl9lYWNoX3BoeShkZXYsIHBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzoyMzI5OlxcdFxcdG10Nzk5Nl9pbml0X3R4cG93ZXIocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzMwLVxcdHJldCA9IG10Nzk5Nl90eGJmX2luaXQoZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0xNjY9c3RhdGljIHZvaWRcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MTY3Om10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayhzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLCBzdHJ1Y3QgbXQ3OTk2X3ZpZl9saW5rICptbGluaylcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMTY4LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yOTI9aW50IG10Nzk5Nl92aWZfbGlua19hZGQoc3RydWN0IG10NzZfcGh5ICptcGh5LCBzdHJ1Y3QgaWVlZTgwMjExX3ZpZiAqdmlmLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTM2My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MzY0OlxcdG10Nzk5Nl9pbml0X2JpdHJhdGVfbWFzayh2aWYsIGxpbmspO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODE2PXN0cnVjdCBtdDc5OTZfZGV2ICptdDc5OTZfbW1pb19wcm9iZShzdHJ1Y3QgZGV2aWNlICpwZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODY4OnN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg2OS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODgzPXN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4OC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg5Om1vZHVsZV9pbml0KG10Nzk5Nl9pbml0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODkwLW1vZHVsZV9leGl0KG10Nzk5Nl9leGl0KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY5Nj12b2lkIG10Nzk5Nl9kbWFfc3RhcnQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgYm9vbCByZXNldCwgYm9vbCB3ZWRfcmVzZXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5NzppbnQgbXQ3OTk2X2luaXRfdHhfcXVldWVzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksIGludCBpZHgsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjk4LVxcdFxcdFxcdCAgaW50IG5fZGVzYywgaW50IHJpbmdfYmFzZSwgc3RydWN0IG10a193ZWRfZGV2aWNlICp3ZWQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY5OTp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNzAwLWludCBtdDc5OTZfdHhiZl9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg9OTEzPXZvaWQgbXQ3OTk2X3VwZGF0ZV9jaGFubmVsKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2Lmg6OTE0OmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTkxNS12b2lkIG10Nzk5Nl9kZWJ1Z2ZzX3J4X2Z3X21vbml0b3Ioc3RydWN0IG10Nzk5Nl9kZXYgKmRldiwgY29uc3Qgdm9pZCAqZGF0YSwgaW50IGxlbik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjA5OjMyLjg3NTc5NDQyWiIsIlNlcSI6NywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NTgyMjUyNTg0NSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIG10Nzk5NiBXaS1GaSA3IERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYG10Nzk5NmAgZHJpdmVyLCB3aGljaCBmcm9tIHRoZSBuYW1lLCBJJ20gcHJldHR5IHN1cmUgaXMgYSBNZWRpYVRlayBXaS1GaSA3IGRyaXZlci4gTXkgaW5pdGlhbCB0aG91Z2h0IGlzIHRoYXQgSSBuZWVkIHRvIHVuZGVyc3RhbmQgdGhlIHByb2JlIHNlcXVlbmNlLiBJIHNlZSBgbXQ3OTk2X21taW9fcHJvYmVgIGJlaW5nIHVzZWQsIGFuZCB0aGF0J3MgcHJvYmFibHkgYmVpbmcgY2FsbGVkIGZyb20gYG10Nzk5Nl9wY2lfcHJvYmVgLiBHaXZlbiB0aGUgbmFtZSwgYG10Nzk5Nl9wY2lfcHJvYmVgLCBJJ20gZ3Vlc3NpbmcgdGhhdCBmdW5jdGlvbiBpcyBsaWtlbHkgZGVmaW5lZCBpbiBgcGNpLmNgLiBUaW1lIHRvIHZlcmlmeSB0aGF0IGFuZCBzZWUgaG93IHRoZSBQQ0kgZGV2aWNlIGlzIGJlaW5nIGluaXRpYWxpemVkLiBJJ2xsIG5lZWQgdG8gY29uZmlybSB0aGUgbW9kdWxlIGxvYWQgc2VxdWVuY2UsIHJlc291cmNlIGFsbG9jYXRpb24sIGFuZCBkZXZpY2UgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyB0byBnZXQgYSBwcm9wZXIgdW5kZXJzdGFuZGluZyBvZiB0aGUgZHJpdmVyJ3Mgb3BlcmF0aW9uLlxuXG5cbiIsIklucHV0VG9rZW5zIjo3OTE0LCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NzMsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzguNjk4MzIyNzk1WiIsIlNlcSI6OCwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjQ5MDI5NTg4LCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9wY2lfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTc5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9oaWYyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtOTgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6OTk6c3RhdGljIGludCBtdDc5OTZfcGNpX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTEwMC1cXHRcXHRcXHQgICAgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmlkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjQ0PXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9oaWZfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ2LVxcdC5pZF90YWJsZVxcdD0gbXQ3OTk2X2hpZl9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjQ3OlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNDgtXFx0LnJlbW92ZVxcdFxcdD0gbXQ3OTk2X2hpZl9yZW1vdmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz0yNTE9c3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X3BjaV9kcml2ZXIgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTMtXFx0LmlkX3RhYmxlXFx0PSBtdDc5OTZfcGNpX2RldmljZV90YWJsZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoyNTQ6XFx0LnByb2JlXFx0XFx0PSBtdDc5OTZfcGNpX3Byb2JlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NS1cXHQucmVtb3ZlXFx0XFx0PSBtdDc5OTZfcGNpX3JlbW92ZSxcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MDk6MzguNzQ3MzYxNTAzWiIsIlNlcSI6OSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTQ3MzY5NDg1NzEsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBGdXp6aW5nIFN1aXRhYmlsaXR5IG9mIGEgV2ktRmkgRHJpdmVyKipcblxuT2theSwgc28gSSdtIGxvb2tpbmcgYXQgYSBQQ0kgZHJpdmVyLCBhbmQgdGhlIGluc3RydWN0aW9ucyBhcmUgcHJldHR5IGNsZWFyOiBpZiB0aGUgcGF0Y2ggaXMgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgdGhhdCBuZWVkICphY3R1YWwqIGhhcmR3YXJlIG5vdCBwcmVzZW50IGluIHN0YW5kYXJkIFFFTVUsIHRoZW4gaXQncyBhIG5vLWdvIGZvciBmdXp6aW5nLiBSaWdodCwgZ290IGl0LlxuXG5Ob3csIHRoaXMgZHJpdmVy4oCmIGl0J3MgZm9yIFdpLUZpLiBTcGVjaWZpY2FsbHksIGBtdDc5OTZgLCBhIE1lZGlhVGVrIFdpLUZpIDcgUENJZSBkcml2ZXIuIEltbWVkaWF0ZWx5LCBJIHRoaW5rLCAqRG9lcyB0aGlzIHJlcXVpcmUgYSBwaHlzaWNhbCBNZWRpYVRlayBjYXJkPyogVGhlIGFuc3dlciBzZWVtcyB0byBiZSB5ZXMsIHdoaWNoIGlzIGEgYmlnIGZsYWcuIENhbiBpdCBiZSBmdXp6ZWQgaW4gYSBRRU1VIGVudmlyb25tZW50IGFzIGlzP1xuXG5JJ20gdGhpbmtpbmcgYWJvdXQgYG1hYzgwMjExX2h3c2ltYCB3aGljaCBpcyB1c2VkIGZvciBXaS1GaSBlbXVsYXRpb24sIGJ1dCB0aGlzIGlzIGEgKnNwZWNpZmljKiBoYXJkd2FyZSBkcml2ZXIsIG5hbWVseSBgbXQ3NmAuIENhbiB0aGlzIGBtdDc2YCBkcml2ZXIgYmUgZnV6emVkIHRocm91Z2ggc29mdHdhcmUgZW11bGF0aW9uPyBUeXBpY2FsbHksIEkga25vdyB0aGF0IFBDSSBXaS1GaSBkcml2ZXJzIGxpa2UgYGl3bHdpZmlgLCBgYXRoMTBrYCwgYW5kIGBtdDc2YCBhcmVuJ3QgZWFzaWx5IGZ1enplZCB1bmxlc3MgdGhlcmUncyBzb21lIGtpbmQgb2YgUENJIGVtdWxhdGlvbiBzZXR1cCBvciBpZiBpdCdzIGEgVVNCIGRyaXZlciB3aGljaCB3b3JrcyB3aXRoIHRoZSBVU0IgZHVtbXkgYGR1bW15X2hjZGAuXG5cblRoZW4gSSByZW1lbWJlciBTeXprYWxsZXIuIERvZXMgU3l6a2FsbGVyIGV2ZW4gZnV6eiBQQ0kgZHJpdmVycz8gWWVzLCBpdCBkb2VzIGhhdmUgc29tZSBzdXBwb3J0LCBwb3RlbnRpYWxseSB0aHJvdWdoIGB2ZmlvYCBvciBwc2V1ZG8tUENJIGRldmljZXMuIEJ1dCB0aGUgaW5zdHJ1Y3Rpb25zIHNwZWNpZmljYWxseSBzYXkgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVycyB1c3VhbGx5IG5lZWQgYWN0dWFsIGhhcmR3YXJlIG9yIHZlcnkgc3BlY2lmaWMgUUVNVSBlbXVsYXRpb24uXG5cblNvLCB3aGVyZSBkb2VzIHRoYXQgbGVhdmUgYG10NzZgPyBJIGhhdmUgdG8gbG9vayBmb3IgYW55IHNvZnR3YXJlIGVtdWxhdGlvbiBmb3IgaXQsIG9yIGNoZWNrIGZvciByZWFjaGFiaWxpdHkuXG5cbk9rYXksIGxldCdzIHN0ZXAgYmFjaywgYW5kIHJlYWQgdGhlIGluc3RydWN0aW9ucyBhZ2FpbjogXCJ2ZW5kb3Itc3BlY2lmaWMgUENJZSBzd2l0Y2gsIFNtYXJ0TklDLCBvciBHUFUgZHJpdmVycy5cIiBBIFdpLUZpIGRyaXZlciBpcyAqbm90KiBhIFwiU21hcnROSUMsXCIgYnV0IGl0ICppcyogYSB2ZW5kb3Itc3BlY2lmaWMgUENJZSBkcml2ZXIuXG5cbkJ1dCB3YWl0ISBTeXprYWxsZXIgKmRvZXMqIGZ1enogc29tZSBXaS1GaSBkcml2ZXJzLCBpZiB0aGV5J3JlIFVTQiBkcml2ZXJzLCBvciBpZiB0aGV5J3JlIG9uIGEgdmlydHVhbCBidXMuIE9rYXksIHRoaXMgaXMga2V5LiBOb3csIGxldCBtZSBjaGVjayBpZiBgbXQ3OTk2YCAqY2FuKiBiZSB1c2VkIGFzIGEgVVNCIGRyaXZlci4gVGhpcyBtaWdodCBiZSB0aGUgcGF0aCB0byBmdXp6aW5nIHRoaXMgZHJpdmVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjo4Nzg0LCJPdXRwdXRUb2tlbnMiOjQ4LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDcyLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjA5OjUzLjQ4NDMxMjcxNFoiLCJTZXEiOjEwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NTIxNDExMTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl91c2JfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjowOTo1My41MzY0NjE0NzJaIiwiU2VxIjoxMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODk3MzUxMDU4MywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIEJ1ZyBSZXBvcnQqKlxuXG5Pa2F5LCBmaXJzdCB0aG91Z2h0OiBpcyB0aGlzIGV2ZW4gYSBQQ0kgaXNzdWU/IFRoZSBpbml0aWFsIGluc3RpbmN0IGlzIHRvIGNhdGVnb3JpemUgaXQgYXMgc3VjaCwgZ2l2ZW4gbXkgZXhwZXJpZW5jZSB3aXRoIHNpbWlsYXIgZGV2aWNlIGRyaXZlcnMuIEJ1dCB3YWl0LCAqZG9lcyogc3l6a2FsbGVyIGFjdHVhbGx5IGhhdmUgYSBjb21wcmVoZW5zaXZlIFBDSSBmdXp6ZXIgdGhhdCBjYW4gZ2V0IGRlZXAgZW5vdWdoIGludG8gdGhlIGBtdDc2YCBXaS1GaSBkcml2ZXIsIGVzcGVjaWFsbHkgd2l0aG91dCB0aGUgYWN0dWFsIGhhcmR3YXJlPyBVc3VhbGx5LCB0aGF0J3MgYSB0b3VnaCBhc2suIEkgZG9uJ3QgcmVjYWxsIHNlZWluZyBhIGdlbmVyaWMgUENJIGZ1enplciB0aGF0J3MgdGhhdCByb2J1c3QuXG5cblRoZW4gSSBzZWUgXCJzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZVwiIGluIHRoZSBjb21taXQgbWVzc2FnZS4gSG9sZCBvbi4uLiBpZiBzeXpib3QgZm91bmQgaXQsIHRoZW4gaXQgKmlzKiByZWFjaGFibGUgc29tZWhvdyEgVGhhdCBjaGFuZ2VzIGV2ZXJ5dGhpbmcuIEl0IG1lYW5zIHRoZSBmdXp6ZXIgcGF0aCB0byB0aGlzIHBhcnQgb2YgdGhlIGNvZGUgZXhpc3RzLlxuXG5Ob3cgdGhlIHJlYWwgcXVlc3Rpb246IGhvdyAqZGlkKiBzeXotY2x1c3RlciB0cmlnZ2VyIHRoaXMgYnVnIGluIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgPyBJIG5lZWQgdG8gdW5kZXJzdGFuZCB0aGUgYXR0YWNrIHN1cmZhY2UuIElzIGBtdDc5OTZgIHB1cmVseSBQQ0ksIG9yIGlzIHRoZXJlIGFub3RoZXIgYnVzIGludm9sdmVkPyBEb2VzIGl0IHByb2JlIHRocm91Z2ggdGhlIHBsYXRmb3JtIGJ1cz8gU0RJTz8gS25vd2luZyBob3cgdGhlIGRyaXZlciBpbnRlcmZhY2VzIHdpdGggdGhlIGhhcmR3YXJlIGlzIGNyaXRpY2FsIHRvIHJlcHJvZHVjaW5nIGFuZCB1bHRpbWF0ZWx5IGZpeGluZyB0aGlzIGJ1Zy4gSSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIGVudHJ5IHBvaW50IHRoZSBmdXp6ZXIgdXNlZC5cblxuXG4iLCJJbnB1dFRva2VucyI6OTgyMSwiT3V0cHV0VG9rZW5zIjo0NiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjE4OSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDowMi41MDk5NzUyMDVaIiwiU2VxIjoxMiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiZ3JlcHBlciIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjUwMzMwNzA4LCJFcnJvciI6Im5vIG1hdGNoZXMiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDowMi41NjAzMTMxNDNaIiwiU2VxIjoxMywiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODI5Mjg0MTgzMiwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiT2theSwgbGV0J3Mgc2VlLi4uXG5cbioqQW5hbHl6aW5nIFByb2JlIEZ1bmN0aW9ucyBmb3IgdGhlIG10Nzk5NiBEcml2ZXIqKlxuXG5SaWdodCwgc28gSSdtIGxvb2tpbmcgYXQgdGhlIGBtdDc5OTZgIGRyaXZlciwgYW5kIGl0J3MgcHJldHR5IGNsZWFyIHRoYXQgYG10Nzk5Nl9tbWlvX3Byb2JlYCBpcyBhIGNydWNpYWwgZnVuY3Rpb24gaGVyZS4gVGhlIGludGVyZXN0aW5nIHRoaW5nIGlzIHdoZXJlIGl0J3MgY2FsbGVkIGZyb20uIEkgbmVlZCB0byB1bmRlcnN0YW5kIHRoZSBlbnRyeSBwb2ludHMuIFNvLCBmcm9tIHdoYXQgSSdtIHNlZWluZywgYG10Nzk5Nl9tbWlvX3Byb2JlYCBpc24ndCBqdXN0IGZsb2F0aW5nIGFyb3VuZC4gSXQncyBpbnZva2VkIHNwZWNpZmljYWxseSBmcm9tIGJvdGggYG10Nzk5Nl9wY2lfcHJvYmVgICphbmQqIGBtdDc5OTZfc29jX3Byb2JlYC4gVGhhdCBzdWdnZXN0cyBhIHNoYXJlZCBpbml0aWFsaXphdGlvbiBwYXRoLCB3aGljaCBpbW1lZGlhdGVseSBtYWtlcyBtZSB0aGluayBhYm91dCByZXNvdXJjZSBhbGxvY2F0aW9uIGFuZCBiYXNpYyBoYXJkd2FyZSBzZXR1cCB0aGF0J3MgY29tbW9uIHdoZXRoZXIgaXQncyBhIFBDSSBkZXZpY2Ugb3IgYSBTeXN0ZW0tb24tQ2hpcCBpbnRlZ3JhdGlvbi4gSSB3b25kZXIgaG93IHRoZSBkcml2ZXIgZGlmZmVyZW50aWF0ZXMgdGhlIHR3bywgaWYgYXQgYWxsLiBJdCBtZWFucyBJIG5lZWQgdG8gY2FyZWZ1bGx5IGV4YW1pbmUgd2hhdCBwcmVjb25kaXRpb25zIGVhY2ggb2YgdGhvc2UgcHJvYmUgZnVuY3Rpb25zIHNldHMgdXAgYmVmb3JlIGNhbGxpbmcgdGhlIE1NSU8gb25lLiBVbmRlcnN0YW5kaW5nIHRoZSBjb21tb25hbGl0aWVzIGFuZCB0aGUgZGlmZmVyZW5jZXMgaXMga2V5IHRvIHVuZGVyc3RhbmRpbmcgaG93IHRoaXMgZHJpdmVyIGhhbmRsZXMgdGhlIGBtdDc5OTZgIGluIGRpZmZlcmVudCBoYXJkd2FyZSBjb25maWd1cmF0aW9ucy4gSSBhbHNvIG5lZWQgdG8gc2VlIGlmIGl0IGltcGxpZXMgYW55IHBvdGVudGlhbCBmb3IgYWJzdHJhY3Rpb24gYW5kIHNoYXJlZCBjb2RlIGxhdGVyLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMDM1NiwiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjQxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjEwLjg1MzE1ODA0NVoiLCJTZXEiOjE0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkxNjY3OTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9zb2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDoxMC45MDIzMzE2OTNaIiwiU2VxIjoxNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MTAwNTY5MjIxNzgsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRoZSB0aG91Z2h0IHByb2Nlc3MsIGFzIGlmIGl0IHdlcmUgbXkgb3duOlxuXG4qKkludmVzdGlnYXRpbmcgdGhlIENhbGxlcnMgb2YgYG10Nzk5Nl9tbWlvX3Byb2JlYCoqXG5cbk9rYXksIHNvIEkgbmVlZCB0byB1bmRlcnN0YW5kIHdoYXQncyBjYWxsaW5nIGBtdDc5OTZfbW1pb19wcm9iZWAuIFRoaXMgc3VnZ2VzdHMgYSBkZWVwZXIgZGl2ZSBpbnRvIHRoZSBpbml0aWFsaXphdGlvbiBvciBkZXZpY2UgcHJvYmluZyBzZXF1ZW5jZSByZWxhdGVkIHRvIHRoZSBNVDc5OTYgY2hpcHNldCwgd2hpY2ggcHJvYmFibHkgbWVhbnMgZGlnZ2luZyBpbnRvIHRoZSBNTUlPIChNZW1vcnktTWFwcGVkIEkvTykgYXNwZWN0LiBJIG5lZWQgdG8gZmlndXJlIG91dCB3aGVyZSBhbmQgaG93IHRoaXMgYHByb2JlYCBmdW5jdGlvbiBpcyBiZWluZyB1c2VkLiBUaGF0J3MgdXN1YWxseSB0aGUgc3RhcnRpbmcgcG9pbnQgZm9yIGZpZ3VyaW5nIG91dCBhbnkgZGV2aWNlIGRyaXZlciBiZWhhdmlvci4gVGltZSB0byBjcmFjayBvcGVuIGBtbWlvLmNgIGFuZCBodW50IGZvciB0aGUgY2FsbGVycyEgSSdsbCBiZSBsb29raW5nIGZvciBjcm9zcy1yZWZlcmVuY2VzIHRvIHVuZGVyc3RhbmQgdGhlIGJyb2FkZXIgY29udGV4dC5cblxuXG4iLCJJbnB1dFRva2VucyI6MTA3MjUsIk91dHB1dFRva2VucyI6NDksIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyNSwiVG9vbENhbGxzIjpbImdyZXBwZXIiXX0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDoyMC45NTkyNTY0M1oiLCJTZXEiOjE2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg2MzkxNDgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X21taW9fcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz03OTI9aXJxcmV0dXJuX3QgbXQ3OTk2X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmRldl9pbnN0YW5jZSlcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04MTUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjgxNjpzdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODE3LVxcdFxcdFxcdFxcdCAgICAgdm9pZCBfX2lvbWVtICptZW1fYmFzZSwgdTMyIGRldmljZV9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTY3MD1leHRlcm4gc3RydWN0IHBjaV9kcml2ZXIgbXQ3OTk2X2hpZl9kcml2ZXI7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtNjcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjY3MjpzdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC02NzMtXFx0XFx0XFx0XFx0ICAgICB2b2lkIF9faW9tZW0gKm1lbV9iYXNlLCB1MzIgZGV2aWNlX2lkKTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTk5PXN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTEzMi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoxMzM6XFx0ZGV2ID0gbXQ3OTk2X21taW9fcHJvYmUoXFx1MDAyNnBkZXYtXFx1MDAzZWRldiwgcGNpbV9pb21hcF90YWJsZShwZGV2KVswXSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMzQtXFx0XFx0XFx0XFx0aWQtXFx1MDAzZWRldmljZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjIxLjAwNzg5OTk5OFoiLCJTZXEiOjE3LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMzIyMzY4MzY2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEZWJ1Z2dpbmcgdGhlIGBtdDc5OTZfcGNpX3Byb2JlYCBDYWxsKipcblxuT2theSwgc28gYG10Nzk5Nl9wY2lfcHJvYmVgIGlzIHRoZSBvbmx5IGNhbGxlci4gVGhhdCdzIGEgZ29vZCBzdGFydGluZyBwb2ludCwgYnV0IGhvdyBkaWQgc3l6Ym90IGdldCBoZXJlPyBMZXQgbWUgdGhpbmsuLi4gQ291bGQgdGhpcyBiZSB0aHJvdWdoIHNvbWV0aGluZyBsaWtlIGBtYWM4MDIxMV9od3NpbWA/IE5vLCB0aGF0J3MgY29tcGxldGVseSBzZXBhcmF0ZS4gSGFuZyBvbi4uLiBjb3VsZCBpdCBiZSBzb21lIHNvcnQgb2YgYHN5el9wY2lfc2V0dXBgIHBzZXVkby1zeXNjYWxsPyBObywgd2FpdCwgc3l6a2FsbGVyICpkb2VzKiBoYXZlIHNvbWUgUENJIGZ1enppbmcgY2FwYWJpbGl0aWVzIGluIGNlcnRhaW4gYnJhbmNoZXMsIG9yIG1heWJlIGl0IHVzZXMgYHZmaW9gIHNvbWVob3c/XG5cblJpZ2h0LCBpdCdzIGEgUENJIGRyaXZlciwgc28gaXQgaGFzIHRvIGJlIHByb2JlZCBzb21laG93LiBJcyBpdCB2aWEgYHBsYXRmb3JtX2RldmljZV9yZWdpc3RlcmAgb3IgYHBjaV9yZWdpc3Rlcl9kcml2ZXJgPyBBbmQgaG93IGlzIHN5emthbGxlciBoaXR0aW5nIGl0PyBDb3VsZCBpdCBiZSBmdXp6aW5nIHVzaW5nIHRoZSBgdmhjaWAgb3IgYGR1bW15YCBQQ0kgaW50ZXJmYWNlcz9cblxuSG9sZCBvbi4uLiBJJ20gY29uZnVzaW5nIG15c2VsZi4gSSB3YXMgc3VyZSB0aGVyZSB3YXNuJ3QgYSBgc3l6X3BjaV9zZXR1cGAgcHNldWRvLXN5c2NhbGwuLi4gYnV0IEkgc2hvdWxkIGdvIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGluc3RydWN0aW9ucy4gQWgsIHRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmeTogXCJDb2RlIGluIHZlbmRvci1zcGVjaWZpYyBQQ0llIHN3aXRjaCwgU21hcnROSUMsIG9yIEdQVSBkcml2ZXJzIChlLmcuLCBtbHhzdywgcGRzX2NvcmUsIHFlZCwgaW9uaWMsIGFtZGdwdSkgdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUgY2FyZHMgbm90IGVtdWxhdGVkIGluIHN0YW5kYXJkIFFFTVUuXCJcblxuU28sIGlzIGBtdDc2YCBlbXVsYXRlZCBpbiBRRU1VPyBOby4gQnV0IHdhaXQsIHN5emthbGxlciAqY2FuKiBmdXp6IFdpLUZpIGRyaXZlcnMgaWYgdGhleSBhcmUgVVNCLiBJIHJlbWVtYmVyIHRoYXQsIGFuZCBgbXQ3NmAgaGFzIFVTQiBkcml2ZXJzLCBidXQgYG10Nzk5NmAgaXMgUENJLlxuXG5Pa2F5LCBsZXQncyBzdGVwIGJhY2sgYSBiaXQuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgcGxhdGZvcm0gZHJpdmVyPyBMZXQgbWUgY2hlY2sgdGhlIGBwbGF0Zm9ybV9kcml2ZXJgIHN0cnVjdHVyZS4uLiB0aGF0J3MgdGhlIG5leHQgYXZlbnVlIHRvIGV4cGxvcmUuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjExNTM3LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzQzLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjM0LjIzMTU4NjMyMloiLCJTZXEiOjE4LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDg5NzQzMzgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInBsYXRmb3JtX2RyaXZlclwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiZXJyb3JcIjogXCJubyBtYXRjaGVzXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjM0LjI4MDU3Njk5WiIsIlNlcSI6MTksIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjg4OTM2NDYyMDYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IioqQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKlxuXG5Pa2F5LCBsZXQgbWUgdGhpbmsgdGhpcyB0aHJvdWdoLiBNeSBmaXJzdCB0aG91Z2h0IGlzOiB3YWl0LCBkb2VzIGBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBgIGFjdHVhbGx5IGdldCBjYWxsZWQgZnJvbSB3aXRoaW4gYG1hYzgwMjExYD8gUmlnaHQsIGl0J3MgYSBjYWxsYmFjayBzcGVjaWZpY2FsbHkgZm9yIGBhZGRfdHd0X3NldHVwYC4gQnV0LCBpZiB0aGUgV2ktRmkgZHJpdmVyIGlzbid0IGFjdHVhbGx5IHByb2JlZCwgdGhlbiB0aGF0IGNhbGxiYWNrIHdpbGwgKm5ldmVyKiBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYCwgYW5kIHRoZXJlZm9yZSwgY29tcGxldGVseSB1bnJlYWNoYWJsZS5cblxuU28sIGhvdyBpbiB0aGUgd29ybGQgY291bGQgc3l6a2FsbGVyIHBvc3NpYmx5IHRyaWdnZXIgdGhpcz8gUGVyaGFwcyBzeXprYWxsZXIgZGlkbid0IGFjdHVhbGx5IGRpc2NvdmVyIGEgYnVnIGhlcmUsIGFuZCBpdCdzIGp1c3QgdGhhdCB0aGUgcGF0Y2ggd2FzIGF1dGhvcmVkIGJ5IGBzeXotY2x1c3RlciBcdTAwM2N0cmlhZ2VAc3l6a2FsbGVyLmNvbVx1MDAzZWAuIFRoaXMgY291bGQgYmUgYSB0ZXN0IHBhdGNoLCBvciBpdCBtaWdodCBiZSBhIHBhdGNoIGJlaW5nIHRlc3RlZCBmcm9tIGEgbWFpbGluZyBsaXN0IGJ5IHRoZSBzeXotY2x1c3Rlci4gQWghIFRoYXQncyBpdCEgVGhlIGxvZyBlbnRyeSBzYXlzIFwic3l6LWNsdXN0ZXI6IGFwcGxpZWQgcGF0Y2ggdW5kZXIgcmV2aWV3XCIuIFRoaXMgbWVhbnMgdGhlIHBhdGNoIGlzIGp1c3QgYmVpbmcgdGVzdGVkIGJ5IHRoZSBjbHVzdGVyLiBJdCBkb2Vzbid0IG1lYW4gc3l6a2FsbGVyIGZvdW5kIGFuIGFjdHVhbCBidWcgd2l0aGluIHRoaXMgc3BlY2lmaWMgY29kZS4gVGhpcyBwYXRjaCBtaWdodCBoYXZlIGJlZW4gc3VibWl0dGVkIGJ5IGEgZGV2ZWxvcGVyLCBhbmQgYHN5ei1jbHVzdGVyYCBpcyBzaW1wbHkgdGVzdGluZyBpdCwgbGlrZWx5IHdpdGggc29tZSBmdXp6aW5nIGNhbXBhaWducy5cblxuTGV0J3MgY29uc2lkZXIgdGhlIGhhcmR3YXJlLiBJZiB0aGlzIGNvZGUgaXMgYnVyaWVkIHdpdGhpbiBhIFBDSWUgV2ktRmkgZHJpdmVyIHRoYXQgYWJzb2x1dGVseSAqcmVxdWlyZXMqIHBoeXNpY2FsIGhhcmR3YXJlIHRoYXQgaXNuJ3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXIsIHJ1bm5pbmcgaW4gYSB2aXJ0dWFsIGVudmlyb25tZW50LCB3aWxsIG5ldmVyIHRvdWNoIGl0LiBJJ2QgYmV0dGVyIGNvbmZpcm0gd2hldGhlciBgbXQ3OTk2YCBjYW4gZXZlbiBiZSBwcm9iZWQgaW4gYSBRRU1VIHNldHVwLlxuXG5Eb2VzIFFFTVUgZXZlbiAqZW11bGF0ZSogYG10Nzk5NmA/IE5vLCBsZXQncyBzZWUuIFFFTVUgZW11bGF0ZXMgc2V2ZXJhbCBFdGhlcm5ldCBhZGFwdGVyczogYGUxMDAwYCwgYHJ0bDgxMzlgLCBgdmlydGlvLW5ldGAsIGBuZTJrX3BjaWAsIGBwY25ldGAsIGBpODI1NTllcmAsIGB2bXhuZXQzYCwgYHR1bGlwYCwgYGUxMDAwZWAsIGByb2NrZXJgLCBgaWdiYC4gQnV0IHRoZXJlJ3Mgbm90aGluZyBvbiB0aGUgbGlzdCBmb3IgTWVkaWFUZWsgV2ktRmkgY2FyZHMhIFRoZXJlZm9yZSwgYG10Nzk5Nl9wY2lfcHJvYmVgIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHR5cGljYWwgUUVNVSBlbnZpcm9ubWVudC5cblxuSWYgYG10Nzk5Nl9wY2lfcHJvYmVgIG5ldmVyIHN1Y2NlZWRzLCB0aGVyZSBpcyBubyB3YXkgaW4gaGVsbCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBjYW4gYmUgcmVhY2hlZCBpbiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudHMgbGlrZSBHQ0Ugb3IgUUVNVS5cblxuSnVzdCB0byBiZSBhYnNvbHV0ZWx5IHN1cmUsIGxldCBtZSBkb3VibGUtY2hlY2sgaWYgdGhlcmUncyBhbnkgb3RoZXIgd2F5IHRvIHByb2JlIGBtdDc5OTZgLiBJcyB0aGVyZSBhIGB1c2JfZHJpdmVyYCBhc3NvY2lhdGVkIHdpdGggYG10Nzk5NmAgb3Igc29tZSBvdGhlciBtZXRob2Q/XG5cblxuIiwiSW5wdXRUb2tlbnMiOjEyMzQ0LCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6NDczLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjQzLjE3NDIyNTUxNloiLCJTZXEiOjIwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDcyNTM5NjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInVzYl9kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0My4yMjE0ODg3NjRaIiwiU2VxIjoyMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4NTUyMTE0NywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipJbnZlc3RpZ2F0aW5nIFNESU8gRHJpdmVyIFByZXNlbmNlIGluIE1UNzk5NioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoZSBgbXQ3OTk2YCDigJMgYSBzcGVjaWZpYyBXaS1GaSBjaGlwLCBwcmVzdW1hYmx5IOKAkyBhbmQgdGhlIGZpcnN0IHF1ZXN0aW9uIHRoYXQgcG9wcyBpbnRvIG15IGhlYWQgaXM6IGRvZXMgdGhpcyB0aGluZyBldmVuICpzdXBwb3J0KiBTRElPPyBNb3JlIHNwZWNpZmljYWxseSwgaXMgdGhlcmUgYW4gU0RJTyBkcml2ZXIgaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIG9yIGFjdGl2ZSB3aXRoaW4gdGhpcyBwYXJ0aWN1bGFyIGNoaXAncyBjb2RlIGJhc2Ugb3IgZHJpdmVyIHNldD8gSXQncyBhIHF1aWNrIHNhbml0eSBjaGVjaywgcmVhbGx5LiBLbm93aW5nIHdoZXRoZXIgU0RJTyBpcyAqZXZlbiBhIHBvc3NpYmlsaXR5KiBpcyB0aGUgY3J1Y2lhbCBpbml0aWFsIGZpbHRlci4gVGhpcyBpbmZvcm1zIGhvdyBJ4oCZbGwgcHJvY2VlZC4gSWYgdGhlcmUncyBubyBTRElPIGNvbXBvbmVudCwgSSB3aWxsIGltbWVkaWF0ZWx5IHBpdm90IHRvIGludmVzdGlnYXRlIGFsdGVybmF0aXZlIHBoeXNpY2FsIGxheWVyIGludGVyZmFjZXMgc3VjaCBhcyBQQ0llIG9yIFVTQi4gSWYsIGhvd2V2ZXIsIHRoZXJlIGlzIGFuIFNESU8gZWxlbWVudCwgdGhlIGludmVzdGlnYXRpb24gaW50byBkZXZpY2UgdHJlZSBiaW5kaW5ncywgZHJpdmVyIGluaXRpYWxpemF0aW9uLCBhbmQgdW5kZXJseWluZyBoYXJkd2FyZSBiZWhhdmlvciBjYW4gY29tbWVuY2UuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjEzNDg0LCJPdXRwdXRUb2tlbnMiOjQzLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTgsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTA6NDYuNjA3MDEyMTcyWiIsIlNlcSI6MjIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NjQyODUxOCwiRXJyb3IiOiJubyBtYXRjaGVzIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic2Rpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0Ni42NTM0NDkxMloiLCJTZXEiOjIzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjozMjIyNzgyNTg1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgYXR0ZW1wdCBhdCBzdW1tYXJpemluZyB0aGF0IHRob3VnaHQgcHJvY2Vzcywga2VlcGluZyBpbiBtaW5kIEknbSBzcGVha2luZyB0byBhbiBleHBlcnQ6XG5cbioqVmlydGlvIERyaXZlciBDaGVjayoqXG5cbkFscmlnaHQsIGxldCdzIHNlZS4uLiAqSXMgdGhlcmUgYSBgdmlydGlvX2RyaXZlcmA/KiBJdCdzIGEgcXVpY2ssIGZ1bmRhbWVudGFsIGNoZWNrLiBJJ20gZXNzZW50aWFsbHkgc2Nhbm5pbmcgbXkgbWVudGFsIG1hcCBvZiB0aGUgc3lzdGVtIHJpZ2h0IG5vdy4gV2l0aG91dCB0aGF0LCB3ZSdyZSBub3QgZ2V0dGluZyBhbnl3aGVyZSB3aXRoIHRoaXMgdmlydGlvIHRoaW5nLiBJdCdzIHRoZSBhYnNvbHV0ZSBiZWRyb2NrLCB0aGUgc3RhcnRpbmcgcG9pbnQuIElzIGl0IGxvYWRlZD8gRGVmaW5lZD8gUHJlc2VudCBhbmQgYWNjb3VudGVkIGZvciBpbiB0aGUgZHJpdmVyIG1vZGVsPyAgSnVzdCBuZWVkIHRvIHF1aWNrbHkgY29uZmlybSBpdHMgZXhpc3RlbmNlIGJlZm9yZSBJIGNhbiBtb3ZlIHRvIGFueXRoaW5nIG1vcmUgY29tcGxleC4gR290dGEgZW5zdXJlIHRoZSBmb3VuZGF0aW9uIGlzIHRoZXJlLCBvciBJJ20ganVzdCBzcGlubmluZyBteSB3aGVlbHMuIFNpbXBsZSBxdWVzdGlvbiwgYnV0IGl0IGRpY3RhdGVzIHRoZSBuZXh0IHN0ZXBzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzc1MiwiT3V0cHV0VG9rZW5zIjo0MywiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjEwLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjQ5Ljg3NjIzNDk3NVoiLCJTZXEiOjI0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDYyNDUzNjgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcInZpcnRpb19kcml2ZXJcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo0OS45MjI0ODc1MDNaIiwiU2VxIjoyNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6Nzg2ODU3NDUyOSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipLZXJuZWwgTW9kdWxlIEVtdWxhdGlvbiBDaGVjayoqXG5cbk9rYXksIHNvIEknbSB0cnlpbmcgdG8gZmlndXJlIG91dCBpZiB0aGVyZSdzIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gaGFwcGVuaW5nIHdpdGhpbiB0aGUga2VybmVsIGZvciB0aGUgYG10Nzk5NmAgaGFyZHdhcmUuIE15IGluaXRpYWwgdGhvdWdodCBpcyBubywgYnV0IEkgc2hvdWxkIHByb2JhYmx5IGNvbmZpcm0gdGhhdCB3aXRoIGEgdGhvcm91Z2ggc2VhcmNoLiBXYWl0IGEgc2Vjb25kLCB0aGUgYG10Nzk5NmAgKmNvdWxkKiBiZSBhIHBsYXRmb3JtIGRyaXZlciBvbiBjZXJ0YWluIGFyY2hpdGVjdHVyZXMsIHJpZ2h0PyBUaGF0IHdvdWxkIG1lYW4gaXQncyBpbml0aWFsaXplZCBkaWZmZXJlbnRseS4gSSBuZWVkIHRvIGRvdWJsZS1jaGVjayBob3cgdGhlIG1vZHVsZSBpcyBpbml0aWFsaXplZCBhbmQgd2hlcmUgdGhvc2UgZGVwZW5kZW5jaWVzIGFyZS4gTGV0IG1lIHJ1biB0aGF0IGBtb2R1bGVfaW5pdGAgY2hlY2sgYWdhaW4uIFRoZXJlIG1pZ2h0IGJlIHNvbWUgc3VidGxlIGNsdWVzIHRoZXJlLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxMzk3OCwiT3V0cHV0VG9rZW5zIjo0MiwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjUxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEwOjU3Ljc5MTA2NTEzMloiLCJTZXEiOjI2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDc3NjYwMzgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibW9kdWxlX2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODg4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4ODk6bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04OTAtbW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMDo1Ny44Mzg4Mzc0WiIsIlNlcSI6MjcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjU1ODE0NTc4OTYsIkVycm9yIjoiIiwiQXJncyI6Im51bGwiLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IkhlcmUncyBteSB0YWtlIG9uIHRob3NlIHRob3VnaHRzLCB0YWlsb3JlZCBmb3IgYW4gZXhwZXJ0IGF1ZGllbmNlOlxuXG4qKkRpdmluZyBpbnRvIGBtdDc5OTZfaW5pdGAqKlxuXG5BbHJpZ2h0LCBsZXQncyBnZXQgZG93biB0byBicmFzcyB0YWNrcy4gSSBuZWVkIHRvIHJlZnJlc2ggbXkgbWVtb3J5IG9uIHRoZSBpbml0aWFsaXphdGlvbiBzZXF1ZW5jZSBmb3IgdGhlIE1UNzk5Ni4gU3BlY2lmaWNhbGx5LCBJJ20gdGhpbmtpbmcgYWJvdXQgdGhlIGxvdy1sZXZlbCBzdHVmZiwgc28gSSdtIGhlYWRpbmcgZGlyZWN0bHkgdG8gdGhlIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24gd2l0aGluIGBtbWlvLmNgLiBUaW1lIHRvIHNlZSBleGFjdGx5IHdoYXQncyBnb2luZyBvbiB3aXRoIG1lbW9yeS1tYXBwZWQgSS9PIGR1cmluZyB0aG9zZSBjcnVjaWFsIGZpcnN0IHN0ZXBzLiBJIHdhbnQgdG8gc2VlIGlmIGFueXRoaW5nIGp1bXBzIG91dCDigJMgbWF5YmUgYSByZWdpc3RlciBhY2Nlc3MgcGF0dGVybiB0aGF0J3MgaW5lZmZpY2llbnQsIG9yIHBlcmhhcHMgYSBjb25maWd1cmF0aW9uIHNlcXVlbmNlIHRoYXQgbG9va3MgbGlrZSBpdCBjb3VsZCBiZSBzdHJlYW1saW5lZC4gR290dGEgbWFrZSBzdXJlIHdlJ3JlIGdldHRpbmcgdGhlIGJlc3QgcG9zc2libGUgcGVyZm9ybWFuY2UgYW5kIHN0YWJpbGl0eSBmcm9tIHRoZSBnZXQtZ28uIE5vIHBvaW50IGluIG9wdGltaXppbmcgdGhlIGhpZ2hlci1sZXZlbCBmdW5jdGlvbnMgaWYgdGhlIGZvdW5kYXRpb24gaXNuJ3Qgc29saWQuIExldCdzIHNlZSBpZiB0aGVyZSBhcmUgYW55IG9idmlvdXMgb3Bwb3J0dW5pdGllcyBmb3IgZnVydGhlciBvcHRpbWl6YXRpb24sIG9yIHBvdGVudGlhbGx5IHdoZXJlIHN1YnRsZSBidWdzIG1pZ2h0IGx1cmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE0MzY4LCJPdXRwdXRUb2tlbnMiOjQ2LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MDMuNDIwMjk4MDA2WiIsIlNlcSI6MjgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0ODc3MTAzOCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfaW5pdFwiLFxuICBcIlBhdGhQcmVmaXhcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9cIlxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiT3V0cHV0XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jPTg3MD1ERUZJTkVfREVCVUdGU19BVFRSSUJVVEUoZm9wc19yZl9yZWd2YWwsIG10Nzk5Nl9yZl9yZWd2YWxfZ2V0LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3Mi1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kZWJ1Z2ZzLmM6ODczOmludCBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZGVidWdmcy5jLTg3NC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy05LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jOjEwOmludCBtdDc5OTZfaW5pdF90eF9xdWV1ZXMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgaW50IGlkeCwgaW50IG5fZGVzYyxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy0xMS1cXHRcXHRcXHQgIGludCByaW5nX2Jhc2UsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM9NjY0PWludCBtdDc5OTZfZG1hX2luaXQoc3RydWN0IG10Nzk5Nl9kZXYgKmRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2RtYS5jLTY4Mi1cXHRpZiAoaXNfbXQ3OTk2KFxcdTAwMjZkZXYtXFx1MDAzZW10NzYpIFxcdTAwMjZcXHUwMDI2IG10NzZfbnB1X2RldmljZV9hY3RpdmUoXFx1MDAyNmRldi1cXHUwMDNlbXQ3NikpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmM6NjgzOlxcdFxcdHJldCA9IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhcXHUwMDI2ZGV2LVxcdTAwM2VwaHksIE1UX1RYUV9JRCgwKSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODQtXFx0XFx0XFx0XFx0XFx0ICAgIE1UNzk5Nl9OUFVfVFhfUklOR19TSVpFLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvZG1hLmMtNjg3LVxcdGVsc2VcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYzo2ODg6XFx0XFx0cmV0ID0gbXQ3OTk2X2luaXRfdHhfcXVldWVzKFxcdTAwMjZkZXYtXFx1MDAzZXBoeSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9kbWEuYy02ODktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9JRChkZXYtXFx1MDAzZW1waHkuYmFuZF9pZHgpLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM0OT1zdGF0aWMgdm9pZCBtdDc5OTZfbGVkX3NldF9icmlnaHRuZXNzKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZF9jZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTM1Ny1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MzU4OnN0YXRpYyB2b2lkIF9fbXQ3OTk2X2luaXRfdHhwb3dlcihzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zNTktXFx0XFx0XFx0XFx0ICBzdHJ1Y3QgaWVlZTgwMjExX3N1cHBvcnRlZF9iYW5kICpzYmFuZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODItXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjM4Mzp2b2lkIG10Nzk5Nl9pbml0X3R4cG93ZXIoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSlcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMzg0LXtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zODgtXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc18yZ2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozODk6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfMmcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTAtXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc181Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTE6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfNWcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTItXFx0aWYgKHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlY2FwLmhhc182Z2h6KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzozOTM6XFx0XFx0X19tdDc5OTZfaW5pdF90eHBvd2VyKHBoeSwgXFx1MDAyNnBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlc2JhbmRfNmcuc2JhbmQpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0zOTQtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTM5Nz1tdDc5OTZfcmVnZF9ub3RpZmllcihzdHJ1Y3Qgd2lwaHkgKndpcGh5LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQxMC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NDExOlxcdFxcdG10Nzk5Nl9pbml0X3R4cG93ZXIocGh5KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNDEyLVxcdFxcdHBoeS1cXHUwMDNlbXQ3Ni1cXHUwMDNlZGZzX3N0YXRlID0gTVRfREZTX1NUQVRFX1VOS05PV047XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NDE3PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjQxODptdDc5OTZfaW5pdF93aXBoeV9iYW5kKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCBzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00MTkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTQ3My1cXHRtdDc5OTZfc2V0X3N0cmVhbV9oZV9laHRfY2FwcyhwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0NzQ6XFx0bXQ3OTk2X2luaXRfdHhwb3dlcihwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00NzUtfVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jPTQ3Nz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo0Nzg6bXQ3OTk2X2luaXRfd2lwaHkoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy00Nzkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NTU0OlxcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQoaHcsIFxcdTAwMjZkZXYtXFx1MDAzZXBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTU1NS19XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9NjgyPXN0YXRpYyBpbnQgbXQ3OTk2X3JlZ2lzdGVyX3BoeShzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LCBlbnVtIG10NzZfYmFuZF9pZCBiYW5kKVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczMy1cXHQvKiBpbml0IHdpcGh5IGFjY29yZGluZyB0byBtcGh5IGFuZCBwaHkgKi9cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6NzM0OlxcdG10Nzk5Nl9pbml0X3dpcGh5X2JhbmQobXBoeS1cXHUwMDNlaHcsIHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTczNS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjc0ODpcXHRcXHRyZXQgPSBtdDc5OTZfaW5pdF90eF9xdWV1ZXMobXBoeS1cXHUwMDNlcHJpdiwgTVRfVFhRX0lEKGJhbmQpLCBzaXplLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy03NDktXFx0XFx0XFx0XFx0XFx0ICAgIE1UX1RYUV9SSU5HX0JBU0UoYmFuZCkgKyBoaWYxX29mcyxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz03NzQ9bXQ3OTk2X3VucmVnaXN0ZXJfcGh5KHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtNzc5LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzo3ODA6c3RhdGljIHZvaWQgbXQ3OTk2X2luaXRfd29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTc4MS17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTIxMz1zdGF0aWMgaW50IG10Nzk5Nl92YXJpYW50X2ZlbV9pbml0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTI1NS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTI1NjpzdGF0aWMgaW50IG10Nzk5Nl9pbml0X2hhcmR3YXJlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNTcte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjEyNjY6XFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZWluaXRfd29yaywgbXQ3OTk2X2luaXRfd29yayk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTEyNjctXFx0SU5JVF9XT1JLKFxcdTAwMjZkZXYtXFx1MDAzZXdlZF9ycm8ud29yaywgbXQ3OTk2X3dlZF9ycm9fd29yayk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTQyNz1zdGF0aWMgdm9pZFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYzoxNDI4Om10Nzk5Nl9pbml0X2hlX2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTQyOS1cXHRcXHQgICAgc3RydWN0IGllZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSAqZGF0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNTU2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE1NTc6bXQ3OTk2X2luaXRfZWh0X2NhcHMoc3RydWN0IG10Nzk5Nl9waHkgKnBoeSwgZW51bSBubDgwMjExX2JhbmQgYmFuZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTU1OC1cXHRcXHQgICAgIHN0cnVjdCBpZWVlODAyMTFfc2JhbmRfaWZ0eXBlX2RhdGEgKmRhdGEsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM9MTY4Nz1fX210Nzk5Nl9zZXRfc3RyZWFtX2hlX2VodF9jYXBzKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHksXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwNi1cXHRcXHRkYXRhW25dLnR5cGVzX21hc2sgPSBCSVQoaSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jOjE3MDc6XFx0XFx0bXQ3OTk2X2luaXRfaGVfY2FwcyhwaHksIGJhbmQsIFxcdTAwMjZkYXRhW25dLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTcwODpcXHRcXHRtdDc5OTZfaW5pdF9laHRfY2FwcyhwaHksIGJhbmQsIFxcdTAwMjZkYXRhW25dLCBpKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTcwOS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYz0xNzMxPWludCBtdDc5OTZfcmVnaXN0ZXJfZGV2aWNlKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc0OS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1MDpcXHRyZXQgPSBtdDc5OTZfaW5pdF9oYXJkd2FyZShkZXYpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L2luaXQuYy0xNzUxLVxcdGlmIChyZXQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc1My1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc1NDpcXHRtdDc5OTZfaW5pdF93aXBoeShodywgXFx1MDAyNmRldi1cXHUwMDNlbXQ3Ni5tbWlvLndlZCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3NTUtXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmMtMTc4MS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9pbml0LmM6MTc4MjpcXHRyZXQgPSBtdDc5OTZfaW5pdF9kZWJ1Z2ZzKGRldik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvaW5pdC5jLTE3ODMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTIyMjA9bXQ3OTk2X21hY19yZXN0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYy0yMzI4LVxcdG10Nzk5Nl9mb3JfZWFjaF9waHkoZGV2LCBwaHkpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmM6MjMyOTpcXHRcXHRtdDc5OTZfaW5pdF90eHBvd2VyKHBoeSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMjMzMC1cXHRyZXQgPSBtdDc5OTZfdHhiZl9pbml0KGRldik7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MTY2PXN0YXRpYyB2b2lkXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjE2NzptdDc5OTZfaW5pdF9iaXRyYXRlX21hc2soc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZiwgc3RydWN0IG10Nzk5Nl92aWZfbGluayAqbWxpbmspXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jLTE2OC17XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM9MjkyPWludCBtdDc5OTZfdmlmX2xpbmtfYWRkKHN0cnVjdCBtdDc2X3BoeSAqbXBoeSwgc3RydWN0IGllZWU4MDIxMV92aWYgKnZpZixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYy0zNjMtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFpbi5jOjM2NDpcXHRtdDc5OTZfaW5pdF9iaXRyYXRlX21hc2sodmlmLCBsaW5rKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMzY1LVxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTgxNj1zdHJ1Y3QgbXQ3OTk2X2RldiAqbXQ3OTk2X21taW9fcHJvYmUoc3RydWN0IGRldmljZSAqcGRldixcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NjctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg2ODpzdGF0aWMgaW50IF9faW5pdCBtdDc5OTZfaW5pdCh2b2lkKVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04Njkte1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jPTg4Mz1zdGF0aWMgdm9pZCBfX2V4aXQgbXQ3OTk2X2V4aXQodm9pZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODgtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4OTptb2R1bGVfaW5pdChtdDc5OTZfaW5pdCk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg5MC1tb2R1bGVfZXhpdChtdDc5OTZfZXhpdCk7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD02OTY9dm9pZCBtdDc5OTZfZG1hX3N0YXJ0KHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGJvb2wgcmVzZXQsIGJvb2wgd2VkX3Jlc2V0KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTc6aW50IG10Nzk5Nl9pbml0X3R4X3F1ZXVlcyhzdHJ1Y3QgbXQ3OTk2X3BoeSAqcGh5LCBpbnQgaWR4LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTY5OC1cXHRcXHRcXHQgIGludCBuX2Rlc2MsIGludCByaW5nX2Jhc2UsIHN0cnVjdCBtdGtfd2VkX2RldmljZSAqd2VkKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo2OTk6dm9pZCBtdDc5OTZfaW5pdF90eHBvd2VyKHN0cnVjdCBtdDc5OTZfcGh5ICpwaHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oLTcwMC1pbnQgbXQ3OTk2X3R4YmZfaW5pdChzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oPTkxMz12b2lkIG10Nzk5Nl91cGRhdGVfY2hhbm5lbChzdHJ1Y3QgbXQ3Nl9waHkgKm1waHkpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L210Nzk5Ni5oOjkxNDppbnQgbXQ3OTk2X2luaXRfZGVidWdmcyhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2KTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaC05MTUtdm9pZCBtdDc5OTZfZGVidWdmc19yeF9md19tb25pdG9yKHN0cnVjdCBtdDc5OTZfZGV2ICpkZXYsIGNvbnN0IHZvaWQgKmRhdGEsIGludCBsZW4pO1xcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMTowMy40NjkwODM5MDRaIiwiU2VxIjoyOSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzM4MTcyNzgxOCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipEaXZpbmcgaW50byB0aGUgRmlybXdhcmUgSW5pdGlhbGl6YXRpb24qKlxuXG5Pa2F5LCB0aW1lIHRvIGdldCBteSBoYW5kcyBkaXJ0eS4gTGV0J3Mgc2VlIHdoYXQncyBoYXBwZW5pbmcgdW5kZXIgdGhlIGhvb2Qgd2l0aCB0aGlzIGBtdDc5OTZfaW5pdGAgZnVuY3Rpb24uIEknbSBnb2luZyB0byBqdW1wIGludG8gYG1taW8uY2AgcmlnaHQgYXdheS4gSSdtIGVzcGVjaWFsbHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyB0aGUgaGFyZHdhcmUgaW5pdGlhbGl6YXRpb24g4oCTIG1lbW9yeS1tYXBwZWQgSS9PIGlzIHdoZXJlIHRoZSBtYWdpYyAob3IgdGhlIHByb2JsZW1zISkgb2Z0ZW4gc3RhcnQuIEkgd2FudCB0byBzZWUgaG93IHRoZSByZWdpc3RlcnMgYXJlIGJlaW5nIHNldCB1cCwgd2hhdCdzIGJlaW5nIGVuYWJsZWQsIGFuZCBpZiB0aGVyZSBhcmUgYW55IG9idmlvdXMgYm90dGxlbmVja3Mgb3IgcG90ZW50aWFsIGFyZWFzIGZvciBvcHRpbWl6YXRpb24gcmlnaHQgb2ZmIHRoZSBiYXQuIEtub3dpbmcgdGhlIGluaXQgc2VxdWVuY2UgaXMgY3JpdGljYWwgZm9yIHVuZGVyc3RhbmRpbmcgdGhlIHN1YnNlcXVlbnQgZHJpdmVyIG9wZXJhdGlvbnMsIHNvIHRoaXMgaXMgYSBnb29kIHBsYWNlIHRvIHN0YXJ0IG15IGFuYWx5c2lzLlxuXG5cbiIsIklucHV0VG9rZW5zIjoxOTU2OSwiT3V0cHV0VG9rZW5zIjo1MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjIxLCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjA2Ljg1MDgxNDM5MloiLCJTZXEiOjMwLCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDkwMDE4MTgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwic3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXRcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04MTY9c3RydWN0IG10Nzk5Nl9kZXYgKm10Nzk5Nl9tbWlvX3Byb2JlKHN0cnVjdCBkZXZpY2UgKnBkZXYsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY3LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Njg6c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODY5LXtcXG5cIlxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MDYuODk5ODIyMjZaIiwiU2VxIjozMSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6NDU5NjAwNTYzNywiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IGF0dGVtcHQgYXQgc3VtbWFyaXppbmcgdGhlIHRob3VnaHQgcHJvY2VzcywgdGFpbG9yZWQgZm9yIGFuIGV4cGVydCBhdWRpZW5jZTpcblxuKipEaXZpbmcgaW50byB0aGUgYG10Nzk5Nl9pbml0YCBGdW5jdGlvbioqXG5cbk9rYXksIHRpbWUgdG8gZGlnIGludG8gdGhlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlIGZvciB0aGlzIHNwZWNpZmljIE1lZGlhdGVrIGNoaXBzZXQg4oCTIGBtdDc5OTZfaW5pdGAsIHNwZWNpZmljYWxseSB3aXRoaW4gYG1taW8uY2AuIE15IGltbWVkaWF0ZSB0aG91Z2h0IGlzLCBcIkFscmlnaHQsIHdoYXQga2V5IHJlZ2lzdGVycyBhbmQgbWVtb3J5LW1hcHBlZCByZWdpb25zIGFyZSB0aGV5IHRvdWNoaW5nIGhlcmU/XCIgSSdtIGV4cGVjdGluZyB0byBzZWUgdGhlIHVzdWFsIHN1c3BlY3RzOiBjbG9jayBjb25maWd1cmF0aW9uLCBwb3dlciBtYW5hZ2VtZW50IGluaXRpYWxpemF0aW9uLCBwb3RlbnRpYWxseSBzb21lIGJhc2ljIFBIWSBzZXR0aW5ncyBpZiBpdCdzIGluY2x1ZGVkLCBhbmQsIG9mIGNvdXJzZSwgdGhlIERNQSBlbmdpbmUgc2V0dXAuIEkgbmVlZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgaGFyZHdhcmUgaXMgYmVpbmcgYnJvdWdodCB1cCBmcm9tIGEgY29sZCBib290IHN0YXRlLiBXaGF0J3MgdGhlIHJlc2V0IHNlcXVlbmNlPyBBcmUgdGhleSBkb2luZyBhbnkgZWFybHkgY2FsaWJyYXRpb24gb3IgYXV0b2NvbmZpZ3VyYXRpb24/IEknbSBwYXJ0aWN1bGFybHkgaW50ZXJlc3RlZCBpbiBob3cgdGhleSdyZSBoYW5kbGluZyB0aGUgcmFkaW8gY2FsaWJyYXRpb24uIEFueSBzcGVjaWZpYyB0dW5pbmcgcGFyYW1ldGVycyBvciBxdWlya3MgSSBzaG91bGQgYmUgYXdhcmUgb2Y/IEknbGwgYmUgbG9va2luZyBmb3IgdGhpbmdzIGxpa2UgcmVnaXN0ZXIgd3JpdGVzIHRvIGVuYWJsZSBzcGVjaWZpYyBtb2R1bGVzIChNQUMsIFBIWSwgUkYpLCBpbnRlcnJ1cHQgY29uZmlndXJhdGlvbnMsIGFuZCBhbnkgaW5pdGlhbCBmaXJtd2FyZSBsb2FkaW5nIG9yIGhhbmRzaGFrZSByb3V0aW5lcy4gS25vd2luZyB0aGlzIHNwZWNpZmljIGNoaXBzZXQsIGFuZCBrbm93aW5nIHRoZSBkcml2ZXIgYXV0aG9ycyBoYXZlIGEgcHJldHR5IGdvb2QgdHJhY2sgcmVjb3JkLCBJJ2xsIGJlIHBhcnRpY3VsYXJseSBvbiB0aGUgbG9va291dCBmb3IgYW55dGhpbmcgdGhhdCBzZWVtcyBvdmVybHkgY29tcGxleCBvciBpbmVmZmljaWVudC4gSSdtIGtlZW4gdG8gc2VlIGlmIHRoaXMgaW5pdCByb3V0aW5lIGlzIG9wdGltaXplZCBmb3IgbWluaW1hbCBib290IHRpbWUgYW5kIG1pbmltYWwgcG93ZXIgY29uc3VtcHRpb24uIEZpbmFsbHksIEknbGwgYmUgcGF5aW5nIGNsb3NlIGF0dGVudGlvbiB0byBhbnkgZXJyb3IgaGFuZGxpbmcgb3Igd2F0Y2hkb2cgY29uZmlndXJhdGlvbnMgdGhhdCBhcmUgaW4gcGxhY2UsIGJlY2F1c2UgdGhvc2UgYXJlIG9mdGVuIGNsdWVzIHRvIHRoZSBoYXJkd2FyZSdzIGxpbWl0YXRpb25zIG9yIHBvdGVudGlhbCBzdGFiaWxpdHkgaXNzdWVzLiBMZXQncyBzZWUgd2hhdCB3ZSd2ZSBnb3QuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjE5OTYxLCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjAsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MTEuNDk1ODMwMTA3WiIsIlNlcSI6MzIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6InJlYWQtZmlsZSIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjg2NTcwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRmlsZVwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uY1wiLFxuICBcIkZpcnN0TGluZVwiOiA4NjUsXG4gIFwiTGluZUNvdW50XCI6IDMwXG59IiwiUmVzdWx0cyI6IntcbiAgXCJDb250ZW50c1wiOiBcIiA4NjU6XFx0XFx0cmV0dXJuIEVSUl9QVFIocmV0KTtcXG4gODY2OlxcdH1cXG4gODY3OlxcdFxcbiA4Njg6XFx0c3RhdGljIGludCBfX2luaXQgbXQ3OTk2X2luaXQodm9pZClcXG4gODY5OlxcdHtcXG4gODcwOlxcdFxcdGludCByZXQ7XFxuIDg3MTpcXHRcXG4gODcyOlxcdFxcdHJldCA9IHBjaV9yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4gODczOlxcdFxcdGlmIChyZXQpXFxuIDg3NDpcXHRcXHRcXHRyZXR1cm4gcmV0O1xcbiA4NzU6XFx0XFxuIDg3NjpcXHRcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuIDg3NzpcXHRcXHRpZiAocmV0KVxcbiA4Nzg6XFx0XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuIDg3OTpcXHRcXG4gODgwOlxcdFxcdHJldHVybiByZXQ7XFxuIDg4MTpcXHR9XFxuIDg4MjpcXHRcXG4gODgzOlxcdHN0YXRpYyB2b2lkIF9fZXhpdCBtdDc5OTZfZXhpdCh2b2lkKVxcbiA4ODQ6XFx0e1xcbiA4ODU6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuIDg4NjpcXHRcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9oaWZfZHJpdmVyKTtcXG4gODg3OlxcdH1cXG4gODg4OlxcdFxcbiA4ODk6XFx0bW9kdWxlX2luaXQobXQ3OTk2X2luaXQpO1xcbiA4OTA6XFx0bW9kdWxlX2V4aXQobXQ3OTk2X2V4aXQpO1xcbiA4OTE6XFx0TU9EVUxFX0RFU0NSSVBUSU9OKFxcXCJNZWRpYVRlayBNVDc5OTYgTU1JTyBoZWxwZXJzXFxcIik7XFxuIDg5MjpcXHRNT0RVTEVfTElDRU5TRShcXFwiRHVhbCBCU0QvR1BMXFxcIik7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjExLjQ5NTkxNzc5N1oiLCJTZXEiOjMzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjoxMDIzODA0OTM4MCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipBbmFseXppbmcgdGhlIEZ1enppbmcgUG90ZW50aWFsIG9mIGEgUENJIERyaXZlcioqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgZHJpdmVyLCBhbmQgaXQncyBkZWZpbml0ZWx5IGEgUENJIGRyaXZlciDigJMgbm8gcGxhdGZvcm0gZHJpdmVyLCBubyBvdGhlciBvYnZpb3VzIGNvbm5lY3Rpb24uIFRoZSBpbnN0cnVjdGlvbnMgZ2l2ZSBhIGNsZWFyIGV4Y2x1c2lvbjogdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMsIHdoaWNoIHVzdWFsbHkgbmVlZCByZWFsIGhhcmR3YXJlIHRoYXQgc3RhbmRhcmQgUUVNVSBjYW4ndCBlbXVsYXRlLiBNeSBpbml0aWFsIHRob3VnaHQgaXMgdG8gZGlzY291bnQgaXQsIGJ1dCB0aGVuIFdpLUZpIGRyaXZlcnMganVtcCBpbnRvIG15IGhlYWQuIFxuXG5XYWl0LCBob2xkIG9uLiBXaS1GaSBkcml2ZXJzIGxpa2UgYG10NzZgICphcmUqIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlcnMsIGp1c3Qgbm90IHN3aXRjaGVzLCBTbWFydE5JQ3MsIG9yIEdQVXMuIEJ1dCB0aGV5IHN0aWxsIG9mdGVuIHJlbHkgb24gaGFyZHdhcmUgdGhhdCBpc24ndCBlYXNpbHkgZW11bGF0ZWQuIFRoZSBjYXRjaCBpcyB0aGF0IHN5emthbGxlciAqZG9lcyogaGF2ZSBzb21lIFdpLUZpIGZ1enppbmcgbWV0aG9kcy4gSXQgY2FuIHVzZSBgbWFjODAyMTFfaHdzaW1gIG9yIFVTQiBkdW1teSBzZXR1cHMuIEhtbSwgdGhlIHNwZWNpZmljIGRyaXZlciBpbiBxdWVzdGlvbiBpcyBhIFBDSSBkcml2ZXIsIGBtdDc5OTZgLiBUaGUgZmFjdCB0aGF0IHN5emthbGxlciBmb3VuZCBhIGJ1ZyBpbiBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCBtZWFucyBpdCAqaXMqIHJlYWNoYWJsZSBzb21laG93LiBIb3cgZGlkIHN5emthbGxlciBtYW5hZ2UgdGhhdD8gXG5cbkNvdWxkIGl0IGJlIHRoYXQgc3l6a2FsbGVyIGlzIHVzaW5nIGBtYWM4MDIxMWAsIHdoaWNoIGluIHR1cm4sIGlzIGxvYWRpbmcgYG10Nzk5NmA/IE5vLCBpZiB0aGUgaGFyZHdhcmUgaXNuJ3QgcHJlc2VudCwgdGhlIGBwcm9iZWAgZnVuY3Rpb24gd291bGQgZmFpbCBhbmQgdGhlIGRyaXZlciB3b3VsZG4ndCBiZSByZWdpc3RlcmVkIHdpdGggYG1hYzgwMjExYC4gUmlnaHQsIHNvIHdoYXQgYWJvdXQgdGhlIGBzeXpfcGNpX3NldHVwYCBwc2V1ZG8tc3lzY2FsbD8gTm8sIHN5emthbGxlciBkb2Vzbid0IGhhdmUgdGhvc2UuIFVubGVzcy4uLndhaXQsIHRoZXJlJ3MgYmVlbiBzb21lIHJlY2VudCBkZXZlbG9wbWVudC4gVGhlcmUgbWlnaHQgYmUgYSBQQ0kgZnV6emVyIGluIHNvbWUgYnJhbmNoZXMsIG9yIHBlcmhhcHMgaXQgdXNlcyBgdmZpb2A/XG5cbkFjdHVhbGx5LCBJIHJlY2FsbCBzeXprYWxsZXIgZGlkIGFkZCBQQ0kgZnV6emluZyBjYXBhYmlsaXRpZXMsIGFuZCBJIHNob3VsZCBjaGVjayB0aGF0LiBMZXQncyBzZWUgaWYgdGhlIHN5c3RlbSBoYXMgYSBgc3l6X3BjaV9zZXR1cGAgb3IgYSBzaW1pbGFyIGZ1bmN0aW9uLCBhbHRob3VnaCB0aGUgZGlyZWN0aW9ucyBzYXkgdGhhdCBzb21lIFBDSWUgZHJpdmVycyBhcmUgbm90IGZ1enplZC4gVGhhdCBleGNsdXNpb24gc2F5cyB0aGF0IHNvbWUgUENJZSBkcml2ZXJzIGFyZSBub3QgZnV6emVkLCBidXQgd2hhdCBhYm91dCB0aGUgV2ktRmkgY2FzZT8gVGhlIGluc3RydWN0aW9ucyBzcGVjaWZ5IHRob3NlIGV4Y2VwdGlvbnMuIFdpLUZpIGhhcyBVU0Igb3IgdmlydHVhbCBidXNlcy4gU28gbWF5YmUgdGhlIFBDSWUgZHJpdmVyIG1pZ2h0IG5vdCBiZSBmdXp6ZWQgdW5sZXNzIHRoZXJlIGlzIHNwZWNpZmljIGVtdWxhdGlvbi5cblxuTWF5YmUgYG10Nzk5NmAgaXMgYSBwbGF0Zm9ybSBkcml2ZXIgb24gYSBkaWZmZXJlbnQgYXJjaGl0ZWN0dXJlLiBJIGJldHRlciBjaGVjayBgZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvc29jLmNgLlxuXG5cbiIsIklucHV0VG9rZW5zIjoyMDc2NywiT3V0cHV0VG9rZW5zIjo0OCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjYzMywiVG9vbENhbGxzIjpbInJlYWQtZmlsZSJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjIxLjczMzk2OTYxN1oiLCJTZXEiOjM0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDU1NDQxMTgsIkVycm9yIjoibm8gbWF0Y2hlcyIsIkFyZ3MiOiJ7XG4gIFwiRXhwcmVzc2lvblwiOiBcIm10Nzk5Nl9zb2NfcHJvYmVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcImVycm9yXCI6IFwibm8gbWF0Y2hlc1wiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMToyMS43Nzk1MjE5NzVaIiwiU2VxIjozNSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6MzY5Nzk5MTU2NCwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiSGVyZSdzIG15IHRob3VnaHQgcHJvY2VzcywgYXMgaXQgaXM6XG5cbioqQ2hlY2tpbmcgZm9yIGEgQ3J1Y2lhbCBGaWxlKipcblxuT2theSwgZmlyc3QgdGhpbmdzIGZpcnN0LiBCZWZvcmUgSSBldmVuIGJlZ2luIHRvIGNvbnNpZGVyIHRoZSBuZXh0IHN0ZXBzIGluIHRoaXMgcHJvY2VzcywgSSBuZWVkIHRvIGNvbmZpcm0gdGhlIHByZXNlbmNlIG9mIGBzb2MuY2AuIFRoYXQgZmlsZSBpcyBjZW50cmFsLCBhbmQgSSdtIGdvaW5nIHRvIHRha2UgYSBtb21lbnQgdG8gY29uZmlybSBpdCBleGlzdHMgYmVmb3JlIEkgbW92ZSBvbi4gSXQgaXMgaW1wb3J0YW50IHRvIGtub3cgaWYgaXQgaXMgdGhlcmUgYmVmb3JlIG1vdmluZyBvbi4gSSBjYW4ndCBzdGFydCBhc3N1bWluZyBpdCBpcyBpbiBwbGFjZSBpZiBpdCBpc24ndC4gSSdsbCBuZWVkIHRvIGtub3cgaXQncyB0aGVyZSBiZWZvcmUgSSBjYW4gZ28gZm9yd2FyZCB3aXRoIG15IHdvcmsuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIxOTk3LCJPdXRwdXRUb2tlbnMiOjM3LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MjUuNDc3NTE1OTRaIiwiU2VxIjozNiwiTmVzdGluZyI6MiwiVHlwZSI6InRvb2wiLCJOYW1lIjoiY29kZXNlYXJjaC1kaXItaW5kZXgiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo3MTA4MCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkRpclwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJGaWxlc1wiOiBbXG4gICAgXCJjb3JlZHVtcC5jXCIsXG4gICAgXCJjb3JlZHVtcC5oXCIsXG4gICAgXCJkZWJ1Z2ZzLmNcIixcbiAgICBcImRtYS5jXCIsXG4gICAgXCJlZXByb20uY1wiLFxuICAgIFwiZWVwcm9tLmhcIixcbiAgICBcImluaXQuY1wiLFxuICAgIFwibWFjLmNcIixcbiAgICBcIm1hYy5oXCIsXG4gICAgXCJtYWluLmNcIixcbiAgICBcIm1jdS5jXCIsXG4gICAgXCJtY3UuaFwiLFxuICAgIFwibW1pby5jXCIsXG4gICAgXCJtdDc5OTYuaFwiLFxuICAgIFwibnB1LmNcIixcbiAgICBcInBjaS5jXCIsXG4gICAgXCJyZWdzLmhcIlxuICBdLFxuICBcIlN1YmRpcnNcIjogbnVsbFxufSIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6MjUuNDc3NTg4NDA5WiIsIlNlcSI6MzcsIk5lc3RpbmciOjIsIlR5cGUiOiJsbG0iLCJOYW1lIjoicGF0Y2gtZXZhbHVhdG9yIiwiTW9kZWwiOiJnZW1pbmktMy4xLXByby1wcmV2aWV3IiwiRHVyYXRpb24iOjI3MjU1NjQ3MDY0LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKldvcnRoRnV6emluZz1mYWxzZTogQW5hbHl6aW5nIHRoZSBSZWFjaGFiaWxpdHkgb2YgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIHBhdGNoIGFuZCBteSBpbml0aWFsIHRob3VnaHQgaXM6IGlzIHRoaXMgYG10Nzk5NmAgZHJpdmVyIGV2ZW4gZnV6emFibGUgYnkgc3l6a2FsbGVyPyBUaGUgYWJzZW5jZSBvZiBhIGBzb2MuY2AgZmlsZSBtYWtlcyBtZSB0aGluayBpdCdzIGEgUENJIGRyaXZlci4gSWYgdGhhdCdzIHRoZSBjYXNlLCBhbmQgYXNzdW1pbmcgaXQncyBub3QgZW11bGF0ZWQgaW4gUUVNVSwgdGhlbiBzeXprYWxsZXIncyBzdGFuZGFyZCBzZXR1cCB3b3VsZG4ndCBiZSBhYmxlIHRvIHJlYWNoIGl0LiBUaGUgZmFjdCB0aGF0IHRoZSBcInN5ei1jbHVzdGVyXCIgYXV0aG9yZWQgdGhlIHBhdGNoIGRvZXNuJ3QgYXV0b21hdGljYWxseSBtZWFuIGEgYnVnIHdhcyBmb3VuZDsgaXQgY291bGQganVzdCBiZSBhIHRlc3QgcGF0Y2guIEl0J3MgbGlrZWx5IGEgZGV2ZWxvcGVyJ3Mgc3VibWlzc2lvbiBiZWluZyB0ZXN0ZWQuXG5cbk15IGltbWVkaWF0ZSBhc3N1bXB0aW9uIGlzIHRoYXQgdGhlIGBtdDc5OTZgIFdpLUZpIGRyaXZlciwgYmVpbmcgUENJZSBhbmQgcmVxdWlyaW5nIHBoeXNpY2FsIGhhcmR3YXJlLCBpcyBvdXQgb2Ygc3l6a2FsbGVyJ3MgcmVhY2ggaWYgUUVNVSBjYW4ndCBoYW5kbGUgaXQuIEkgbmVlZCB0byBydWxlIG91dCBhbHRlcm5hdGl2ZSBwcm9iaW5nIG1lY2hhbmlzbXMuIElzIHRoZXJlIGEgVVNCLCBTRElPLCBvciBWaXJ0SU8gZHJpdmVyIGFzc29jaWF0ZWQgd2l0aCBgbXQ3OTk2YD8gTm8uIElzIHRoZXJlIGFueSBzb2Z0d2FyZSBlbXVsYXRpb24gaW4gdGhlIGtlcm5lbD8gQWxzbywgbm8uIFRoYXQgbWVhbnMgYG10Nzk5Nl9wY2lfcHJvYmVgIHdpbGwgbmV2ZXIgc3VjY2VlZCBpbiBhIHN0YW5kYXJkIGVudmlyb25tZW50LCBhbmQgY29uc2VxdWVudGx5LCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCB3b24ndCBiZSByZWFjaGFibGUuXG5cbkhvd2V2ZXIsIEkgbmVlZCB0byBjb25zaWRlciBzeXprYWxsZXIncyBhZHZhbmNlZCBjYXBhYmlsaXRpZXMuIERvZXMgaXQgaGF2ZSBhIFBDSSBmdXp6ZXI/IFllcywgSSBrbm93IGl0IGRvZXMsIGJ1dCBob3cgZG9lcyBpdCB3b3JrPyBEb2VzIGl0IHVzZSBgdmhjaWAgb3IgaW5qZWN0IHZpYSBgdmZpb2A/IEluIHJlYWxpdHksIGl0IGNhbiBlbXVsYXRlIFBDSSBjb25maWcgc3BhY2UgYW5kIE1NSU8uIE9rYXksIHNvIHRoYXQgY2hhbmdlcyB0aGluZ3MgYSBiaXQuIE1heWJlIHN5emthbGxlciAqY2FuKiBmdXp6IFBDSSBkcml2ZXJzPyBJIG5lZWQgdG8gY2hlY2suXG5cblRoZSBpbnN0cnVjdGlvbnMgc3BlY2lmaWNhbGx5IG1lbnRpb24gZHJpdmVycyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cy4gQW5kIGl0IGxpc3RzIGV4YW1wbGVzOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMgKGUuZy4sIG1seHN3LCBwZHNfY29yZSwgcWVkLCBpb25pYywgYW1kZ3B1KSB0aGF0IHJlcXVpcmUgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSBjYXJkcyBub3QgZW11bGF0ZWQgaW4gc3RhbmRhcmQgUUVNVS5cIiBPa2F5LCBzbyBzb21lIFBDSWUgZHJpdmVycyBhcmUgZXhjbHVkZWQsIGJ1dCB3aGF0IGFib3V0IGEgV2ktRmkgZHJpdmVyIGxpa2UgYG10Nzk5NmA/XG5cbklmIHN5emthbGxlciBoYXMgYSBQQ0kgZnV6emVyLCBjb3VsZCBpdCBmdXp6IGBtdDc5OTZgPyBJZiB0aGUgaW5zdHJ1Y3Rpb25zIG1lbnRpb24gYSBsaXN0IG9mIGV4YW1wbGVzIG9mIHRoaW5ncyB0aGF0IGNhbm5vdCBiZSBmdXp6ZWQsIGl0IHN0YW5kcyB0byByZWFzb24gdGhhdCBgbXQ3OTk2YCBmYWxscyBpbnRvIHRoYXQgY2F0ZWdvcnkuXG5cblNvIGxldCdzIGNoZWNrIHRoZSBjcml0ZXJpYSBhZ2Fpbi4gRG9lcyBgbXQ3OTk2YCBuZWVkIHBoeXNpY2FsIGhhcmR3YXJlPyBZZXMsIGl0J3MgYSBNZWRpYVRlayBXaS1GaSA3IFBDSWUgZHJpdmVyLiBJcyBpdCBlbXVsYXRlZCBpbiBzdGFuZGFyZCBRRU1VPyBOby4gSXMgdGhlcmUgc29mdHdhcmUgZW11bGF0aW9uPyBOby4gVGhlcmVmb3JlLCBpdCdzIHVucmVhY2hhYmxlIGluIGVudmlyb25tZW50cyBsaWtlIEdDRSBvciBRRU1VLiBJZiBpdCAqd2VyZSogcmVhY2hhYmxlIGJ5IHN5emthbGxlcidzIFBDSSBmdXp6ZXIsIHRoZSBpbnN0cnVjdGlvbnMgd291bGRuJ3QgaGF2ZSB0aGF0IGV4Y2x1c2lvbi5cblxuRnVydGhlcm1vcmUsIGlzIGBtdDc5OTZgIGEgdmVuZG9yLXNwZWNpZmljIGRyaXZlcj8gWWVzLCBpdCdzIGEgTWVkaWFUZWsgZHJpdmVyLiBTbywgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGluc3RydWN0aW9ucywgaXQgc2hvdWxkIGJlIGBXb3J0aEZ1enppbmc9ZmFsc2VgLiBJIG5lZWQgdG8gYmUgY2VydGFpbiB0aGVyZSBpc24ndCBzb21lIGJhY2tkb29yIHdheSB0byByZWFjaCB0aGlzIGNvZGUuIElzIHRoZXJlIGFueSB3YXkgYG1hYzgwMjExX2h3c2ltYCBjb3VsZCByZWFjaCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYD8gTm8sIHRoYXQncyBhIHNlcGFyYXRlIGRyaXZlciBhbmQgaXQgaGFzIGl0cyBvd24gYGh3YCByZWdpc3RyYXRpb24uIEl0cyByZWdpc3RyYXRpb24gb2YgYGh3YCBkb2VzIG5vdCBjYWxsIGBtdDc5OTZgIGZ1bmN0aW9ucy4gVGhlcmVmb3JlLCBzaW5jZSBgbXQ3OTk2YCBpcyBuZXZlciBwcm9iZWQsIGl0IG5ldmVyIHJlZ2lzdGVycyBpdHMgYGh3YCwgc28gaXRzIGNhbGxiYWNrcyBuZXZlciBmaXJlLlxuXG5JIG5lZWQgdG8gY29uZmlybSBpZiB0aGVyZSBpcyBhbnkgb3RoZXIgcHJvYmluZyBtZWNoYW5pc20gZm9yIGBtdDc5OTZgIHRoYXQgSSd2ZSBtaXNzZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjIyMzAwLCJPdXRwdXRUb2tlbnMiOjQ5LCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MTE4NiwiVG9vbENhbGxzIjpbImNvZGVzZWFyY2gtZGlyLWluZGV4Il19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6NTIuNzMzMjM4NjM1WiIsIlNlcSI6MzgsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo0NTk0MzQ4OCwiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfcGNpX3Byb2JlXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYz03OT1zdGF0aWMgaW50IG10Nzk5Nl9wY2lfaGlmMl9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldilcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTk4LVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjk5OnN0YXRpYyBpbnQgbXQ3OTk2X3BjaV9wcm9iZShzdHJ1Y3QgcGNpX2RldiAqcGRldixcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xMDAtXFx0XFx0XFx0ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI0ND1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfaGlmX2RyaXZlciA9IHtcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI0Ni1cXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI0NzpcXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjQ4LVxcdC5yZW1vdmVcXHRcXHQ9IG10Nzk5Nl9oaWZfcmVtb3ZlLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM9MjUxPXN0cnVjdCBwY2lfZHJpdmVyIG10Nzk5Nl9wY2lfZHJpdmVyID0ge1xcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjUzLVxcdC5pZF90YWJsZVxcdD0gbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGUsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU0OlxcdC5wcm9iZVxcdFxcdD0gbXQ3OTk2X3BjaV9wcm9iZSxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTUtXFx0LnJlbW92ZVxcdFxcdD0gbXQ3OTk2X3BjaV9yZW1vdmUsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjExOjUyLjc3OTE4NjMwM1oiLCJTZXEiOjM5LCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo3MDYxNDAzOTczLCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiJPa2F5LCBoZXJlJ3MgbXkgdGFrZSBvbiB0aG9zZSB0aG91Z2h0cywgZnJhbWVkIGFzIGFuIGV4cGVydCdzIGludGVybmFsIG1vbm9sb2d1ZTpcblxuKipDb25zaWRlcmluZyBEZXZpY2UgVGFibGVzIGZvciBtdDc5OTYgSElGIGFuZCBQQ0kgSW5pdGlhbGl6YXRpb24qKlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUuLi4gSSdtIGN1cnJlbnRseSB3b3JraW5nIHdpdGggdGhlIGBtdDc5OTZgIGRyaXZlciwgZm9jdXNpbmcgb24gdGhlIGhhcmR3YXJlIGluaXRpYWxpemF0aW9uIHNlcXVlbmNlLiBTcGVjaWZpY2FsbHksIEknbSB0aGlua2luZyBhYm91dCBob3cgdGhlIHN5c3RlbSByZWNvZ25pemVzIGFuZCBjb25maWd1cmVzIHRoZXNlIHNwZWNpZmljIGRldmljZXMuIE15IG1pbmQgaXMgZHJhd24gdG8gdHdvIGNydWNpYWwgdGFibGVzLCByaWdodD8gYG10Nzk5Nl9oaWZfZGV2aWNlX3RhYmxlYCBhbmQgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYC5cblxuVGhlIEhJRiB0YWJsZSwgb2J2aW91c2x5LCBkZWFscyB3aXRoIHRoZSBIb3N0IEludGVyZmFjZSwgbGlrZWx5IHJlbGF0aW5nIHRvIHRoZSBpbnRlcm5hbCBidXMgcHJvdG9jb2wuIEl0J3MgcHJvYmFibHkgcmVzcG9uc2libGUgZm9yIG1hcHBpbmcgdGhlIGRldmljZSdzIHJlc291cmNlcyB3aGVuIGNvbm5lY3RlZCB2aWEgYW4gaW50ZXJuYWwgYnVzLiBUaGUgUENJIHRhYmxlLCBvbiB0aGUgb3RoZXIgaGFuZCwgZGVhbHMgd2l0aCB0aGUgaGFyZHdhcmUgc2V0dXAgaWYgdGhlIGRldmljZSBpcyBjb25uZWN0ZWQgdG8gYSBQQ0kgYnVzLiBFYWNoIHRhYmxlIHdvdWxkIGNvbnRhaW4gdGhlIHJlbGV2YW50IGRldmljZSBpbmZvcm1hdGlvbiwgd2hpY2ggSSBuZWVkIHRvIGdldCBmYW1pbGlhciB3aXRoIHRvIGJlZ2luIHNldHRpbmcgdXAgdGhlIGhhcmR3YXJlLlxuXG5BcmUgdGhlc2UgdHdvIHRhYmxlcyBzZXBhcmF0ZSBvciByZWxhdGVkPyBEb2VzIHRoZSBkcml2ZXIgY2hlY2sgZm9yIGEgY29ubmVjdGlvbiBvZiBhIFBDSSBidXMsIGFuZCB0aGVuIHJlZmVyZW5jZSB0aGUgYG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlYCB0byBnZXQgdGhlIG5lY2Vzc2FyeSBQQ0kgaWRlbnRpZmllcnM/IE9yIGlzIGl0IGEgbW9yZSBzb3BoaXN0aWNhdGVkIGFwcHJvYWNoIHdpdGggc2hhcmVkIGRhdGE/IEkgc2hvdWxkIGRpZyBpbnRvIHRoZSBjb2RlIGFuZCBzZWUgaG93IHRoZXNlIGFyZSB1c2VkLiBUaGUgZGV2aWNlIElEIGlzIGNyaXRpY2FsIGZvciB0aGUgZHJpdmVyIHRvIHBlcmZvcm0gUENJIHByb2JpbmcuIEkgc2hvdWxkIGFsc28gaW52ZXN0aWdhdGUgaG93IHRoZXNlIHRhYmxlcyBhcmUgYnVpbHQgYW5kIG1haW50YWluZWQuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI0OTM2LCJPdXRwdXRUb2tlbnMiOjUxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzIsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTE6NTkuODQwNTkzMDk2WiIsIlNlcSI6NDAsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjoyMjUxMzcwMDAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwibXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTE2PXN0YXRpYyB1MzIgaGlmX2lkeDtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xNy1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYzoxODpzdGF0aWMgY29uc3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgbXQ3OTk2X3BjaV9kZXZpY2VfdGFibGVbXSA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0xOS1cXHR7IFBDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9NRURJQVRFSywgTVQ3OTk2X0RFVklDRV9JRCkgfSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jPTI1MT1zdHJ1Y3QgcGNpX2RyaXZlciBtdDc5OTZfcGNpX2RyaXZlciA9IHtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTItXFx0Lm5hbWVcXHRcXHQ9IEtCVUlMRF9NT0ROQU1FLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jOjI1MzpcXHQuaWRfdGFibGVcXHQ9IG10Nzk5Nl9wY2lfZGV2aWNlX3RhYmxlLFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L3BjaS5jLTI1NC1cXHQucHJvYmVcXHRcXHQ9IG10Nzk5Nl9wY2lfcHJvYmUsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9wY2kuYy0yNTctXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmM6MjU4Ok1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5OTZfcGNpX2RldmljZV90YWJsZSk7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvcGNpLmMtMjU5LU1PRFVMRV9ERVZJQ0VfVEFCTEUocGNpLCBtdDc5OTZfaGlmX2RldmljZV90YWJsZSk7XFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjAwLjA2NTczNDI0N1oiLCJTZXEiOjQxLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo2MzMyMjEwMTM1LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKk15IEFzc2Vzc21lbnQgb2YgdGhlIFBDSSBEZXZpY2UgYW5kIEZ1enppbmcgRmVhc2liaWxpdHkqKlxuXG5Pa2F5LCBzbyB0aGlzIGlzIGEgcHVyZSBQQ0kgZGV2aWNlLCB3aGljaCBzaW1wbGlmaWVzIHNvbWUgYXNwZWN0cyBidXQgYWxzbyBwcmVzZW50cyB1bmlxdWUgY2hhbGxlbmdlcy4gTXkgaW5pdGlhbCBhc3N1bXB0aW9uIHdhcyB0aGF0IHN5emthbGxlciBtaWdodCBoYXZlIGEgcHNldWRvLXN5c2NhbGwgbGlrZSBgc3l6X3BjaV9zZXR1cGAgZm9yIGRpcmVjdCBQQ0kgaW50ZXJhY3Rpb25zLCBidXQgSSBxdWlja2x5IHJlbWVtYmVyIHRoYXQgc3l6a2FsbGVyIGRvZXNuJ3QgZGlyZWN0bHkgZXhwb3NlIHBzZXVkby1zeXNjYWxscyBmb3IgUENJIG9wZXJhdGlvbnMuIEhvd2V2ZXIsIHdhaXQgYSBtaW51dGUsIEkga25vdyBzeXprYWxsZXIgKmRvZXMqIGhhdmUgYSBQQ0kgZnV6emVyLCB3aGljaCBtYWtlcyBtZSByZWNvbnNpZGVyLlxuXG5NeSBuZXh0IHN0ZXAgaXMgdG8gc2VlIGlmIEkgY2FuIGZpbmQgc29tZSBQQ0kgc3BlY2lmaWMgc3l6IGZ1bmN0aW9uLiBJIG5lZWQgdG8gYmUgY2FyZWZ1bCB3aXRoIGBncmVwcGVyYCwgYXMgaXQncyBub3QgdGhlIHJpZ2h0IHRvb2wgZm9yIGBzeXpfYCBwc2V1ZG8tc3lzY2FsbHMuIEluc3RlYWQsIEknbGwgZm9jdXMgb24gUUVNVSdzIFBDSSBlbXVsYXRpb24gdG8gaWRlbnRpZnkgaG93IHN5emthbGxlciBhcHByb2FjaGVzIFBDSSBkZXZpY2VzLlxuXG5Pa2F5LCBzeXprYWxsZXIgdXRpbGl6ZXMgc3RhbmRhcmQgUUVNVS4gTm93IHRoZSBjcnV4IG9mIHRoZSBwcm9ibGVtOiBzdGFuZGFyZCBRRU1VIGRvZXNuJ3QgZW11bGF0ZSB0aGUgTWVkaWFUZWsgV2ktRmkgY2FyZCBpbnZvbHZlZCBoZXJlLiBUaGF0J3MgYSBtYWpvciByb2FkYmxvY2suIFRoaXMgbGFjayBvZiBlbXVsYXRpb24gbWVhbnMgdGhlIGRyaXZlciBmb3IgdGhpcyBkZXZpY2UgbGlrZWx5IHdvbid0IGV2ZW4gYmUgcHJvYmVkIGNvcnJlY3RseSBpbiB0aGUgZnV6emVyJ3MgZW52aXJvbm1lbnQuIEFuZCwgaWYgaXQncyBub3QgcHJvYmVkLCB0aGVuIGZ1enppbmcgdGhlIGRyaXZlciBpdHNlbGYgYmVjb21lcyBpbXBvc3NpYmxlLlxuXG5JIG5lZWQgdG8gY29uZmlybSB0aGF0IG15IGFzc3VtcHRpb25zIGFyZSBhY2N1cmF0ZS4gSSdsbCBuZWVkIHRvIGRvdWJsZSBjaGVjayBhbnkgb3RoZXIgcG9zc2libGUgY29kZSBwYXRocy4gT2theSwgdGhlIGZ1bmN0aW9uIGluIHF1ZXN0aW9uLCBgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwYCwgaXMgbm90IGEgc3RhdGljIGZ1bmN0aW9uLCB3aGljaCBtZWFucyBpdCBjYW4gYmUgY2FsbGVkIGZyb20gc29tZXdoZXJlLiBJdCdzIGVpdGhlciBleHBvcnRlZCBvciB1c2VkIHdpdGhpbiB0aGUgYG1hYy5jYCBmaWxlIGl0c2VsZi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjU4MjYsIk91dHB1dFRva2VucyI6NTMsIk91dHB1dFRob3VnaHRzVG9rZW5zIjoyMzUsIlRvb2xDYWxscyI6WyJncmVwcGVyIl19LHsiU3RhcnRlZCI6IjIwMjYtMDgtMjVUMTI6MTI6MDYuMzk3OTQ3NDkxWiIsIlNlcSI6NDIsIk5lc3RpbmciOjIsIlR5cGUiOiJ0b29sIiwiTmFtZSI6ImdyZXBwZXIiLCJNb2RlbCI6IiIsIkR1cmF0aW9uIjo1MjI1MTY1NywiRXJyb3IiOiIiLCJBcmdzIjoie1xuICBcIkV4cHJlc3Npb25cIjogXCJtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXBcIixcbiAgXCJQYXRoUHJlZml4XCI6IFwiZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvXCJcbn0iLCJSZXN1bHRzIjoie1xuICBcIk91dHB1dFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jPTMxMDg9bXQ3OTk2X21hY190d3RfcGFyYW1fZXF1YWwoc3RydWN0IG10Nzk5Nl9zdGFfbGluayAqbXN0YV9saW5rLFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbWFjLmMtMzEzNC1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWMuYzozMTM1OnZvaWQgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LFxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21hYy5jLTMxMzYtXFx0XFx0XFx0ICAgICAgc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSxcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21haW4uYz0yNTEwPWNvbnN0IHN0cnVjdCBpZWVlODAyMTFfb3BzIG10Nzk5Nl9vcHMgPSB7XFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU1Ni1cXHQuc3RhX3NldF9kZWNhcF9vZmZsb2FkID0gbXQ3OTk2X3N0YV9zZXRfZGVjYXBfb2ZmbG9hZCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmM6MjU1NzpcXHQuYWRkX3R3dF9zZXR1cCA9IG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCxcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tYWluLmMtMjU1OC1cXHQudHd0X3RlYXJkb3duX3JlcXVlc3QgPSBtdDc5OTZfdHd0X3RlYXJkb3duX3JlcXVlc3QsXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaD04OTA9dm9pZCBtdDc5OTZfbWFjX3N0YV9yZW1vdmVfbGluayhzdHJ1Y3QgbXQ3OTk2X2RldiAqZGV2LFxcbi0tXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtODkyLVxcdFxcdFxcdFxcdHVuc2lnbmVkIGludCBsaW5rX2lkLCBib29sIGZsdXNoKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tdDc5OTYuaDo4OTM6dm9pZCBtdDc5OTZfbWFjX2FkZF90d3Rfc2V0dXAoc3RydWN0IGllZWU4MDIxMV9odyAqaHcsXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbXQ3OTk2LmgtODk0LVxcdFxcdFxcdCAgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEsXFxuXCJcbn0iLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIiLCJJbnB1dFRva2VucyI6MCwiT3V0cHV0VG9rZW5zIjowLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MCwiVG9vbENhbGxzIjpudWxsfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjA2LjQ1MDIwMzcwOFoiLCJTZXEiOjQzLCJOZXN0aW5nIjoyLCJUeXBlIjoibGxtIiwiTmFtZSI6InBhdGNoLWV2YWx1YXRvciIsIk1vZGVsIjoiZ2VtaW5pLTMuMS1wcm8tcHJldmlldyIsIkR1cmF0aW9uIjo4MzkzMDI3MDI3LCJFcnJvciI6IiIsIkFyZ3MiOiJudWxsIiwiUmVzdWx0cyI6Im51bGwiLCJJbnN0cnVjdGlvbiI6IiIsIlByb21wdCI6IiIsIlJlcGx5IjoiIiwiVGhvdWdodHMiOiIqKlVucmVhY2hhYmxlIENvZGUgaW4gYSBWaXJ0dWFsaXplZCBFbnZpcm9ubWVudCoqXG5cbk9rYXksIHNvIEknbSBsb29raW5nIGF0IHRoaXMgYGFkZF90d3Rfc2V0dXBgIGZ1bmN0aW9uLCB3aGljaCBpcyBhcHBhcmVudGx5IHBhcnQgb2YgYG10Nzk5Nl9vcHNgLiBJIGtub3cgYG10Nzk5Nl9vcHNgIGdldHMgYXNzaWduZWQgdG8gYGh3LVx1MDAzZW9wc2AgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBsaWtlbHkgc29tZXdoZXJlIGxpa2UgYG10Nzk5Nl9pbml0X3dpcGh5YC4gQnV0IGhlcmUncyB0aGUga2lja2VyOiBgbXQ3OTk2X3BjaV9wcm9iZWAgbmV2ZXIgYWN0dWFsbHkgc3VjY2VlZHMuIFRoYXQgbWVhbnMgYG10Nzk5Nl9vcHNgIG5ldmVyIGdldHMgcHJvcGVybHkgcmVnaXN0ZXJlZCB3aXRoIGBtYWM4MDIxMWAuIFNvLCBieSBleHRlbnNpb24sIHRoYXQgYG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cGAgZnVuY3Rpb24/IEl0J3MgY29tcGxldGVseSB1bnJlYWNoYWJsZSBpbiBhbnkgc29ydCBvZiB2aXJ0dWFsaXplZCBlbnZpcm9ubWVudCwgYmVjYXVzZSB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIHRoZSBwaHlzaWNhbCBoYXJkd2FyZS5cblxuTm93LCB3YWl0IGEgbWludXRlLCBJIG5lZWQgdG8gY292ZXIgbXkgYmFzZXMuIElzIGBtdDc5OTZgIHBvdGVudGlhbGx5IGEgVVNCIGRyaXZlcj8gTm8gZGljZSwgY2hlY2tlZCB0aGF0LiBIb3cgYWJvdXQgYSBwbGF0Zm9ybSBkcml2ZXI/IE5vcGUsIG5vdGhpbmcgdGhlcmUgZWl0aGVyLiBXaGF0IGFib3V0IFNESU8/IE5vIG1hdGNoLiBJIHNob3VsZCBoYXZlIGNoZWNrZWQgdGhvc2UgZmlyc3QuXG5cbkFscmlnaHQsIGxldCdzIGJhY2sgdXAgYSBiaXQuIFNpbmNlIHRoaXMgaXMgYSBiaXQgb2YgYSBoZWFkIHNjcmF0Y2hlciwgSSBuZWVkIHRvIGNoZWNrIGZvciBhbnkgb3RoZXIgZHJpdmVyIHJlZ2lzdHJhdGlvbnMgaW4gYG10Nzk5NmAuXG5cblxuIiwiSW5wdXRUb2tlbnMiOjI3MTAwLCJPdXRwdXRUb2tlbnMiOjQyLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MjM3LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjE0Ljg0MzIzMzM3NloiLCJTZXEiOjQ0LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJncmVwcGVyIiwiTW9kZWwiOiIiLCJEdXJhdGlvbiI6NDgwNDI5ODgsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJFeHByZXNzaW9uXCI6IFwicmVnaXN0ZXJfZHJpdmVyXCIsXG4gIFwiUGF0aFByZWZpeFwiOiBcImRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L1wiXG59IiwiUmVzdWx0cyI6IntcbiAgXCJPdXRwdXRcIjogXCJkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM9ODY4PXN0YXRpYyBpbnQgX19pbml0IG10Nzk5Nl9pbml0KHZvaWQpXFxuLS1cXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmMtODcxLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4NzI6XFx0cmV0ID0gcGNpX3JlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzMtXFx0aWYgKHJldClcXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04NzUtXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg3NjpcXHRyZXQgPSBwY2lfcmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfcGNpX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3Ny1cXHRpZiAocmV0KVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYzo4Nzg6XFx0XFx0cGNpX3VucmVnaXN0ZXJfZHJpdmVyKFxcdTAwMjZtdDc5OTZfaGlmX2RyaXZlcik7XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg3OS1cXG4tLVxcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYz04ODM9c3RhdGljIHZvaWQgX19leGl0IG10Nzk5Nl9leGl0KHZvaWQpXFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jLTg4NC17XFxuZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5OTYvbW1pby5jOjg4NTpcXHRwY2lfdW5yZWdpc3Rlcl9kcml2ZXIoXFx1MDAyNm10Nzk5Nl9wY2lfZHJpdmVyKTtcXG5kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzk5Ni9tbWlvLmM6ODg2OlxcdHBjaV91bnJlZ2lzdGVyX2RyaXZlcihcXHUwMDI2bXQ3OTk2X2hpZl9kcml2ZXIpO1xcbmRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTk2L21taW8uYy04ODctfVxcblwiXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMjoxNC44OTEyODE0NTRaIiwiU2VxIjo0NSwiTmVzdGluZyI6MiwiVHlwZSI6ImxsbSIsIk5hbWUiOiJwYXRjaC1ldmFsdWF0b3IiLCJNb2RlbCI6ImdlbWluaS0zLjEtcHJvLXByZXZpZXciLCJEdXJhdGlvbiI6ODMxNDQ1MTE4MSwiRXJyb3IiOiIiLCJBcmdzIjoibnVsbCIsIlJlc3VsdHMiOiJudWxsIiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiKipNeSBBc3Nlc3NtZW50OiBUaGlzIFdpLUZpIERyaXZlciBJc24ndCBGdXp6YWJsZSAoRm9yIE5vdykqKlxuXG5Pa2F5LCBzbyBJJ20gbG9va2luZyBhdCB0aGlzIGRyaXZlciwgYW5kIHRoZSBrZXkgZnVuY3Rpb24gaGVyZSBpcyBgcGNpX3JlZ2lzdGVyX2RyaXZlcmAuIFRoYXQncyBhIGh1Z2UgY2x1ZSByaWdodCBvZmYgdGhlIGJhdCAtIHRoaXMgaXMgYSBwdXJlIFBDSWUgZHJpdmVyLiBBbmQgYmVjYXVzZSBpdCBuZWVkcyBhY3R1YWwgcGh5c2ljYWwgUENJZSBoYXJkd2FyZSwgd2hpY2ggUUVNVSBhbmQgR0NFIGp1c3QgY2FuJ3QgZW11bGF0ZSwgaXQncyBpbW1lZGlhdGVseSBvdXQgb2YgcmVhY2ggaW4gdGhvc2UgdmlydHVhbGl6ZWQgZW52aXJvbm1lbnRzLiBObyBkaWNlLiBUaGF0IG1lYW5zIHRoZSBgV29ydGhGdXp6aW5nYCBmbGFnIGlzIGRlZmluaXRlbHkgYGZhbHNlYC5cblxuV2FpdCwgaG9sZCBvbi4gTGV0IG1lIGdvIGJhY2sgYW5kIGRvdWJsZSBjaGVjayBzb21ldGhpbmcuIFJpZ2h0LCB0aGUgaW5zdHJ1Y3Rpb25zIGFyZSB2ZXJ5IHNwZWNpZmljOiBcIkNvZGUgaW4gdmVuZG9yLXNwZWNpZmljIFBDSWUgc3dpdGNoLCBTbWFydE5JQywgb3IgR1BVIGRyaXZlcnMuLi4gdGhhdCByZXF1aXJlIHBoeXNpY2FsIFBDSWUgaGFyZHdhcmUuXCIgRXZlbiB0aG91Z2ggdGhpcyBpcyBhIFdpLUZpIGRyaXZlciwgdGhlIHByaW5jaXBsZSBpcyB0aGUgc2FtZS4gSXQncyB0aGUgc2FtZSBjYXRlZ29yeS4gQW5kIHRoZW4gdGhlcmUncyB0aGUgb3RoZXIgcG9pbnQ6IFwiQ29kZSBwYXRocyB0aGF0IGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGluIHZpcnR1YWxpemVkIGVudmlyb25tZW50cywgZXZlbiB3aGVuIHVzaW5nIHNvZnR3YXJlLWVtdWxhdGVkIGhhcmR3YXJlLlwiIFRoYXQgcGVyZmVjdGx5IGRlc2NyaWJlcyB0aGUgc2l0dWF0aW9uIHdpdGggdGhpcyBgbXQ3NmAgZHJpdmVyLlxuXG5BbHJpZ2h0LCBsZXQncyBzZWUgd2hhdCBTeXprYWxsZXIgc2F5cy4gSXMgdGhlcmUgYW55IHdheSB0byBhY3R1YWxseSB0YXJnZXQgdGhlIGBtdDc2YCBQQ0llIGRyaXZlcnM/IEkgc2VlIHNvbWUgbWVudGlvbnMgb2YgdGhpbmdzIGxpa2UgYHN5el84MDIxMV9pbmplY3RfZnJhbWVgIGFuZCBgc3l6XzgwMjExX2pvaW5faWJzc2AsIGJ1dCB0aG9zZSBhcmUgYWxsIGJ1aWx0IGZvciBgbWFjODAyMTFfaHdzaW1gIG9yIG90aGVyIHZpcnR1YWwgaW50ZXJmYWNlcy4gVGhleSBjYW4ndCBpbnN0YW50aWF0ZSBhIHJlYWwgYG10Nzk5NmAgUENJZSBkZXZpY2UuIFllcCwgdGhlIGNvZGUncyB1bnJlYWNoYWJsZSwgcGVyaW9kLlxuXG5TbywgSSdtIGdvaW5nIHRvIHNldCBgV29ydGhGdXp6aW5nPWZhbHNlYC4gSSdsbCBtYWtlIHN1cmUgdG8gcHJvdmlkZSB0aGlzIGRldGFpbGVkIGV4cGxhbmF0aW9uIGFzIHRoZSByZWFzb25pbmcgYmVoaW5kIHRoZSBkZWNpc2lvbi5cblxuXG4iLCJJbnB1dFRva2VucyI6MjgyMTYsIk91dHB1dFRva2VucyI6MTIxLCJPdXRwdXRUaG91Z2h0c1Rva2VucyI6MzM2LCJUb29sQ2FsbHMiOlsiZ3JlcHBlciJdfSx7IlN0YXJ0ZWQiOiIyMDI2LTA4LTI1VDEyOjEyOjIzLjIwNTczNTQ4NVoiLCJTZXEiOjQ2LCJOZXN0aW5nIjoyLCJUeXBlIjoidG9vbCIsIk5hbWUiOiJzZXQtcmVzdWx0cyIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIwMzYwLCJFcnJvciI6IiIsIkFyZ3MiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBbXSxcbiAgXCJGb2N1c1N5bWJvbHNcIjogW10sXG4gIFwiUmVhc29uaW5nXCI6IFwiVGhlIHBhdGNoIG1vZGlmaWVzIHRoZSBNZWRpYVRlayBNVDc5OTYgV2ktRmkgZHJpdmVyLCB3aGljaCBpcyBhIHZlbmRvci1zcGVjaWZpYyBQQ0llIGRyaXZlci4gU2luY2Ugc3RhbmRhcmQgUUVNVS9HQ0UgZW52aXJvbm1lbnRzIGRvIG5vdCBlbXVsYXRlIHRoaXMgc3BlY2lmaWMgTWVkaWFUZWsgUENJZSBoYXJkd2FyZSwgdGhlIGRyaXZlciBjYW5ub3QgYmUgc3VjY2Vzc2Z1bGx5IHByb2JlZC4gQ29uc2VxdWVudGx5LCBpdHMgbWFjODAyMTEgY2FsbGJhY2tzIChsaWtlIG10Nzk5Nl9tYWNfYWRkX3R3dF9zZXR1cCkgYXJlIG5ldmVyIHJlZ2lzdGVyZWQgYW5kIGFyZSBpbXBvc3NpYmxlIHRvIHJlYWNoIGR1cmluZyBmdXp6aW5nLlwiLFxuICBcIldvcnRoRnV6emluZ1wiOiBmYWxzZVxufSIsIlJlc3VsdHMiOiJ7XG4gIFwiRW5hYmxlQ29uZmlnc1wiOiBudWxsLFxuICBcIkZvY3VzU3ltYm9sc1wiOiBbXSxcbiAgXCJSZWFzb25pbmdcIjogXCJUaGUgcGF0Y2ggbW9kaWZpZXMgdGhlIE1lZGlhVGVrIE1UNzk5NiBXaS1GaSBkcml2ZXIsIHdoaWNoIGlzIGEgdmVuZG9yLXNwZWNpZmljIFBDSWUgZHJpdmVyLiBTaW5jZSBzdGFuZGFyZCBRRU1VL0dDRSBlbnZpcm9ubWVudHMgZG8gbm90IGVtdWxhdGUgdGhpcyBzcGVjaWZpYyBNZWRpYVRlayBQQ0llIGhhcmR3YXJlLCB0aGUgZHJpdmVyIGNhbm5vdCBiZSBzdWNjZXNzZnVsbHkgcHJvYmVkLiBDb25zZXF1ZW50bHksIGl0cyBtYWM4MDIxMSBjYWxsYmFja3MgKGxpa2UgbXQ3OTk2X21hY19hZGRfdHd0X3NldHVwKSBhcmUgbmV2ZXIgcmVnaXN0ZXJlZCBhbmQgYXJlIGltcG9zc2libGUgdG8gcmVhY2ggZHVyaW5nIGZ1enppbmcuXCIsXG4gIFwiV29ydGhGdXp6aW5nXCI6IGZhbHNlXG59IiwiSW5zdHJ1Y3Rpb24iOiIiLCJQcm9tcHQiOiIiLCJSZXBseSI6IiIsIlRob3VnaHRzIjoiIiwiSW5wdXRUb2tlbnMiOjAsIk91dHB1dFRva2VucyI6MCwiT3V0cHV0VGhvdWdodHNUb2tlbnMiOjAsIlRvb2xDYWxscyI6bnVsbH0seyJTdGFydGVkIjoiMjAyNi0wOC0yNVQxMjoxMjoyMy4yMDU3NTkzOTVaIiwiU2VxIjo0NywiTmVzdGluZyI6MSwiVHlwZSI6ImFjdGlvbiIsIk5hbWUiOiJJZiIsIk1vZGVsIjoiIiwiRHVyYXRpb24iOjIzNzAsIkVycm9yIjoiIiwiQXJncyI6IntcbiAgXCJXb3J0aEZ1enppbmdcIjogZmFsc2Vcbn0iLCJSZXN1bHRzIjoibnVsbCIsIkluc3RydWN0aW9uIjoiIiwiUHJvbXB0IjoiIiwiUmVwbHkiOiIiLCJUaG91Z2h0cyI6IiIsIklucHV0VG9rZW5zIjowLCJPdXRwdXRUb2tlbnMiOjAsIk91dHB1dFRob3VnaHRzVG9rZW5zIjowLCJUb29sQ2FsbHMiOm51bGx9XTsKCQkJaWYgKCFyYXdEYXRhIHx8IHJhd0RhdGEubGVuZ3RoID09PSAwKSByZXR1cm47CgoJCQlkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKTsKCQkJZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSk7CgkJCWRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSk7CgkJfQoKCQlmdW5jdGlvbiBkcmF3U3VtbWFyeVRhYmxlcyhyYXdEYXRhKSB7CgkJCWNvbnN0IHN0YXRzID0gewoJCQkJbGxtOiB7IGNvdW50OiAwLCB0b2tlbnM6IDAsIGR1cmF0aW9uOiAwIH0sCgkJCQl0b29sOiB7IGNvdW50OiAwLCBkdXJhdGlvbjogMCB9CgkJCX07CgoJCQlyYXdEYXRhLmZvckVhY2gocyA9PiB7CgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsgCgkJCQlpZiAocy5UeXBlID09PSAibGxtIikgewoJCQkJCXN0YXRzLmxsbS5jb3VudCsrOwoJCQkJCXN0YXRzLmxsbS50b2tlbnMgKz0gKHMuSW5wdXRUb2tlbnMgKyBzLk91dHB1dFRva2VucyArIHMuT3V0cHV0VGhvdWdodHNUb2tlbnMpOwoJCQkJCXN0YXRzLmxsbS5kdXJhdGlvbiArPSBkdXI7CgkJCQl9IGVsc2UgaWYgKHMuVHlwZSA9PT0gInRvb2wiKSB7CgkJCQkJc3RhdHMudG9vbC5jb3VudCsrOwoJCQkJCXN0YXRzLnRvb2wuZHVyYXRpb24gKz0gZHVyOwoJCQkJfQoJCQl9KTsKCgkJCWNvbnN0IGF2Z0xsbUR1ciA9IHN0YXRzLmxsbS5jb3VudCA+IDAgPyAoc3RhdHMubGxtLmR1cmF0aW9uIC8gc3RhdHMubGxtLmNvdW50KS50b0ZpeGVkKDIpIDogMDsKCQkJY29uc3QgYXZnTGxtVG9rZW4gPSBzdGF0cy5sbG0uY291bnQgPiAwID8gKHN0YXRzLmxsbS50b2tlbnMgLyBzdGF0cy5sbG0uY291bnQpLnRvRml4ZWQoMikgOiAwOwoJCQljb25zdCBhdmdUb29sRHVyID0gc3RhdHMudG9vbC5jb3VudCA+IDAgPyAoc3RhdHMudG9vbC5kdXJhdGlvbiAvIHN0YXRzLnRvb2wuY291bnQpLnRvRml4ZWQoMikgOiAwOwoKCQkJY29uc3QgbGxtU3VtYXJ5Q2VsbHMgPSBbc3RhdHMubGxtLmNvdW50LCBzdGF0cy5sbG0udG9rZW5zLCBhdmdMbG1Ub2tlbiwgc3RhdHMubGxtLmR1cmF0aW9uLCBhdmdMbG1EdXJdOwoJCQljb25zdCB0b29sU3VtbWFyeUNlbGxzID0gW3N0YXRzLnRvb2wuY291bnQsIHN0YXRzLnRvb2wuZHVyYXRpb24sIGF2Z1Rvb2xEdXJdOwoKCQkJY29uc3QgbGxtU3VtbWFyeUJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGxtX3N1bW1hcnlfc3RhdHNfYm9keScpOwoJCQlsbG1TdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgbGxtVHIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0cicpOwoJCQlsbG1TdW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJbGxtVHIuYXBwZW5kQ2hpbGQodGQpOwoJCQl9KTsKCQkJbGxtU3VtbWFyeUJvZHkuYXBwZW5kQ2hpbGQobGxtVHIpOwoKCQkJY29uc3QgdG9vbFN1bW1hcnlCb2R5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rvb2xfc3VtbWFyeV9zdGF0c19ib2R5Jyk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5pbm5lckhUTUwgPSAiIjsKCQkJY29uc3QgdG9vbFRyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTsKCQkJdG9vbFN1bW1hcnlDZWxscy5mb3JFYWNoKGNlbGwgPT4gewoJCQkJY29uc3QgdGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZCcpOwoJCQkJdGQudGV4dENvbnRlbnQgPSBjZWxsOwoJCQkJdG9vbFRyLmFwcGVuZENoaWxkKHRkKTsKCQkJfSk7CgkJCXRvb2xTdW1tYXJ5Qm9keS5hcHBlbmRDaGlsZCh0b29sVHIpOwoJCX0KCgkJZnVuY3Rpb24gZHJhd0R1cmF0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBmaWx0ZXJlZFN0ZXBzID0gcmF3RGF0YS5maWx0ZXIoZCA9PiBbImxsbSIsICJ0b29sIl0uaW5jbHVkZXMoZC5UeXBlKSk7CgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ0R1cmF0aW9uJyk7CgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7IAoKCQkJZmlsdGVyZWRTdGVwcy5mb3JFYWNoKHMgPT4gewoJCQkJCgkJCQljb25zdCBkdXIgPSBzLkR1cmF0aW9uIC8gMTAwMDAwMDAwMDsKCQkJCWxldCB0b29sdGlwID0gcy5OYW1lOwoJCQkJaWYgKHMuVHlwZSA9PT0gImxsbSIgJiYgcy5Ub29sQ2FsbHMgJiYgcy5Ub29sQ2FsbHMubGVuZ3RoID4gMCkgewoJCQkJCXRvb2x0aXAgKz0gYFxuVG9vbHM6ICR7cy5Ub29sQ2FsbHMuam9pbignLCAnKX1gOwoJCQkJfQoJCQkJZGF0YS5hZGRSb3coW2Ake3MuU2VxfWAsIGR1ciwgdG9vbHRpcF0pOwoJCQl9KTsKCgkJCWNvbnN0IG9wdGlvbnMgPSB7CgkJCQl0aXRsZTogJ1RpbWUgQ29uc3VtcHRpb24gb2YgTExNL1Rvb2wgQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTS9Ub29sIFN0ZXBzJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ1NlY29uZHMnIH0sCgkJCQlsZWdlbmQ6IHsgcG9zaXRpb246ICdub25lJyB9LAoJCQkJYmFyOiB7IGdyb3VwV2lkdGg6ICc3NSUnIH0sCgkJCQljaGFydEFyZWE6IHsgd2lkdGg6ICc4NSUnLCBoZWlnaHQ6ICc3MCUnIH0sCgkJCQloZWlnaHQ6IDQwMAoJCQl9OwoKCQkJY29uc3QgY2hhcnQgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uQ29sdW1uQ2hhcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2R1cmF0aW9uX2NoYXJ0X2RpdicpKTsKCQkJY2hhcnQuZHJhdyhkYXRhLCBvcHRpb25zKTsKCQl9CgoJCWZ1bmN0aW9uIGRyYXdUb2tlbkNvbnN1bXB0aW9uQ2hhcnQocmF3RGF0YSkgewoJCQljb25zdCBsbG1TdGVwcyA9IHJhd0RhdGEuZmlsdGVyKGQgPT4gZC5UeXBlID09PSAibGxtIik7CgkJCWlmIChsbG1TdGVwcy5sZW5ndGggPT09IDApIHJldHVybjsKCgkJCWNvbnN0IGRhdGEgPSBuZXcgZ29vZ2xlLnZpc3VhbGl6YXRpb24uRGF0YVRhYmxlKCk7CgkJCWRhdGEuYWRkQ29sdW1uKCdzdHJpbmcnLCAnU3RlcCcpOwkJCQoJCQlkYXRhLmFkZENvbHVtbignbnVtYmVyJywgJ1Rva2VucycpOwkJCQoJCQlkYXRhLmFkZENvbHVtbih7dHlwZTogJ3N0cmluZycsIHJvbGU6ICdzdHlsZSd9KTsJCgkJCWRhdGEuYWRkQ29sdW1uKHt0eXBlOiAnc3RyaW5nJywgcm9sZTogJ3Rvb2x0aXAnfSk7CQoKCQkJY29uc3QgYWdlbnRDb2xvcnMgPSB7fTsKCQkJY29uc3QgcGFsZXR0ZSA9IFsnIzQyODVGNCcsICcjREI0NDM3JywgJyNGNEI0MDAnLCAnIzBGOUQ1OCcsICcjQUI0N0JDJywgJyMwMEFDQzEnXTsKCQkJbGV0IGNvbG9ySWR4ID0gMDsKCQkJY29uc3QgYWdlbnRMTE1Db3VudHMgPSB7fTsKCQkJbGxtU3RlcHMuZm9yRWFjaChzID0+IHsKCQkJCWlmICghYWdlbnRDb2xvcnNbcy5OYW1lXSkgewoJCQkJCWFnZW50Q29sb3JzW3MuTmFtZV0gPSBwYWxldHRlW2NvbG9ySWR4ICUgcGFsZXR0ZS5sZW5ndGhdOwoJCQkJCWNvbG9ySWR4Kys7CgkJCQl9CgoJCQkJYWdlbnRMTE1Db3VudHNbcy5OYW1lXSA9IChhZ2VudExMTUNvdW50c1tzLk5hbWVdIHx8IDApICsgMTsKCQkJCWNvbnN0IGxhYmVsID0gYCR7cy5OYW1lfS0ke2FnZW50TExNQ291bnRzW3MuTmFtZV19YDsKCQkJCWNvbnN0IHRvdGFsVG9rZW5zID0gcy5JbnB1dFRva2VucyArIHMuT3V0cHV0VG9rZW5zICsgcy5PdXRwdXRUaG91Z2h0c1Rva2VuczsKCQkJCWNvbnN0IHN0eWxlID0gYGNvbG9yOiAke2FnZW50Q29sb3JzW3MuTmFtZV19YDsKCQkJCWxldCB0b29sdGlwID0gYFRvdGFsIFRva2VuczogJHt0b3RhbFRva2Vuc31cbihJbjogJHtzLklucHV0VG9rZW5zfSwgT3V0OiAke3MuT3V0cHV0VG9rZW5zfSwgVGhvdWdodHM6ICR7cy5PdXRwdXRUaG91Z2h0c1Rva2Vuc30pYDsKCQkJCWlmIChzLlRvb2xDYWxscyAmJiBzLlRvb2xDYWxscy5sZW5ndGggPiAwKSB7CgkJCQkJdG9vbHRpcCArPSBgXG5Ub29sczogJHtzLlRvb2xDYWxscy5qb2luKCcsICcpfWA7CgkJCQl9CgoJCQkJZGF0YS5hZGRSb3coW2xhYmVsLCB0b3RhbFRva2Vucywgc3R5bGUsIHRvb2x0aXBdKTsKCQkJfSk7CgoJCQljb25zdCBvcHRpb25zID0gewoJCQkJdGl0bGU6ICdUb2tlbiBDb25zdW1wdGlvbiBieSBMTE0gQ2FsbHMnLAoJCQkJaEF4aXM6IHsKCQkJCQl0aXRsZTogJ0xMTSBDYWxsIFNlcXVlbmNlJywKCQkJCX0sCgkJCQl2QXhpczogeyB0aXRsZTogJ0NvbnN1bWVkIFRva2VucycgfSwKCQkJCWxlZ2VuZDogeyBwb3NpdGlvbjogJ25vbmUnIH0sCgkJCQliYXI6IHsgZ3JvdXBXaWR0aDogJzc1JScgfSwKCQkJCWNoYXJ0QXJlYTogeyB3aWR0aDogJzg1JScsIGhlaWdodDogJzcwJScgfSwKCQkJCWhlaWdodDogNDAwCgkJCX07CgoJCQljb25zdCBjaGFydCA9IG5ldyBnb29nbGUudmlzdWFsaXphdGlvbi5Db2x1bW5DaGFydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9rZW5fY2hhcnRfZGl2JykpOwoJCQljaGFydC5kcmF3KGRhdGEsIG9wdGlvbnMpOwoJCX0KCQlsZXQgYWxsRXhwYW5kZWQgPSBmYWxzZTsKCQlmdW5jdGlvbiB0b2dnbGVBbGxEZXRhaWxzKCkgewoJCQlhbGxFeHBhbmRlZCA9ICFhbGxFeHBhbmRlZDsKCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnZGV0YWlscycpLmZvckVhY2goZCA9PiB7CgkJCQlpZiAoYWxsRXhwYW5kZWQpIGQuc2V0QXR0cmlidXRlKCdvcGVuJywgJycpOwoJCQkJZWxzZSBkLnJlbW92ZUF0dHJpYnV0ZSgnb3BlbicpOwoJCQl9KTsKCQl9Cgk8L3NjcmlwdD4KCgo8L2JvZHk+CjwvaHRtbD4K" },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-workflowm58nc[1] Phase: Running StartedAt: 2026-08-25 12:12:34 +0000 UTC FinishedAt: 0001-01-01 00:00:00 +0000 UTC Input: nil Output: nil --------- Name: series-workflowm58nc[1].abort-on-skip-outcome Phase: Failed StartedAt: 2026-08-25 12:12:34 +0000 UTC FinishedAt: 2026-08-25 12:12:38 +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,}