ZGlmZiAtLWdpdCBhL2JvYXJkL3B4YTI1NV9pZHAvTWFrZWZpbGUgYi9ib2FyZC9weGEyNTVfaWRwL01ha2VmaWxlCmluZGV4IDQ4OTJiNDIuLjI4MzVmMzcgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B4YTI1NV9pZHAvTWFrZWZpbGUKKysrIGIvYm9hcmQvcHhhMjU1X2lkcC9NYWtlZmlsZQpAQCAtMjcsMTcgKzI3LDE1IEBACiBMSUIJPSAkKG9iailsaWIkKEJPQVJEKS5hCiAKIENPQkpTCTo9IHB4YV9pZHAubwotU09CSlMJOj0gbG93bGV2ZWxfaW5pdC5vCiAKLVNSQ1MJOj0gJChTT0JKUzoubz0uUykgJChDT0JKUzoubz0uYykKK1NSQ1MJOj0gJChDT0JKUzoubz0uYykKIE9CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoQ09CSlMpKQotU09CSlMJOj0gJChhZGRwcmVmaXggJChvYmopLCQoU09CSlMpKQogCi0kKExJQik6CSQob2JqKS5kZXBlbmQgJChPQkpTKSAkKFNPQkpTKQotCSQoQVIpICQoQVJGTEFHUykgJEAgJChPQkpTKSAkKFNPQkpTKQorJChMSUIpOgkkKG9iaikuZGVwZW5kICQoT0JKUykKKwkkKEFSKSAkKEFSRkxBR1MpICRAICQoT0JKUykKIAogY2xlYW46Ci0Jcm0gLWYgJChTT0JKUykgJChPQkpTKQorCXJtIC1mICQoT0JKUykKIAogZGlzdGNsZWFuOgljbGVhbgogCXJtIC1mICQoTElCKSBjb3JlICouYmFrICQob2JqKS5kZXBlbmQKZGlmZiAtLWdpdCBhL2JvYXJkL3B4YTI1NV9pZHAvY29uZmlnLm1rIGIvYm9hcmQvcHhhMjU1X2lkcC9jb25maWcubWsKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzMGY2OTUuLjAwMDAwMDAKLS0tIGEvYm9hcmQvcHhhMjU1X2lkcC9jb25maWcubWsKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLSNDT05GSUdfU1lTX1RFWFRfQkFTRSA9IDB4YTE3MDAwMDAKLUNPTkZJR19TWVNfVEVYVF9CQVNFID0gMHhhMzA4MDAwMAotI0NPTkZJR19TWVNfVEVYVF9CQVNFID0gMApkaWZmIC0tZ2l0IGEvYm9hcmQvcHhhMjU1X2lkcC9sb3dsZXZlbF9pbml0LlMgYi9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTUwNzYwZi4uMDAwMDAwMAotLS0gYS9ib2FyZC9weGEyNTVfaWRwL2xvd2xldmVsX2luaXQuUworKysgL2Rldi9udWxsCkBAIC0xLDQ5NiArMCwwIEBACi0vKgotICogTW9zdCBvZiB0aGlzIHRha2VuIGZyb20gUmVkYm9vdCBoYWxfcGxhdGZvcm1fc2V0dXAuaCB3aXRoIGNsZWFudXAKLSAqCi0gKiBOT1RFOiBJIGhhdmVuJ3QgY2xlYW4gdGhpcyB1cCBjb25zaWRlcmFibHksIGp1c3QgZW5vdWdoIHRvIGdldCBpdAotICogcnVubmluZy4gU2VlIGhhbF9wbGF0Zm9ybV9zZXR1cC5oIGZvciB0aGUgc291cmNlLiBTZWUKLSAqIGJvYXJkL2NyYWRsZS9sb3dsZXZlbF9pbml0LlMgZm9yIGFub3RoZXIgUFhBMjUwIHNldHVwIHRoYXQgaXMKLSAqIG11Y2ggY2xlYW5lci4KLSAqCi0gKiBTZWUgZmlsZSBDUkVESVRTIGZvciBsaXN0IG9mIHBlb3BsZSB3aG8gY29udHJpYnV0ZWQgdG8gdGhpcwotICogcHJvamVjdC4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YKLSAqIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLAotICogTUEgMDIxMTEtMTMwNyBVU0EKLSAqLwotCi0jaW5jbHVkZSA8Y29uZmlnLmg+Ci0jaW5jbHVkZSA8dmVyc2lvbi5oPgotI2luY2x1ZGUgPGFzbS9hcmNoL3B4YS1yZWdzLmg+Ci0KLURSQU1fU0laRTogIC5sb25nICAgQ09ORklHX1NZU19EUkFNX1NJWkUKLQotLyogd2FpdCBmb3IgY29wcm9jZXNzb3Igd3JpdGUgY29tcGxldGUgKi8KLQkubWFjcm8gQ1BXQUlUIHJlZwotCW1yYyAgcDE1LDAsXHJlZyxjMixjMCwwCi0JbW92ICBccmVnLFxyZWcKLQlzdWIgIHBjLHBjLCM0Ci0JLmVuZG0KLQotLyoKLSAqCU1lbW9yeSBzZXR1cAotICovCi0uZ2xvYmwgbG93bGV2ZWxfaW5pdAotbG93bGV2ZWxfaW5pdDoKLQotCW1vdiAgICAgIHIxMCwgbHIKLQotI2lmZGVmIERFQlVHX0JMSU5LX0VOQUJMRQotCS8qIDNyZCBibGluayAqLwotCWJsCWJsaW5rCi0jZW5kaWYKLQotCS8qIFNldCB1cCBHUElPIHBpbnMgZmlyc3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQlsZHIJCXIwLAk9R1BTUjAKLQlsZHIJCXIxLAk9Q09ORklHX1NZU19HUFNSMF9WQUwKLQlzdHIJCXIxLCAgIFtyMF0KLQotCWxkcgkJcjAsCT1HUFNSMQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQU1IxX1ZBTAotCXN0cgkJcjEsICAgW3IwXQotCi0JbGRyCQlyMCwJPUdQU1IyCi0JbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BTUjJfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R1BDUjAKLQlsZHIJCXIxLAk9Q09ORklHX1NZU19HUENSMF9WQUwKLQlzdHIJCXIxLCAgIFtyMF0KLQotCWxkcgkJcjAsCT1HUENSMQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQQ1IxX1ZBTAotCXN0cgkJcjEsICAgW3IwXQotCi0JbGRyCQlyMCwJPUdQQ1IyCi0JbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BDUjJfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R1BEUjAKLQlsZHIJCXIxLAk9Q09ORklHX1NZU19HUERSMF9WQUwKLQlzdHIJCXIxLCAgIFtyMF0KLQotCWxkcgkJcjAsCT1HUERSMQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dQRFIxX1ZBTAotCXN0cgkJcjEsICAgW3IwXQotCi0JbGRyCQlyMCwJPUdQRFIyCi0JbGRyCQlyMSwJPUNPTkZJR19TWVNfR1BEUjJfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjBfTAotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX0xfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjBfVQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIwX1VfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjFfTAotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX0xfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjFfVQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIxX1VfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjJfTAotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX0xfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJCXIwLAk9R0FGUjJfVQotCWxkcgkJcjEsCT1DT05GSUdfU1lTX0dBRlIyX1VfVkFMCi0Jc3RyCQlyMSwgICBbcjBdCi0KLQlsZHIJcjAsCT1QU1NSCQkvKiBlbmFibGUgR1BJTyBwaW5zICovCi0JbGRyCQlyMSwJPUNPTkZJR19TWVNfUFNTUl9WQUwKLQlzdHIJCXIxLCAgIFtyMF0KLQotI2lmZGVmIERFQlVHX0JMSU5LX0VOQUJMRQotCS8qIDR0aCBkZWJ1ZyBibGluayAqLwotCWJsCWJsaW5rCi0jZW5kaWYKLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBFbmFibGUgbWVtb3J5IGludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCS8qIFRoZSBzZXF1ZW5jZSBiZWxvdyBpcyBiYXNlZCBvbiB0aGUgcmVjb21tZW5kZWQgaW5pdCBzdGVwcyAgICAgICAgKi8KLQkvKiBkZXRhaWxlZCBpbiB0aGUgSW50ZWwgUFhBMjUwIE9wZXJhdGluZyBTeXN0ZW1zIERldmVsb3BlcnMgR3VpZGUsICovCi0JLyogQ2hhcHRlciAxMC4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBTdGVwIDE6IFdhaXQgZm9yIGF0IGxlYXN0IDIwMCBtaWNyb3NlZG9uZHMgdG8gYWxsb3cgaW50ZXJuYWwgICAgICovCi0JLyogICAgICAgICBjbG9ja3MgdG8gc2V0dGxlLiBPbmx5IG5lY2Vzc2FyeSBhZnRlciBoYXJkIHJlc2V0Li4uICAgICAqLwotCS8qICAgICAgICAgRklYTUU6IGNhbiBiZSBvcHRpbWl6ZWQgbGF0ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLQlsZHIgcjMsID1PU0NSCQkJLyogcmVzZXQgdGhlIE9TIFRpbWVyIENvdW50IHRvIHplcm8gKi8KLQltb3YgcjIsICMwCi0Jc3RyIHIyLCBbcjNdCi0JbGRyIHI0LCA9MHgzMDAJCQkvKiByZWFsbHkgMHgyRTEgaXMgYWJvdXQgMjAwdXNlYywgICAqLwotCQkJCQkvKiBzbyAweDMwMCBzaG91bGQgYmUgcGxlbnR5ICAgICAgICAqLwotMToKLQlsZHIgcjIsIFtyM10KLQljbXAgcjQsIHIyCi0JYmd0IDFiCi0KLW1lbV9pbml0OgotCi0JbGRyICAgICByMSwgID1NRU1DX0JBU0UJCS8qIGdldCBtZW1vcnkgY29udHJvbGxlciBiYXNlIGFkZHIuICovCi0KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0JLyogU3RlcCAyYTogSW5pdGlhbGl6ZSBBc3luY2hyb25vdXMgc3RhdGljIG1lbW9yeSBjb250cm9sbGVyICAgICAgICAqLwotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotCS8qIE1TQyByZWdpc3RlcnM6IHRpbWluZywgYnVzIHdpZHRoLCBtZW0gdHlwZSAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCS8qIE1TQzA6IG5DUygwLDEpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgID1DT05GSUdfU1lTX01TQzBfVkFMCi0Jc3RyICAgICByMiwgICBbcjEsICNNU0MwX09GRlNFVF0KLQlsZHIgICAgIHIyLCAgIFtyMSwgI01TQzBfT0ZGU0VUXQkvKiByZWFkIGJhY2sgdG8gZW5zdXJlICAgICAgKi8KLQkJCQkJCS8qIHRoYXQgZGF0YSBsYXRjaGVzICAgICAgICAqLwotCS8qIE1TQzE6IG5DUygyLDMpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTVNDMV9WQUwKLQlzdHIgICAgIHIyLCAgW3IxLCAjTVNDMV9PRkZTRVRdCi0JbGRyICAgICByMiwgIFtyMSwgI01TQzFfT0ZGU0VUXQotCi0JLyogTVNDMjogbkNTKDQsNSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NU0MyX1ZBTAotCXN0ciAgICAgcjIsICBbcjEsICNNU0MyX09GRlNFVF0KLQlsZHIgICAgIHIyLCAgW3IxLCAjTVNDMl9PRkZTRVRdCi0KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0JLyogU3RlcCAyYjogSW5pdGlhbGl6ZSBDYXJkIEludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotCS8qIE1FQ1I6IE1lbW9yeSBFeHBhbnNpb24gQ2FyZCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUVDUl9WQUwKLQlzdHIgICAgIHIyLCAgW3IxLCAjTUVDUl9PRkZTRVRdCi0JbGRyCXIyLAlbcjEsICNNRUNSX09GRlNFVF0KLQotCS8qIE1DTUVNMDogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAwIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0wX1ZBTAotCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTBfT0ZGU0VUXQotCWxkcglyMiwJW3IxLCAjTUNNRU0wX09GRlNFVF0KLQotCS8qIE1DTUVNMTogQ2FyZCBJbnRlcmZhY2Ugc2xvdCAxIHRpbWluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNNRU0xX1ZBTAotCXN0ciAgICAgcjIsICBbcjEsICNNQ01FTTFfT0ZGU0VUXQotCWxkcglyMiwJW3IxLCAjTUNNRU0xX09GRlNFVF0KLQotCS8qIE1DQVRUMDogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAwICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQwX1ZBTAotCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDBfT0ZGU0VUXQotCWxkcglyMiwJW3IxLCAjTUNBVFQwX09GRlNFVF0KLQotCS8qIE1DQVRUMTogQ2FyZCBJbnRlcmZhY2UgQXR0cmlidXRlIFNwYWNlIFRpbWluZywgc2xvdCAxICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNBVFQxX1ZBTAotCXN0ciAgICAgcjIsICBbcjEsICNNQ0FUVDFfT0ZGU0VUXQotCWxkcglyMiwJW3IxLCAjTUNBVFQxX09GRlNFVF0KLQotCS8qIE1DSU8wOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzBfVkFMCi0Jc3RyICAgICByMiwgIFtyMSwgI01DSU8wX09GRlNFVF0KLQlsZHIJcjIsCVtyMSwgI01DSU8wX09GRlNFVF0KLQotCS8qIE1DSU8xOiBDYXJkIEludGVyZmFjZSBJL08gU3BhY2UgVGltaW5nLCBzbG90IDEgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIyLCAgPUNPTkZJR19TWVNfTUNJTzFfVkFMCi0Jc3RyICAgICByMiwgIFtyMSwgI01DSU8xX09GRlNFVF0KLQlsZHIJcjIsCVtyMSwgI01DSU8xX09GRlNFVF0KLQotI2lmZGVmIERFQlVHX0JMSU5LX0VOQUJMRQotCS8qIDV0aCBibGluayAqLwotCWJsCWJsaW5rCi0jZW5kaWYKLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBTdGVwIDJjOiBXcml0ZSBGTFlDTkZHICBGSVhNRTogd2hhdCdzIHRoYXQ/Pz8gICAgICAgICAgICAgICAgICAgICovCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCS8qIFN0ZXAgMmQ6IEluaXRpYWxpemUgVGltaW5nIGZvciBTeW5jIE1lbW9yeSAoU0RDTEswKSAgICAgICAgICAgICAgKi8KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLQkvKiBCZWZvcmUgYWNjZXNzaW5nIE1EUkVGUiB3ZSBuZWVkIGEgdmFsaWQgRFJJIGZpZWxkLCBzbyB3ZSBzZXQgICAgICovCi0JLyogdGhpcyB0byBwb3dlciBvbiBkZWZhdWx0cyArIERSSSBmaWVsZC4gICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCi0JbGRyICAgICByMywgICAgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKLQlsZHIgICAgIHIyLCAgICAgPTB4RkZGCi0JYW5kICAgICByMywgICAgIHIzLCAgcjIKLQlsZHIJcjQsCT0weDAzY2E0MDAwCi0Jb3JyICAgICByNCwgICAgIHI0LCAgcjMKLQlzdHIJcjQsCVtyMSwgI01EUkVGUl9PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURSRUZSICAgICAgICAqLwotCWxkciAgICAgcjQsICBbcjEsICNNRFJFRlJfT0ZGU0VUXQotCi0JLyogTm90ZTogcHJlc2VydmUgdGhlIG1kcmVmciB2YWx1ZSBpbiByNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCS8qIFN0ZXAgMzogSW5pdGlhbGl6ZSBTeW5jaHJvbm91cyBTdGF0aWMgTWVtb3J5IChGbGFzaC9QZXJpcGhlcmFscykgKi8KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0KLQkvKiBJbml0aWFsaXplIFNYQ05GRyByZWdpc3Rlci4gQXNzZXJ0IHRoZSBlbmFibGUgYml0cyAgICAgICAgICAgICAgICovCi0KLQkvKiBXcml0ZSBTWE1SUyB0byBjYXVzZSBhbiBNUlMgY29tbWFuZCB0byBhbGwgZW5hYmxlZCBiYW5rcyBvZiAgICAgICovCi0JLyogc3luY2hyb25vdXMgc3RhdGljIG1lbW9yeS4gTm90ZSB0aGF0IFNYTENSIG5lZWQgbm90IGJlIHdyaXR0ZW4gICAqLwotCS8qIGF0IHRoaXMgdGltZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCS8qIEZJWE1FOiB3ZSB1c2UgYXN5bmMgbW9kZSBmb3Igbm93ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBTdGVwIDQ6IEluaXRpYWxpemUgU0RSQU0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0JLyogc2V0IE1EUkVGUiBhY2NvcmRpbmcgdG8gdXNlciBkZWZpbmUgd2l0aCBleGNlcHRpb24gb2YgYSBmZXcgYml0cyAqLwotCi0JbGRyICAgICByNCwgICAgID1DT05GSUdfU1lTX01EUkVGUl9WQUwKLQlvcnIJcjQsCXI0LAkjKE1EUkVGUl9TTEZSU0gpCi0JYmljCXI0LAlyNCwJIyhNRFJFRlJfRTFQSU58TURSRUZSX0UwUElOKQotCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KLQlsZHIgICAgIHI0LCAgW3IxLCAjTURSRUZSX09GRlNFVF0KLQotCS8qIFN0ZXAgNGI6IGRlLWFzc2VydCBNRFJFRlI6U0xGUlNILiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCWJpYwlyNCwJcjQsCSMoTURSRUZSX1NMRlJTSCkKLQlzdHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0gICAgLyogd3JpdGUgYmFjayBNRFJFRlIgICAgICAgICovCi0JbGRyICAgICByNCwgIFtyMSwgI01EUkVGUl9PRkZTRVRdCi0KLQkvKiBTdGVwIDRjOiBhc3NlcnQgTURSRUZSOkUxUElOIGFuZCBFMFBJTyBhcyBkZXNpcmVkICAgICAgICAgICAgICAgICovCi0KLQlsZHIgICAgIHI0LCAgICAgPUNPTkZJR19TWVNfTURSRUZSX1ZBTAotCXN0ciAgICAgcjQsICAgICBbcjEsICNNRFJFRlJfT0ZGU0VUXSAgICAvKiB3cml0ZSBiYWNrIE1EUkVGUiAgICAgICAgKi8KLQlsZHIgICAgIHI0LCAgICAgW3IxLCAjTURSRUZSX09GRlNFVF0KLQotCi0JLyogU3RlcCA0ZDogd3JpdGUgTURDTkZHIHdpdGggTURDTkZHOkRFeCBkZWFzc2VydGVkIChzZXQgdG8gMCksIHRvICAqLwotCS8qICAgICAgICAgIGNvbmZpZ3VyZSBidXQgbm90IGVuYWJsZSBlYWNoIFNEUkFNIHBhcnRpdGlvbiBwYWlyLiAgICAgKi8KLQotCWxkcglyNCwJPUNPTkZJR19TWVNfTURDTkZHX1ZBTAotCWJpYwlyNCwJcjQsCSMoTURDTkZHX0RFMHxNRENORkdfREUxKQotCi0Jc3RyICAgICByNCwgICAgIFtyMSwgI01EQ05GR19PRkZTRVRdCS8qIHdyaXRlIGJhY2sgTURDTkZHICAgICAgICAqLwotCWxkciAgICAgcjQsICAgICBbcjEsICNNRENORkdfT0ZGU0VUXQotCi0JLyogU3RlcCA0ZTogV2FpdCBmb3IgdGhlIGNsb2NrIHRvIHRoZSBTRFJBTXMgdG8gc3RhYmlsaXplLCAgICAgICAgICAqLwotCS8qICAgICAgICAgIDEwMC4uMjAwILVzZWMuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCWxkciByMywgPU9TQ1IJCQkvKiByZXNldCB0aGUgT1MgVGltZXIgQ291bnQgdG8gemVybyAqLwotCW1vdiByMiwgIzAKLQkgICAgc3RyIHIyLCBbcjNdCi0JbGRyIHI0LCA9MHgzMDAJCQkvKiByZWFsbHkgMHgyRTEgaXMgYWJvdXQgMjAwdXNlYywgICAqLwotCQkJCQkvKiBzbyAweDMwMCBzaG91bGQgYmUgcGxlbnR5ICAgICAgICAqLwotMToKLQkgICAgbGRyIHIyLCBbcjNdCi0JICAgIGNtcCByNCwgcjIKLQkgICAgYmd0IDFiCi0KLQkvKiBTdGVwIDRmOiBUcmlnZ2VyIGEgbnVtYmVyICh1c3VhbGx5IDgpIHJlZnJlc2ggY3ljbGVzIGJ5ICAgICAgICAgICovCi0JLyogICAgICAgICAgYXR0ZW1wdGluZyBub24tYnVyc3QgcmVhZCBvciB3cml0ZSBhY2Nlc3NlcyB0byBkaXNhYmxlZCAqLwotCS8qICAgICAgICAgIFNEUkFNLCBhcyBjb21tb25seSBzcGVjaWZpZWQgaW4gdGhlIHBvd2VyIHVwIHNlcXVlbmNlICAgKi8KLQkvKiAgICAgICAgICBkb2N1bWVudGVkIGluIFNEUkFNIGRhdGEgc2hlZXRzLiBUaGUgYWRkcmVzcyhlcykgdXNlZCAgICovCi0JLyogICAgICAgICAgZm9yIHRoaXMgcHVycG9zZSBtdXN0IG5vdCBiZSBjYWNoZWFibGUuICAgICAgICAgICAgICAgICAqLwotCi0JbGRyCXIzLAk9Q09ORklHX1NZU19EUkFNX0JBU0UKLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQlzdHIJcjIsCVtyM10KLQotCS8qIFN0ZXAgNGc6IFdyaXRlIE1EQ05GRyB3aXRoIGVuYWJsZSBiaXRzIGFzc2VydGVkICAgICAgICAgICAgICAgICAgKi8KLQkvKiAgICAgICAgICAoTURDTkZHOkRFeCBzZXQgdG8gMSkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0KLQlsZHIgICAgIHIzLCAgW3IxLCAjTURDTkZHX09GRlNFVF0KLQlvcnIJcjMsCXIzLAkjKE1EQ05GR19ERTB8TURDTkZHX0RFMSkKLQlzdHIgICAgIHIzLCAgW3IxLCAjTURDTkZHX09GRlNFVF0KLQotCS8qIFN0ZXAgNGg6IFdyaXRlIE1ETVJTLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLQotCWxkciAgICAgcjIsICA9Q09ORklHX1NZU19NRE1SU19WQUwKLQlzdHIgICAgIHIyLCAgW3IxLCAjTURNUlNfT0ZGU0VUXQotCi0JLyogV2UgYXJlIGZpbmlzaGVkIHdpdGggSW50ZWwncyBtZW1vcnkgY29udHJvbGxlciBpbml0aWFsaXNhdGlvbiAgICAqLwotI2lmIDAKLQkvKiBGSVhNRSB0dXJuIG9uIHNlcmlhbCBwb3J0cyAqLwotCS8qIGxvb2sgaW50byBtb3ZpbmcgdGhpcyB0byBib2FyZF9pbml0KCkgKi8KLQlsZHIJcjIsID0oUFhBX0NTNV9QSFlTICsgMHgwM0MwMDAyYykKLQltb3YJcjMsICMweDEzCi0Jc3RyCXIzLCBbcjJdCi0jZW5kaWYKLQotI2lmZGVmIERFQlVHX0JMSU5LX0VOQUJMRQotCS8qIDZ0aCBibGluayAqLwotCWJsCWJsaW5rCi0jZW5kaWYKLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBEaXNhYmxlIChtYXNrKSBhbGwgaW50ZXJydXB0cyBhdCBpbnRlcnJ1cHQgY29udHJvbGxlciAgICAgICAgICAgICovCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi1pbml0aXJxczoKLQotCW1vdiAgICAgcjEsICMwCQkvKiBjbGVhciBpbnQuIGxldmVsIHJlZ2lzdGVyIChJUlEsIG5vdCBGSVEpICovCi0JbGRyICAgICByMiwgID1JQ0xSCi0Jc3RyICAgICByMSwgIFtyMl0KLQotCWxkciAgICAgcjIsICA9SUNNUgkvKiBtYXNrIGFsbCBpbnRlcnJ1cHRzIGF0IHRoZSBjb250cm9sbGVyICAgICovCi0Jc3RyICAgICByMSwgIFtyMl0KLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBDbG9jayBpbml0aWFsaXNhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi1pbml0Y2xrczoKLQotCS8qIERpc2FibGUgdGhlIHBlcmlwaGVyYWwgY2xvY2tzLCBhbmQgc2V0IHRoZSBjb3JlIGNsb2NrIGZyZXF1ZW5jeSAgKi8KLQkvKiAoaGFyZC1jb2RpbmcgYXQgMzk4LjEyTUh6IGZvciBub3cpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0KLQkvKiBUdXJuIE9mZiBBTEwgb24tY2hpcCBwZXJpcGhlcmFsIGNsb2NrcyBmb3IgcmUtY29uZmlndXJhdGlvbiAgICAgICovCi0JLyogTm90ZTogU2VlIGxhYmVsICdFTkFCTEVDTEtTJyBmb3IgdGhlIHJlLWVuYWJsaW5nICAgICAgICAgICAgICAgICAqLwotI2lmIDAKLQlsZHIgICAgIHIxLCAgPUNLRU4KLQltb3YgICAgIHIyLCAgIzAKLQlzdHIgICAgIHIyLCAgW3IxXQotCi0JLyogZGVmYXVsdCB2YWx1ZSBpbiBjYXNlIG5vIHZhbGlkIHJvdGFyeSBzd2l0Y2ggc2V0dGluZyBpcyBmb3VuZCAgICAqLwotCWxkciAgICAgcjIsID0oQ0NDUl9MMjd8Q0NDUl9NMnxDQ0NSX04xMCkgIC8qIERFRkFVTFQ6IHsyMDAvMjAwLzEwMH0gKi8KLQotCS8qIC4uLiBhbmQgd3JpdGUgdGhlIGNvcmUgY2xvY2sgY29uZmlnIHJlZ2lzdGVyICAgICAgICAgICAgICAgICAgICAgKi8KLQlsZHIgICAgIHIxLCAgPUNDQ1IKLQlzdHIgICAgIHIyLCAgW3IxXQotCi0jZW5kaWYKLQotI2lmZGVmIFJUQwotCS8qIGVuYWJsZSB0aGUgMzJLaHogb3NjaWxsYXRvciBmb3IgUlRDIGFuZCBQb3dlck1hbmFnZXIgICAgICAgICAgICAgKi8KLQotCWxkciAgICAgcjEsICA9T1NDQwotCW1vdiAgICAgcjIsICAjT1NDQ19PT04KLQlzdHIgICAgIHIyLCAgW3IxXQotCi0JLyogTk9URTogIHNwaW4gaGVyZSB1bnRpbCBPU0NDLk9PSyBnZXQgc2V0LCBtZWFuaW5nIHRoZSBQTEwgICAgICAgICAqLwotCS8qIGhhcyBzZXR0bGVkLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KLTYwOgotCWxkciAgICAgcjIsIFtyMV0KLQlhbmRzICAgIHIyLCByMiwgIzEKLQliZXEgICAgIDYwYgotI2VuZGlmCi0KLQkvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0JLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQotCS8qIFNhdmUgU0RSQU0gc2l6ZSAqLwotCWxkciAgICAgcjEsID1EUkFNX1NJWkUKLQlzdHIgICAgIHI4LCBbcjFdCi0KLQkvKiBJbnRlcnJ1cHQgaW5pdDogTWFzayBhbGwgaW50ZXJydXB0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JbGRyCXIwLCA9SUNNUiAvKiBlbmFibGUgbm8gc291cmNlcyAqLwotCW1vdiByMSwgIzAKLQlzdHIgcjEsIFtyMF0KLQotCS8qIEZJWE1FICovCi0KLSNkZWZpbmUgTk9ERUJVRwotI2lmZGVmIE5PREVCVUcKLQkvKkRpc2FibGUgc29mdHdhcmUgYW5kIGRhdGEgYnJlYWtwb2ludHMgKi8KLQltb3YJcjAsIzAKLQltY3IJcDE1LDAscjAsYzE0LGM4LDAgIC8qIGliY3IwICovCi0JbWNyCXAxNSwwLHIwLGMxNCxjOSwwICAvKiBpYmNyMSAqLwotCW1jcglwMTUsMCxyMCxjMTQsYzQsMCAgLyogZGJjb24gKi8KLQotCS8qRW5hYmxlIGFsbCBkZWJ1ZyBmdW5jdGlvbmFsaXR5ICovCi0JbW92CXIwLCMweDgwMDAwMDAwCi0JbWNyCXAxNCwwLHIwLGMxMCxjMCwwICAvKiBkY3NyICovCi0jZW5kaWYKLQotCS8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLQkvKiBFbmQgbWVtc2V0dXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCi0JLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotCi0jaWZkZWYgREVCVUdfQkxJTktfRU5BQkxFCi0JLyogN3RoIGJsaW5rICovCi0JYmwJYmxpbmsKLSNlbmRpZgotCi1lbmRsb3dsZXZlbF9pbml0OgotCi0JbW92ICAgICBwYywgcjEwCi0KLQotI2lmZGVmIERFQlVHX0JMSU5LX0VOQUJMRQotCi0vKiBkZWJ1ZyBMRUQgY29kZSAqLwotCi0vKiBkZWxheSBhYm91dCAyMDBtcyAqLwotZGVsYXk6Ci0KLQkvKiByZXNldCBPU0NSIHRvIDAgKi8KLQlsZHIJcjgsID1PU0NSCi0JbW92CXI5LCAjMAotCXN0cglyOSwgW3I4XQotCi0JLyogbWFrZSBzdXJlIG5ldyB2YWx1ZSBoYXMgc3R1Y2sgKi8KLTE6Ci0JbGRyCXI4LCA9T1NDUgotCWxkcglyOSwgW3I4XQotCW1vdglyOCwgIzB4MTAwMDAKLQljbXAJcjksIHI4Ci0JYmd0CTFiCi0KLQkvKiBub3csIHdhaXQgZm9yIGRlbGF5IHRvIGV4cGlyZSAqLwotMToKLQlsZHIJcjgsID1PU0NSCi0JbGRyCXI5LCBbcjhdCi0JbW92CXI4LCAjMHhkNDAwMAotCWNtcAlyOCwgcjkKLQliZ3QJMWIKLQotCW1vdglwYywgbHIKLQotLyogYmxpbmsgY29kZSAtLSB0cmFzaGVzIHI3LCByOCwgcjkgKi8KLQotLmdsb2JsIGJsaW5rCi1ibGluazoKLQotCW1vdglyNywgbHIKLQotCS8qIHNldCBHUElPMTAgYXMgb3V0b3V0ICovCi0JbGRyCXI4LCAgPUdQRFIwCi0JbGRyCXI5LCAgW3I4XQotCW9ycglyOSwgIHI5LCAjKDE8PDEwKQotCXN0cglyOSwgIFtyOF0KLQotCS8qIHR1cm4gTEVEIG9mZiAqLwotCW1vdglyOSwgICMoMTw8MTApCi0JbGRyCXI4LCAgPUdQQ1IwCi0Jc3RyCXI5LCBbcjhdCi0JYmwJZGVsYXkKLQotCS8qIHR1cm4gTEVEIG9uICovCi0JbW92CXI5LCAgIygxPDwxMCkKLQlsZHIJcjgsICA9R1BTUjAKLQlzdHIJcjksIFtyOF0KLQlibAlkZWxheQotCi0JLyogdHVybiBMRUQgb2ZmICovCi0JbW92CXI5LCAgIygxPDwxMCkKLQlsZHIJcjgsICA9R1BDUjAKLQlzdHIJcjksIFtyOF0KLQotCW1vdglwYywgcjcKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9ib2FyZC9weGEyNTVfaWRwL3B4YV9pZHAuYyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCmluZGV4IDRhYjhiZDQuLjgwNGQwOWMgMTAwNjQ0Ci0tLSBhL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCisrKyBiL2JvYXJkL3B4YTI1NV9pZHAvcHhhX2lkcC5jCkBAIC00Myw4ICs0Myw5IEBACiAKIGludCBib2FyZF9pbml0ICh2b2lkKQogewotCS8qIG1lbW9yeSBhbmQgY3B1LXNwZWVkIGFyZSBzZXR1cCBiZWZvcmUgcmVsb2NhdGlvbiAqLwotCS8qIHNvIHdlIGRvIF9ub3RoaW5nXyBoZXJlICovCisJLyogV2UgaGF2ZSBSQU0sIGRpc2FibGUgY2FjaGUgKi8KKwlkY2FjaGVfZGlzYWJsZSgpOworCWljYWNoZV9kaXNhYmxlKCk7CiAKIAkvKiBhcmNoIG51bWJlciBvZiBMdWJib2NrLUJvYXJkICovCiAJZ2QtPmJkLT5iaV9hcmNoX251bWJlciA9IE1BQ0hfVFlQRV9QWEFfSURQOwpAQCAtODIsMjEgKzgzLDE5IEBACiAJcmV0dXJuIDA7CiB9CiAKLQotaW50IGRyYW1faW5pdCAodm9pZCkKK2V4dGVybiB2b2lkIHB4YV9kcmFtX2luaXQodm9pZCk7CitpbnQgZHJhbV9pbml0KHZvaWQpCiB7Ci0JZ2QtPmJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gUEhZU19TRFJBTV8xOwotCWdkLT5iZC0+YmlfZHJhbVswXS5zaXplID0gUEhZU19TRFJBTV8xX1NJWkU7Ci0JZ2QtPmJkLT5iaV9kcmFtWzFdLnN0YXJ0ID0gUEhZU19TRFJBTV8yOwotCWdkLT5iZC0+YmlfZHJhbVsxXS5zaXplID0gUEhZU19TRFJBTV8yX1NJWkU7Ci0JZ2QtPmJkLT5iaV9kcmFtWzJdLnN0YXJ0ID0gUEhZU19TRFJBTV8zOwotCWdkLT5iZC0+YmlfZHJhbVsyXS5zaXplID0gUEhZU19TRFJBTV8zX1NJWkU7Ci0JZ2QtPmJkLT5iaV9kcmFtWzNdLnN0YXJ0ID0gUEhZU19TRFJBTV80OwotCWdkLT5iZC0+YmlfZHJhbVszXS5zaXplID0gUEhZU19TRFJBTV80X1NJWkU7Ci0KKwlweGFfZHJhbV9pbml0KCk7CisJZ2QtPnJhbV9zaXplID0gUEhZU19TRFJBTV8xX1NJWkU7CiAJcmV0dXJuIDA7CiB9CiAKK3ZvaWQgZHJhbV9pbml0X2JhbmtzaXplKHZvaWQpCit7CisJZ2QtPmJkLT5iaV9kcmFtWzBdLnN0YXJ0ID0gUEhZU19TRFJBTV8xOworCWdkLT5iZC0+YmlfZHJhbVswXS5zaXplID0gUEhZU19TRFJBTV8xX1NJWkU7Cit9CiAKICNpZmRlZiBERUJVR19CTElOS0NfRU5BQkxFCiAK