From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from inbox.vuxu.org (inbox.vuxu.org [IPv6:::1]) by inbox.vuxu.org (Postfix) with ESMTP id 1084121330 for ; Wed, 31 Jan 2024 09:17:15 +0100 (CET) Content-Type: multipart/mixed; boundary="===============6592981340872790619==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_LuaJIT=3A_update_to_2=2E1=2E1692580715=2C_cleanup=2E?= To: ml@inbox.vuxu.org From: yoshiyoshyosh Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 31 Jan 2024 09:17:15 +0100 List-Id: Message-Id: <20240131081715.1084121330@inbox.vuxu.org> GitHub notification mails are now in MIME to allow UTF8. --===============6592981340872790619== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgeW9zaGl5b3NoeW9zaCBhZ2FpbnN0 IG1hc3RlciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5j b20veW9zaGl5b3NoeW9zaC92b2lkLXBhY2thZ2VzIGx1YWppdC0yLjEtcm9sbGluZwpodHRwczov L2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDg0NTMKCkx1YUpJVDog dXBkYXRlIHRvIDIuMS4xNjkyNTgwNzE1LCBjbGVhbnVwLgojIyMjIFRlc3RpbmcgdGhlIGNoYW5n ZXMNCi0gSSB0ZXN0ZWQgdGhlIGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCiAgLSBU aGUgb25seSBsdWEgdGhpbmcgSSByZWFsbHkgcnVuIGlzIGF3ZXNvbWV3bS4gSSBidWlsdCBhd2Vz b21ld20gYWdhaW5zdCBsdWFqaXQgd2l0aCB0aGUgYnVpbGQgb3B0aW9uIGFuZCBldmVyeXRoaW5n IHNlZW1zIGdvb2QsIGJ1dCBvZiBjb3Vyc2UgYW55IGZ1cnRoZXIgdGVzdGluZyBpcyBlbmNvdXJh Z2VkLg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2Fs bHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChgeDg2XzY0LWdsaWJjYCkNCi0gSSBidWls dCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4g bWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYHg4Nl82NC1tdXNsYA0KICAtIGBpNjg2LWdsaWJjYCAo Ym90aCBjcm9zc2J1aWxkIGFuZCBtYXN0ZXJkaXIpDQogIC0gYGFhcmNoNjQtZ2xpYmNgIChjcm9z c2J1aWxkKQ0KICAtIGBhYXJjaDY0LW11c2xgIChjcm9zc2J1aWxkKQ0KICAtIGBhcm12N2wtZ2xp YmNgIChjcm9zc2J1aWxkKQ0KDQpUaGlzIGFkZHJlc3NlcyAjNDgzNDkuDQoNCkx1YUpJVCBoYXMg bW92ZWQgdG8gInJvbGxpbmcgcmVsZWFzZXMiIG9uIGJyYW5jaGVzIGluIHRoZWlyIGdpdCByZXBv LCB3aGljaCBiYXNpY2FsbHkgbWVhbnMgcmVsZWFzZXMgYXJlIGdpdCBjb21taXRzIHRvIGEgYHYy LjFgIGJyYW5jaC4gT2YgY291cnNlLCB0aGlzIGlzIGluY29tcGF0aWJsZSB3aXRoIHZvaWQncyBw YWNrYWdpbmcgcGhpbG9zb3BoeS4gSG93ZXZlciwgdGhlcmUgYWxzbyBzZWVtcyB0byBiZSBhIGB2 Mi4xYCAqdGFnKiB0aGF0IHdhcyBjcmVhdGVkIGR1cmluZyB0aGUgbW92ZSBhbmQgbm90IHVwZGF0 ZWQgc2luY2UuIEknbSB1bnN1cmUgb24gd2hldGhlciB0aGlzIHRhZyBpcyBzaW1wbHkgbWVhbnQg dG8gYmUgYSBtYXJrZXIgZm9yIHRoZSBzdGFydCBvZiB2Mi4xIGluIHRoZSBuZXcgcm9sbGluZyBy ZWxlYXNlIGVyYSwgb3IgaWYgdGhleSBpbnRlbmQgZm9yIGl0IHRvIGJlIGEgc3RhYmxlIHRhZyB0 aGF0ICJyZWxlYXNlcyIgbWlnaHQgb2NjYXNpb25hbGx5IGdldCBwdXNoZWQgdG8gZXZlcnkgbm93 IGFuZCB0aGVuLg0KV2hhdGV2ZXIgdGhlIGNhc2UsIHRoaXMgaXMgYSB0YWcgdGhhdCB3YXMgInJl bGVhc2VkIiBpbiBhIGZvcm0gdGhleSBzZWVtaW5nbHkgZGVlbSBzdGFibGUgZW5vdWdoLCB3aGlj aCBpcyB3aHkgSSB0aGluayBvZiBpdCBhcyBlbm91Z2ggdG8gdXBkYXRlIHRvIChlc3BlY2lhbGx5 IHNpbmNlIHdlJ2QgYmUgZ2V0dGluZyBvZmYgYSA2IHllYXIgb2xkIHZlcnNpb24gdG8gYSA1IG1v bnRoIG9sZCB2ZXJzaW9uIG5vdykuDQoNClJlZ2FyZGluZyB0aGUgdmVyc2lvbiBudW1iZXI6IElu IHRoZSBtYWtlZmlsZXMsIHRoZXJlIGV4aXN0cyBhIGBSRUxWRVJgIG1hY3JvIFt0aGF0IGdldHMg c2V0IGJ5IGEgYGdpdCBzaG93YCBjb21tYW5kXShodHRwczovL3JlcG8ub3IuY3ovbHVhaml0LTIu MC5naXQvYmxvYi8yMDkwODQyNDEwZTBiYTZmODFmYWQzMTBhNzdiZjU0MzI0ODgyNDlhOi9zcmMv TWFrZWZpbGUjbDQ3OCkuIFRoZSAiY2Fub25pY2FsIiB2ZXJzaW9uIG51bWJlciBpbiB0aGUgbWFr ZWZpbGVzIHRoZW4gYmVjb21lcyBgbWFqb3IubWlub3IucmVsdmVyYCBhbmQgdGhlIGJpbmFyeS9s aWJyYXJ5IHZlcnNpb24gaXMgaW5zdGFsbGVkIHdpdGggdGhpcyB2ZXJzaW9uIG51bWJlci4gVGhp cyBpcyB0aGUgb25seSByZWFsIHBhdGNoIHZlcnNpb24gbnVtYmVyIHRoYXQgd2UgaGF2ZSwgc28g aXQncyB3aGF0IEkgYmVsaWV2ZSBzaG91bGQgZ28gaW4gdGhlIHZlcnNpb24gbnVtYmVyLiBJIGp1 c3QgdXNlZCB0aGUgc2FtZSBgZ2l0IHNob3dgIHRoYXQgdGhleSB1c2UgYW5kIGJha2VkIGl0IGlu dG8gYHZlcnNpb25gDQoNCkkgcmVtb3ZlZCBhbGwgYnV0IHR3byBvZiB0aGUgcGF0Y2hlcywgYXMg dGhleSBoYXZlIGVpdGhlciBiZWVuIHVwc3RyZWFtZWQgaW50byB0aGUgYHYyLjFgIHRhZyBvciB3 ZXJlIGZvciBwb3dlcnBjLCB3aGljaCB2b2lkIGRvZXNuJ3Qgc3VwcG9ydCBhbnltb3JlLiBTaG91 bGQgd2UgZXZlbiBoYXZlIHRoZSAiZW5hYmxlIGRlYnVnIHN5bWJvbHMiIHBhdGNoIGZvciBtYWlu IHJlcG8gYnVpbGRzIGluc3RlYWQgb2YgbGVhdmluZyBpdCB0byBgLWRiZ2A/IEknbSBvbmx5IGtl ZXBpbmcgaXQgYmVjYXVzZSBldmVyeSBvdGhlciBkaXN0cmlidXRpb24ga2VlcHMgaXQuDQoNCkkg YWxzbyBqdXN0IGNsZWFuZWQgdXAgdGhlIHRlbXBsYXRlIGluIGdlbmVyYWw7IGl0J3MgbW9yZSBj b25jaXNlIGFuZCBvcmdhbml6ZWQgSU1PIHdoaWxlIGFjaGlldmluZyB0aGUgc2FtZSB0aGluZy4K CkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvcHVsbC80ODQ1My5wYXRjaCBpcyBhdHRhY2hlZA== --===============6592981340872790619== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-luajit-2.1-rolling-48453.patch" RnJvbSAxNDRiYWM0NDFjMGFkN2Y3NzY3OWI2MTRkNjZmZWYzZmEzYTBkYTI2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiB5b3NoIDx5b3NoLWdpdEByaXNldXAubmV0PgpEYXRlOiBXZWQs IDMxIEphbiAyMDI0IDAyOjU0OjA5IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gTHVhSklUOiB1cGRh dGUgdG8gMi4xLjE2OTI1ODA3MTUsIGNsZWFudXAuCgotLS0KIC4uLi9wYXRjaGVzL3BwYy9tdXNs LXBwYy1zZWN1cmVwbHQucGF0Y2ggICAgICB8ICAgOTMgLQogLi4uL3BhdGNoZXMvcHBjNjQvYWRk LXBwYzY0LXN1cHBvcnQucGF0Y2ggICAgIHwgMzUyMSAtLS0tLS0tLS0tLS0tLS0tLQogLi4uL3Bh dGNoZXMvcHBjNjQvZml4LXZtLWppdC1wcGM2NC5wYXRjaCAgICAgIHwgICAxMSAtCiAuLi4vYWFy Y2g2NC1GaXgtZXhpdC1zdHViLXBhdGNoaW5nLnBhdGNoICAgICAgfCAgMjMxIC0tCiAuLi4vYWFy Y2g2NC1yZWdpc3Rlci1hbGxvY2F0aW9uLWJ1Zy1maXgucGF0Y2ggfCAgIDI5IC0KIC4uLjFhYmVj NTQyZTZmOTg1MWZmMjM2OGU3ZjE5NmI2MzgyYTQ0Yy5wYXRjaCB8ICA1NjIgLS0tCiAuLi4vTHVh SklUL3BhdGNoZXMvZW5hYmxlLWRlYnVnLXN5bWJvbHMucGF0Y2ggfCAgIDE0ICstCiBzcmNwa2dz L0x1YUpJVC9wYXRjaGVzL2ZpeC1iY3NhdmUtcHBjNjQucGF0Y2ggfCAgIDMzIC0KIC4uLi9nZXQt cmlkLW9mLWx1YWppdC12ZXJzaW9uLXN5bS5wYXRjaCAgICAgICB8ICAgMzcgKy0KIC4uLi9wYXRj aGVzL3VucG9sbHV0ZS1nbG9iYWwtbmFtZXNwYWNlLnBhdGNoICB8ICAgMjEgLQogc3JjcGtncy9M dWFKSVQvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgIHwgICA3MyArLQogc3JjcGtncy9M dWFKSVQvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArLQogMTIgZmlsZXMg Y2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwgNDU4MCBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL0x1YUpJVC9maWxlcy9wYXRjaGVzL3BwYy9tdXNsLXBwYy1zZWN1cmVw bHQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL0x1YUpJVC9maWxlcy9wYXRjaGVz L3BwYzY0L2FkZC1wcGM2NC1zdXBwb3J0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9MdWFKSVQvZmlsZXMvcGF0Y2hlcy9wcGM2NC9maXgtdm0taml0LXBwYzY0LnBhdGNoCiBkZWxl dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9MdWFKSVQvcGF0Y2hlcy9hYXJjaDY0LUZpeC1leGl0LXN0 dWItcGF0Y2hpbmcucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL0x1YUpJVC9wYXRj aGVzL2FhcmNoNjQtcmVnaXN0ZXItYWxsb2NhdGlvbi1idWctZml4LnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9MdWFKSVQvcGF0Y2hlcy9lOWFmMWFiZWM1NDJlNmY5ODUxZmYyMzY4 ZTdmMTk2YjYzODJhNDRjLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9MdWFKSVQv cGF0Y2hlcy9maXgtYmNzYXZlLXBwYzY0LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9MdWFKSVQvcGF0Y2hlcy91bnBvbGx1dGUtZ2xvYmFsLW5hbWVzcGFjZS5wYXRjaAoKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvTHVhSklUL2ZpbGVzL3BhdGNoZXMvcHBjL211c2wtcHBjLXNlY3VyZXBs dC5wYXRjaCBiL3NyY3BrZ3MvTHVhSklUL2ZpbGVzL3BhdGNoZXMvcHBjL211c2wtcHBjLXNlY3Vy ZXBsdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzAwMGNhMGVkM2Q1My4u MDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL0x1YUpJVC9maWxlcy9wYXRjaGVzL3BwYy9tdXNs LXBwYy1zZWN1cmVwbHQucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi1JbXBv cnRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9MdWFKSVQvTHVhSklUL3B1bGwvNDg2LgotCi1U aGlzIGZpeGVzIGNyYXNoZXMgb24gcHBjLW11c2wsIGFzIG11c2wgb25seSBzdXBwb3J0cyBzZWN1 cmVwbHQuCi0KLS0tLSBhL3NyYy9sal9kaXNwYXRjaC5jCi0rKysgYi9zcmMvbGpfZGlzcGF0Y2gu YwotQEAgLTU2LDYgKzU2LDE4IEBAIHN0YXRpYyBjb25zdCBBU01GdW5jdGlvbiBkaXNwYXRjaF9n b3RbXSA9IHsKLSAjdW5kZWYgR09URlVOQwotICNlbmRpZgotIAotKyNpZiBMSl9UQVJHRVRfUFBD ICYmIChMSl9BUkNIX0JJVFMgPT0gMzIpCi0rI2luY2x1ZGUgPG1hdGguaD4KLStMSl9GVU5DQV9O T1JFVCB2b2lkIExKX0ZBU1RDQUxMIGxqX2ZmaF9jb3JvdXRpbmVfd3JhcF9lcnIobHVhX1N0YXRl ICpMLAotKwkJCQkJCQkgIGx1YV9TdGF0ZSAqY28pOwotKwotKyNkZWZpbmUgR09URlVOQyhuYW1l KQkoQVNNRnVuY3Rpb24pbmFtZSwKLStzdGF0aWMgY29uc3QgQVNNRnVuY3Rpb24gZGlzcGF0Y2hf Z290W10gPSB7Ci0rICBHT1RERUYoR09URlVOQykKLSt9OwotKyN1bmRlZiBHT1RGVU5DCi0rI2Vu ZGlmCi0rCi0gLyogSW5pdGlhbGl6ZSBpbnN0cnVjdGlvbiBkaXNwYXRjaCB0YWJsZSBhbmQgaG90 IGNvdW50ZXJzLiAqLwotIHZvaWQgbGpfZGlzcGF0Y2hfaW5pdChHR19TdGF0ZSAqR0cpCi0gewot QEAgLTc3LDYgKzg5LDkgQEAgdm9pZCBsal9kaXNwYXRjaF9pbml0KEdHX1N0YXRlICpHRykKLSAj aWYgTEpfVEFSR0VUX01JUFMKLSAgIG1lbWNweShHRy0+Z290LCBkaXNwYXRjaF9nb3QsIExKX0dP VF9fTUFYKnNpemVvZihBU01GdW5jdGlvbiAqKSk7Ci0gI2VuZGlmCi0rI2lmIExKX1RBUkdFVF9Q UEMgJiYgKExKX0FSQ0hfQklUUyA9PSAzMikKLSsgIG1lbWNweShHRy0+Z290LCBkaXNwYXRjaF9n b3QsIExKX0dPVF9fTUFYKjQpOwotKyNlbmRpZgotIH0KLSAKLSAjaWYgTEpfSEFTSklUCi0tLS0g YS9zcmMvbGpfZGlzcGF0Y2guaAotKysrIGIvc3JjL2xqX2Rpc3BhdGNoLmgKLUBAIC02Niw2ICs2 NiwyMSBAQCBHT1RERUYoR09URU5VTSkKLSB9OwotICNlbmRpZgotIAotKyNpZiBMSl9UQVJHRVRf UFBDICYmIChMSl9BUkNIX0JJVFMgPT0gMzIpCi0rLyogTmVlZCBvdXIgb3duIGdsb2JhbCBvZmZz ZXQgdGFibGUgZm9yIHRoZSBkcmVhZGVkIE1JUFMgY2FsbGluZyBjb252ZW50aW9ucy4gKi8KLSsj ZGVmaW5lIEdPVERFRihfKSBcCi0rICBfKGZsb29yKSBfKGNlaWwpIF8odHJ1bmMpIF8obG9nKSBf KGxvZzEwKSBfKGV4cCkgXyhzaW4pIF8oY29zKSBfKHRhbikgXAotKyAgXyhhc2luKSBfKGFjb3Mp IF8oYXRhbikgXyhzaW5oKSBfKGNvc2gpIF8odGFuaCkgXyhmcmV4cCkgXyhtb2RmKSBfKGF0YW4y KSBcCi0rICBfKHBvdykgXyhmbW9kKSBfKGxkZXhwKSBfKHNxcnQpCi0rCi0rZW51bSB7Ci0rI2Rl ZmluZSBHT1RFTlVNKG5hbWUpIExKX0dPVF8jI25hbWUsCi0rR09UREVGKEdPVEVOVU0pCi0rI3Vu ZGVmIEdPVEVOVU0KLSsgIExKX0dPVF9fTUFYCi0rfTsKLSsjZW5kaWYKLSsKLSAvKiBUeXBlIG9m IGhvdCBjb3VudGVyLiBNdXN0IG1hdGNoIHRoZSBjb2RlIGluIHRoZSBhc3NlbWJsZXIgVk0uICov Ci0gLyogMTYgYml0cyBhcmUgc3VmZmljaWVudC4gT25seSAwLjAwMTUlIG92ZXJoZWFkIHdpdGgg bWF4aW11bSBzbG90IHBlbmFsdHkuICovCi0gdHlwZWRlZiB1aW50MTZfdCBIb3RDb3VudDsKLUBA IC04OSw3ICsxMDQsNyBAQCB0eXBlZGVmIHVpbnQxNl90IEhvdENvdW50OwotIHR5cGVkZWYgc3Ry dWN0IEdHX1N0YXRlIHsKLSAgIGx1YV9TdGF0ZSBMOwkJCQkvKiBNYWluIHRocmVhZC4gKi8KLSAg IGdsb2JhbF9TdGF0ZSBnOwkJCS8qIEdsb2JhbCBzdGF0ZS4gKi8KLS0jaWYgTEpfVEFSR0VUX01J UFMKLSsjaWYgTEpfVEFSR0VUX01JUFMgfHwgKExKX1RBUkdFVF9QUEMgJiYgKExKX0FSQ0hfQklU UyA9PSAzMikpCi0gICBBU01GdW5jdGlvbiBnb3RbTEpfR09UX19NQVhdOwkJLyogR2xvYmFsIG9m ZnNldCB0YWJsZS4gKi8KLSAjZW5kaWYKLSAjaWYgTEpfSEFTSklUCi0tLS0gYS9zcmMvdm1fcHBj LmRhc2MKLSsrKyBiL3NyYy92bV9wcGMuZGFzYwotQEAgLTU5LDcgKzU5LDEyIEBACi0gfC5kZWZp bmUgRU5WX09GUywJOAotIHwuZW5kaWYKLSB8LmVsc2UgIC8vIE5vIFRPQy4KLS18Lm1hY3JvIGJs ZXgsIHRhcmdldDsgYmwgZXh0ZXJuIHRhcmdldEBwbHQ7IC5lbmRtYWNybwotK3wubWFjcm8gYmxl eCwgdGFyZ2V0Ci0rfCAgbHd6IFRNUDAsIERJU1BBVENIX0dPVCh0YXJnZXQpKERJU1BBVENIKQot K3wgIG10Y3RyIFRNUDAKLSt8ICBiY3RybAotK3wgIC8vYmwgZXh0ZXJuIHRhcmdldEBwbHQKLSt8 LmVuZG1hY3JvCi0gfC5tYWNybyAudG9jLCBhLCBiOyAuZW5kbWFjcm8KLSB8LmVuZGlmCi0gfC5t YWNybyAudG9jZW52LCBhLCBiOyAuaWYgVE9DRU5WOyBhLCBiOyAuZW5kaWY7IC5lbmRtYWNybwot QEAgLTQ0OCw2ICs0NTMsOCBAQAotIHwvLyBBc3N1bWVzIERJU1BBVENIIGlzIHJlbGF0aXZlIHRv IEdMLgotICNkZWZpbmUgRElTUEFUQ0hfR0woZmllbGQpCShHR19ESVNQMkcgKyAoaW50KW9mZnNl dG9mKGdsb2JhbF9TdGF0ZSwgZmllbGQpKQotICNkZWZpbmUgRElTUEFUQ0hfSihmaWVsZCkJKEdH X0RJU1AySiArIChpbnQpb2Zmc2V0b2Yoaml0X1N0YXRlLCBmaWVsZCkpCi0rI2RlZmluZSBHR19E SVNQMkdPVAkJKEdHX09GUyhnb3QpIC0gR0dfT0ZTKGRpc3BhdGNoKSkKLSsjZGVmaW5lIERJU1BB VENIX0dPVChuYW1lKQkoR0dfRElTUDJHT1QgKyA0KkxKX0dPVF8jI25hbWUpCi0gfAotICNkZWZp bmUgUEMyUFJPVE8oZmllbGQpICAoKGludClvZmZzZXRvZihHQ3Byb3RvLCBmaWVsZCktKGludClz aXplb2YoR0Nwcm90bykpCi0gfApkaWZmIC0tZ2l0IGEvc3JjcGtncy9MdWFKSVQvZmlsZXMvcGF0 Y2hlcy9wcGM2NC9hZGQtcHBjNjQtc3VwcG9ydC5wYXRjaCBiL3NyY3BrZ3MvTHVhSklUL2ZpbGVz L3BhdGNoZXMvcHBjNjQvYWRkLXBwYzY0LXN1cHBvcnQucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDdjODY1ODU5ZGE5MjMuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9M dWFKSVQvZmlsZXMvcGF0Y2hlcy9wcGM2NC9hZGQtcHBjNjQtc3VwcG9ydC5wYXRjaAorKysgL2Rl di9udWxsCkBAIC0xLDM1MjEgKzAsMCBAQAotRnJvbTogIlJvZHJpZ28gUi4gR2FsdmFvIiA8cm9z YXR0aWdAYnIuaWJtLmNvbT4KLURhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDg6NDE6NDcgKzAwMDAK LVN1YmplY3Q6IE5ldyBwYXRjaCBwcm9wb3NhbCBmb3IgUFBDNjQgc3VwcG9ydAotCi0gQ3JlYXRl IGEgcGF0Y2ggZm9yIFBQQzY0IHN1cHBvcnQgYmFzZWQgb24gCi1odHRwczovL2dpdGh1Yi5jb20v THVhSklUL0x1YUpJVC9wdWxsLzE0MC4KLSBJdCByZXBsYWNlcyB0aGUgb2xkIHBhdGNoIHNpbmNl IHRoaXMgbmV3IG9uZSBpcyBtb3JlIGxpa2VseSB0byBiZSBtZXJnZWQgCi13aXRoIGx1YWppdCB1 cHN0cmVhbS4KLQotCi1BdXRob3I6IFJvZHJpZ28gUi4gR2FsdmFvIDxyb3NhdHRpZ0Bici5pYm0u Y29tPgotLS0tCi0gZHluYXNtL2Rhc21fcHBjLmx1YSAgICB8ICAgIDUgKwotIHNyYy9NYWtlZmls ZSAgICAgICAgICAgfCAgIDExICstCi0gc3JjL2hvc3QvYnVpbGR2bV9hc20uYyB8ICAgMTYgKy0K LSBzcmMvbGpfYXJjaC5oICAgICAgICAgIHwgICAxOCArLQotIHNyYy9sal9jY2FsbC5jICAgICAg ICAgfCAgMTY2ICsrKysrKy0KLSBzcmMvbGpfY2NhbGwuaCAgICAgICAgIHwgICAxMyArCi0gc3Jj L2xqX2NjYWxsYmFjay5jICAgICB8ICAgNjggKystCi0gc3JjL2xqX2N0eXBlLmggICAgICAgICB8 ICAgIDIgKy0KLSBzcmMvbGpfZGVmLmggICAgICAgICAgIHwgICAgNCArCi0gc3JjL2xqX2ZyYW1l LmggICAgICAgICB8ICAgIDkgKwotIHNyYy9sal90YXJnZXRfcHBjLmggICAgfCAgIDE0ICsKLSBz cmMvdm1fcHBjLmRhc2MgICAgICAgIHwgMTI5MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0KLSAxMiBmaWxlcyBjaGFuZ2VkLCAxMTYyIGluc2VydGlvbnMo KyksIDQ1NCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBkeW5hc20vZGFzbV9wcGMubHVhIGR5 bmFzbS9kYXNtX3BwYy5sdWEKLWluZGV4IGY3Mzk3NGQuLmE0YWQ3MGIgMTAwNjQ0Ci0tLS0gYS9k eW5hc20vZGFzbV9wcGMubHVhCi0rKysgYi9keW5hc20vZGFzbV9wcGMubHVhCi1AQCAtMjU3LDkg KzI1NywxMSBAQCBtYXBfb3AgPSB7Ci0gICBhZGRpY18zID0JIjMwMDAwMDAwUlJJIiwKLSAgIFsi YWRkaWMuXzMiXSA9ICIzNDAwMDAwMFJSSSIsCi0gICBhZGRpXzMgPQkiMzgwMDAwMDBSUjBJIiwK LSsgIGFkZGlsXzMgPQkiMzgwMDAwMDBSUjBKIiwKLSAgIGxpXzIgPQkiMzgwMDAwMDBSSSIsCi0g ICBsYV8yID0JIjM4MDAwMDAwUkQiLAotICAgYWRkaXNfMyA9CSIzYzAwMDAwMFJSMEkiLAotKyAg YWRkaXNsXzMgPQkiM2MwMDAwMDBSUjBKIiwKLSAgIGxpc18yID0JIjNjMDAwMDAwUkkiLAotICAg bHVzXzIgPQkiM2MwMDAwMDBSVSIsCi0gICBiY18zID0JIjQwMDAwMDAwQUFLIiwKLUBAIC04NDIs NiArODQ0LDkgQEAgbWFwX29wID0gewotICAgc3JkaV8zID0Jb3BfYWxpYXMoInJsZGljbF80Iiwg ZnVuY3Rpb24ocCkKLSAgICAgcFs0XSA9IHBbM107IHBbM10gPSAiNjQtKCIuLnBbM10uLiIpIgot ICAgZW5kKSwKLSsgIFsic3JkaS5fMyJdID0Jb3BfYWxpYXMoInJsZGljbC5fNCIsIGZ1bmN0aW9u KHApCi0rICAgIHBbNF0gPSBwWzNdOyBwWzNdID0gIjY0LSgiLi5wWzNdLi4iKSIKLSsgIGVuZCks Ci0gICBjbHJsZGlfMyA9CW9wX2FsaWFzKCJybGRpY2xfNCIsIGZ1bmN0aW9uKHApCi0gICAgIHBb NF0gPSBwWzNdOyBwWzNdID0gIjAiCi0gICBlbmQpLAotZGlmZiAtLWdpdCBzcmMvTWFrZWZpbGUg c3JjL01ha2VmaWxlCi1pbmRleCA2YjczYTg5Li5jYzUwYmFlIDEwMDY0NAotLS0tIGEvc3JjL01h a2VmaWxlCi0rKysgYi9zcmMvTWFrZWZpbGUKLUBAIC00NTMsNyArNDUzLDE2IEBAIGlmZXEgKHBw YywkKFRBUkdFVF9MSkFSQ0gpKQotICAgICBEQVNNX0FGTEFHUys9IC1EIEdQUjY0Ci0gICBlbmRp ZgotICAgaWZlcSAoUFMzLCQoVEFSR0VUX1NZUykpCi0tICAgIERBU01fQUZMQUdTKz0gLUQgUFBF IC1EIFRPQwotKyAgICBEQVNNX0FGTEFHUys9IC1EIFBQRQotKyAgZW5kaWYKLSsgIGlmbmVxICgs JChmaW5kc3RyaW5nIExKX0FSQ0hfUFBDX09QRCAxLCQoVEFSR0VUX1RFU1RBUkNIKSkpCi0rICAg IERBU01fQUZMQUdTKz0gLUQgT1BECi0rICBlbmRpZgotKyAgaWZuZXEgKCwkKGZpbmRzdHJpbmcg TEpfQVJDSF9QUENfT1BERU5WIDEsJChUQVJHRVRfVEVTVEFSQ0gpKSkKLSsgICAgREFTTV9BRkxB R1MrPSAtRCBPUERFTlYKLSsgIGVuZGlmCi0rICBpZm5lcSAoLCQoZmluZHN0cmluZyBMSl9BUkNI X1BQQ19FTEZWMiAxLCQoVEFSR0VUX1RFU1RBUkNIKSkpCi0rICAgIERBU01fQUZMQUdTKz0gLUQg RUxGVjIKLSAgIGVuZGlmCi0gICBpZm5lcSAoLCQoZmluZHN0cmluZyBMSl9BUkNIX1BQQzY0ICwk KFRBUkdFVF9URVNUQVJDSCkpKQotICAgICBEQVNNX0FSQ0g9IHBwYzY0Ci1kaWZmIC0tZ2l0IHNy Yy9ob3N0L2J1aWxkdm1fYXNtLmMgc3JjL2hvc3QvYnVpbGR2bV9hc20uYwotaW5kZXggZmZkMTQ5 MC4uNmJiOTk1ZSAxMDA2NDQKLS0tLSBhL3NyYy9ob3N0L2J1aWxkdm1fYXNtLmMKLSsrKyBiL3Ny Yy9ob3N0L2J1aWxkdm1fYXNtLmMKLUBAIC0xNDAsMTggKzE0MCwxNCBAQCBzdGF0aWMgdm9pZCBl bWl0X2FzbV93b3JkcmVsb2MoQnVpbGRDdHggKmN0eCwgdWludDhfdCAqcCwgaW50IG4sCi0gI2Vs c2UKLSAjZGVmaW5lIFRPQ1BSRUZJWCAiIgotICNlbmRpZgotLSAgaWYgKChpbnMgPj4gMjYpID09 IDE2KSB7Ci0rICBpZiAoKGlucyA+PiAyNikgPT0gMTQpIHsKLSsgICAgZnByaW50ZihjdHgtPmZw LCAiXHRhZGRpICVkLCVkLCVzXG4iLCAoaW5zID4+IDIxKSAmIDMxLCAoaW5zID4+IDE2KSAmIDMx LCBzeW0pOwotKyAgfSBlbHNlIGlmICgoaW5zID4+IDI2KSA9PSAxNSkgewotKyAgICBmcHJpbnRm KGN0eC0+ZnAsICJcdGFkZGlzICVkLCVkLCVzXG4iLCAoaW5zID4+IDIxKSAmIDMxLCAoaW5zID4+ IDE2KSAmIDMxLCBzeW0pOwotKyAgfSBlbHNlIGlmICgoaW5zID4+IDI2KSA9PSAxNikgewotICAg ICBmcHJpbnRmKGN0eC0+ZnAsICJcdCVzICVkLCAlZCwgIiBUT0NQUkVGSVggIiVzXG4iLAotIAkg ICAgKGlucyAmIDEpID8gImJjbCIgOiAiYmMiLCAoaW5zID4+IDIxKSAmIDMxLCAoaW5zID4+IDE2 KSAmIDMxLCBzeW0pOwotICAgfSBlbHNlIGlmICgoaW5zID4+IDI2KSA9PSAxOCkgewotLSNpZiBM Sl9BUkNIX1BQQzY0Ci0tICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCA9IHN0cmNocihzeW0sICdAJyk7 Ci0tICAgIGlmIChzdWZmaXggJiYgc3VmZml4WzFdID09ICdoJykgewotLSAgICAgIGZwcmludGYo Y3R4LT5mcCwgIlx0YWRkaXMgMTEsIDIsICVzXG4iLCBzeW0pOwotLSAgICB9IGVsc2UgaWYgKHN1 ZmZpeCAmJiBzdWZmaXhbMV0gPT0gJ2wnKSB7Ci0tICAgICAgZnByaW50ZihjdHgtPmZwLCAiXHRs ZCAxMiwgJXNcbiIsIHN5bSk7Ci0tICAgIH0gZWxzZQotLSNlbmRpZgotICAgICBmcHJpbnRmKGN0 eC0+ZnAsICJcdCVzICIgVE9DUFJFRklYICIlc1xuIiwgKGlucyAmIDEpID8gImJsIiA6ICJiIiwg c3ltKTsKLSAgIH0gZWxzZSB7Ci0gICAgIGZwcmludGYoc3RkZXJyLAotQEAgLTI1MCw3ICsyNDYs NyBAQCB2b2lkIGVtaXRfYXNtKEJ1aWxkQ3R4ICpjdHgpCi0gICBpbnQgaSwgcmVsOwotIAotICAg ZnByaW50ZihjdHgtPmZwLCAiXHQuZmlsZSBcImJ1aWxkdm1fJXMuZGFzY1wiXG4iLCBjdHgtPmRh c21fYXJjaCk7Ci0tI2lmIExKX0FSQ0hfUFBDNjQKLSsjaWYgTEpfQVJDSF9QUENfRUxGVjIKLSAg IGZwcmludGYoY3R4LT5mcCwgIlx0LmFiaXZlcnNpb24gMlxuIik7Ci0gI2VuZGlmCi0gICBmcHJp bnRmKGN0eC0+ZnAsICJcdC50ZXh0XG4iKTsKLWRpZmYgLS1naXQgc3JjL2xqX2FyY2guaCBzcmMv bGpfYXJjaC5oCi1pbmRleCBkNjA5YjM3Li41M2JjNjUxIDEwMDY0NAotLS0tIGEvc3JjL2xqX2Fy Y2guaAotKysrIGIvc3JjL2xqX2FyY2guaAotQEAgLTI2OSwxMCArMjY5LDE4IEBACi0gI2lmIExK X1RBUkdFVF9DT05TT0xFCi0gI2RlZmluZSBMSl9BUkNIX1BQQzMyT042NAkxCi0gI2RlZmluZSBM Sl9BUkNIX05PRkZJCQkxCi0rI2lmIExKX1RBUkdFVF9QUzMKLSsjZGVmaW5lIExKX0FSQ0hfUFBD X09QRAkJMQotKyNlbmRpZgotICNlbGlmIExKX0FSQ0hfQklUUyA9PSA2NAotLSNkZWZpbmUgTEpf QVJDSF9QUEM2NAkJMQotLSNkZWZpbmUgTEpfVEFSR0VUX0dDNjQJCTEKLSsjZGVmaW5lIExKX0FS Q0hfUFBDMzJPTjY0CTEKLSAjZGVmaW5lIExKX0FSQ0hfTk9KSVQJCTEJLyogTllJICovCi0rI2lm IF9DQUxMX0VMRiA9PSAyCi0rI2RlZmluZSBMSl9BUkNIX1BQQ19FTEZWMgkxCi0rI2Vsc2UKLSsj ZGVmaW5lIExKX0FSQ0hfUFBDX09QRAkJMQotKyNkZWZpbmUgTEpfQVJDSF9QUENfT1BERU5WCTEK LSsjZW5kaWYKLSAjZW5kaWYKLSAKLSAjaWYgX0FSQ0hfUFdSNwotQEAgLTQyMywxMiArNDMxLDYg QEAKLSAjaWYgZGVmaW5lZChfU09GVF9GTE9BVCkgfHwgZGVmaW5lZChfU09GVF9ET1VCTEUpCi0g I2Vycm9yICJObyBzdXBwb3J0IGZvciBQb3dlclBDIENQVXMgd2l0aG91dCBkb3VibGUtcHJlY2lz aW9uIEZQVSIKLSAjZW5kaWYKLS0jaWYgIUxKX0FSQ0hfUFBDNjQgJiYgTEpfQVJDSF9FTkRJQU4g PT0gTFVBSklUX0xFCi0tI2Vycm9yICJObyBzdXBwb3J0IGZvciBsaXR0bGUtZW5kaWFuIFBQQzMy IgotLSNlbmRpZgotLSNpZiBMSl9BUkNIX1BQQzY0Ci0tI2Vycm9yICJObyBzdXBwb3J0IGZvciBQ b3dlclBDIDY0IGJpdCBtb2RlICh5ZXQpIgotLSNlbmRpZgotICNpZmRlZiBfX05PX0ZQUlNfXwot ICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgUFBDL2U1MDAgYW55bW9yZSAodXNlIEx1YUpJVCAyLjAp IgotICNlbmRpZgotZGlmZiAtLWdpdCBzcmMvbGpfY2NhbGwuYyBzcmMvbGpfY2NhbGwuYwotaW5k ZXggNWMyNTJlNS4uYjg5MTU5MSAxMDA2NDQKLS0tLSBhL3NyYy9sal9jY2FsbC5jCi0rKysgYi9z cmMvbGpfY2NhbGwuYwotQEAgLTM2OSwyMSArMzY5LDk3IEBACi0gI2VsaWYgTEpfVEFSR0VUX1BQ QwotIC8qIC0tIFBQQyBjYWxsaW5nIGNvbnZlbnRpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLwotIAotKyNpZiBMSl9BUkNIX0JJVFMgPT0gNjQKLSsK LSsjaWYgTEpfQVJDSF9QUENfRUxGVjIKLSsKLSsjZGVmaW5lIENDQUxMX0hBTkRMRV9TVFJVQ1RS RVQgXAotKyAgaWYgKHN6ID4gMTYgJiYgY2NhbGxfY2xhc3NpZnlfZnAoY3RzLCBjdHIpIDw9IDAp IHsgXAotKyAgICBjYy0+cmV0cmVmID0gMTsgIC8qIFJldHVybiBieSByZWZlcmVuY2UuICovIFwK LSsgICAgY2MtPmdwcltuZ3ByKytdID0gKEdQUkFyZylkcDsgXAotKyAgfQotKwotKyNkZWZpbmUg Q0NBTExfSEFORExFX1NUUlVDVFJFVDIgXAotKyAgaW50IGlzZnAgPSBjY2FsbF9jbGFzc2lmeV9m cChjdHMsIGN0cik7IFwKLSsgIGludCBpOyBcCi0rICBpZiAoaXNmcCA9PSBGVFlQRV9GTE9BVCkg eyBcCi0rICAgIGZvciAoaSA9IDA7IGkgPCBjdHItPnNpemUgLyA0OyBpKyspIFwKLSsgICAgICAo KGZsb2F0ICopZHApW2ldID0gY2MtPmZwcltpXTsgXAotKyAgfSBlbHNlIGlmIChpc2ZwID09IEZU WVBFX0RPVUJMRSkgeyBcCi0rICAgIGZvciAoaSA9IDA7IGkgPCBjdHItPnNpemUgLyA4OyBpKysp IFwKLSsgICAgICAoKGRvdWJsZSAqKWRwKVtpXSA9IGNjLT5mcHJbaV07IFwKLSsgIH0gZWxzZSB7 IFwKLSsgICAgaWYgKGN0ci0+c2l6ZSA8IDggJiYgTEpfQkUpIHsgXAotKyAgICAgIHNwICs9IDgg LSBjdHItPnNpemU7IFwKLSsgICAgfSBcCi0rICAgIG1lbWNweShkcCwgc3AsIGN0ci0+c2l6ZSk7 IFwKLSsgIH0KLSsKLSsjZWxzZQotKwotICNkZWZpbmUgQ0NBTExfSEFORExFX1NUUlVDVFJFVCBc Ci0gICBjYy0+cmV0cmVmID0gMTsgIC8qIFJldHVybiBhbGwgc3RydWN0cyBieSByZWZlcmVuY2Uu ICovIFwKLSAgIGNjLT5ncHJbbmdwcisrXSA9IChHUFJBcmcpZHA7Ci0gCi0rI2VuZGlmCi0rCi0g I2RlZmluZSBDQ0FMTF9IQU5ETEVfQ09NUExFWFJFVCBcCi0gICAvKiBDb21wbGV4IHZhbHVlcyBh cmUgcmV0dXJuZWQgaW4gMiBvciA0IEdQUnMuICovIFwKLSAgIGNjLT5yZXRyZWYgPSAwOwotIAot KyNkZWZpbmUgQ0NBTExfSEFORExFX1NUUlVDVEFSRwotKwotICNkZWZpbmUgQ0NBTExfSEFORExF X0NPTVBMRVhSRVQyIFwKLS0gIG1lbWNweShkcCwgc3AsIGN0ci0+c2l6ZSk7ICAvKiBDb3B5IGNv bXBsZXggZnJvbSBHUFJzLiAqLwotKyAgaWYgKGN0ci0+c2l6ZSA9PSAyKnNpemVvZihmbG9hdCkp IHsgIC8qIENvcHkgY29tcGxleCBmbG9hdCBmcm9tIEZQUnMuICovIFwKLSsgICAgKChmbG9hdCAq KWRwKVswXSA9IGNjLT5mcHJbMF07IFwKLSsgICAgKChmbG9hdCAqKWRwKVsxXSA9IGNjLT5mcHJb MV07IFwKLSsgIH0gZWxzZSB7ICAvKiBDb3B5IGNvbXBsZXggZG91YmxlIGZyb20gRlBScy4gKi8g XAotKyAgICAoKGRvdWJsZSAqKWRwKVswXSA9IGNjLT5mcHJbMF07IFwKLSsgICAgKChkb3VibGUg KilkcClbMV0gPSBjYy0+ZnByWzFdOyBcCi0rICB9Ci0rCi0rI2RlZmluZSBDQ0FMTF9IQU5ETEVf Q09NUExFWEFSRyBcCi0rICBpc2ZwID0gMTsgXAotKyAgaWYgKGQtPnNpemUgPT0gc2l6ZW9mKGZs b2F0KSAqIDIpIHsgXAotKyAgICBkID0gY3R5cGVfZ2V0KGN0cywgQ1RJRF9DT01QTEVYX0RPVUJM RSk7IFwKLSsgICAgaXNmMzIgPSAxOyBcCi0rICB9Ci0rCi0rI2RlZmluZSBDQ0FMTF9IQU5ETEVf UkVHQVJHIFwKLSsgIGlmIChpc2ZwICYmIGQtPnNpemUgPT0gc2l6ZW9mKGZsb2F0KSkgeyBcCi0r ICAgIGQgPSBjdHlwZV9nZXQoY3RzLCBDVElEX0RPVUJMRSk7IFwKLSsgICAgaXNmMzIgPSAxOyBc Ci0rICB9IFwKLSsgIGlmIChuZ3ByIDwgbWF4Z3ByKSB7IFwKLSsgICBkcCA9ICZjYy0+Z3ByW25n cHJdOyBcCi0rICAgbmdwciArPSBuOyBcCi0rICAgaWYgKG5ncHIgPiBtYXhncHIpIHsgXAotKyAg ICAgbnNwICs9IG5ncHIgLSA4OyBcCi0rICAgICBuZ3ByID0gODsgXAotKyAgICAgaWYgKG5zcCA+ IENDQUxMX01BWFNUQUNLKSB7IFwKLSsgICAgICAgZ290byBlcnJfbnlpOyBcCi0rICAgICB9IFwK LSsgICB9IFwKLSsgICBnb3RvIGRvbmU7IFwKLSsgIH0KLSsKLSsjZWxzZQotKwotKyNkZWZpbmUg Q0NBTExfSEFORExFX1NUUlVDVFJFVCBcCi0rICBjYy0+cmV0cmVmID0gMTsgIC8qIFJldHVybiBh bGwgc3RydWN0cyBieSByZWZlcmVuY2UuICovIFwKLSsgIGNjLT5ncHJbbmdwcisrXSA9IChHUFJB cmcpZHA7Ci0rCi0rI2RlZmluZSBDQ0FMTF9IQU5ETEVfQ09NUExFWFJFVCBcCi0rICAvKiBDb21w bGV4IHZhbHVlcyBhcmUgcmV0dXJuZWQgaW4gMiBvciA0IEdQUnMuICovIFwKLSsgIGNjLT5yZXRy ZWYgPSAwOwotIAotICNkZWZpbmUgQ0NBTExfSEFORExFX1NUUlVDVEFSRyBcCi0gICBycCA9IGNk YXRhcHRyKGxqX2NkYXRhX25ldyhjdHMsIGRpZCwgc3opKTsgXAotICAgc3ogPSBDVFNJWkVfUFRS OyAgLyogUGFzcyBhbGwgc3RydWN0cyBieSByZWZlcmVuY2UuICovCi0gCi0rI2RlZmluZSBDQ0FM TF9IQU5ETEVfQ09NUExFWFJFVDIgXAotKyAgbWVtY3B5KGRwLCBzcCwgY3RyLT5zaXplKTsgIC8q IENvcHkgY29tcGxleCBmcm9tIEdQUnMuICovCi0rCi0gI2RlZmluZSBDQ0FMTF9IQU5ETEVfQ09N UExFWEFSRyBcCi0gICAvKiBQYXNzIGNvbXBsZXggYnkgdmFsdWUgaW4gMiBvciA0IEdQUnMuICov Ci0gCi1AQCAtNDEwLDYgKzQ4Niw4IEBACi0gICAgIH0gXAotICAgfQotIAotKyNlbmRpZgotKwot ICNkZWZpbmUgQ0NBTExfSEFORExFX1JFVCBcCi0gICBpZiAoY3R5cGVfaXNmcChjdHItPmluZm8p ICYmIGN0ci0+c2l6ZSA9PSBzaXplb2YoZmxvYXQpKSBcCi0gICAgIGN0ciA9IGN0eXBlX2dldChj dHMsIENUSURfRE9VQkxFKTsgIC8qIEZQUnMgYWx3YXlzIGhvbGQgZG91Ymxlcy4gKi8KLUBAIC04 MDEsNiArODc5LDUwIEBAIG5vdGg6ICAvKiBOb3QgYSBob21vZ2VuZW91cyBmbG9hdC9kb3VibGUg YWdncmVnYXRlLiAqLwotIAotICNlbmRpZgotIAotKy8qIC0tIFBvd2VyUEM2NCBFTEZ2MiBBQkkg c3RydWN0IGNsYXNzaWZpY2F0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLSsKLSsjaWYgTEpf QVJDSF9QUENfRUxGVjIKLSsKLSsjZGVmaW5lIEZUWVBFX0ZMT0FUCTEKLSsjZGVmaW5lIEZUWVBF X0RPVUJMRQkyCi0rCi0rc3RhdGljIHVuc2lnbmVkIGludCBjY2FsbF9jbGFzc2lmeV9mcChDVFN0 YXRlICpjdHMsIENUeXBlICpjdCkgewotKyAgaWYgKGN0eXBlX2lzZnAoY3QtPmluZm8pKSB7Ci0r ICAgIGlmIChjdC0+c2l6ZSA9PSBzaXplb2YoZmxvYXQpKQotKyAgICAgIHJldHVybiBGVFlQRV9G TE9BVDsKLSsgICAgZWxzZQotKyAgICAgIHJldHVybiBGVFlQRV9ET1VCTEU7Ci0rICB9IGVsc2Ug aWYgKGN0eXBlX2lzY29tcGxleChjdC0+aW5mbykpIHsKLSsgICAgaWYgKGN0LT5zaXplID09IHNp emVvZihmbG9hdCkgKiAyKQotKyAgICAgIHJldHVybiBGVFlQRV9GTE9BVDsKLSsgICAgZWxzZQot KyAgICAgIHJldHVybiBGVFlQRV9ET1VCTEU7Ci0rICB9IGVsc2UgaWYgKGN0eXBlX2lzc3RydWN0 KGN0LT5pbmZvKSkgewotKyAgICBpbnQgcmVzID0gLTE7Ci0rICAgIGludCBzeiA9IGN0LT5zaXpl OwotKyAgICB3aGlsZSAoY3QtPnNpYikgewotKyAgICAgIGN0ID0gY3R5cGVfZ2V0KGN0cywgY3Qt PnNpYik7Ci0rICAgICAgaWYgKGN0eXBlX2lzZmllbGQoY3QtPmluZm8pKSB7Ci0rICAgICAgICBp bnQgc3ViID0gY2NhbGxfY2xhc3NpZnlfZnAoY3RzLCBjdHlwZV9yYXdjaGlsZChjdHMsIGN0KSk7 Ci0rICAgICAgICBpZiAocmVzID09IC0xKQotKyAgICAgICAgICByZXMgPSBzdWI7Ci0rICAgICAg ICBpZiAoc3ViICE9IC0xICYmIHN1YiAhPSByZXMpCi0rICAgICAgICAgIHJldHVybiAwOwotKyAg ICAgIH0gZWxzZSBpZiAoY3R5cGVfaXNiaXRmaWVsZChjdC0+aW5mbykgfHwKLSsgICAgICAgIGN0 eXBlX2lzeGF0dHJpYihjdC0+aW5mbywgQ1RBX1NVQlRZUEUpKSB7Ci0rICAgICAgICByZXR1cm4g MDsKLSsgICAgICB9Ci0rICAgIH0KLSsgICAgaWYgKHJlcyA+IDAgJiYgc3ogPiByZXMgKiA0ICog OCkKLSsgICAgICByZXR1cm4gMDsKLSsgICAgcmV0dXJuIHJlczsKLSsgIH0gZWxzZSB7Ci0rICAg IHJldHVybiAwOwotKyAgfQotK30KLSsKLSsjZW5kaWYKLSsKLSAvKiAtLSBNSVBTNjQgQUJJIHN0 cnVjdCBjbGFzc2lmaWNhdGlvbiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gCi0g I2lmIExKX1RBUkdFVF9NSVBTNjQKLUBAIC05NzQsNiArMTA5Niw5IEBAIHN0YXRpYyBpbnQgY2Nh bGxfc2V0X2FyZ3MobHVhX1N0YXRlICpMLCBDVFN0YXRlICpjdHMsIENUeXBlICpjdCwKLSAgICAg Q1RTaXplIHN6OwotICAgICBNU2l6ZSBuLCBpc2ZwID0gMCwgaXN2YSA9IDA7Ci0gICAgIHZvaWQg KmRwLCAqcnAgPSBOVUxMOwotKyNpZiBMSl9UQVJHRVRfUFBDICYmIExKX0FSQ0hfQklUUyA9PSA2 NAotKyAgICBpbnQgaXNmMzIgPSAwOwotKyNlbmRpZgotIAotICAgICBpZiAoZmlkKSB7ICAvKiBH ZXQgYXJndW1lbnQgdHlwZSBmcm9tIGZpZWxkLiAqLwotICAgICAgIENUeXBlICpjdGYgPSBjdHlw ZV9nZXQoY3RzLCBmaWQpOwotQEAgLTEwMzAsNyArMTE1NSwzNyBAQCBzdGF0aWMgaW50IGNjYWxs X3NldF9hcmdzKGx1YV9TdGF0ZSAqTCwgQ1RTdGF0ZSAqY3RzLCBDVHlwZSAqY3QsCi0gICAgICAg Kih2b2lkICoqKWRwID0gcnA7Ci0gICAgICAgZHAgPSBycDsKLSAgICAgfQotKyNpZiBMSl9UQVJH RVRfUFBDICYmIExKX0FSQ0hfQklUUyA9PSA2NCAmJiBMSl9CRQotKyAgICBpZiAoY3R5cGVfaXNz dHJ1Y3QoZC0+aW5mbykgJiYgc3ogPCBDVFNJWkVfUFRSKSB7Ci0rICAgICAgZHAgPSAoY2hhciAq KWRwICsgKENUU0laRV9QVFIgLSBzeik7Ci0rICAgIH0KLSsjZW5kaWYKLSAgICAgbGpfY2NvbnZf Y3RfdHYoY3RzLCBkLCAodWludDhfdCAqKWRwLCBvLCBDQ0ZfQVJHKG5hcmcpKTsKLSsjaWYgTEpf VEFSR0VUX1BQQyAmJiBMSl9BUkNIX0JJVFMgPT0gNjQKLSsgICAgaWYgKGlzZnApIHsKLSsgICAg ICBpbnQgaTsKLSsgICAgICBmb3IgKGkgPSAwOyBpIDwgZC0+c2l6ZSAvIDggJiYgbmZwciA8IEND QUxMX05BUkdfRlBSOyBpKyspCi0rICAgICAgICBjYy0+ZnByW25mcHIrK10gPSAoKGRvdWJsZSAq KWRwKVtpXTsKLSsgICAgfQotKyAgICBpZiAoaXNmMzIpIHsKLSsgICAgICBpbnQgaTsKLSsgICAg ICBmb3IgKGkgPSAwOyBpIDwgZC0+c2l6ZSAvIDg7IGkrKykKLSsgICAgICAgICgoZmxvYXQgKilk cClbaSoyXSA9ICgoZG91YmxlICopZHApW2ldOwotKyAgICB9Ci0rI2VuZGlmCi0rI2lmIExKX0FS Q0hfUFBDX0VMRlYyCi0rICAgIGlmIChjdHlwZV9pc3N0cnVjdChkLT5pbmZvKSkgewotKyAgICAg IGlzZnAgPSBjY2FsbF9jbGFzc2lmeV9mcChjdHMsIGQpOwotKyAgICAgIGludCBpOwotKyAgICAg IGlmIChpc2ZwID09IEZUWVBFX0ZMT0FUKSB7Ci0rICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZC0+ c2l6ZSAvIDQgJiYgbmZwciA8IENDQUxMX05BUkdfRlBSOyBpKyspCi0rICAgICAgICAgIGNjLT5m cHJbbmZwcisrXSA9ICgoZmxvYXQgKilkcClbaV07Ci0rICAgICAgfSBlbHNlIGlmIChpc2ZwID09 IEZUWVBFX0RPVUJMRSkgewotKyAgICAgICAgZm9yIChpID0gMDsgaSA8IGQtPnNpemUgLyA4ICYm IG5mcHIgPCBDQ0FMTF9OQVJHX0ZQUjsgaSsrKQotKyAgICAgICAgICBjYy0+ZnByW25mcHIrK10g PSAoKGRvdWJsZSAqKWRwKVtpXTsKLSsgICAgICB9Ci0rICAgIH0KLSsjZW5kaWYKLSAgICAgLyog RXh0ZW5kIHBhc3NlZCBpbnRlZ2VycyB0byAzMiBiaXRzIGF0IGxlYXN0LiAqLwotICAgICBpZiAo Y3R5cGVfaXNpbnRlZ2VyX29yX2Jvb2woZC0+aW5mbykgJiYgZC0+c2l6ZSA8IDQpIHsKLSAgICAg ICBpZiAoZC0+aW5mbyAmIENURl9VTlNJR05FRCkKLUBAIC0xMDQ0LDYgKzExOTksMTUgQEAgc3Rh dGljIGludCBjY2FsbF9zZXRfYXJncyhsdWFfU3RhdGUgKkwsIENUU3RhdGUgKmN0cywgQ1R5cGUg KmN0LAotICAgICBpZiAoaXNmcCAmJiBkLT5zaXplID09IHNpemVvZihmbG9hdCkpCi0gICAgICAg KChmbG9hdCAqKWRwKVsxXSA9ICgoZmxvYXQgKilkcClbMF07ICAvKiBGbG9hdHMgb2NjdXB5IGhp Z2ggc2xvdC4gKi8KLSAjZW5kaWYKLSsjaWYgTEpfVEFSR0VUX1BQQyAmJiBMSl9BUkNIX0JJVFMg PT0gNjQKLSsgICAgaWYgKChjdHlwZV9pc2ludGVnZXJfb3JfYm9vbChkLT5pbmZvKSB8fCBjdHlw ZV9pc2VudW0oZC0+aW5mbykpCi0rCSYmIGQtPnNpemUgPD0gNCkgewotKyAgICAgIGlmIChkLT5p bmZvICYgQ1RGX1VOU0lHTkVEKQotKwkqKHVpbnQ2NF90ICopZHAgPSAodWludDY0X3QpKih1aW50 MzJfdCAqKWRwOwotKyAgICAgIGVsc2UKLSsgICAgICAgICooaW50NjRfdCAqKWRwID0gKGludDY0 X3QpKihpbnQzMl90ICopZHA7Ci0rICAgIH0KLSsjZW5kaWYKLSAjaWYgTEpfVEFSR0VUX01JUFM2 NCB8fCAoTEpfVEFSR0VUX0FSTTY0ICYmIExKX0JFKQotICAgICBpZiAoKGN0eXBlX2lzaW50ZWdl cl9vcl9ib29sKGQtPmluZm8pIHx8IGN0eXBlX2lzZW51bShkLT5pbmZvKQotICNpZiBMSl9UQVJH RVRfTUlQUzY0Ci1kaWZmIC0tZ2l0IHNyYy9sal9jY2FsbC5oIHNyYy9sal9jY2FsbC5oCi1pbmRl eCA1OWY2NjQ4Li5iYmYzMDlmIDEwMDY0NAotLS0tIGEvc3JjL2xqX2NjYWxsLmgKLSsrKyBiL3Ny Yy9sal9jY2FsbC5oCi1AQCAtODYsMTAgKzg2LDIzIEBAIHR5cGVkZWYgdW5pb24gRlBSQXJnIHsK LSAjZWxpZiBMSl9UQVJHRVRfUFBDCi0gCi0gI2RlZmluZSBDQ0FMTF9OQVJHX0dQUgkJOAotKyNp ZiBMSl9BUkNIX0JJVFMgPT0gNjQKLSsjZGVmaW5lIENDQUxMX05BUkdfRlBSCQkxMwotKyNpZiBM Sl9BUkNIX1BQQ19FTEZWMgotKyNkZWZpbmUgQ0NBTExfTlJFVF9HUFIJCTIKLSsjZGVmaW5lIEND QUxMX05SRVRfRlBSCQk4Ci0rI2RlZmluZSBDQ0FMTF9TUFNfRVhUUkEJCTE0Ci0rI2Vsc2UKLSsj ZGVmaW5lIENDQUxMX05SRVRfR1BSCQkxCi0rI2RlZmluZSBDQ0FMTF9OUkVUX0ZQUgkJMgotKyNk ZWZpbmUgQ0NBTExfU1BTX0VYVFJBCQkxNgotKyNlbmRpZgotKyNlbHNlCi0gI2RlZmluZSBDQ0FM TF9OQVJHX0ZQUgkJOAotICNkZWZpbmUgQ0NBTExfTlJFVF9HUFIJCTQJLyogRm9yIGNvbXBsZXgg ZG91YmxlLiAqLwotICNkZWZpbmUgQ0NBTExfTlJFVF9GUFIJCTEKLSAjZGVmaW5lIENDQUxMX1NQ U19FWFRSQQkJNAotKyNlbmRpZgotICNkZWZpbmUgQ0NBTExfU1BTX0ZSRUUJCTAKLSAKLSB0eXBl ZGVmIGludHB0cl90IEdQUkFyZzsKLWRpZmYgLS1naXQgc3JjL2xqX2NjYWxsYmFjay5jIHNyYy9s al9jY2FsbGJhY2suYwotaW5kZXggODQ2ODI3Yi4uZWI3ZjQ0NSAxMDA2NDQKLS0tLSBhL3NyYy9s al9jY2FsbGJhY2suYwotKysrIGIvc3JjL2xqX2NjYWxsYmFjay5jCi1AQCAtNjEsOCArNjEsMjQg QEAgc3RhdGljIE1TaXplIENBTExCQUNLX09GUzJTTE9UKE1TaXplIG9mcykKLSAKLSAjZWxpZiBM Sl9UQVJHRVRfUFBDCi0gCi0rI2lmIExKX0FSQ0hfUFBDX09QRAotKwotKyNkZWZpbmUgQ0FMTEJB Q0tfU0xPVDJPRlMoc2xvdCkJCSgyNCooc2xvdCkpCi0rI2RlZmluZSBDQUxMQkFDS19PRlMyU0xP VChvZnMpCQkoKG9mcykvMjQpCi0rI2RlZmluZSBDQUxMQkFDS19NQVhfU0xPVAkJKENBTExCQUNL X09GUzJTTE9UKENBTExCQUNLX01DT0RFX1NJWkUpKQotKwotKyNlbGlmIExKX0FSQ0hfUFBDX0VM RlYyCi0rCi0rI2RlZmluZSBDQUxMQkFDS19TTE9UMk9GUyhzbG90KQkJKDQqKHNsb3QpKQotKyNk ZWZpbmUgQ0FMTEJBQ0tfT0ZTMlNMT1Qob2ZzKQkJKChvZnMpLzQpCi0rI2RlZmluZSBDQUxMQkFD S19NQVhfU0xPVAkJKENBTExCQUNLX01DT0RFX1NJWkUvNCAtIDEwKQotKwotKyNlbHNlCi0rCi0g I2RlZmluZSBDQUxMQkFDS19NQ09ERV9IRUFECQkyNAotIAotKyNlbmRpZgotKwotICNlbGlmIExK X1RBUkdFVF9NSVBTMzIKLSAKLSAjZGVmaW5lIENBTExCQUNLX01DT0RFX0hFQUQJCTIwCi1AQCAt MTg4LDI0ICsyMDQsNTkgQEAgc3RhdGljIHZvaWQgY2FsbGJhY2tfbWNvZGVfaW5pdChnbG9iYWxf U3RhdGUgKmcsIHVpbnQzMl90ICpwYWdlKQotICAgbHVhX2Fzc2VydChwIC0gcGFnZSA8PSBDQUxM QkFDS19NQ09ERV9TSVpFKTsKLSB9Ci0gI2VsaWYgTEpfVEFSR0VUX1BQQwotKyNpZiBMSl9BUkNI X1BQQ19PUEQKLStyZWdpc3RlciB2b2lkICp2bV90b2MgX19hc21fXygicjIiKTsKLStzdGF0aWMg dm9pZCBjYWxsYmFja19tY29kZV9pbml0KGdsb2JhbF9TdGF0ZSAqZywgdWludDY0X3QgKnBhZ2Up Ci0rewotKyAgdWludDY0X3QgKnAgPSBwYWdlOwotKyAgdm9pZCAqdGFyZ2V0ID0gKHZvaWQgKils al92bV9mZmlfY2FsbGJhY2s7Ci0rICBNU2l6ZSBzbG90OwotKyAgZm9yIChzbG90ID0gMDsgc2xv dCA8IENBTExCQUNLX01BWF9TTE9UOyBzbG90KyspIHsKLSsgICAgKnArKyA9ICh1aW50NjRfdCl0 YXJnZXQ7Ci0rICAgICpwKysgPSAodWludDY0X3Qpdm1fdG9jOwotKyAgICAqcCsrID0gKHVpbnQ2 NF90KWcgfCAoKHVpbnQ2NF90KXNsb3QgPDwgNDcpOwotKyAgfQotKyAgbHVhX2Fzc2VydChwIC0g cGFnZSA8PSBDQUxMQkFDS19NQ09ERV9TSVpFIC8gOCk7Ci0rfQotKyNlbHNlCi0gc3RhdGljIHZv aWQgY2FsbGJhY2tfbWNvZGVfaW5pdChnbG9iYWxfU3RhdGUgKmcsIHVpbnQzMl90ICpwYWdlKQot IHsKLSAgIHVpbnQzMl90ICpwID0gcGFnZTsKLSAgIHZvaWQgKnRhcmdldCA9ICh2b2lkICopbGpf dm1fZmZpX2NhbGxiYWNrOwotICAgTVNpemUgc2xvdDsKLSsjaWYgTEpfQVJDSF9QUENfRUxGVjIK LSsgIC8vIE5lZWRzIHRvIGJlIGluIHN5bmMgd2l0aCBsal92bV9mZmlfY2FsbGJhY2suCi0rICBs dWFfYXNzZXJ0KENBTExCQUNLX01DT0RFX1NJWkUgPT0gNDA5Nik7Ci0rICBmb3IgKHNsb3QgPSAw OyBzbG90IDwgQ0FMTEJBQ0tfTUFYX1NMT1Q7IHNsb3QrKykgewotKyAgICAqcCA9IFBQQ0lfQiB8 ICgoKHBhZ2UrQ0FMTEJBQ0tfTUFYX1NMT1QtcCkgJiAweDAwZmZmZmZmdSkgPDwgMik7Ci0rICAg IHArKzsKLSsgIH0KLSsgICpwKysgPSBQUENJX0xJIHwgUFBDRl9UKFJJRF9TWVMxKSB8ICgoKChp bnRwdHJfdCl0YXJnZXQpID4+IDMyKSAmIDB4ZmZmZik7Ci0rICAqcCsrID0gUFBDSV9MSSB8IFBQ Q0ZfVChSSURfUjExKSB8ICgoKChpbnRwdHJfdClnKSA+PiAzMikgJiAweGZmZmYpOwotKyAgKnAr KyA9IFBQQ0lfUkxESUNSIHwgUFBDRl9UKFJJRF9TWVMxKSB8IFBQQ0ZfQShSSURfU1lTMSkgfCBQ UENGX1NIKDMyKSB8IFBQQ0ZfTTYoNjMtMzIpOyAgLyogc2xkaSAqLwotKyAgKnArKyA9IFBQQ0lf UkxESUNSIHwgUFBDRl9UKFJJRF9SMTEpIHwgUFBDRl9BKFJJRF9SMTEpIHwgUFBDRl9TSCgzMikg fCBQUENGX002KDYzLTMyKTsgIC8qIHNsZGkgKi8KLSsgICpwKysgPSBQUENJX09SSVMgfCBQUENG X0EoUklEX1NZUzEpIHwgUFBDRl9UKFJJRF9TWVMxKSB8ICgoKChpbnRwdHJfdCl0YXJnZXQpID4+ IDE2KSAmIDB4ZmZmZik7Ci0rICAqcCsrID0gUFBDSV9PUklTIHwgUFBDRl9BKFJJRF9SMTEpIHwg UFBDRl9UKFJJRF9SMTEpIHwgKCgoKGludHB0cl90KWcpID4+IDE2KSAmIDB4ZmZmZik7Ci0rICAq cCsrID0gUFBDSV9PUkkgfCBQUENGX0EoUklEX1NZUzEpIHwgUFBDRl9UKFJJRF9TWVMxKSB8ICgo KGludHB0cl90KXRhcmdldCkgJiAweGZmZmYpOwotKyAgKnArKyA9IFBQQ0lfT1JJIHwgUFBDRl9B KFJJRF9SMTEpIHwgUFBDRl9UKFJJRF9SMTEpIHwgKCgoaW50cHRyX3QpZykgJiAweGZmZmYpOwot KyAgKnArKyA9IFBQQ0lfTVRDVFIgfCBQUENGX1QoUklEX1NZUzEpOwotKyAgKnArKyA9IFBQQ0lf QkNUUjsKLSsjZWxzZQotICAgKnArKyA9IFBQQ0lfTElTIHwgUFBDRl9UKFJJRF9UTVApIHwgKHUz MnB0cih0YXJnZXQpID4+IDE2KTsKLS0gICpwKysgPSBQUENJX0xJUyB8IFBQQ0ZfVChSSURfUjEy KSB8ICh1MzJwdHIoZykgPj4gMTYpOwotKyAgKnArKyA9IFBQQ0lfTElTIHwgUFBDRl9UKFJJRF9S MTEpIHwgKHUzMnB0cihnKSA+PiAxNik7Ci0gICAqcCsrID0gUFBDSV9PUkkgfCBQUENGX0EoUklE X1RNUCl8UFBDRl9UKFJJRF9UTVApIHwgKHUzMnB0cih0YXJnZXQpICYgMHhmZmZmKTsKLS0gICpw KysgPSBQUENJX09SSSB8IFBQQ0ZfQShSSURfUjEyKXxQUENGX1QoUklEX1IxMikgfCAodTMycHRy KGcpICYgMHhmZmZmKTsKLSsgICpwKysgPSBQUENJX09SSSB8IFBQQ0ZfQShSSURfUjExKXxQUENG X1QoUklEX1IxMSkgfCAodTMycHRyKGcpICYgMHhmZmZmKTsKLSAgICpwKysgPSBQUENJX01UQ1RS IHwgUFBDRl9UKFJJRF9UTVApOwotICAgKnArKyA9IFBQQ0lfQkNUUjsKLSAgIGZvciAoc2xvdCA9 IDA7IHNsb3QgPCBDQUxMQkFDS19NQVhfU0xPVDsgc2xvdCsrKSB7Ci0tICAgICpwKysgPSBQUENJ X0xJIHwgUFBDRl9UKFJJRF9SMTEpIHwgc2xvdDsKLSsgICAgKnArKyA9IFBQQ0lfTEkgfCBQUENG X1QoUklEX1IxMikgfCBzbG90OwotICAgICAqcCA9IFBQQ0lfQiB8ICgoKHBhZ2UtcCkgJiAweDAw ZmZmZmZmdSkgPDwgMik7Ci0gICAgIHArKzsKLSAgIH0KLS0gIGx1YV9hc3NlcnQocCAtIHBhZ2Ug PD0gQ0FMTEJBQ0tfTUNPREVfU0laRSk7Ci0rI2VuZGlmCi0rICBsdWFfYXNzZXJ0KHAgLSBwYWdl IDw9IENBTExCQUNLX01DT0RFX1NJWkUgLyA0KTsKLSB9Ci0rI2VuZGlmCi0gI2VsaWYgTEpfVEFS R0VUX01JUFMKLSBzdGF0aWMgdm9pZCBjYWxsYmFja19tY29kZV9pbml0KGdsb2JhbF9TdGF0ZSAq ZywgdWludDMyX3QgKnBhZ2UpCi0gewotQEAgLTY0MSw2ICs2OTIsMTUgQEAgc3RhdGljIHZvaWQg Y2FsbGJhY2tfY29udl9yZXN1bHQoQ1RTdGF0ZSAqY3RzLCBsdWFfU3RhdGUgKkwsIFRWYWx1ZSAq bykKLSAJKihpbnQzMl90ICopZHAgPSBjdHItPnNpemUgPT0gMSA/IChpbnQzMl90KSooaW50OF90 ICopZHAgOgotIAkJCQkJICAoaW50MzJfdCkqKGludDE2X3QgKilkcDsKLSAgICAgfQotKyNpZiBM Sl9UQVJHRVRfUFBDICYmIExKX0FSQ0hfQklUUyA9PSA2NAotKyAgICBpZiAoY3RyLT5zaXplIDw9 IDQgJiYKLSsgICAgICAgKGN0eXBlX2lzaW50ZWdlcl9vcl9ib29sKGN0ci0+aW5mbykgfHwgY3R5 cGVfaXNlbnVtKGN0ci0+aW5mbykpKSB7Ci0rICAgICAgaWYgKGN0ci0+aW5mbyAmIENURl9VTlNJ R05FRCkKLSsgICAgICAgICoodWludDY0X3QgKilkcCA9ICh1aW50NjRfdCkqKHVpbnQzMl90ICop ZHA7Ci0rICAgICAgZWxzZQotKyAgICAgICAgKihpbnQ2NF90ICopZHAgPSAoaW50NjRfdCkqKGlu dDMyX3QgKilkcDsKLSsgICAgfQotKyNlbmRpZgotICNpZiBMSl9UQVJHRVRfTUlQUzY0IHx8IChM Sl9UQVJHRVRfQVJNNjQgJiYgTEpfQkUpCi0gICAgIC8qIEFsd2F5cyBzaWduLWV4dGVuZCByZXN1 bHRzIHRvIDY0IGJpdHMuIEV2ZW4gYSBzb2Z0LWZwICdmbG9hdCcuICovCi0gICAgIGlmIChjdHIt PnNpemUgPD0gNCAmJgotZGlmZiAtLWdpdCBzcmMvbGpfY3R5cGUuaCBzcmMvbGpfY3R5cGUuaAot aW5kZXggMGMyMjBhOC4uMTA1ODY1YiAxMDA2NDQKLS0tLSBhL3NyYy9sal9jdHlwZS5oCi0rKysg Yi9zcmMvbGpfY3R5cGUuaAotQEAgLTE1Myw3ICsxNTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBDVHlw ZSB7Ci0gCi0gLyogU2ltcGxpZnkgdGFyZ2V0LXNwZWNpZmljIGNvbmZpZ3VyYXRpb24uIENoZWNr ZWQgaW4gbGpfY2NhbGwuaC4gKi8KLSAjZGVmaW5lIENDQUxMX01BWF9HUFIJCTgKLS0jZGVmaW5l IENDQUxMX01BWF9GUFIJCTgKLSsjZGVmaW5lIENDQUxMX01BWF9GUFIJCTE0Ci0gCi0gdHlwZWRl ZiBMSl9BTElHTig4KSB1bmlvbiBGUFJDQkFyZyB7IGRvdWJsZSBkOyBmbG9hdCBmWzJdOyB9IEZQ UkNCQXJnOwotIAotZGlmZiAtLWdpdCBzcmMvbGpfZGVmLmggc3JjL2xqX2RlZi5oCi1pbmRleCAy ZDhmZmY2Li4zODFkNmY1IDEwMDY0NAotLS0tIGEvc3JjL2xqX2RlZi5oCi0rKysgYi9zcmMvbGpf ZGVmLmgKLUBAIC03MSw3ICs3MSwxMSBAQCB0eXBlZGVmIHVuc2lnbmVkIGludCB1aW50cHRyX3Q7 Ci0gI2RlZmluZSBMSl9NQVhfSURYQ0hBSU4JMTAwCQkvKiBfX2luZGV4L19fbmV3aW5kZXggY2hh aW4gbGltaXQuICovCi0gI2RlZmluZSBMSl9TVEFDS19FWFRSQQkoNSsyKkxKX0ZSMikJLyogRXh0 cmEgc3RhY2sgc3BhY2UgKG1ldGFtZXRob2RzKS4gKi8KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKSAmJiBfQ0FMTF9FTEYgIT0gMgotKyNkZWZpbmUgTEpfTlVNX0NCUEFHRQk0CQkvKiBO dW1iZXIgb2YgRkZJIGNhbGxiYWNrIHBhZ2VzLiAqLwotKyNlbHNlCi0gI2RlZmluZSBMSl9OVU1f Q0JQQUdFCTEJCS8qIE51bWJlciBvZiBGRkkgY2FsbGJhY2sgcGFnZXMuICovCi0rI2VuZGlmCi0g Ci0gLyogTWluaW11bSB0YWJsZS9idWZmZXIgc2l6ZXMuICovCi0gI2RlZmluZSBMSl9NSU5fR0xP QkFMCTYJCS8qIE1pbi4gZ2xvYmFsIHRhYmxlIHNpemUgKGhiaXRzKS4gKi8KLWRpZmYgLS1naXQg c3JjL2xqX2ZyYW1lLmggc3JjL2xqX2ZyYW1lLmgKLWluZGV4IDE5YzQ5YTQuLmM2NjY0MTggMTAw NjQ0Ci0tLS0gYS9zcmMvbGpfZnJhbWUuaAotKysrIGIvc3JjL2xqX2ZyYW1lLmgKLUBAIC0yMTAs NiArMjEwLDE1IEBAIGVudW0geyBMSl9DT05UX1RBSUxDQUxMLCBMSl9DT05UX0ZGSV9DQUxMQkFD SyB9OyAgLyogU3BlY2lhbCBjb250aW51YXRpb25zLiAqLwotICNkZWZpbmUgQ0ZSQU1FX09GU19N VUxUUkVTCTQwOAotICNkZWZpbmUgQ0ZSQU1FX1NJWkUJCTM4NAotICNkZWZpbmUgQ0ZSQU1FX1NI SUZUX01VTFRSRVMJMwotKyNlbGlmIExKX0FSQ0hfUFBDX0VMRlYyCi0rI2RlZmluZSBDRlJBTUVf T0ZTX0VSUkYJCTM2MAotKyNkZWZpbmUgQ0ZSQU1FX09GU19OUkVTCQkzNTYKLSsjZGVmaW5lIENG UkFNRV9PRlNfUFJFVgkJMzM2Ci0rI2RlZmluZSBDRlJBTUVfT0ZTX0wJCTM1MgotKyNkZWZpbmUg Q0ZSQU1FX09GU19QQwkJMzQ4Ci0rI2RlZmluZSBDRlJBTUVfT0ZTX01VTFRSRVMJMzQ0Ci0rI2Rl ZmluZSBDRlJBTUVfU0laRQkJMzY4Ci0rI2RlZmluZSBDRlJBTUVfU0hJRlRfTVVMVFJFUwkzCi0g I2VsaWYgTEpfQVJDSF9QUEMzMk9ONjQKLSAjZGVmaW5lIENGUkFNRV9PRlNfRVJSRgkJNDcyCi0g I2RlZmluZSBDRlJBTUVfT0ZTX05SRVMJCTQ2OAotZGlmZiAtLWdpdCBzcmMvbGpfdGFyZ2V0X3Bw Yy5oIHNyYy9sal90YXJnZXRfcHBjLmgKLWluZGV4IGM1Yzk5MWEuLmYwYzhjOTQgMTAwNjQ0Ci0t LS0gYS9zcmMvbGpfdGFyZ2V0X3BwYy5oCi0rKysgYi9zcmMvbGpfdGFyZ2V0X3BwYy5oCi1AQCAt MzAsOCArMzAsMTMgQEAgZW51bSB7Ci0gCi0gICAvKiBDYWxsaW5nIGNvbnZlbnRpb25zLiAqLwot ICAgUklEX1JFVCA9IFJJRF9SMywKLSsjaWYgTEpfTEUKLSsgIFJJRF9SRVRISSA9IFJJRF9SNCwK LSsgIFJJRF9SRVRMTyA9IFJJRF9SMywKLSsjZWxzZQotICAgUklEX1JFVEhJID0gUklEX1IzLAot ICAgUklEX1JFVExPID0gUklEX1I0LAotKyNlbmRpZgotICAgUklEX0ZQUkVUID0gUklEX0YxLAot IAotICAgLyogVGhlc2UgZGVmaW5pdGlvbnMgbXVzdCBtYXRjaCB3aXRoIHRoZSAqLmRhc2MgZmls ZShzKTogKi8KLUBAIC0xMzEsNiArMTM2LDggQEAgc3RhdGljIExKX0FJTkxJTkUgdWludDMyX3Qg KmV4aXRzdHViX3RyYWNlX2FkZHJfKHVpbnQzMl90ICpwLCB1aW50MzJfdCBleGl0bm8pCi0gI2Rl ZmluZSBQUENGX0MocikJKChyKSA8PCA2KQotICNkZWZpbmUgUFBDRl9NQihuKQkoKG4pIDw8IDYp Ci0gI2RlZmluZSBQUENGX01FKG4pCSgobikgPDwgMSkKLSsjZGVmaW5lIFBQQ0ZfU0gobikJKCgo KG4pICYgMzEpIDw8ICgxMSsxKSkgfCAoKChuKSAmIDMyKSA+PiAoNS0xKSkpCi0rI2RlZmluZSBQ UENGX002KG4pCSgoKChuKSAmIDMxKSA8PCAoNSsxKSkgfCAoKChuKSAmIDMyKSA8PCAoMTEtNSkp KQotICNkZWZpbmUgUFBDRl9ZCQkweDAwMjAwMDAwCi0gI2RlZmluZSBQUENGX0RPVAkweDAwMDAw MDAxCi0gCi1AQCAtMjAwLDYgKzIwNywxMyBAQCB0eXBlZGVmIGVudW0gUFBDSW5zIHsKLSAgIFBQ Q0lfUkxXSU5NID0gMHg1NDAwMDAwMCwKLSAgIFBQQ0lfUkxXSU1JID0gMHg1MDAwMDAwMCwKLSAK LSsgIFBQQ0lfUkxESUNMID0gMHg3ODAwMDAwMCwKLSsgIFBQQ0lfUkxESUNSID0gMHg3ODAwMDAw NCwKLSsgIFBQQ0lfUkxESUMgPSAweDc4MDAwMDA4LAotKyAgUFBDSV9STERJTUkgPSAweDc4MDAw MDBjLAotKyAgUFBDSV9STERDTCA9IDB4NzgwMDAwMTAsCi0rICBQUENJX1JMRENSID0gMHg3ODAw MDAxMiwKLSsKLSAgIFBQQ0lfQiA9IDB4NDgwMDAwMDAsCi0gICBQUENJX0JMID0gMHg0ODAwMDAw MSwKLSAgIFBQQ0lfQkMgPSAweDQwODAwMDAwLAotZGlmZiAtLWdpdCBzcmMvdm1fcHBjLmRhc2Mg c3JjL3ZtX3BwYy5kYXNjCi1pbmRleCBiNDI2MGViLi5hYmIzODFlIDEwMDY0NAotLS0tIGEvc3Jj L3ZtX3BwYy5kYXNjCi0rKysgYi9zcmMvdm1fcHBjLmRhc2MKLUBAIC0yMiwzNSArMjIsNDAgQEAK LSB8Ly8gR1BSNjQgICA2NCBiaXQgcmVnaXN0ZXJzIChidXQgcG9zc2libHkgMzIgYml0IHBvaW50 ZXJzLCBlLmcuIFBTMykuCi0gfC8vICAgICAgICAgQWZmZWN0cyByZWcgc2F2ZXMsIHN0YWNrIGxh eW91dCwgY2Fycnkvb3ZlcmZsb3cvZG90IGZsYWdzIGV0Yy4KLSB8Ly8gRlJBTUUzMiBVc2UgMzIg Yml0IGZyYW1lIGxheW91dCwgZXZlbiB3aXRoIEdQUjY0IChYYm94IDM2MCkuCi0tfC8vIFRPQyAg ICAgTmVlZCB0YWJsZSBvZiBjb250ZW50cyAoNjQgYml0IG9yIDMyIGJpdCB2YXJpYW50LCBlLmcu IFBTMykuCi0rfC8vIE9QRCAgICAgTmVlZCBmdW5jdGlvbiBkZXNjcmlwdG9ycyAoNjQgYml0IG9y IDMyIGJpdCB2YXJpYW50LCBlLmcuIFBTMykuCi0gfC8vICAgICAgICAgRnVuY3Rpb24gcG9pbnRl cnMgYXJlIHJlYWxseSBhIHN0cnVjdDogY29kZSwgVE9DLCBlbnYgKG9wdGlvbmFsKS4KLS18Ly8g VE9DRU5WICBGdW5jdGlvbiBwb2ludGVycyBoYXZlIGFuIGVudmlyb25tZW50IHBvaW50ZXIsIHRv byAobm90IG9uIFBTMykuCi0rfC8vIE9QREVOViAgRnVuY3Rpb24gcG9pbnRlcnMgaGF2ZSBhbiBl bnZpcm9ubWVudCBwb2ludGVyLCB0b28gKG5vdCBvbiBQUzMpLgotK3wvLyBFTEZWMiAgIFRoZSA2 NC1iaXQgRUxGIFYyIEFCSSBpcyBpbiB1c2UuCi0gfC8vIFBQRSAgICAgUG93ZXIgUHJvY2Vzc29y IEVsZW1lbnQgb2YgQ2VsbCAoUFMzKSBvciBYZW5vbiAoWGJveCAzNjApLgotIHwvLyAgICAgICAg IE11c3QgYXZvaWQgKHNsb3cpIG1pY3JvLWNvZGVkIGluc3RydWN0aW9ucy4KLSB8Ci0gfC5pZiBQ NjQKLS18LmRlZmluZSBUT0MsIDEKLS18LmRlZmluZSBUT0NFTlYsIDEKLSB8Lm1hY3JvIGxweCwg YSwgYiwgYzsgbGR4IGEsIGIsIGM7IC5lbmRtYWNybwotIHwubWFjcm8gbHAsIGEsIGI7IGxkIGEs IGI7IC5lbmRtYWNybwotIHwubWFjcm8gc3RwLCBhLCBiOyBzdGQgYSwgYjsgLmVuZG1hY3JvCi0r fC5tYWNybyBzdHB4LCBhLCBiLCBjOyBzdGR4IGEsIGIsIGM7IC5lbmRtYWNybwotIHwuZGVmaW5l IGRlY29kZV9PUFAsIGRlY29kZV9PUDgKLS18LmlmIEZGSQotLXwvLyBNaXNzaW5nOiBDYWxsaW5n IGNvbnZlbnRpb25zLCA2NCBiaXQgcmVncywgVE9DLgotLXwuZXJyb3IgbGliX2ZmaSBub3QgeWV0 IGltcGxlbWVudGVkIGZvciBQUEM2NAotLXwuZW5kaWYKLSt8LmRlZmluZSBQU0laRSwgOAotIHwu ZWxzZQotIHwubWFjcm8gbHB4LCBhLCBiLCBjOyBsd3p4IGEsIGIsIGM7IC5lbmRtYWNybwotIHwu bWFjcm8gbHAsIGEsIGI7IGx3eiBhLCBiOyAuZW5kbWFjcm8KLSB8Lm1hY3JvIHN0cCwgYSwgYjsg c3R3IGEsIGI7IC5lbmRtYWNybwotK3wubWFjcm8gc3RweCwgYSwgYiwgYzsgc3R3eCBhLCBiLCBj OyAuZW5kbWFjcm8KLSB8LmRlZmluZSBkZWNvZGVfT1BQLCBkZWNvZGVfT1A0Ci0rfC5kZWZpbmUg UFNJWkUsIDQKLSB8LmVuZGlmCi0gfAotIHwvLyBDb252ZW5pZW5jZSBtYWNyb3MgZm9yIFRPQyBo YW5kbGluZy4KLS18LmlmIFRPQwotK3wuaWYgT1BEIG9yIEVMRlYyCi0gfC8vIExpbmtlciBuZWVk cyBhIFRPQyBwYXRjaCBhcmVhIGZvciBldmVyeSBleHRlcm5hbCBjYWxsIHJlbG9jYXRpb24uCi0t fC5tYWNybyBibGV4LCB0YXJnZXQ7IGJsIGV4dGVybiB0YXJnZXRAcGx0OyBub3A7IC5lbmRtYWNy bwotK3wubWFjcm8gYmxleCwgdGFyZ2V0OyBibCBleHRlcm4gdGFyZ2V0OyBub3A7IC5lbmRtYWNy bwotIHwubWFjcm8gLnRvYywgYSwgYjsgYSwgYjsgLmVuZG1hY3JvCi0rfC5lbHNlCi0rfC5tYWNy byBibGV4LCB0YXJnZXQ7IGJsIGV4dGVybiB0YXJnZXRAcGx0OyAuZW5kbWFjcm8KLSt8Lm1hY3Jv IC50b2MsIGEsIGI7IC5lbmRtYWNybwotK3wuZW5kaWYKLSt8LmlmIE9QRAotK3wubWFjcm8gLm9w ZCwgYSwgYjsgYSwgYjsgLmVuZG1hY3JvCi0gfC5pZiBQNjQKLSB8LmRlZmluZSBUT0NfT0ZTLAkg OAotIHwuZGVmaW5lIEVOVl9PRlMsCTE2Ci1AQCAtNTgsMTMgKzYzLDEzIEBACi0gfC5kZWZpbmUg VE9DX09GUywJNAotIHwuZGVmaW5lIEVOVl9PRlMsCTgKLSB8LmVuZGlmCi0tfC5lbHNlICAvLyBO byBUT0MuCi0tfC5tYWNybyBibGV4LCB0YXJnZXQ7IGJsIGV4dGVybiB0YXJnZXRAcGx0OyAuZW5k bWFjcm8KLS18Lm1hY3JvIC50b2MsIGEsIGI7IC5lbmRtYWNybwotK3wuZWxzZSAgLy8gTm8gT1BE LgotK3wubWFjcm8gLm9wZCwgYSwgYjsgLmVuZG1hY3JvCi0gfC5lbmRpZgotLXwubWFjcm8gLnRv Y2VudiwgYSwgYjsgLmlmIFRPQ0VOVjsgYSwgYjsgLmVuZGlmOyAuZW5kbWFjcm8KLSt8Lm1hY3Jv IC5vcGRlbnYsIGEsIGI7IC5pZiBPUERFTlY7IGEsIGI7IC5lbmRpZjsgLmVuZG1hY3JvCi0gfAot IHwubWFjcm8gLmdwcjY0LCBhLCBiOyAuaWYgR1BSNjQ7IGEsIGI7IC5lbmRpZjsgLmVuZG1hY3Jv Ci0rfC5tYWNybyAuZWxmdjIsIGEsIGI7IC5pZiBFTEZWMjsgYSwgYjsgLmVuZGlmOyAuZW5kbWFj cm8KLSB8Ci0gfC5tYWNybyBhbmRpeC4sIHksIGEsIGkKLSB8LmlmIFBQRQotQEAgLTc1LDI5ICs4 MCw2IEBACi0gfC5lbmRpZgotIHwuZW5kbWFjcm8KLSB8Ci0tfC5tYWNybyBjbHJzbywgcmVnCi0t fC5pZiBQUEUKLS18ICBsaSByZWcsIDAKLS18ICBtdHhlciByZWcKLS18LmVsc2UKLS18ICBtY3J4 ciBjcjAKLS18LmVuZGlmCi0tfC5lbmRtYWNybwotLXwKLS18Lm1hY3JvIGNoZWNrb3YsIHJlZywg bm9vdgotLXwuaWYgUFBFCi0tfCAgbWZ4ZXIgcmVnCi0tfCAgYWRkIHJlZywgcmVnLCByZWcKLS18 ICBjbXB3aSByZWcsIDAKLS18ICAgbGkgcmVnLCAwCi0tfCAgIG10eGVyIHJlZwotLXwgIGJnZXkg bm9vdgotLXwuZWxzZQotLXwgIG1jcnhyIGNyMAotLXwgIGJsZXkgbm9vdgotLXwuZW5kaWYKLS18 LmVuZG1hY3JvCi0tfAotIHwvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gfAotIHwvLyBGaXhlZCByZWdpc3Rl ciBhc3NpZ25tZW50cyBmb3IgdGhlIGludGVycHJldGVyLgotQEAgLTExMSw2ICs5Myw3IEBACi0g fC5kZWZpbmUgTFJFRywJCXIxOAkvLyBSZWdpc3RlciBob2xkaW5nIGx1YV9TdGF0ZSAoYWxzbyBp biBTQVZFX0wpLgotIHwuZGVmaW5lIE1VTFRSRVMsCXIxOQkvLyBTaXplIG9mIG11bHRpLXJlc3Vs dDogKG5yZXN1bHRzKzEpKjguCi0gfC5kZWZpbmUgSkdMLAkJcjMxCS8vIE9uLXRyYWNlOiBnbG9i YWxfU3RhdGUgKyAzMjc2OC4KLSt8LmRlZmluZSBCQVNFUDQsCXIyNQkvLyBFcXVhbCB0byBCQVNF ICsgNAotIHwKLSB8Ly8gQ29uc3RhbnRzIGZvciB0eXBlLWNvbXBhcmlzb25zLCBzdG9yZXMgYW5k IGNvbnZlcnNpb25zLiBDIGNhbGxlZS1zYXZlLgotIHwuZGVmaW5lIFRJU05VTSwJcjIyCi1AQCAt MTQzLDEyICsxMjYsMTkgQEAKLSB8Ci0gfC5kZWZpbmUgRkFSRzEsCQlmMQotIHwuZGVmaW5lIEZB UkcyLAkJZjIKLSt8LmRlZmluZSBGQVJHMywJCWYzCi0rfC5kZWZpbmUgRkFSRzQsCQlmNAotK3wu ZGVmaW5lIEZBUkc1LAkJZjUKLSt8LmRlZmluZSBGQVJHNiwJCWY2Ci0rfC5kZWZpbmUgRkFSRzcs CQlmNwotK3wuZGVmaW5lIEZBUkc4LAkJZjgKLSB8Ci0gfC5kZWZpbmUgQ1JFVDEsCQlyMwotIHwu ZGVmaW5lIENSRVQyLAkJcjQKLSB8Ci0gfC5kZWZpbmUgVE9DUkVHLAlyMgkvLyBUT0MgcmVnaXN0 ZXIgKG9ubHkgdXNlZCBieSBDIGNvZGUpLgotIHwuZGVmaW5lIEVOVlJFRywJcjExCS8vIEVudmly b25tZW50IHBvaW50ZXIgKG5lc3RlZCBDIGZ1bmN0aW9ucykuCi0rfC5kZWZpbmUgRlVOQ1JFRywJ cjEyCS8vIEVMRnYyIGZ1bmN0aW9uIHBvaW50ZXIgKG92ZXJsYXBzIFJEKQotIHwKLSB8Ly8gU3Rh Y2sgbGF5b3V0IHdoaWxlIGluIGludGVycHJldGVyLiBNdXN0IG1hdGNoIHdpdGggbGpfZnJhbWUu aC4KLSB8LmlmIEdQUjY0Ci1AQCAtMTgyLDYgKzE3Miw0OSBAQAotIHwuZGVmaW5lIFRNUEQsCQlU TVBEX0hJCi0gfC5kZWZpbmUgVE9OVU1fRCwJVE9OVU1fSEkKLSB8Ci0rfC5lbGlmIEVMRlYyCi0r fAotK3wvLwkJCTM5MihzcCkgLy8gXCAzMiBiaXQgQyBmcmFtZSBpbmZvLgotK3wuZGVmaW5lIFNB VkVfTFIsCTM4NChzcCkKLSt8LmRlZmluZSBTQVZFX0NSLAkzNzYoc3ApIC8vIDY0IGJpdCBDUiBz YXZlLgotK3wuZGVmaW5lIENGUkFNRV9TUEFDRSwJMzY4ICAgICAvLyBEZWx0YSBmb3Igc3AuCi0r fC8vIEJhY2sgY2hhaW4gZm9yIHNwOgkzNjgoc3ApIDwtLSBzcCBlbnRlcmluZyBpbnRlcnByZXRl cgotK3wuZGVmaW5lIFNBVkVfRVJSRiwJMzYwKHNwKSAvLyB8Ci0rfC5kZWZpbmUgU0FWRV9OUkVT LAkzNTYoc3ApIC8vIHwKLSt8LmRlZmluZSBTQVZFX0wsCTM1MihzcCkgLy8gID4gUGFyYW1ldGVy IHNhdmUgYXJlYS4KLSt8LmRlZmluZSBTQVZFX1BDLAkzNDgoc3ApIC8vIHwKLSt8LmRlZmluZSBT QVZFX01VTFRSRVMsCTM0NChzcCkgLy8gfAotK3wuZGVmaW5lIFNBVkVfQ0ZSQU1FLAkzMzYoc3Ap IC8vIC8gNjQgYml0IEMgZnJhbWUgY2hhaW4uCi0rfC5kZWZpbmUgU0FWRV9GUFJfLAkxOTIgICAg IC8vIC4uIDE5MisxOCo4OiA2NCBiaXQgRlBSIHNhdmVzLgotK3wuZGVmaW5lIFNBVkVfR1BSXywJ NDggICAgICAvLyAuLiA0OCsxOCo4OiA2NCBiaXQgR1BSIHNhdmVzLgotK3wuaWYgRU5ESUFOX0xF Ci0rfC5kZWZpbmUgVE1QRF9ISSwJNDQoc3ApCi0rfC5kZWZpbmUgVE1QRF9MTywJNDAoc3ApCi0r fC5kZWZpbmUgVE9OVU1fSEksCTM2KHNwKQotK3wuZGVmaW5lIFRPTlVNX0xPLAkzMihzcCkKLSt8 LmVsc2UKLSt8LmRlZmluZSBUTVBEX0xPLAk0NChzcCkKLSt8LmRlZmluZSBUTVBEX0hJLAk0MChz cCkKLSt8LmRlZmluZSBUT05VTV9MTywJMzYoc3ApCi0rfC5kZWZpbmUgVE9OVU1fSEksCTMyKHNw KQotK3wuZW5kaWYKLSt8LmRlZmluZSBTQVZFX1RPQywJMjQoc3ApICAvLyBUT0Mgc2F2ZSBhcmVh LgotK3wvLyBOZXh0IGZyYW1lIGxyOgkxNihzcCkKLSt8Ly8gTmV4dCBmcmFtZSBjcjoJOChzcCkK LSt8Ly8gQmFjayBjaGFpbiBmb3Igc3A6CTAoc3ApCTwtLSBzcCB3aGlsZSBpbiBpbnRlcnByZXRl cgotK3wKLSt8LmlmIEVORElBTl9MRQotK3wuZGVmaW5lIFRNUERfQkxPLAkzMihzcCkKLSt8LmRl ZmluZSBUTVBELAkJVE1QRF9MTwotK3wuZGVmaW5lIFRPTlVNX0QsCVRPTlVNX0xPCi0rfC5lbHNl Ci0rfC5kZWZpbmUgVE1QRF9CTE8sCTM5KHNwKQotK3wuZGVmaW5lIFRNUEQsCQlUTVBEX0hJCi0r fC5kZWZpbmUgVE9OVU1fRCwJVE9OVU1fSEkKLSt8LmVuZGlmCi0rfAotK3wuZGVmaW5lIEVYSVRf T0ZGU0VULAkzMgotK3wKLSB8LmVsc2UKLSB8Ci0gfC8vCQkJNTA4KHNwKSAvLyBcIDMyIGJpdCBD IGZyYW1lIGluZm8uCi1AQCAtMTkyLDIzICsyMjUsMzkgQEAKLSB8LmRlZmluZSBTQVZFX01VTFRS RVMsCTQ1NihzcCkgLy8gfAotIHwuZGVmaW5lIFNBVkVfQ0ZSQU1FLAk0NDgoc3ApIC8vIC8gNjQg Yml0IEMgZnJhbWUgY2hhaW4uCi0gfC5kZWZpbmUgU0FWRV9MUiwJNDE2KHNwKQotK3wuZGVmaW5l IFNBVkVfQ1IsCTQwOChzcCkgIC8vIDY0IGJpdCBDUiBzYXZlLgotIHwuZGVmaW5lIENGUkFNRV9T UEFDRSwJNDAwICAgICAvLyBEZWx0YSBmb3Igc3AuCi0gfC8vIEJhY2sgY2hhaW4gZm9yIHNwOgk0 MDAoc3ApIDwtLSBzcCBlbnRlcmluZyBpbnRlcnByZXRlcgotIHwuZGVmaW5lIFNBVkVfRlBSXywJ MjU2ICAgICAvLyAuLiAyNTYrMTgqODogNjQgYml0IEZQUiBzYXZlcy4KLSB8LmRlZmluZSBTQVZF X0dQUl8sCTExMiAgICAgLy8gLi4gMTEyKzE4Kjg6IDY0IGJpdCBHUFIgc2F2ZXMuCi0gfC8vCQkJ NDgoc3ApICAvLyBDYWxsZWUgcGFyYW1ldGVyIHNhdmUgYXJlYSAoQUJJIG1hbmRhdGVkKS4KLSB8 LmRlZmluZSBTQVZFX1RPQywJNDAoc3ApICAvLyBUT0Mgc2F2ZSBhcmVhLgotK3wuaWYgRU5ESUFO X0xFCi0rfC5kZWZpbmUgVE1QRF9ISSwJMzYoc3ApICAvLyBcIExpbmsgZWRpdG9yIHRlbXAgKEFC SSBtYW5kYXRlZCkuCi0rfC5kZWZpbmUgVE1QRF9MTywJMzIoc3ApICAvLyAvCi0rfC5kZWZpbmUg VE9OVU1fSEksCTI4KHNwKSAgLy8gXCBDb21waWxlciB0ZW1wIChBQkkgbWFuZGF0ZWQpLgotK3wu ZGVmaW5lIFRPTlVNX0xPLAkyNChzcCkgIC8vIC8KLSt8LmVsc2UKLSB8LmRlZmluZSBUTVBEX0xP LAkzNihzcCkgIC8vIFwgTGluayBlZGl0b3IgdGVtcCAoQUJJIG1hbmRhdGVkKS4KLSB8LmRlZmlu ZSBUTVBEX0hJLAkzMihzcCkgIC8vIC8KLSB8LmRlZmluZSBUT05VTV9MTywJMjgoc3ApICAvLyBc IENvbXBpbGVyIHRlbXAgKEFCSSBtYW5kYXRlZCkuCi0gfC5kZWZpbmUgVE9OVU1fSEksCTI0KHNw KSAgLy8gLwotK3wuZW5kaWYKLSB8Ly8gTmV4dCBmcmFtZSBscjoJMTYoc3ApCi0tfC5kZWZpbmUg U0FWRV9DUiwJOChzcCkgIC8vIDY0IGJpdCBDUiBzYXZlLgotK3wvLyBOZXh0IGZyYW1lIGNyOgk4 KHNwKQotIHwvLyBCYWNrIGNoYWluIGZvciBzcDoJMChzcCkJPC0tIHNwIHdoaWxlIGluIGludGVy cHJldGVyCi0gfAotK3wuaWYgRU5ESUFOX0xFCi0rfC5kZWZpbmUgVE1QRF9CTE8sCTMyKHNwKQot K3wuZGVmaW5lIFRNUEQsCQlUTVBEX0xPCi0rfC5kZWZpbmUgVE9OVU1fRCwJVE9OVU1fTE8KLSt8 LmVsc2UKLSB8LmRlZmluZSBUTVBEX0JMTywJMzkoc3ApCi0gfC5kZWZpbmUgVE1QRCwJCVRNUERf SEkKLSB8LmRlZmluZSBUT05VTV9ELAlUT05VTV9ISQotK3wuZW5kaWYKLSt8Ci0rfC5kZWZpbmUg RVhJVF9PRkZTRVQsCTExMgotIHwKLSB8LmVuZGlmCi0gfC5lbHNlCi1AQCAtMjI2LDE2ICsyNzUs MzEgQEAKLSB8LmRlZmluZSBTQVZFX1BDLAkzMihzcCkKLSB8LmRlZmluZSBTQVZFX01VTFRSRVMs CTI4KHNwKQotIHwuZGVmaW5lIFVOVVNFRDEsCTI0KHNwKQotK3wuaWYgRU5ESUFOX0xFCi0rfC5k ZWZpbmUgVE1QRF9ISSwJMjAoc3ApCi0rfC5kZWZpbmUgVE1QRF9MTywJMTYoc3ApCi0rfC5kZWZp bmUgVE9OVU1fSEksCTEyKHNwKQotK3wuZGVmaW5lIFRPTlVNX0xPLAk4KHNwKQotK3wuZWxzZQot IHwuZGVmaW5lIFRNUERfTE8sCTIwKHNwKQotIHwuZGVmaW5lIFRNUERfSEksCTE2KHNwKQotIHwu ZGVmaW5lIFRPTlVNX0xPLAkxMihzcCkKLSB8LmRlZmluZSBUT05VTV9ISSwJOChzcCkKLSt8LmVu ZGlmCi0gfC8vIE5leHQgZnJhbWUgbHI6CTQoc3ApCi0gfC8vIEJhY2sgY2hhaW4gZm9yIHNwOgkw KHNwKQk8LS0gc3Agd2hpbGUgaW4gaW50ZXJwcmV0ZXIKLSB8Ci0rfC5pZiBFTkRJQU5fTEUKLSt8 LmRlZmluZSBUTVBEX0JMTywJMTYoc3ApCi0rfC5kZWZpbmUgVE1QRCwJCVRNUERfTE8KLSt8LmRl ZmluZSBUT05VTV9ELAlUT05VTV9MTwotK3wuZWxzZQotIHwuZGVmaW5lIFRNUERfQkxPLAkyMyhz cCkKLSB8LmRlZmluZSBUTVBELAkJVE1QRF9ISQotIHwuZGVmaW5lIFRPTlVNX0QsCVRPTlVNX0hJ Ci0rfC5lbmRpZgotK3wKLSt8LmRlZmluZSBFWElUX09GRlNFVCwJMTYKLSB8Ci0gfC5lbmRpZgot IHwKLUBAIC0zNTAsOCArNDE0LDM1IEBACi0gfC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSB8Ci0gfC8vIEFj Y2VzcyB0byBmcmFtZSByZWxhdGl2ZSB0byBCQVNFLgotK3wuaWYgRU5ESUFOX0xFCi0rfC5kZWZp bmUgRlJBTUVfUEMsCS00Ci0rfC5kZWZpbmUgRlJBTUVfRlVOQywJLTgKLSt8LmRlZmluZSBGUkFN RV9DT05UUEMsCS0xMgotK3wuZGVmaW5lIEZSQU1FX0NPTlRSRVQsCS0xNgotK3wuZGVmaW5lIFdP UkRfTE8sCTAKLSt8LmRlZmluZSBXT1JEX0hJLAk0Ci0rfC5kZWZpbmUgV09SRF9CTE8sCTAKLSt8 LmRlZmluZSBCQVNFX0xPLAlCQVNFCi0rfC5kZWZpbmUgQkFTRV9ISSwJQkFTRVA0Ci0rfC5tYWNy byBsd3p1eDIsIGhpLCBsbywgYmFzZSwgaWR4Ci0rfCAgbHd6dXggbG8sIGJhc2UsIGlkeAotK3wg IGx3eiBoaSwgNChiYXNlKQotK3wuZW5kbWFjcm8KLSt8LmVsc2UKLSB8LmRlZmluZSBGUkFNRV9Q QywJLTgKLSB8LmRlZmluZSBGUkFNRV9GVU5DLAktNAotK3wuZGVmaW5lIEZSQU1FX0NPTlRQQywJ LTE2Ci0rfC5kZWZpbmUgRlJBTUVfQ09OVFJFVCwJLTEyCi0rfC5kZWZpbmUgV09SRF9MTywJNAot K3wuZGVmaW5lIFdPUkRfSEksCTAKLSt8LmRlZmluZSBXT1JEX0JMTywJNwotK3wuZGVmaW5lIEJB U0VfTE8sCUJBU0VQNAotK3wuZGVmaW5lIEJBU0VfSEksCUJBU0UKLSt8Lm1hY3JvIGx3enV4Miwg aGksIGxvLCBiYXNlLCBpZHgKLSt8ICBsd3p1eCBoaSwgYmFzZSwgaWR4Ci0rfCAgbHd6IGxvLCA0 KGJhc2UpCi0rfC5lbmRtYWNybwotK3wuZW5kaWYKLSB8Ci0gfC8vIEluc3RydWN0aW9uIGRlY29k ZS4KLSB8Lm1hY3JvIGRlY29kZV9PUDQsIGRzdCwgaW5zOyBybHdpbm0gZHN0LCBpbnMsIDIsIDIy LCAyOTsgLmVuZG1hY3JvCi1AQCAtNDEyLDYgKzUwMyw3IEBACi0gfC8vIENhbGwgZGVjb2RlIGFu ZCBkaXNwYXRjaC4KLSB8Lm1hY3JvIGluc19jYWxsdAotIHwgIC8vIEJBU0UgPSBuZXcgYmFzZSwg UkIgPSBMRlVOQy9DRlVOQywgUkMgPSBuYXJncyo4LCBGUkFNRV9QQyhCQVNFKSA9IFBDCi0rfCAg YWRkaSBCQVNFUDQsIEJBU0UsIDQKLSB8ICBsd3ogUEMsIExGVU5DOlJCLT5wYwotIHwgIGx3eiBJ TlMsIDAoUEMpCi0gfCAgIGFkZGkgUEMsIFBDLCA0Ci1AQCAtNTA0LDcgKzU5NiwxMiBAQCBzdGF0 aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgbHd6IFBDLCBG UkFNRV9QQyhUTVAyKQkJLy8gRmV0Y2ggUEMgb2YgcHJldmlvdXMgZnJhbWUuCi0gICB8ICBtciBC QVNFLCBUTVAyCQkJLy8gUmVzdG9yZSBjYWxsZXIgYmFzZS4KLSAgIHwgIC8vIFByZXBlbmRpbmcg bWF5IG92ZXJ3cml0ZSB0aGUgcGNhbGwgZnJhbWUsIHNvIGRvIGl0IGF0IHRoZSBlbmQuCi0tICB8 ICAgc3R3dSBUTVAxLCBGUkFNRV9QQyhSQSkJCS8vIFByZXBlbmQgdHJ1ZSB0byByZXN1bHRzLgot KyAgfCAgLmlmIEVORElBTl9MRQotKyAgfCAgICBhZGRpIFJBLCBSQSwgLTgKLSsgIHwgICAgc3R3 IFRNUDEsIFdPUkRfSEkoUkEpCQkvLyBQcmVwZW5kIHRydWUgdG8gcmVzdWx0cy4KLSsgIHwgIC5l bHNlCi0rICB8ICAgIHN0d3UgVE1QMSwgLTgoUkEpCQkvLyBQcmVwZW5kIHRydWUgdG8gcmVzdWx0 cy4KLSsgIHwgIC5lbmRpZgotICAgfAotICAgfC0+dm1fcmV0dXJuYzoKLSAgIHwgIGFkZGkgUkQs IFJELCA4CQkJLy8gUkQgPSAobnJlc3VsdHMrMSkqOC4KLUBAIC01NjAsNyArNjU3LDcgQEAgc3Rh dGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwgIGx3eiBUTVAx LCBMLT5tYXhzdGFjawotICAgfCAgY21wbHcgQkFTRSwgVE1QMQotICAgfCAgYmdlID44Ci0tICB8 ICBzdHcgVElTTklMLCAwKEJBU0UpCi0rICB8ICBzdHcgVElTTklMLCBXT1JEX0hJKEJBU0UpCi0g ICB8ICBhZGRpIFJELCBSRCwgOAotICAgfCAgYWRkaSBCQVNFLCBCQVNFLCA4Ci0gICB8ICBiIDwy Ci1AQCAtNjExLDcgKzcwOCwxMiBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWls ZEN0eCAqY3R4KQotICAgfC0+dm1fdW53aW5kX2ZmX2VoOgkJCS8vIExhbmRpbmcgcGFkIGZvciBl eHRlcm5hbCB1bndpbmRlci4KLSAgIHwgIGx3eiBMLCBTQVZFX0wKLSAgIHwgIC50b2MgbGQgVE9D UkVHLCBTQVZFX1RPQwotKyAgfC5pZiBQNjQKLSsgIHwgICAgIGx1cyBUSVNOVU0sIExKX1RJU05V TSA+PiAxNgkvLyBTZXR1cCB0eXBlIGNvbXBhcmlzb24gY29uc3RhbnRzLgotKyAgfCAgICAgb3Jp IFRJU05VTSwgVElTTlVNLCBMSl9USVNOVU0gJiAweGZmZmYKLSsgIHwuZWxzZQotICAgfCAgICAg bGkgVElTTlVNLCBMSl9USVNOVU0JCS8vIFNldHVwIHR5cGUgY29tcGFyaXNvbiBjb25zdGFudHMu Ci0rICB8LmVuZGlmCi0gICB8ICBscCBCQVNFLCBMLT5iYXNlCi0gICB8ICAgICBsdXMgVE1QMywg MHg1OWMwCQkvLyBUT0JJVCA9IDJeNTIgKyAyXjUxIChmbG9hdCkuCi0gICB8ICAgbHd6IERJU1BB VENILCBMLT5nbHJlZgkJLy8gU2V0dXAgcG9pbnRlciB0byBkaXNwYXRjaCB0YWJsZS4KLUBAIC02 MjYsNyArNzI4LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0 eCkKLSAgIHwgIGxhIFJBLCAtOChCQVNFKQkJCS8vIFJlc3VsdHMgc3RhcnQgYXQgQkFTRS04Lgot ICAgfCAgICAgc3R3IFRNUDMsIFRNUEQKLSAgIHwgICBhZGRpIERJU1BBVENILCBESVNQQVRDSCwg R0dfRzJESVNQCi0tICB8ICBzdHcgVE1QMSwgMChSQSkJCQkvLyBQcmVwZW5kIGZhbHNlIHRvIGVy cm9yIG1lc3NhZ2UuCi0rICB8ICBzdHcgVE1QMSwgV09SRF9ISShSQSkJCS8vIFByZXBlbmQgZmFs c2UgdG8gZXJyb3IgbWVzc2FnZS4KLSAgIHwgIGxpIFJELCAxNgkJCQkvLyAyIHJlc3VsdHM6IGZh bHNlICsgZXJyb3IgbWVzc2FnZS4KLSAgIHwgICAgc3Rfdm1zdGF0ZQotICAgfCAgICAgbGZzIFRP TlVNLCBUTVBECi1AQCAtNjg3LDcgKzc4OSwxMiBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0 aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgc3R3IEwsIERJU1BBVENIX0dMKGN1cl9MKShESVNQ QVRDSCkKLSAgIHwgIG1yIFJBLCBCQVNFCi0gICB8ICAgbHAgQkFTRSwgTC0+YmFzZQotKyAgfC5p ZiBQNjQKLSsgIHwgICAgIGx1cyBUSVNOVU0sIExKX1RJU05VTSA+PiAxNgkvLyBTZXR1cCB0eXBl IGNvbXBhcmlzb24gY29uc3RhbnRzLgotKyAgfCAgICAgb3JpIFRJU05VTSwgVElTTlVNLCBMSl9U SVNOVU0gJiAweGZmZmYKLSsgIHwuZWxzZQotICAgfCAgICAgbGkgVElTTlVNLCBMSl9USVNOVU0J CS8vIFNldHVwIHR5cGUgY29tcGFyaXNvbiBjb25zdGFudHMuCi0rICB8LmVuZGlmCi0gICB8ICAg bHAgVE1QMSwgTC0+dG9wCi0gICB8ICBsd3ogUEMsIEZSQU1FX1BDKEJBU0UpCi0gICB8ICAgICBs dXMgVE1QMywgMHg1OWMwCQkvLyBUT0JJVCA9IDJeNTIgKyAyXjUxIChmbG9hdCkuCi1AQCAtNzM3 LDcgKzg0NCwxMiBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4 KQotICAgfDM6ICAvLyBFbnRyeSBwb2ludCBmb3Igdm1fY3BjYWxsL3ZtX3Jlc3VtZSAoQkFTRSA9 IGJhc2UsIFBDID0gZnR5cGUpLgotICAgfCAgc3R3IEwsIERJU1BBVENIX0dMKGN1cl9MKShESVNQ QVRDSCkKLSAgIHwgIGxwIFRNUDIsIEwtPmJhc2UJCQkvLyBUTVAyID0gb2xkIGJhc2UgKHVzZWQg aW4gdm1ldGFfY2FsbCkuCi0rICB8LmlmIFA2NAotKyAgfCAgICAgbHVzIFRJU05VTSwgTEpfVElT TlVNID4+IDE2CS8vIFNldHVwIHR5cGUgY29tcGFyaXNvbiBjb25zdGFudHMuCi0rICB8ICAgICBv cmkgVElTTlVNLCBUSVNOVU0sIExKX1RJU05VTSAmIDB4ZmZmZgotKyAgfC5lbHNlCi0gICB8ICAg ICBsaSBUSVNOVU0sIExKX1RJU05VTQkJLy8gU2V0dXAgdHlwZSBjb21wYXJpc29uIGNvbnN0YW50 cy4KLSsgIHwuZW5kaWYKLSAgIHwgICBscCBUTVAxLCBMLT50b3AKLSAgIHwgICAgIGx1cyBUTVAz LCAweDU5YzAJCS8vIFRPQklUID0gMl41MiArIDJeNTEgKGZsb2F0KS4KLSAgIHwgIGFkZCBQQywg UEMsIEJBU0UKLUBAIC03NTcsOCArODY5LDggQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGlu ZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwKLSAgIHwtPnZtX2NhbGxfZGlzcGF0Y2g6Ci0gICB8ICAv LyBUTVAyID0gb2xkIGJhc2UsIEJBU0UgPSBuZXcgYmFzZSwgUkMgPSBuYXJncyo4LCBQQyA9IGNh bGxlciBQQwotLSAgfCAgbHd6IFRNUDAsIEZSQU1FX1BDKEJBU0UpCi0tICB8ICAgbHd6IExGVU5D OlJCLCBGUkFNRV9GVU5DKEJBU0UpCi0rICB8ICBsd3ogVE1QMCwgV09SRF9ISS04KEJBU0UpCi0r ICB8ICAgbHd6IExGVU5DOlJCLCBXT1JEX0xPLTgoQkFTRSkKLSAgIHwgIGNoZWNrZnVuYyBUTVAw OyBibmUgLT52bWV0YV9jYWxsCi0gICB8Ci0gICB8LT52bV9jYWxsX2Rpc3BhdGNoX2Y6Ci1AQCAt Nzc3LDcgKzg4OSw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpj dHgpCi0gICB8ICAgc3ViIFRNUDAsIFRNUDAsIFRNUDEJCS8vIENvbXB1dGUgLXNhdmVzdGFjayhM LCBMLT50b3ApLgotICAgfCAgICBscCBUTVAxLCBMLT5jZnJhbWUKLSAgIHwgICAgIGFkZGkgRElT UEFUQ0gsIERJU1BBVENILCBHR19HMkRJU1AKLS0gIHwgIC50b2MgbHAgQ0FSRzQsIDAoQ0FSRzQp Ci0rICB8ICAub3BkIGxwIFRPQ1JFRywgVE9DX09GUyhDQVJHNCkKLSsgIHwgIC5vcGRlbnYgbHAg RU5WUkVHLCBFTlZfT0ZTKENBUkc0KQotKyAgfCAgLm9wZCBscCBDQVJHNCwgMChDQVJHNCkKLSAg IHwgIGxpIFRNUDIsIDAKLSAgIHwgICBzdHcgVE1QMCwgU0FWRV9OUkVTCQkvLyBOZWcuIGRlbHRh IG1lYW5zIGNmcmFtZSB3L28gZnJhbWUuCi0gICB8ICBzdHcgVE1QMiwgU0FWRV9FUlJGCQkvLyBO byBlcnJvciBmdW5jdGlvbi4KLUBAIC03ODUsNyArODk5LDkgQEAgc3RhdGljIHZvaWQgYnVpbGRf c3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwgICAgc3RwIHNwLCBMLT5jZnJhbWUJCS8v IEFkZCBvdXIgQyBmcmFtZSB0byBjZnJhbWUgY2hhaW4uCi0gICB8ICAgICBzdHcgTCwgRElTUEFU Q0hfR0woY3VyX0wpKERJU1BBVENIKQotICAgfCAgbXRjdHIgQ0FSRzQKLSsgIHwgIC5lbGZ2MiBt ciBGVU5DUkVHLCBDQVJHNAotICAgfCAgYmN0cmwJCQkvLyAobHVhX1N0YXRlICpMLCBsdWFfQ0Z1 bmN0aW9uIGZ1bmMsIHZvaWQgKnVkKQotKyAgfCAgLnRvYyBscCBUT0NSRUcsIFNBVkVfVE9DCi0g ICB8LmlmIFBQRQotICAgfCAgbXIgQkFTRSwgQ1JFVDEKLSAgIHwgIGNtcHdpIENSRVQxLCAwCi1A QCAtODA3LDIwICs5MjMsMjcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRD dHggKmN0eCkKLSAgIHwKLSAgIHwtPmNvbnRfZGlzcGF0Y2g6Ci0gICB8ICAvLyBCQVNFID0gbWV0 YSBiYXNlLCBSQSA9IHJlc3VsdHB0ciwgUkQgPSAobnJlc3VsdHMrMSkqOAotLSAgfCAgbHd6IFRN UDAsIC0xMihCQVNFKQkJLy8gQ29udGludWF0aW9uLgotKyAgfCAgbHd6IFRNUDAsIEZSQU1FX0NP TlRSRVQoQkFTRSkJLy8gQ29udGludWF0aW9uLgotICAgfCAgIG1yIFJCLCBCQVNFCi0gICB8ICAg bXIgQkFTRSwgVE1QMgkJCS8vIFJlc3RvcmUgY2FsbGVyIEJBU0UuCi0gICB8ICAgIGx3eiBMRlVO QzpUTVAxLCBGUkFNRV9GVU5DKFRNUDIpCi0gICB8LmlmIEZGSQotICAgfCAgY21wbHdpIFRNUDAs IDEKLSAgIHwuZW5kaWYKLS0gIHwgICAgIGx3eiBQQywgLTE2KFJCKQkJCS8vIFJlc3RvcmUgUEMg ZnJvbSBbY29udHxQQ10uCi0tICB8ICAgc3ViaSBUTVAyLCBSRCwgOAotKyAgfCAgICAgbHd6IFBD LCBGUkFNRV9DT05UUEMoUkIpCS8vIFJlc3RvcmUgUEMgZnJvbSBbY29udHxQQ10uCi0rICB8ICBh ZGRpIEJBU0VQNCwgQkFTRSwgNAotKyAgfCAgIGFkZGkgVE1QMiwgUkQsIFdPUkRfSEktOAotICAg fCAgICBsd3ogVE1QMSwgTEZVTkM6VE1QMS0+cGMKLSAgIHwgICBzdHd4IFRJU05JTCwgUkEsIFRN UDIJCS8vIEVuc3VyZSBvbmUgdmFsaWQgYXJnLgotKyAgfC5pZiBQNjQKLSsgIHwgICBsZCBUTVAz LCAwKERJU1BBVENIKQotKyAgfC5lbmRpZgotICAgfC5pZiBGRkkKLSAgIHwgIGJsZSA+MQotICAg fC5lbmRpZgotKyAgfC5pZiBQNjQKLSsgIHwgIGFkZCBUTVAwLCBUTVAwLCBUTVAzCi0rICB8LmVu ZGlmCi0gICB8ICAgIGx3eiBLQkFTRSwgUEMyUFJPVE8oaykoVE1QMSkKLSAgIHwgIC8vIEJBU0Ug PSBiYXNlLCBSQSA9IHJlc3VsdHB0ciwgUkIgPSBtZXRhIGJhc2UKLSAgIHwgIG10Y3RyIFRNUDAK LUBAIC04NTYsMjAgKzk3OSwyMCBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWls ZEN0eCAqY3R4KQotICAgfCAgbGEgQ0FSRzMsIERJU1BBVENIX0dMKHRtcHR2KShESVNQQVRDSCkK LSAgIHwgIGxpIFRNUDAsIExKX1RTVFIKLSAgIHwgICBkZWNvZGVfUkI4IFJCLCBJTlMKLS0gIHwg IHN0dyBTVFI6UkMsIDQoQ0FSRzMpCi0rICB8ICBzdHcgU1RSOlJDLCBXT1JEX0xPKENBUkczKQot ICAgfCAgIGFkZCBDQVJHMiwgQkFTRSwgUkIKLS0gIHwgIHN0dyBUTVAwLCAwKENBUkczKQotKyAg fCAgc3R3IFRNUDAsIFdPUkRfSEkoQ0FSRzMpCi0gICB8ICBiID4xCi0gICB8Ci0gICB8LT52bWV0 YV90Z2V0czoKLSAgIHwgIGxhIENBUkcyLCBESVNQQVRDSF9HTCh0bXB0dikoRElTUEFUQ0gpCi0g ICB8ICBsaSBUTVAwLCBMSl9UVEFCCi0tICB8ICBzdHcgVEFCOlJCLCA0KENBUkcyKQotKyAgfCAg c3R3IFRBQjpSQiwgV09SRF9MTyhDQVJHMikKLSAgIHwgICBsYSBDQVJHMywgRElTUEFUQ0hfR0wo dG1wdHYyKShESVNQQVRDSCkKLS0gIHwgIHN0dyBUTVAwLCAwKENBUkcyKQotKyAgfCAgc3R3IFRN UDAsIFdPUkRfSEkoQ0FSRzIpCi0gICB8ICAgbGkgVE1QMSwgTEpfVFNUUgotLSAgfCAgIHN0dyBT VFI6UkMsIDQoQ0FSRzMpCi0tICB8ICAgc3R3IFRNUDEsIDAoQ0FSRzMpCi0rICB8ICAgc3R3IFNU UjpSQywgV09SRF9MTyhDQVJHMykKLSsgIHwgICBzdHcgVE1QMSwgV09SRF9ISShDQVJHMykKLSAg IHwgIGIgPjEKLSAgIHwKLSAgIHwtPnZtZXRhX3RnZXRiOgkJCS8vIFRNUDAgPSBpbmRleAotQEAg LTg4MCw4ICsxMDAzLDggQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHgg KmN0eCkKLSAgIHwgIGxhIENBUkczLCBESVNQQVRDSF9HTCh0bXB0dikoRElTUEFUQ0gpCi0gICB8 ICAgYWRkIENBUkcyLCBCQVNFLCBSQgotICAgfC5pZiBEVUFMTlVNCi0tICB8ICBzdHcgVElTTlVN LCAwKENBUkczKQotLSAgfCAgc3R3IFRNUDAsIDQoQ0FSRzMpCi0rICB8ICBzdHcgVElTTlVNLCBX T1JEX0hJKENBUkczKQotKyAgfCAgc3R3IFRNUDAsIFdPUkRfTE8oQ0FSRzMpCi0gICB8LmVsc2UK LSAgIHwgIHN0ZmQgZjAsIDAoQ0FSRzMpCi0gICB8LmVuZGlmCi1AQCAtOTA5LDcgKzEwMzIsNyBA QCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgLy8g QkFTRSA9IGJhc2UsIEwtPnRvcCA9IG5ldyBiYXNlLCBzdGFjayA9IGNvbnQvZnVuYy90L2sKLSAg IHwgIHN1YmZpYyBUTVAxLCBCQVNFLCBGUkFNRV9DT05UCi0gICB8ICBscCBCQVNFLCBMLT50b3AK LS0gIHwgIHN0dyBQQywgLTE2KEJBU0UpCQkJLy8gW2NvbnR8UENdCi0rICB8ICBzdHcgUEMsIEZS QU1FX0NPTlRQQyhCQVNFKQkJLy8gW2NvbnR8UENdCi0gICB8ICAgYWRkIFBDLCBUTVAxLCBCQVNF Ci0gICB8ICBsd3ogTEZVTkM6UkIsIEZSQU1FX0ZVTkMoQkFTRSkJLy8gR3VhcmFudGVlZCB0byBi ZSBhIGZ1bmN0aW9uIGhlcmUuCi0gICB8ICAgbGkgTkFSR1M4OlJDLCAxNgkJCS8vIDIgYXJncyBm b3IgZnVuYyh0LCBrKS4KLUBAIC05MjMsNyArMTA0Niw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1 YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICBsZmQgZjE0LCAwKENSRVQxKQotICAgfCAg YiAtPkJDX1RHRVRSX1oKLSAgIHwxOgotLSAgfCAgc3R3eCBUSVNOSUwsIEJBU0UsIFJBCi0rICB8 ICBzdHd4IFRJU05JTCwgQkFTRV9ISSwgUkEKLSAgIHwgIGIgLT5jb250X25vcAotICAgfAotICAg fC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLUBAIC05MzIsMjAgKzEwNTUsMjAgQEAgc3RhdGljIHZvaWQgYnVp bGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwgIGxhIENBUkczLCBESVNQQVRDSF9H TCh0bXB0dikoRElTUEFUQ0gpCi0gICB8ICBsaSBUTVAwLCBMSl9UU1RSCi0gICB8ICAgZGVjb2Rl X1JCOCBSQiwgSU5TCi0tICB8ICBzdHcgU1RSOlJDLCA0KENBUkczKQotKyAgfCAgc3R3IFNUUjpS QywgV09SRF9MTyhDQVJHMykKLSAgIHwgICBhZGQgQ0FSRzIsIEJBU0UsIFJCCi0tICB8ICBzdHcg VE1QMCwgMChDQVJHMykKLSsgIHwgIHN0dyBUTVAwLCBXT1JEX0hJKENBUkczKQotICAgfCAgYiA+ MQotICAgfAotICAgfC0+dm1ldGFfdHNldHM6Ci0gICB8ICBsYSBDQVJHMiwgRElTUEFUQ0hfR0wo dG1wdHYpKERJU1BBVENIKQotICAgfCAgbGkgVE1QMCwgTEpfVFRBQgotLSAgfCAgc3R3IFRBQjpS QiwgNChDQVJHMikKLSsgIHwgIHN0dyBUQUI6UkIsIFdPUkRfTE8oQ0FSRzIpCi0gICB8ICAgbGEg Q0FSRzMsIERJU1BBVENIX0dMKHRtcHR2MikoRElTUEFUQ0gpCi0tICB8ICBzdHcgVE1QMCwgMChD QVJHMikKLSsgIHwgIHN0dyBUTVAwLCBXT1JEX0hJKENBUkcyKQotICAgfCAgIGxpIFRNUDEsIExK X1RTVFIKLS0gIHwgICBzdHcgU1RSOlJDLCA0KENBUkczKQotLSAgfCAgIHN0dyBUTVAxLCAwKENB UkczKQotKyAgfCAgIHN0dyBTVFI6UkMsIFdPUkRfTE8oQ0FSRzMpCi0rICB8ICAgc3R3IFRNUDEs IFdPUkRfSEkoQ0FSRzMpCi0gICB8ICBiID4xCi0gICB8Ci0gICB8LT52bWV0YV90c2V0YjoJCQkv LyBUTVAwID0gaW5kZXgKLUBAIC05NTYsOCArMTA3OSw4IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1 YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICBsYSBDQVJHMywgRElTUEFUQ0hfR0wodG1w dHYpKERJU1BBVENIKQotICAgfCAgIGFkZCBDQVJHMiwgQkFTRSwgUkIKLSAgIHwuaWYgRFVBTE5V TQotLSAgfCAgc3R3IFRJU05VTSwgMChDQVJHMykKLS0gIHwgIHN0dyBUTVAwLCA0KENBUkczKQot KyAgfCAgc3R3IFRJU05VTSwgV09SRF9ISShDQVJHMykKLSsgIHwgIHN0dyBUTVAwLCBXT1JEX0xP KENBUkczKQotICAgfC5lbHNlCi0gICB8ICBzdGZkIGYwLCAwKENBUkczKQotICAgfC5lbmRpZgot QEAgLTk4Niw3ICsxMTA5LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRD dHggKmN0eCkKLSAgIHwgIC8vIEJBU0UgPSBiYXNlLCBMLT50b3AgPSBuZXcgYmFzZSwgc3RhY2sg PSBjb250L2Z1bmMvdC9rLyh2KQotICAgfCAgc3ViZmljIFRNUDEsIEJBU0UsIEZSQU1FX0NPTlQK LSAgIHwgIGxwIEJBU0UsIEwtPnRvcAotLSAgfCAgc3R3IFBDLCAtMTYoQkFTRSkJCQkvLyBbY29u dHxQQ10KLSsgIHwgIHN0dyBQQywgRlJBTUVfQ09OVFBDKEJBU0UpCQkvLyBbY29udHxQQ10KLSAg IHwgICBhZGQgUEMsIFRNUDEsIEJBU0UKLSAgIHwgIGx3eiBMRlVOQzpSQiwgRlJBTUVfRlVOQyhC QVNFKQkvLyBHdWFyYW50ZWVkIHRvIGJlIGEgZnVuY3Rpb24gaGVyZS4KLSAgIHwgICBsaSBOQVJH Uzg6UkMsIDI0CQkJLy8gMyBhcmdzIGZvciBmdW5jKHQsIGssIHYpCi1AQCAtMTAwNiwxNyArMTEy OSw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8 LT52bWV0YV9jb21wOgotICAgfCAgbXIgQ0FSRzEsIEwKLSAgIHwgICBzdWJpIFBDLCBQQywgNAot LSAgfC5pZiBEVUFMTlVNCi0tICB8ICBtciBDQVJHMiwgUkEKLS0gIHwuZWxzZQotICAgfCAgYWRk IENBUkcyLCBCQVNFLCBSQQotLSAgfC5lbmRpZgotICAgfCAgIHN0dyBQQywgU0FWRV9QQwotLSAg fC5pZiBEVUFMTlVNCi0tICB8ICBtciBDQVJHMywgUkQKLS0gIHwuZWxzZQotICAgfCAgYWRkIENB UkczLCBCQVNFLCBSRAotLSAgfC5lbmRpZgotICAgfCAgIHN0cCBCQVNFLCBMLT5iYXNlCi0gICB8 ICBkZWNvZGVfT1AxIENBUkc0LCBJTlMKLSAgIHwgIGJsIGV4dGVybiBsal9tZXRhX2NvbXAgIC8v IChsdWFfU3RhdGUgKkwsIFRWYWx1ZSAqbzEsICpvMiwgaW50IG9wKQotQEAgLTEwNDMsNyArMTE1 OCw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8 ICBiIC0+Y29udF9ub3AKLSAgIHwKLSAgIHwtPmNvbnRfY29uZHQ6CQkJLy8gUkEgPSByZXN1bHRw dHIKLS0gIHwgIGx3eiBUTVAwLCAwKFJBKQotKyAgfCAgbHd6IFRNUDAsIFdPUkRfSEkoUkEpCi0g ICB8ICAuZ3ByNjQgZXh0c3cgVE1QMCwgVE1QMAotICAgfCAgc3ViZmljIFRNUDAsIFRNUDAsIExK X1RUUlVFCS8vIEJyYW5jaCBpZiByZXN1bHQgaXMgdHJ1ZS4KLSAgIHwgIHN1YmZlIENSRVQxLCBD UkVUMSwgQ1JFVDEKLUBAIC0xMDUxLDcgKzExNjYsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJy b3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgYiA8NAotICAgfAotICAgfC0+Y29udF9jb25k ZjoJCQkvLyBSQSA9IHJlc3VsdHB0cgotLSAgfCAgbHd6IFRNUDAsIDAoUkEpCi0rICB8ICBsd3og VE1QMCwgV09SRF9ISShSQSkKLSAgIHwgIC5ncHI2NCBleHRzdyBUTVAwLCBUTVAwCi0gICB8ICBz dWJmaWMgVE1QMCwgVE1QMCwgTEpfVFRSVUUJLy8gQnJhbmNoIGlmIHJlc3VsdCBpcyBmYWxzZS4K LSAgIHwgIHN1YmZlIENSRVQxLCBDUkVUMSwgQ1JFVDEKLUBAIC0xMTAzLDggKzEyMTgsOCBAQCBz dGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfC5lbmRpZgot ICAgfAotICAgfC0+dm1ldGFfdW5tOgotLSAgfCAgbXIgQ0FSRzMsIFJECi0tICB8ICBtciBDQVJH NCwgUkQKLSsgIHwgIGFkZCBDQVJHMywgQkFTRSwgUkQKLSsgIHwgIGFkZCBDQVJHNCwgQkFTRSwg UkQKLSAgIHwgIGIgPjEKLSAgIHwKLSAgIHwtPnZtZXRhX2FyaXRoX3ZuOgotQEAgLTExMzksNyAr MTI1NCw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0g ICB8LT52bWV0YV9iaW5vcDoKLSAgIHwgIC8vIEJBU0UgPSBvbGQgYmFzZSwgQ1JFVDEgPSBuZXcg YmFzZSwgc3RhY2sgPSBjb250L2Z1bmMvbzEvbzIKLSAgIHwgIHN1YiBUTVAxLCBDUkVUMSwgQkFT RQotLSAgfCAgIHN0dyBQQywgLTE2KENSRVQxKQkJLy8gW2NvbnR8UENdCi0rICB8ICAgc3R3IFBD LCBGUkFNRV9DT05UUEMoQ1JFVDEpCS8vIFtjb250fFBDXQotICAgfCAgIG1yIFRNUDIsIEJBU0UK LSAgIHwgIGFkZGkgUEMsIFRNUDEsIEZSQU1FX0NPTlQKLSAgIHwgICBtciBCQVNFLCBDUkVUMQot QEAgLTExNTAsNyArMTI2NSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxk Q3R4ICpjdHgpCi0gI2lmIExKXzUyCi0gICB8ICBtciBTQVZFMCwgQ0FSRzEKLSAjZW5kaWYKLS0g IHwgIG1yIENBUkcyLCBSRAotKyAgfCAgYWRkIENBUkcyLCBCQVNFLCBSRAotICAgfCAgIHN0cCBC QVNFLCBMLT5iYXNlCi0gICB8ICBtciBDQVJHMSwgTAotICAgfCAgIHN0dyBQQywgU0FWRV9QQwot QEAgLTEyMjcsMjUgKzEzNDIsMjUgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVp bGRDdHggKmN0eCkKLSAgIHwubWFjcm8gLmZmdW5jXzEsIG5hbWUKLSAgIHwtPmZmXyAuLiBuYW1l OgotICAgfCAgY21wbHdpIE5BUkdTODpSQywgOAotLSAgfCAgIGx3eiBDQVJHMywgMChCQVNFKQot LSAgfCAgICBsd3ogQ0FSRzEsIDQoQkFTRSkKLSsgIHwgICBsd3ogQ0FSRzMsIFdPUkRfSEkoQkFT RSkKLSsgIHwgICAgbHd6IENBUkcxLCBXT1JEX0xPKEJBU0UpCi0gICB8ICBibHQgLT5mZmZfZmFs bGJhY2sKLSAgIHwuZW5kbWFjcm8KLSAgIHwKLSAgIHwubWFjcm8gLmZmdW5jXzIsIG5hbWUKLSAg IHwtPmZmXyAuLiBuYW1lOgotICAgfCAgY21wbHdpIE5BUkdTODpSQywgMTYKLS0gIHwgICBsd3og Q0FSRzMsIDAoQkFTRSkKLS0gIHwgICAgbHd6IENBUkc0LCA4KEJBU0UpCi0tICB8ICAgbHd6IENB UkcxLCA0KEJBU0UpCi0tICB8ICAgIGx3eiBDQVJHMiwgMTIoQkFTRSkKLSsgIHwgICBsd3ogQ0FS RzMsIFdPUkRfSEkoQkFTRSkKLSsgIHwgICAgbHd6IENBUkc0LCBXT1JEX0hJKzgoQkFTRSkKLSsg IHwgICBsd3ogQ0FSRzEsIFdPUkRfTE8oQkFTRSkKLSsgIHwgICAgbHd6IENBUkcyLCBXT1JEX0xP KzgoQkFTRSkKLSAgIHwgIGJsdCAtPmZmZl9mYWxsYmFjawotICAgfC5lbmRtYWNybwotICAgfAot ICAgfC5tYWNybyAuZmZ1bmNfbiwgbmFtZQotICAgfC0+ZmZfIC4uIG5hbWU6Ci0gICB8ICBjbXBs d2kgTkFSR1M4OlJDLCA4Ci0tICB8ICAgbHd6IENBUkczLCAwKEJBU0UpCi0rICB8ICAgbHd6IENB UkczLCBXT1JEX0hJKEJBU0UpCi0gICB8ICAgIGxmZCBGQVJHMSwgMChCQVNFKQotICAgfCAgYmx0 IC0+ZmZmX2ZhbGxiYWNrCi0gICB8ICBjaGVja251bSBDQVJHMzsgYmdlIC0+ZmZmX2ZhbGxiYWNr Ci1AQCAtMTI1NCw5ICsxMzY5LDkgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVp bGRDdHggKmN0eCkKLSAgIHwubWFjcm8gLmZmdW5jX25uLCBuYW1lCi0gICB8LT5mZl8gLi4gbmFt ZToKLSAgIHwgIGNtcGx3aSBOQVJHUzg6UkMsIDE2Ci0tICB8ICAgbHd6IENBUkczLCAwKEJBU0Up Ci0rICB8ICAgbHd6IENBUkczLCBXT1JEX0hJKEJBU0UpCi0gICB8ICAgIGxmZCBGQVJHMSwgMChC QVNFKQotLSAgfCAgIGx3eiBDQVJHNCwgOChCQVNFKQotKyAgfCAgIGx3eiBDQVJHNCwgV09SRF9I SSs4KEJBU0UpCi0gICB8ICAgIGxmZCBGQVJHMiwgOChCQVNFKQotICAgfCAgYmx0IC0+ZmZmX2Zh bGxiYWNrCi0gICB8ICBjaGVja251bSBDQVJHMzsgYmdlIC0+ZmZmX2ZhbGxiYWNrCi1AQCAtMTI3 OSw5ICsxMzk0LDkgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0 eCkKLSAgIHwgIGNtcGx3IGNyMSwgQ0FSRzMsIFRNUDEKLSAgIHwgICAgbHd6IFBDLCBGUkFNRV9Q QyhCQVNFKQotICAgfCAgYmdlIGNyMSwgLT5mZmZfZmFsbGJhY2sKLS0gIHwgICBzdHcgQ0FSRzMs IDAoUkEpCi0rICB8ICAgc3R3IENBUkczLCBXT1JEX0hJKFJBKQotICAgfCAgYWRkaSBSRCwgTkFS R1M4OlJDLCA4CQkvLyBDb21wdXRlIChucmVzdWx0cysxKSo4LgotLSAgfCAgIHN0dyBDQVJHMSwg NChSQSkKLSsgIHwgICBzdHcgQ0FSRzEsIFdPUkRfTE8oUkEpCi0gICB8ICBiZXEgLT5mZmZfcmVz CQkJLy8gRG9uZSBpZiBleGFjdGx5IDEgYXJndW1lbnQuCi0gICB8ICBsaSBUTVAxLCA4Ci0gICB8 ICBzdWJpIFJDLCBSQywgOAotQEAgLTEyOTUsMTcgKzE0MTAsMzYgQEAgc3RhdGljIHZvaWQgYnVp bGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwKLSAgIHwuZmZ1bmMgdHlwZQotICAg fCAgY21wbHdpIE5BUkdTODpSQywgOAotLSAgfCAgIGx3eiBDQVJHMSwgMChCQVNFKQotKyAgfCAg IGx3eiBDQVJHMSwgV09SRF9ISShCQVNFKQotICAgfCAgYmx0IC0+ZmZmX2ZhbGxiYWNrCi0gICB8 ICAuZ3ByNjQgZXh0c3cgQ0FSRzEsIENBUkcxCi0rICB8LmlmIFA2NAotKyAgfCAgbGkgVE1QMCwg TEpfVE5VTVgKLSsgIHwgICAgc3Jhd2kgVE1QMywgQ0FSRzEsIDE1Ci0rICB8ICBzdWJmYyBUTVAx LCBUTVAwLCBDQVJHMQotKyAgfC5lbHNlCi0gICB8ICBzdWJmYyBUTVAwLCBUSVNOVU0sIENBUkcx Ci0tICB8ICBzdWJmZSBUTVAyLCBDQVJHMSwgQ0FSRzEKLSsgIHwuZW5kaWYKLSsgIHwgICAgc3Vi ZmUgVE1QMiwgQ0FSRzEsIENBUkcxCi0rICB8LmlmIFA2NAotKyAgfCAgY21wd2kgVE1QMywgLTIK LSsgIHwgICAgb3JjIFRNUDEsIFRNUDIsIFRNUDEKLSsgIHwgICAgc3ViZiBUTVAxLCBUTVAwLCBU TVAxCi0rICB8ICBiZXEgPjEKLSsgIHwuZWxzZQotICAgfCAgb3JjIFRNUDEsIFRNUDIsIFRNUDAK LS0gIHwgIGFkZGkgVE1QMSwgVE1QMSwgfkxKX1RJU05VTSsxCi0rICB8ICBzdWJmIFRNUDEsIFRJ U05VTSwgVE1QMQotKyAgfC5lbmRpZgotICAgfCAgc2x3aSBUTVAxLCBUTVAxLCAzCi0rICB8MjoK LSAgIHwgICBsYSBUTVAyLCBDRlVOQzpSQi0+dXB2YWx1ZQotICAgfCAgbGZkeCBGQVJHMSwgVE1Q MiwgVE1QMQotICAgfCAgYiAtPmZmZl9yZXNuCi0rICB8LmlmIFA2NAotKyAgfDE6Ci0rICB8ICBs aSBUTVAxLCB+TEpfVExJR0hUVUQ8PDMKLSsgIHwgIGIgPDIKLSsgIHwuZW5kaWYKLSAgIHwKLSAg IHwvLy0tIEJhc2UgbGlicmFyeTogZ2V0dGVycyBhbmQgc2V0dGVycyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLSAgIHwKLUBAIC0xMzI4LDEwICsxNDYyLDEwIEBAIHN0YXRpYyB2 b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICBzdWIgVE1QMSwgVE1Q MCwgVE1QMQotICAgfCAgYWRkIE5PREU6VE1QMiwgTk9ERTpUTVAyLCBUTVAxCS8vIG5vZGUgPSB0 YWItPm5vZGUgKyAoaWR4KjMyLWlkeCo4KQotICAgfDM6ICAvLyBSZWFycmFuZ2VkIGxvZ2ljLCBi ZWNhdXNlIHdlIGV4cGVjdCBfbm90XyB0byBmaW5kIHRoZSBrZXkuCi0tICB8ICBsd3ogQ0FSRzQs IE5PREU6VE1QMi0+a2V5Ci0tICB8ICAgbHd6IFRNUDAsIDQrb2Zmc2V0b2YoTm9kZSwga2V5KShO T0RFOlRNUDIpCi0tICB8ICAgIGx3eiBDQVJHMiwgTk9ERTpUTVAyLT52YWwKLS0gIHwgICAgIGx3 eiBUTVAxLCA0K29mZnNldG9mKE5vZGUsIHZhbCkoTk9ERTpUTVAyKQotKyAgfCAgbHd6IENBUkc0 LCBXT1JEX0hJK29mZnNldG9mKE5vZGUsIGtleSkoTk9ERTpUTVAyKQotKyAgfCAgIGx3eiBUTVAw LCBXT1JEX0xPK29mZnNldG9mKE5vZGUsIGtleSkoTk9ERTpUTVAyKQotKyAgfCAgICBsd3ogQ0FS RzIsIFdPUkRfSEkrb2Zmc2V0b2YoTm9kZSwgdmFsKShOT0RFOlRNUDIpCi0rICB8ICAgICBsd3og VE1QMSwgV09SRF9MTytvZmZzZXRvZihOb2RlLCB2YWwpKE5PREU6VE1QMikKLSAgIHwgIGNoZWNr c3RyIENBUkc0OyBibmUgPjQKLSAgIHwgICBjbXB3IFRNUDAsIFNUUjpSQzsgYmVxID41Ci0gICB8 NDoKLUBAIC0xMzQ5LDE0ICsxNDgzLDMzIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVz KEJ1aWxkQ3R4ICpjdHgpCi0gICB8NjoKLSAgIHwgIGNtcHdpIENBUkczLCBMSl9UVURBVEE7IGJl cSA8MQotICAgfCAgLmdwcjY0IGV4dHN3IENBUkczLCBDQVJHMwotKyAgfC5pZiBQNjQKLSsgIHwg IGxpIFRNUDAsIExKX1ROVU1YCi0rICB8ICAgIHNyYXdpIFRNUDMsIENBUkczLCAxNQotKyAgfCAg c3ViZmMgVE1QMSwgVE1QMCwgQ0FSRzMKLSsgIHwuZWxzZQotICAgfCAgc3ViZmMgVE1QMCwgVElT TlVNLCBDQVJHMwotKyAgfC5lbmRpZgotICAgfCAgc3ViZmUgVE1QMiwgQ0FSRzMsIENBUkczCi0r ICB8LmlmIFA2NAotKyAgfCAgY21wd2kgVE1QMywgLTIKLSsgIHwgICAgb3JjIFRNUDEsIFRNUDIs IFRNUDEKLSsgIHwgICAgc3ViZiBUTVAxLCBUTVAwLCBUTVAxCi0rICB8ICBiZXEgPjcKLSsgIHwu ZWxzZQotICAgfCAgb3JjIFRNUDEsIFRNUDIsIFRNUDAKLS0gIHwgIGFkZGkgVE1QMSwgVE1QMSwg fkxKX1RJU05VTSsxCi0rICB8ICBzdWJmIFRNUDEsIFRJU05VTSwgVE1QMQotKyAgfC5lbmRpZgot ICAgfCAgc2x3aSBUTVAxLCBUTVAxLCAyCi0rICB8ODoKLSAgIHwgICBsYSBUTVAyLCBESVNQQVRD SF9HTChnY3Jvb3RbR0NST09UX0JBU0VNVF0pKERJU1BBVENIKQotICAgfCAgbHd6eCBUQUI6Q0FS RzEsIFRNUDIsIFRNUDEKLSAgIHwgIGIgPDIKLSsgIHwuaWYgUDY0Ci0rICB8NzoKLSsgIHwgIGxp IFRNUDEsIH5MSl9UTElHSFRVRDw8MgotKyAgfCAgYiA8OAotKyAgfC5lbmRpZgotICAgfAotICAg fC5mZnVuY18yIHNldG1ldGF0YWJsZQotICAgfCAgLy8gRmFzdCBwYXRoOiBubyBtdCBmb3IgdGFi bGUgeWV0IGFuZCBub3QgY2xlYXJpbmcgdGhlIG10LgotQEAgLTEzNzQsOCArMTUyNyw4IEBAIHN0 YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8Ci0gICB8LmZm dW5jIHJhd2dldAotICAgfCAgY21wbHdpIE5BUkdTODpSQywgMTYKLS0gIHwgICBsd3ogQ0FSRzQs IDAoQkFTRSkKLS0gIHwgICAgbHd6IFRBQjpDQVJHMiwgNChCQVNFKQotKyAgfCAgIGx3eiBDQVJH NCwgV09SRF9ISShCQVNFKQotKyAgfCAgICBsd3ogVEFCOkNBUkcyLCBXT1JEX0xPKEJBU0UpCi0g ICB8ICBibHQgLT5mZmZfZmFsbGJhY2sKLSAgIHwgIGNoZWNrdGFiIENBUkc0OyBibmUgLT5mZmZf ZmFsbGJhY2sKLSAgIHwgICBsYSBDQVJHMywgOChCQVNFKQotQEAgLTEzOTAsNyArMTU0Myw3IEBA IHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8LmZmdW5j IHRvbnVtYmVyCi0gICB8ICAvLyBPbmx5IGhhbmRsZXMgdGhlIG51bWJlciBjYXNlIGlubGluZSAo d2l0aG91dCBhIGJhc2UgYXJndW1lbnQpLgotICAgfCAgY21wbHdpIE5BUkdTODpSQywgOAotLSAg fCAgIGx3eiBDQVJHMSwgMChCQVNFKQotKyAgfCAgIGx3eiBDQVJHMSwgV09SRF9ISShCQVNFKQot ICAgfCAgICBsZmQgRkFSRzEsIDAoQkFTRSkKLSAgIHwgIGJuZSAtPmZmZl9mYWxsYmFjawkJCS8v IEV4YWN0bHkgb25lIGFyZ3VtZW50LgotICAgfCAgIGNoZWNrbnVtIENBUkcxOyBiZ3QgLT5mZmZf ZmFsbGJhY2sKLUBAIC0xNDI1LDEwICsxNTc4LDE1IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJv dXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8Ci0gICB8LmZmdW5jIG5leHQKLSAgIHwgIGNtcGx3 aSBOQVJHUzg6UkMsIDgKLS0gIHwgICBsd3ogQ0FSRzEsIDAoQkFTRSkKLS0gIHwgICAgbHd6IFRB QjpDQVJHMiwgNChCQVNFKQotKyAgfCAgIGx3eiBDQVJHMSwgV09SRF9ISShCQVNFKQotKyAgfCAg ICBsd3ogVEFCOkNBUkcyLCBXT1JEX0xPKEJBU0UpCi0gICB8ICBibHQgLT5mZmZfZmFsbGJhY2sK LSsgIHwuaWYgRU5ESUFOX0xFCi0rICB8ICAgYWRkIFRNUDEsIEJBU0UsIE5BUkdTODpSQwotKyAg fCAgIHN0dyBUSVNOSUwsIFdPUkRfSEkoVE1QMSkJCS8vIFNldCBtaXNzaW5nIDJuZCBhcmcgdG8g bmlsLgotKyAgfC5lbHNlCi0gICB8ICAgc3R3eCBUSVNOSUwsIEJBU0UsIE5BUkdTODpSQwkvLyBT ZXQgbWlzc2luZyAybmQgYXJnIHRvIG5pbC4KLSsgIHwuZW5kaWYKLSAgIHwgIGNoZWNrdGFiIENB UkcxCi0gICB8ICAgbHd6IFBDLCBGUkFNRV9QQyhCQVNFKQotICAgfCAgYm5lIC0+ZmZmX2ZhbGxi YWNrCi1AQCAtMTQ2NCwxOCArMTYyMiwxOCBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5l cyhCdWlsZEN0eCAqY3R4KQotICAgfCAgbGZkIGYwLCBDRlVOQzpSQi0+dXB2YWx1ZVswXQotICAg fCAgbGEgUkEsIC04KEJBU0UpCi0gI2VuZGlmCi0tICB8ICAgc3R3IFRJU05JTCwgOChCQVNFKQot KyAgfCAgIHN0dyBUSVNOSUwsIDgrV09SRF9ISShCQVNFKQotICAgfCAgbGkgUkQsICgzKzEpKjgK LSAgIHwgIHN0ZmQgZjAsIDAoUkEpCi0gICB8ICBiIC0+ZmZmX3JlcwotICAgfAotICAgfC5mZnVu YyBpcGFpcnNfYXV4Ci0gICB8ICBjbXBsd2kgTkFSR1M4OlJDLCAxNgotLSAgfCAgIGx3eiBDQVJH MywgMChCQVNFKQotLSAgfCAgICBsd3ogVEFCOkNBUkcxLCA0KEJBU0UpCi0tICB8ICAgbHd6IENB Ukc0LCA4KEJBU0UpCi0rICB8ICAgbHd6IENBUkczLCBXT1JEX0hJKEJBU0UpCi0rICB8ICAgIGx3 eiBUQUI6Q0FSRzEsIFdPUkRfTE8oQkFTRSkKLSsgIHwgICBsd3ogQ0FSRzQsIDgrV09SRF9ISShC QVNFKQotICAgfC5pZiBEVUFMTlVNCi0tICB8ICAgIGx3eiBUTVAyLCAxMihCQVNFKQotKyAgfCAg ICBsd3ogVE1QMiwgOCtXT1JEX0xPKEJBU0UpCi0gICB8LmVsc2UKLSAgIHwgICAgbGZkIEZBUkcy LCA4KEJBU0UpCi0gICB8LmVuZGlmCi1AQCAtMTUwNCwxNiArMTY2MiwxNiBAQCBzdGF0aWMgdm9p ZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgIGxhIFJBLCAtOChCQVNF KQotICAgfCAgY21wbHcgVE1QMCwgVE1QMgotICAgfC5pZiBEVUFMTlVNCi0tICB8ICBzdHcgVElT TlVNLCAwKFJBKQotKyAgfCAgc3R3IFRJU05VTSwgV09SRF9ISShSQSkKLSAgIHwgICBzbHdpIFRN UDMsIFRNUDIsIDMKLS0gIHwgIHN0dyBUTVAyLCA0KFJBKQotKyAgfCAgc3R3IFRNUDIsIFdPUkRf TE8oUkEpCi0gICB8LmVsc2UKLSAgIHwgICBzbHdpIFRNUDMsIFRNUDIsIDMKLSAgIHwgIHN0ZmQg RkFSRzIsIDAoUkEpCi0gICB8LmVuZGlmCi0gICB8ICBibGUgPjIJCQkJLy8gTm90IGluIGFycmF5 IHBhcnQ/Ci0tICB8ICBsd3p4IFRNUDIsIFRNUDEsIFRNUDMKLS0gIHwgIGxmZHggZjAsIFRNUDEs IFRNUDMKLSsgIHwgIGxmZHV4IGYwLCBUTVAxLCBUTVAzCi0rICB8ICBsd3ogVE1QMiwgV09SRF9I SShUTVAxKQotICAgfDE6Ci0gICB8ICBjaGVja25pbCBUTVAyCi0gICB8ICAgbGkgUkQsICgwKzEp KjgKLUBAIC0xNTMyLDcgKzE2OTAsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhC dWlsZEN0eCAqY3R4KQotICAgfCAgY21wbHdpIENSRVQxLCAwCi0gICB8ICAgbGkgUkQsICgwKzEp KjgKLSAgIHwgIGJlcSAtPmZmZl9yZXMKLS0gIHwgIGx3eiBUTVAyLCAwKENSRVQxKQotKyAgfCAg bHd6IFRNUDIsIFdPUkRfSEkoQ1JFVDEpCi0gICB8ICBsZmQgZjAsIDAoQ1JFVDEpCi0gICB8ICBi IDwxCi0gICB8Ci1AQCAtMTU1MSwxMSArMTcwOSwxMSBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJy b3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgbGEgUkEsIC04KEJBU0UpCi0gI2VuZGlmCi0g ICB8LmlmIERVQUxOVU0KLS0gIHwgIHN0dyBUSVNOVU0sIDgoQkFTRSkKLSsgIHwgIHN0dyBUSVNO VU0sIDgrV09SRF9ISShCQVNFKQotICAgfC5lbHNlCi0tICB8ICBzdHcgWkVSTywgOChCQVNFKQot KyAgfCAgc3R3IFpFUk8sIDgrV09SRF9ISShCQVNFKQotICAgfC5lbmRpZgotLSAgfCAgIHN0dyBa RVJPLCAxMihCQVNFKQotKyAgfCAgIHN0dyBaRVJPLCA4K1dPUkRfTE8oQkFTRSkKLSAgIHwgIGxp IFJELCAoMysxKSo4Ci0gICB8ICBzdGZkIGYwLCAwKFJBKQotICAgfCAgYiAtPmZmZl9yZXMKLUBA IC0xNTc2LDcgKzE3MzQsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0 eCAqY3R4KQotICAgfAotICAgfC5mZnVuYyB4cGNhbGwKLSAgIHwgIGNtcGx3aSBOQVJHUzg6UkMs IDE2Ci0tICB8ICAgbHd6IENBUkc0LCA4KEJBU0UpCi0rICB8ICAgbHd6IENBUkc0LCA4K1dPUkRf SEkoQkFTRSkKLSAgIHwgICAgbGZkIEZBUkcyLCA4KEJBU0UpCi0gICB8ICAgIGxmZCBGQVJHMSwg MChCQVNFKQotICAgfCAgYmx0IC0+ZmZmX2ZhbGxiYWNrCi1AQCAtMTY3Myw3ICsxODMxLDcgQEAg c3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwuaWYgcmVz dW1lCi0gICB8ICBsaSBUTVAxLCBMSl9UVFJVRQotICAgfCAgIGxhIFJBLCAtOChCQVNFKQotLSAg fCAgc3R3IFRNUDEsIC04KEJBU0UpCQkJLy8gUHJlcGVuZCB0cnVlIHRvIHJlc3VsdHMuCi0rICB8 ICBzdHcgVE1QMSwgV09SRF9ISS04KEJBU0UpCQkvLyBQcmVwZW5kIHRydWUgdG8gcmVzdWx0cy4K LSAgIHwgIGFkZGkgUkQsIFJELCAxNgotICAgfC5lbHNlCi0gICB8ICBtciBSQSwgQkFTRQotQEAg LTE2OTMsNyArMTg1MSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4 ICpjdHgpCi0gICB8ICBsZmQgZjAsIDAoVE1QMykKLSAgIHwgICBzdHAgVE1QMywgTDpTQVZFMC0+ dG9wCQkvLyBSZW1vdmUgZXJyb3IgZnJvbSBjb3JvdXRpbmUgc3RhY2suCi0gICB8ICAgIGxpIFJE LCAoMisxKSo4Ci0tICB8ICAgc3R3IFRNUDEsIC04KEJBU0UpCQkvLyBQcmVwZW5kIGZhbHNlIHRv IHJlc3VsdHMuCi0rICB8ICAgc3R3IFRNUDEsIFdPUkRfSEktOChCQVNFKQkJLy8gUHJlcGVuZCBm YWxzZSB0byByZXN1bHRzLgotICAgfCAgICBsYSBSQSwgLTgoQkFTRSkKLSAgIHwgIHN0ZmQgZjAs IDAoQkFTRSkJCQkvLyBDb3B5IGVycm9yIG1lc3NhZ2UuCi0gICB8ICBiIDw3Ci1AQCAtMTc0Niw4 ICsxOTA0LDggQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkK LSAgIHwtPmZmZl9yZXNpOgotICAgfCAgbHd6IFBDLCBGUkFNRV9QQyhCQVNFKQotICAgfCAgbGEg UkEsIC04KEJBU0UpCi0tICB8ICBzdHcgVElTTlVNLCAtOChCQVNFKQotLSAgfCAgc3R3IENSRVQx LCAtNChCQVNFKQotKyAgfCAgc3R3IFRJU05VTSwgV09SRF9ISS04KEJBU0UpCi0rICB8ICBzdHcg Q1JFVDEsIFdPUkRfTE8tOChCQVNFKQotICAgfCAgYiAtPmZmZl9yZXMxCi0gICB8MToKLSAgIHwg IGx1cyBDQVJHMywgMHg0MWUwCS8vIDJeMzEuCi1AQCAtMTc2Miw5ICsxOTIwLDkgQEAgc3RhdGlj IHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwtPmZmZl9yZXN0djoK LSAgIHwgIC8vIENBUkczL0NBUkcxID0gVFZhbHVlIHJlc3VsdC4KLSAgIHwgIGx3eiBQQywgRlJB TUVfUEMoQkFTRSkKLS0gIHwgICBzdHcgQ0FSRzMsIC04KEJBU0UpCi0rICB8ICAgc3R3IENBUkcz LCBXT1JEX0hJLTgoQkFTRSkKLSAgIHwgIGxhIFJBLCAtOChCQVNFKQotLSAgfCAgIHN0dyBDQVJH MSwgLTQoQkFTRSkKLSsgIHwgICBzdHcgQ0FSRzEsIFdPUkRfTE8tOChCQVNFKQotICAgfC0+ZmZm X3JlczE6Ci0gICB8ICAvLyBSQSA9IHJlc3VsdHMsIFBDID0gcmV0dXJuLgotICAgfCAgbGkgUkQs ICgxKzEpKjgKLUBAIC0xNzgyLDEwICsxOTQwLDExIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJv dXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICBpbnNfbmV4dDEKLSAgIHwgIC8vIEFkanVzdCBC QVNFLiBLQkFTRSBpcyBhc3N1bWVkIHRvIGJlIHNldCBmb3IgdGhlIGNhbGxpbmcgZnJhbWUuCi0g ICB8ICAgc3ViIEJBU0UsIFJBLCBUTVAwCi0rICB8ICAgYWRkaSBCQVNFUDQsIEJBU0UsIDQKLSAg IHwgIGluc19uZXh0MgotICAgfAotICAgfDY6ICAvLyBGaWxsIHVwIHJlc3VsdHMgd2l0aCBuaWwu Ci0tICB8ICBzdWJpIFRNUDEsIFJELCA4Ci0rICB8ICBhZGRpIFRNUDEsIFJELCBXT1JEX0hJLTgK LSAgIHwgICBhZGRpIFJELCBSRCwgOAotICAgfCAgc3R3eCBUSVNOSUwsIFJBLCBUTVAxCi0gICB8 ICBiIDw1Ci1AQCAtMTg5OCw3ICsyMDU3LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGlu ZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwKLSAgIHwuZmZ1bmMgbWF0aF9sb2cKLSAgIHwgIGNtcGx3 aSBOQVJHUzg6UkMsIDgKLS0gIHwgICBsd3ogQ0FSRzMsIDAoQkFTRSkKLSsgIHwgICBsd3ogQ0FS RzMsIFdPUkRfSEkoQkFTRSkKLSAgIHwgICAgbGZkIEZBUkcxLCAwKEJBU0UpCi0gICB8ICBibmUg LT5mZmZfZmFsbGJhY2sJCQkvLyBOZWVkIGV4YWN0bHkgMSBhcmd1bWVudC4KLSAgIHwgIGNoZWNr bnVtIENBUkczOyBiZ2UgLT5mZmZfZmFsbGJhY2sKLUBAIC0xOTIzLDEzICsyMDgyLDEzIEBAIHN0 YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8LmlmIERVQUxO VU0KLSAgIHwuZmZ1bmMgbWF0aF9sZGV4cAotICAgfCAgY21wbHdpIE5BUkdTODpSQywgMTYKLS0g IHwgICBsd3ogQ0FSRzMsIDAoQkFTRSkKLSsgIHwgICBsd3ogQ0FSRzMsIFdPUkRfSEkoQkFTRSkK LSAgIHwgICAgbGZkIEZBUkcxLCAwKEJBU0UpCi0tICB8ICAgbHd6IENBUkc0LCA4KEJBU0UpCi0r ICB8ICAgbHd6IENBUkc0LCBXT1JEX0hJKzgoQkFTRSkKLSAgIHwuaWYgR1BSNjQKLS0gIHwgICAg bHd6IENBUkcyLCAxMihCQVNFKQotKyAgfCAgICBsd3ogQ0FSRzIsIFdPUkRfTE8rOChCQVNFKQot ICAgfC5lbHNlCi0tICB8ICAgIGx3eiBDQVJHMSwgMTIoQkFTRSkKLSsgIHwgICAgbHd6IENBUkcx LCBXT1JEX0xPKzgoQkFTRSkKLSAgIHwuZW5kaWYKLSAgIHwgIGJsdCAtPmZmZl9mYWxsYmFjawot ICAgfCAgY2hlY2tudW0gQ0FSRzM7IGJnZSAtPmZmZl9mYWxsYmFjawotQEAgLTE5NjEsOCArMjEy MCw4IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8 ICBzdGZkIEZBUkcxLCAwKFJBKQotICAgfCAgbGkgUkQsICgyKzEpKjgKLSAgIHwuaWYgRFVBTE5V TQotLSAgfCAgIHN0dyBUSVNOVU0sIDgoUkEpCi0tICB8ICAgc3R3IFRNUDEsIDEyKFJBKQotKyAg fCAgIHN0dyBUSVNOVU0sIFdPUkRfSEkrOChSQSkKLSsgIHwgICBzdHcgVE1QMSwgV09SRF9MTys4 KFJBKQotICAgfC5lbHNlCi0gICB8ICAgc3RmZCBGQVJHMiwgOChSQSkKLSAgIHwuZW5kaWYKLUBA IC0xOTg5LDkgKzIxNDgsOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0 eCAqY3R4KQotICAgfCAgIGFkZCBUTVAyLCBCQVNFLCBOQVJHUzg6UkMKLSAgIHwgIGJuZSA+NAot ICAgfDE6ICAvLyBIYW5kbGUgaW50ZWdlcnMuCi0tICB8ICBsd3ogQ0FSRzQsIDAoVE1QMSkKLSsg IHwgIGx3eiBDQVJHNCwgV09SRF9ISShUTVAxKQotICAgfCAgIGNtcGx3IGNyMSwgVE1QMSwgVE1Q MgotLSAgfCAgbHd6IENBUkcyLCA0KFRNUDEpCi0rICB8ICBsd3ogQ0FSRzIsIFdPUkRfTE8oVE1Q MSkKLSAgIHwgICBiZ2UgY3IxLCAtPmZmZl9yZXNpCi0gICB8ICBjaGVja251bSBDQVJHNAotICAg fCAgIHhvcmlzIFRNUDAsIENBUkcxLCAweDgwMDAKLUBAIC0yMDIwLDcgKzIxNzksNyBAQCBzdGF0 aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgIGxmZCBGQVJH MSwgMChCQVNFKQotICAgfCAgYmdlIC0+ZmZmX2ZhbGxiYWNrCi0gICB8NTogIC8vIEhhbmRsZSBu dW1iZXJzLgotLSAgfCAgbHd6IENBUkc0LCAwKFRNUDEpCi0rICB8ICBsd3ogQ0FSRzQsIFdPUkRf SEkoVE1QMSkKLSAgIHwgICBjbXBsdyBjcjEsIFRNUDEsIFRNUDIKLSAgIHwgIGxmZCBGQVJHMiwg MChUTVAxKQotICAgfCAgIGJnZSBjcjEsIC0+ZmZmX3Jlc24KLUBAIC0yMDM1LDcgKzIxOTQsNyBA QCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfC5lbmRp ZgotICAgfCAgYiA8NQotICAgfDc6ICAvLyBDb252ZXJ0IGludGVnZXIgdG8gbnVtYmVyIGFuZCBj b250aW51ZSBhYm92ZS4KLS0gIHwgICBsd3ogQ0FSRzIsIDQoVE1QMSkKLSsgIHwgICBsd3ogQ0FS RzIsIFdPUkRfTE8oVE1QMSkKLSAgIHwgIGJuZSAtPmZmZl9mYWxsYmFjawotICAgfCAgdG9udW1f aSBGQVJHMiwgQ0FSRzIKLSAgIHwgIGIgPDYKLUBAIC0yMDQzLDcgKzIyMDIsMTIgQEAgc3RhdGlj IHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwgIC5mZnVuY19uIG5h bWUKLSAgIHwgIGxpIFRNUDEsIDgKLSAgIHwxOgotKyAgfC5pZiBFTkRJQU5fTEUKLSsgIHwgICBh ZGQgQ0FSRzIsIEJBU0UsIFRNUDEKLSsgIHwgICBsd3ogQ0FSRzIsIFdPUkRfSEkoQ0FSRzIpCi0r ICB8LmVsc2UKLSAgIHwgICBsd3p4IENBUkcyLCBCQVNFLCBUTVAxCi0rICB8LmVuZGlmCi0gICB8 ICAgbGZkeCBGQVJHMiwgQkFTRSwgVE1QMQotICAgfCAgY21wbHcgY3IxLCBUTVAxLCBOQVJHUzg6 UkMKLSAgIHwgICBjaGVja251bSBDQVJHMgotQEAgLTIwNjcsOCArMjIzMSw4IEBAIHN0YXRpYyB2 b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8Ci0gICB8LmZmdW5jIHN0 cmluZ19ieXRlCQkJLy8gT25seSBoYW5kbGUgdGhlIDEtYXJnIGNhc2UgaGVyZS4KLSAgIHwgIGNt cGx3aSBOQVJHUzg6UkMsIDgKLS0gIHwgICBsd3ogQ0FSRzMsIDAoQkFTRSkKLS0gIHwgICAgbHd6 IFNUUjpDQVJHMSwgNChCQVNFKQotKyAgfCAgIGx3eiBDQVJHMywgV09SRF9ISShCQVNFKQotKyAg fCAgICBsd3ogU1RSOkNBUkcxLCBXT1JEX0xPKEJBU0UpCi0gICB8ICBibmUgLT5mZmZfZmFsbGJh Y2sJCQkvLyBOZWVkIGV4YWN0bHkgMSBhcmd1bWVudC4KLSAgIHwgICBjaGVja3N0ciBDQVJHMwot ICAgfCAgIGJuZSAtPmZmZl9mYWxsYmFjawotQEAgLTIwOTksMTIgKzIyNjMsMTIgQEAgc3RhdGlj IHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwuZmZ1bmMgc3RyaW5n X2NoYXIJCQkvLyBPbmx5IGhhbmRsZSB0aGUgMS1hcmcgY2FzZSBoZXJlLgotICAgfCAgZmZnY2No ZWNrCi0gICB8ICBjbXBsd2kgTkFSR1M4OlJDLCA4Ci0tICB8ICAgbHd6IENBUkczLCAwKEJBU0Up Ci0rICB8ICAgbHd6IENBUkczLCBXT1JEX0hJKEJBU0UpCi0gICB8LmlmIERVQUxOVU0KLS0gIHwg ICAgbHd6IFRNUDAsIDQoQkFTRSkKLSsgIHwgICAgbHd6IFRNUDAsIFdPUkRfTE8oQkFTRSkKLSAg IHwgIGJuZSAtPmZmZl9mYWxsYmFjawkJCS8vIEV4YWN0bHkgMSBhcmd1bWVudC4KLSAgIHwgIGNo ZWNrbnVtIENBUkczOyBibmUgLT5mZmZfZmFsbGJhY2sKLS0gIHwgICBsYSBDQVJHMiwgNyhCQVNF KQotKyAgfCAgIGxhIENBUkcyLCBXT1JEX0JMTyhCQVNFKQotICAgfC5lbHNlCi0gICB8ICAgIGxm ZCBGQVJHMSwgMChCQVNFKQotICAgfCAgYm5lIC0+ZmZmX2ZhbGxiYWNrCQkJLy8gRXhhY3RseSAx IGFyZ3VtZW50LgotQEAgLTIxMjgsMTYgKzIyOTIsMTYgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vi cm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwuZmZ1bmMgc3RyaW5nX3N1YgotICAgfCAgZmZn Y2NoZWNrCi0gICB8ICBjbXBsd2kgTkFSR1M4OlJDLCAxNgotLSAgfCAgIGx3eiBDQVJHMywgMTYo QkFTRSkKLSsgIHwgICBsd3ogQ0FSRzMsIFdPUkRfSEkrMTYoQkFTRSkKLSAgIHwuaWYgbm90IERV QUxOVU0KLSAgIHwgICAgbGZkIGYwLCAxNihCQVNFKQotICAgfC5lbmRpZgotLSAgfCAgIGx3eiBU TVAwLCAwKEJBU0UpCi0tICB8ICAgIGx3eiBTVFI6Q0FSRzEsIDQoQkFTRSkKLSsgIHwgICBsd3og VE1QMCwgV09SRF9ISShCQVNFKQotKyAgfCAgICBsd3ogU1RSOkNBUkcxLCBXT1JEX0xPKEJBU0Up Ci0gICB8ICBibHQgLT5mZmZfZmFsbGJhY2sKLS0gIHwgICBsd3ogQ0FSRzIsIDgoQkFTRSkKLSsg IHwgICBsd3ogQ0FSRzIsIFdPUkRfSEkrOChCQVNFKQotICAgfC5pZiBEVUFMTlVNCi0tICB8ICAg IGx3eiBUTVAxLCAxMihCQVNFKQotKyAgfCAgICBsd3ogVE1QMSwgV09SRF9MTys4KEJBU0UpCi0g ICB8LmVsc2UKLSAgIHwgICAgbGZkIGYxLCA4KEJBU0UpCi0gICB8LmVuZGlmCi1AQCAtMjE0NSw3 ICsyMzA5LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkK LSAgIHwgIGJlcSA+MQotICAgfC5pZiBEVUFMTlVNCi0gICB8ICBjaGVja251bSBDQVJHMwotLSAg fCAgIGx3eiBUTVAyLCAyMChCQVNFKQotKyAgfCAgIGx3eiBUTVAyLCBXT1JEX0xPKzE2KEJBU0Up Ci0gICB8ICBibmUgLT5mZmZfZmFsbGJhY2sKLSAgIHwxOgotICAgfCAgY2hlY2tudW0gQ0FSRzI7 IGJuZSAtPmZmZl9mYWxsYmFjawotQEAgLTIyMDEsOCArMjM2NSw4IEBAIHN0YXRpYyB2b2lkIGJ1 aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICAuZmZ1bmMgc3RyaW5nXyAuLiBu YW1lCi0gICB8ICBmZmdjY2hlY2sKLSAgIHwgIGNtcGx3aSBOQVJHUzg6UkMsIDgKLS0gIHwgICBs d3ogQ0FSRzMsIDAoQkFTRSkKLS0gIHwgICAgbHd6IFNUUjpDQVJHMiwgNChCQVNFKQotKyAgfCAg IGx3eiBDQVJHMywgV09SRF9ISShCQVNFKQotKyAgfCAgICBsd3ogU1RSOkNBUkcyLCBXT1JEX0xP KEJBU0UpCi0gICB8ICBibHQgLT5mZmZfZmFsbGJhY2sKLSAgIHwgIGNoZWNrc3RyIENBUkczCi0g ICB8ICAgbGEgU0JVRjpDQVJHMSwgRElTUEFUQ0hfR0wodG1wYnVmKShESVNQQVRDSCkKLUBAIC0y MjQwLDEwICsyNDA0LDEwIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4 ICpjdHgpCi0gICB8ICBhZGRpIFRNUDEsIEJBU0UsIDgKLSAgIHwgIGFkZCBUTVAyLCBCQVNFLCBO QVJHUzg6UkMKLSAgIHwxOgotLSAgfCAgbHd6IENBUkc0LCAwKFRNUDEpCi0rICB8ICBsd3ogQ0FS RzQsIFdPUkRfSEkoVE1QMSkKLSAgIHwgICBjbXBsdyBjcjEsIFRNUDEsIFRNUDIKLSAgIHwuaWYg RFVBTE5VTQotLSAgfCAgbHd6IENBUkcyLCA0KFRNUDEpCi0rICB8ICBsd3ogQ0FSRzIsIFdPUkRf TE8oVE1QMSkKLSAgIHwuZWxzZQotICAgfCAgbGZkIEZBUkcxLCAwKFRNUDEpCi0gICB8LmVuZGlm Ci1AQCAtMjM0NCwyMCArMjUwOCwyMyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhC dWlsZEN0eCAqY3R4KQotICAgfAotICAgfC0+ZmZmX2ZhbGxiYWNrOgkJCS8vIENhbGwgZmFzdCBm dW5jdGlvbiBmYWxsYmFjayBoYW5kbGVyLgotICAgfCAgLy8gQkFTRSA9IG5ldyBiYXNlLCBSQiA9 IENGVU5DLCBSQyA9IG5hcmdzKjgKLS0gIHwgIGxwIFRNUDMsIENGVU5DOlJCLT5mCi0rICB8ICBs cCBGVU5DUkVHLCBDRlVOQzpSQi0+ZgotICAgfCAgICBhZGQgVE1QMSwgQkFTRSwgTkFSR1M4OlJD Ci0gICB8ICAgbHd6IFBDLCBGUkFNRV9QQyhCQVNFKQkJLy8gRmFsbGJhY2sgbWF5IG92ZXJ3cml0 ZSBQQy4KLSAgIHwgICAgYWRkaSBUTVAwLCBUTVAxLCA4KkxVQV9NSU5TVEFDSwotICAgfCAgICAg bHd6IFRNUDIsIEwtPm1heHN0YWNrCi0gICB8ICAgc3R3IFBDLCBTQVZFX1BDCQkJLy8gUmVkdW5k YW50IChidXQgYSBkZWZpbmVkIHZhbHVlKS4KLS0gIHwgIC50b2MgbHAgVE1QMywgMChUTVAzKQot KyAgfCAgLm9wZCBscCBUT0NSRUcsIFRPQ19PRlMoRlVOQ1JFRykKLSsgIHwgIC5vcGRlbnYgbHAg RU5WUkVHLCBFTlZfT0ZTKEZVTkNSRUcpCi0rICB8ICAub3BkIGxwIEZVTkNSRUcsIDAoRlVOQ1JF RykKLSAgIHwgIGNtcGx3IFRNUDAsIFRNUDIKLSAgIHwgICAgIHN0cCBCQVNFLCBMLT5iYXNlCi0g ICB8ICAgIHN0cCBUTVAxLCBMLT50b3AKLSAgIHwgICBtciBDQVJHMSwgTAotICAgfCAgYmd0ID41 CQkJCS8vIE5lZWQgdG8gZ3JvdyBzdGFjay4KLS0gIHwgIG10Y3RyIFRNUDMKLSsgIHwgIG10Y3Ry IEZVTkNSRUcKLSAgIHwgIGJjdHJsCQkJCS8vIChsdWFfU3RhdGUgKkwpCi0rICB8ICAudG9jIGxw IFRPQ1JFRywgU0FWRV9UT0MKLSAgIHwgIC8vIEVpdGhlciB0aHJvd3MgYW4gZXJyb3IsIG9yIHJl Y292ZXJzIGFuZCByZXR1cm5zIC0xLCAwIG9yIG5yZXN1bHRzKzEuCi0gICB8ICBscCBCQVNFLCBM LT5iYXNlCi0gICB8ICBjbXB3aSBDUkVUMSwgMAotQEAgLTI0NTksNiArMjYyNiw3IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8MzoKLSAgIHwgIGxw IEJBU0UsIEwtPmJhc2UKLSAgIHw0OiAgLy8gUmUtZGlzcGF0Y2ggdG8gc3RhdGljIGlucy4KLSsg IHwgIGFkZGkgQkFTRVA0LCBCQVNFLCA0Ci0gICB8ICBsd3ogSU5TLCAtNChQQykKLSAgIHwgIGRl Y29kZV9PUFAgVE1QMSwgSU5TCi0gICB8ICAgZGVjb2RlX1JCOCBSQiwgSU5TCi1AQCAtMjQ3Miw3 ICsyNjQwLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkK LSAgIHwKLSAgIHwtPmNvbnRfaG9vazoJCQkJLy8gQ29udGludWUgZnJvbSBob29rIHlpZWxkLgot ICAgfCAgYWRkaSBQQywgUEMsIDQKLS0gIHwgIGx3eiBNVUxUUkVTLCAtMjAoUkIpCQkvLyBSZXN0 b3JlIE1VTFRSRVMgZm9yICpNIGlucy4KLSsgIHwgIGx3eiBNVUxUUkVTLCBXT1JEX0xPLTI0KFJC KQkJLy8gUmVzdG9yZSBNVUxUUkVTIGZvciAqTSBpbnMuCi0gICB8ICBiIDw0Ci0gICB8Ci0gICB8 LT52bV9ob3Rsb29wOgkJCS8vIEhvdCBsb29wIGNvdW50ZXIgdW5kZXJmbG93LgotQEAgLTI1MTQs NiArMjY4Miw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgp Ci0gICB8ICBscCBCQVNFLCBMLT5iYXNlCi0gICB8ICAgbHAgVE1QMCwgTC0+dG9wCi0gICB8ICAg c3R3IFpFUk8sIFNBVkVfUEMJCQkvLyBJbnZhbGlkYXRlIGZvciBzdWJzZXF1ZW50IGxpbmUgaG9v ay4KLSsgIHwgIGFkZGkgQkFTRVA0LCBCQVNFLCA0Ci0gICB8ICBzdWIgTkFSR1M4OlJDLCBUTVAw LCBCQVNFCi0gICB8ICBhZGQgUkEsIEJBU0UsIFJBCi0gICB8ICBsd3ogTEZVTkM6UkIsIEZSQU1F X0ZVTkMoQkFTRSkKLUBAIC0yNTI1LDcgKzI2OTQsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJy b3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfC5pZiBKSVQKLSAgIHwgIC8vIFJBID0gcmVzdWx0 cHRyLCBSQiA9IG1ldGEgYmFzZQotICAgfCAgbHd6IElOUywgLTQoUEMpCi0tICB8ICAgIGx3eiBU UkFDRTpUTVAyLCAtMjAoUkIpCQkvLyBTYXZlIHByZXZpb3VzIHRyYWNlLgotKyAgfCAgICBsd3og VFJBQ0U6VE1QMiwgV09SRF9MTy0yNChSQikJLy8gU2F2ZSBwcmV2aW91cyB0cmFjZS4KLSAgIHwg ICBhZGRpYy4gVE1QMSwgTVVMVFJFUywgLTgKLSAgIHwgIGRlY29kZV9SQTggUkMsIElOUwkJCS8v IENhbGwgYmFzZS4KLSAgIHwgICBiZXEgPjIKLUBAIC0yNTYwLDEwICsyNzI5LDE2IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICBtciBDQVJHMiwg UEMKLSAgIHwgIGJsIGV4dGVybiBsal9kaXNwYXRjaF9zdGl0Y2gJLy8gKGppdF9TdGF0ZSAqSiwg Y29uc3QgQkNJbnMgKnBjKQotICAgfCAgbHAgQkFTRSwgTC0+YmFzZQotKyAgfCAgYWRkaSBCQVNF UDQsIEJBU0UsIDQKLSAgIHwgIGIgLT5jb250X25vcAotICAgfAotICAgfDk6Ci0rICB8LmlmIEVO RElBTl9MRQotKyAgfCAgYWRkaSBCQVNFUDQsIEJBU0UsIDQKLSsgIHwgIHN0d3ggVElTTklMLCBC QVNFUDQsIFJDCi0rICB8LmVsc2UKLSAgIHwgIHN0d3ggVElTTklMLCBCQVNFLCBSQwotKyAgfC5l bmRpZgotICAgfCAgYWRkaSBSQywgUkMsIDgKLSAgIHwgIGIgPDMKLSAgIHwuZW5kaWYKLUBAIC0y NTc4LDYgKzI3NTMsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAq Y3R4KQotICAgfCAgLy8gSE9PS19QUk9GSUxFIGlzIG9mZiBhZ2Fpbiwgc28gcmUtZGlzcGF0Y2gg dG8gZHluYW1pYyBpbnN0cnVjdGlvbi4KLSAgIHwgIGxwIEJBU0UsIEwtPmJhc2UKLSAgIHwgIHN1 YmkgUEMsIFBDLCA0Ci0rICB8ICBhZGRpIEJBU0VQNCwgQkFTRSwgNAotICAgfCAgYiAtPmNvbnRf bm9wCi0gI2VuZGlmCi0gICB8Ci1AQCAtMjU4NiwzOSArMjc2Miw3MiBAQCBzdGF0aWMgdm9pZCBi dWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfC8vLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg IHwKLSAgIHwubWFjcm8gc2F2ZXhfLCBhLCBiLCBjLCBkCi0tICB8ICBzdGZkIGYuLmEsIDE2K2Eq OChzcCkKLS0gIHwgIHN0ZmQgZi4uYiwgMTYrYio4KHNwKQotLSAgfCAgc3RmZCBmLi5jLCAxNitj Kjgoc3ApCi0tICB8ICBzdGZkIGYuLmQsIDE2K2QqOChzcCkKLSsgIHwgIHN0ZmQgZi4uYSwgRVhJ VF9PRkZTRVQrYSo4KHNwKQotKyAgfCAgc3RmZCBmLi5iLCBFWElUX09GRlNFVCtiKjgoc3ApCi0r ICB8ICBzdGZkIGYuLmMsIEVYSVRfT0ZGU0VUK2MqOChzcCkKLSsgIHwgIHN0ZmQgZi4uZCwgRVhJ VF9PRkZTRVQrZCo4KHNwKQotKyAgfC5lbmRtYWNybwotKyAgfAotKyAgfC5tYWNybyBzYXZlciwg YQotKyAgfCAgc3RwIHIuLmEsIEVYSVRfT0ZGU0VUKzMyKjgrYSpQU0laRShzcCkKLSAgIHwuZW5k bWFjcm8KLSAgIHwKLSAgIHwtPnZtX2V4aXRfaGFuZGxlcjoKLSAgIHwuaWYgSklUCi0tICB8ICBh ZGRpIHNwLCBzcCwgLSgxNiszMio4KzMyKjQpCi0tICB8ICBzdG13IHIyLCAxNiszMio4KzIqNChz cCkKLSsgIHwgIGFkZGkgc3AsIFRNUDAsIHNwLCAtKEVYSVRfT0ZGU0VUKzMyKjgrMzIqUFNJWkUp Ci0rICB8ICBzYXZlciAzIC8vIENBUkcxCi0rICB8ICBzYXZlciA0IC8vIENBUkcyCi0rICB8ICBz YXZlciA1IC8vIENBUkczCi0rICB8ICBzYXZlciAxNyAvLyBESVNQQVRDSAotICAgfCAgICBhZGRp IERJU1BBVENILCBKR0wsIC1HR19ESVNQMkctMzI3NjgKLSAgIHwgICAgbGkgQ0FSRzIsIH5MSl9W TVNUX0VYSVQKLS0gIHwgICBsd3ogQ0FSRzEsIDE2KzMyKjgrMzIqNChzcCkJLy8gR2V0IHN0YWNr IGNoYWluLgotKyAgfCAgIGxwIENBUkcxLCBFWElUX09GRlNFVCszMio4KzMyKlBTSVpFKHNwKQkv LyBHZXQgc3RhY2sgY2hhaW4uCi0gICB8ICAgIHN0dyBDQVJHMiwgRElTUEFUQ0hfR0wodm1zdGF0 ZSkoRElTUEFUQ0gpCi0rICB8ICBzYXZlciAyCi0rICB8ICBzYXZlciA2Ci0rICB8ICBzYXZlciA3 Ci0rICB8ICBzYXZlciA4Ci0rICB8ICBzYXZlciA5Ci0rICB8ICBzYXZlciAxMAotKyAgfCAgc2F2 ZXIgMTEKLSsgIHwgIHNhdmVyIDEyCi0rICB8ICBzYXZlciAxMwotICAgfCAgc2F2ZXhfIDAsMSwy LDMKLS0gIHwgICBzdHcgQ0FSRzEsIDAoc3ApCQkJLy8gU3RvcmUgZXh0ZW5kZWQgc3RhY2sgY2hh aW4uCi0tICB8ICAgY2xyc28gVE1QMQotKyAgfCAgIHN0cCBDQVJHMSwgMChzcCkJCQkvLyBTdG9y ZSBleHRlbmRlZCBzdGFjayBjaGFpbi4KLSsKLSAgIHwgIHNhdmV4XyA0LDUsNiw3Ci0tICB8ICAg YWRkaSBDQVJHMiwgc3AsIDE2KzMyKjgrMzIqNAkvLyBSZWNvbXB1dGUgb3JpZ2luYWwgdmFsdWUg b2Ygc3AuCi0rICB8ICBzYXZlciAxNAotKyAgfCAgc2F2ZXIgMTUKLSsgIHwgIHNhdmVyIDE2Ci0r ICB8ICBzYXZlciAxOAotKyAgfCAgIGFkZGkgQ0FSRzIsIHNwLCBFWElUX09GRlNFVCszMio4KzMy KlBTSVpFCS8vIFJlY29tcHV0ZSBvcmlnaW5hbCB2YWx1ZSBvZiBzcC4KLSAgIHwgIHNhdmV4XyA4 LDksMTAsMTEKLS0gIHwgICBzdHcgQ0FSRzIsIDE2KzMyKjgrMSo0KHNwKQkvLyBTdG9yZSBzcCBp biBSSURfU1AuCi0rICB8ICAgc3RwIENBUkcyLCBFWElUX09GRlNFVCszMio4KzEqUFNJWkUoc3Ap CS8vIFN0b3JlIHNwIGluIFJJRF9TUC4KLSAgIHwgIHNhdmV4XyAxMiwxMywxNCwxNQotICAgfCAg IG1mbHIgQ0FSRzMKLSAgIHwgICBsaSBUTVAxLCAwCi0gICB8ICBzYXZleF8gMTYsMTcsMTgsMTkK LS0gIHwgICBzdHcgVE1QMSwgMTYrMzIqOCswKjQoc3ApCQkvLyBDbGVhciBSSURfVE1QLgotKyAg fCAgIHN0dyBUTVAxLCBFWElUX09GRlNFVCszMio4KzAqUFNJWkUoc3ApCQkvLyBDbGVhciBSSURf VE1QLgotICAgfCAgc2F2ZXhfIDIwLDIxLDIyLDIzCi0gICB8ICAgbGh6IENBUkc0LCAyKENBUkcz KQkJLy8gTG9hZCB0cmFjZSBudW1iZXIuCi0gICB8ICBzYXZleF8gMjQsMjUsMjYsMjcKLSAgIHwg IGx3eiBMLCBESVNQQVRDSF9HTChjdXJfTCkoRElTUEFUQ0gpCi0gICB8ICBzYXZleF8gMjgsMjks MzAsMzEKLSsgIHwgIHNhdmVyIDE5Ci0rICB8ICBzYXZlciAyMAotKyAgfCAgc2F2ZXIgMjEKLSsg IHwgIHNhdmVyIDIyCi0rICB8ICBzYXZlciAyMwotKyAgfCAgc2F2ZXIgMjQKLSsgIHwgIHNhdmVy IDI1Ci0rICB8ICBzYXZlciAyNgotKyAgfCAgc2F2ZXIgMjcKLSsgIHwgIHNhdmVyIDI4Ci0rICB8 ICBzYXZlciAyOQotKyAgfCAgc2F2ZXIgMzAKLSsgIHwgIHNhdmVyIDMxCi0gICB8ICAgc3ViIENB UkczLCBUTVAwLCBDQVJHMwkJLy8gQ29tcHV0ZSBleGl0IG51bWJlci4KLS0gIHwgIGxwIEJBU0Us IERJU1BBVENIX0dMKGppdF9iYXNlKShESVNQQVRDSCkKLSsgIHwgIGx3eiBCQVNFLCBESVNQQVRD SF9HTChqaXRfYmFzZSkoRElTUEFUQ0gpCi0gICB8ICAgc3J3aSBDQVJHMywgQ0FSRzMsIDIKLSAg IHwgIHN0cCBMLCBESVNQQVRDSF9KKEwpKERJU1BBVENIKQotICAgfCAgIHN1YmkgQ0FSRzMsIENB UkczLCAyCi1AQCAtMjYyNywxMSArMjgzNiwxMSBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0 aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgc3R3IFRNUDEsIERJU1BBVENIX0dMKGppdF9iYXNl KShESVNQQVRDSCkKLSAgIHwgIGFkZGkgQ0FSRzEsIERJU1BBVENILCBHR19ESVNQMkoKLSAgIHwg ICBzdHcgQ0FSRzMsIERJU1BBVENIX0ooZXhpdG5vKShESVNQQVRDSCkKLS0gIHwgIGFkZGkgQ0FS RzIsIHNwLCAxNgotKyAgfCAgYWRkaSBDQVJHMiwgc3AsIEVYSVRfT0ZGU0VUCi0gICB8ICBibCBl eHRlcm4gbGpfdHJhY2VfZXhpdAkJLy8gKGppdF9TdGF0ZSAqSiwgRXhpdFN0YXRlICpleCkKLSAg IHwgIC8vIFJldHVybnMgTVVMVFJFUyAodW5zY2FsZWQpIG9yIG5lZ2F0ZWQgZXJyb3IgY29kZS4K LSAgIHwgIGxwIFRNUDEsIEwtPmNmcmFtZQotLSAgfCAgbHd6IFRNUDIsIDAoc3ApCi0rICB8ICBs cCBUTVAyLCAwKHNwKQotICAgfCAgIGxwIEJBU0UsIEwtPmJhc2UKLSAgIHwuaWYgR1BSNjQKLSAg IHwgIHJsZGljciBzcCwgVE1QMSwgMCwgNjEKLUBAIC0yNjM5LDcgKzI4NDgsNyBAQCBzdGF0aWMg dm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgcmx3aW5tIHNwLCBU TVAxLCAwLCAwLCAyOQotICAgfC5lbmRpZgotICAgfCAgIGx3eiBQQywgU0FWRV9QQwkJCS8vIEdl dCBTQVZFX1BDLgotLSAgfCAgc3R3IFRNUDIsIDAoc3ApCi0rICB8ICBzdHAgVE1QMiwgMChzcCkK LSAgIHwgIHN0dyBMLCBTQVZFX0wJCQkvLyBTZXQgU0FWRV9MIChvbi10cmFjZSByZXN1bWUveWll bGQpLgotICAgfCAgYiA+MQotICAgfC5lbmRpZgotQEAgLTI2NjAsNyArMjg2OSwxMiBAQCBzdGF0 aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgICBzdHcgVE1Q MiwgRElTUEFUQ0hfR0woaml0X2Jhc2UpKERJU1BBVENIKQotICAgfCAgbHd6IEtCQVNFLCBQQzJQ Uk9UTyhrKShUTVAxKQotICAgfCAgLy8gU2V0dXAgdHlwZSBjb21wYXJpc29uIGNvbnN0YW50cy4K LSsgIHwuaWYgUDY0Ci0rICB8ICBsdXMgVElTTlVNLCBMSl9USVNOVU0gPj4gMTYKLSsgIHwgIG9y aSBUSVNOVU0sIFRJU05VTSwgTEpfVElTTlVNICYgMHhmZmZmCi0rICB8LmVsc2UKLSAgIHwgIGxp IFRJU05VTSwgTEpfVElTTlVNCi0rICB8LmVuZGlmCi0gICB8ICBsdXMgVE1QMywgMHg1OWMwCQkJ Ly8gVE9CSVQgPSAyXjUyICsgMl41MSAoZmxvYXQpLgotICAgfCAgc3R3IFRNUDMsIFRNUEQKLSAg IHwgIGxpIFpFUk8sIDAKLUBAIC0yNjgwLDE0ICsyODk0LDE0IEBAIHN0YXRpYyB2b2lkIGJ1aWxk X3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8ICAgZGVjb2RlX1JBOCBSQSwgSU5TCi0g ICB8ICBscHggVE1QMCwgRElTUEFUQ0gsIFRNUDEKLSAgIHwgIG10Y3RyIFRNUDAKLS0gIHwgIGNt cGx3aSBUTVAxLCBCQ19GVU5DRio0CQkvLyBGdW5jdGlvbiBoZWFkZXI/Ci0rICB8ICBjbXBsd2kg VE1QMSwgQkNfRlVOQ0YqUFNJWkUJLy8gRnVuY3Rpb24gaGVhZGVyPwotICAgfCAgYmdlID4yCi0g ICB8ICAgZGVjb2RlX1JCOCBSQiwgSU5TCi0gICB8ICAgZGVjb2RlX1JEOCBSRCwgSU5TCi0gICB8 ICAgZGVjb2RlX1JDOCBSQywgSU5TCi0gICB8ICBiY3RyCi0gICB8MjoKLS0gIHwgIGNtcGx3aSBU TVAxLCAoQkNfRlVOQ0MrMikqNAkvLyBGYXN0IGZ1bmN0aW9uPwotKyAgfCAgY21wbHdpIFRNUDEs IChCQ19GVU5DQysyKSpQU0laRQkvLyBGYXN0IGZ1bmN0aW9uPwotICAgfCAgYmx0ID4zCi0gICB8 ICAvLyBDaGVjayBmcmFtZSBiZWxvdyBmYXN0IGZ1bmN0aW9uLgotICAgfCAgbHd6IFRNUDEsIEZS QU1FX1BDKEJBU0UpCi1AQCAtMjY5Nyw3ICsyOTExLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vi cm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwgIGx3eiBUTVAyLCAtNChUTVAxKQotICAgfCAg ZGVjb2RlX1JBOCBUTVAwLCBUTVAyCi0gICB8ICBzdWIgVE1QMSwgQkFTRSwgVE1QMAotLSAgfCAg bHd6IExGVU5DOlRNUDIsIC0xMihUTVAxKQotKyAgfCAgbHd6IExGVU5DOlRNUDIsIFdPUkRfTE8t MTYoVE1QMSkKLSAgIHwgIGx3eiBUTVAxLCBMRlVOQzpUTVAyLT5wYwotICAgfCAgbHd6IEtCQVNF LCBQQzJQUk9UTyhrKShUTVAxKQotICAgfDM6Ci1AQCAtMjcxOCw2ICsyOTMyLDggQEAgc3RhdGlj IHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0eCkKLSAgIHwvLyBOWUk6IFVzZSBp bnRlcm5hbCBpbXBsZW1lbnRhdGlvbnMgb2YgZmxvb3IsIGNlaWwsIHRydW5jLgotICAgfAotICAg fC0+dm1fbW9kaToKLSsgIHwgIGxpIFRNUDEsIDAKLSsgIHwgIG10eGVyIFRNUDEKLSAgIHwgIGRp dndvLiBUTVAwLCBDQVJHMSwgQ0FSRzIKLSAgIHwgIGJzbyA+MQotICAgfC5pZiBHUFI2NAotQEAg LTI3MzYsNyArMjk1Miw4IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4 ICpjdHgpCi0gICB8ICBjbXB3aSBDQVJHMiwgMAotICAgfCAgIGxpIENBUkcxLCAwCi0gICB8ICBi ZXFscgotLSAgfCAgY2xyc28gVE1QMAkJCS8vIENsZWFyIFNPIGZvciAtMjE0NzQ4MzY0OCAlIC0x IGFuZCByZXR1cm4gMC4KLSsgIHwgIC8vIENsZWFyIFNPIGZvciAtMjE0NzQ4MzY0OCAlIC0xIGFu ZCByZXR1cm4gMC4KLSsgIHwgIGNyeG9yIDQqY3IwK3NvLCA0KmNyMCtzbywgNCpjcjArc28KLSAg IHwgIGJscgotICAgfAotICAgfC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUBAIC0yNzQ5LDEwICsyOTY2LDE4 IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX3N1YnJvdXRpbmVzKEJ1aWxkQ3R4ICpjdHgpCi0gICB8LT52 bV9jYWNoZXN5bmM6Ci0gICB8LmlmIEpJVCBvciBGRkkKLSAgIHwgIC8vIENvbXB1dGUgc3RhcnQg b2YgZmlyc3QgY2FjaGUgbGluZSBhbmQgbnVtYmVyIG9mIGNhY2hlIGxpbmVzLgotKyAgfCAgLmlm IEdQUjY0Ci0rICB8ICBybGRpY3IgQ0FSRzEsIENBUkcxLCAwLCA1OAotKyAgfCAgLmVsc2UKLSAg IHwgIHJsd2lubSBDQVJHMSwgQ0FSRzEsIDAsIDAsIDI2Ci0rICB8ICAuZW5kaWYKLSAgIHwgIHN1 YiBDQVJHMiwgQ0FSRzIsIENBUkcxCi0gICB8ICBhZGRpIENBUkcyLCBDQVJHMiwgMzEKLSsgIHwg IC5pZiBHUFI2NAotKyAgfCAgc3JkaS4gQ0FSRzIsIENBUkcyLCA1Ci0rICB8ICAuZWxzZQotICAg fCAgcmx3aW5tLiBDQVJHMiwgQ0FSRzIsIDI3LCA1LCAzMQotKyAgfCAgLmVuZGlmCi0gICB8ICBi ZXFscgotICAgfCAgbXRjdHIgQ0FSRzIKLSAgIHwgIG1yIENBUkczLCBDQVJHMQotQEAgLTI3NzQs MzkgKzI5OTksNzAgQEAgc3RhdGljIHZvaWQgYnVpbGRfc3Vicm91dGluZXMoQnVpbGRDdHggKmN0 eCkKLSAgIHwvLy0tIEZGSSBoZWxwZXIgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICB8Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgfAotLSAg fC8vIEhhbmRsZXIgZm9yIGNhbGxiYWNrIGZ1bmN0aW9ucy4gQ2FsbGJhY2sgc2xvdCBudW1iZXIg aW4gcjExLCBnIGluIHIxMi4KLSsgIHwvLyBIYW5kbGVyIGZvciBjYWxsYmFjayBmdW5jdGlvbnMu Ci0rICB8Ly8gMzItYml0OiBDYWxsYmFjayBzbG90IG51bWJlciBpbiByMTIsIGcgaW4gcjExLgot KyAgfC8vIDY0LWJpdCB2MTogQ2FsbGJhY2sgc2xvdCBudW1iZXIgaW4gYml0cyA0Nysgb2YgcjEx LCBnIGluIDAtNDYsIFRPQyBpbiByMi4KLSsgIHwvLyA2NC1iaXQgdjI6IENhbGxiYWNrIHNsb3Qg bnVtYmVyIGluIGJpdHMgMi0xMSBvZiByMTIsIGcgaW4gcjExLAotKyAgfC8vIHZtX2ZmaV9jYWxs YmFjayBpbiByMi4KLSAgIHwtPnZtX2ZmaV9jYWxsYmFjazoKLSAgIHwuaWYgRkZJCi0gICB8LnR5 cGUgQ1RTVEFURSwgQ1RTdGF0ZSwgUEMKLSsgIHwgIC5pZiBPUEQKLSsgIHwgICBybGRpY2wgcjEy LCByMTEsIDE3LCA0NwotKyAgfCAgIHJsZGljbCByMTEsIHIxMSwgMCwgMTcKLSsgIHwgIC5lbmRp ZgotKyAgfCAgLmlmIEVMRlYyCi0rICB8ICAgcmx3aW5tIHIxMiwgcjEyLCAzMCwgMjIsIDMxCi0r ICB8ICAgYWRkaXNsIFRPQ1JFRywgVE9DUkVHLCBleHRlcm4gLlRPQy4tbGpfdm1fZmZpX2NhbGxi YWNrQGhhCi0rICB8ICAgYWRkaWwgVE9DUkVHLCBUT0NSRUcsIGV4dGVybiAuVE9DLi1sal92bV9m ZmlfY2FsbGJhY2tAbAotKyAgfCAgLmVuZGlmCi0gICB8ICBzYXZlcmVncwotLSAgfCAgbHd6IENU U1RBVEUsIEdMOnIxMi0+Y3R5cGVfc3RhdGUKLS0gIHwgICBhZGRpIERJU1BBVENILCByMTIsIEdH X0cyRElTUAotLSAgfCAgc3R3IHIxMSwgQ1RTVEFURS0+Y2Iuc2xvdAotLSAgfCAgc3R3IHIzLCBD VFNUQVRFLT5jYi5ncHJbMF0KLSsgIHwgIGx3eiBDVFNUQVRFLCBHTDpyMTEtPmN0eXBlX3N0YXRl Ci0rICB8ICAgYWRkaSBESVNQQVRDSCwgcjExLCBHR19HMkRJU1AKLSsgIHwgIHN0dyByMTIsIENU U1RBVEUtPmNiLnNsb3QKLSsgIHwgIHN0cCByMywgQ1RTVEFURS0+Y2IuZ3ByWzBdCi0gICB8ICAg c3RmZCBmMSwgQ1RTVEFURS0+Y2IuZnByWzBdCi0tICB8ICBzdHcgcjQsIENUU1RBVEUtPmNiLmdw clsxXQotKyAgfCAgc3RwIHI0LCBDVFNUQVRFLT5jYi5ncHJbMV0KLSAgIHwgICBzdGZkIGYyLCBD VFNUQVRFLT5jYi5mcHJbMV0KLS0gIHwgIHN0dyByNSwgQ1RTVEFURS0+Y2IuZ3ByWzJdCi0rICB8 ICBzdHAgcjUsIENUU1RBVEUtPmNiLmdwclsyXQotICAgfCAgIHN0ZmQgZjMsIENUU1RBVEUtPmNi LmZwclsyXQotLSAgfCAgc3R3IHI2LCBDVFNUQVRFLT5jYi5ncHJbM10KLSsgIHwgIHN0cCByNiwg Q1RTVEFURS0+Y2IuZ3ByWzNdCi0gICB8ICAgc3RmZCBmNCwgQ1RTVEFURS0+Y2IuZnByWzNdCi0t ICB8ICBzdHcgcjcsIENUU1RBVEUtPmNiLmdwcls0XQotKyAgfCAgc3RwIHI3LCBDVFNUQVRFLT5j Yi5ncHJbNF0KLSAgIHwgICBzdGZkIGY1LCBDVFNUQVRFLT5jYi5mcHJbNF0KLS0gIHwgIHN0dyBy OCwgQ1RTVEFURS0+Y2IuZ3ByWzVdCi0rICB8ICBzdHAgcjgsIENUU1RBVEUtPmNiLmdwcls1XQot ICAgfCAgIHN0ZmQgZjYsIENUU1RBVEUtPmNiLmZwcls1XQotLSAgfCAgc3R3IHI5LCBDVFNUQVRF LT5jYi5ncHJbNl0KLSsgIHwgIHN0cCByOSwgQ1RTVEFURS0+Y2IuZ3ByWzZdCi0gICB8ICAgc3Rm ZCBmNywgQ1RTVEFURS0+Y2IuZnByWzZdCi0tICB8ICBzdHcgcjEwLCBDVFNUQVRFLT5jYi5ncHJb N10KLSsgIHwgIHN0cCByMTAsIENUU1RBVEUtPmNiLmdwcls3XQotICAgfCAgIHN0ZmQgZjgsIENU U1RBVEUtPmNiLmZwcls3XQotKyAgfCAgLmlmIEdQUjY0Ci0rICB8ICAgc3RmZCBmOSwgQ1RTVEFU RS0+Y2IuZnByWzhdCi0rICB8ICAgc3RmZCBmMTAsIENUU1RBVEUtPmNiLmZwcls5XQotKyAgfCAg IHN0ZmQgZjExLCBDVFNUQVRFLT5jYi5mcHJbMTBdCi0rICB8ICAgc3RmZCBmMTIsIENUU1RBVEUt PmNiLmZwclsxMV0KLSsgIHwgICBzdGZkIGYxMywgQ1RTVEFURS0+Y2IuZnByWzEyXQotKyAgfCAg LmVuZGlmCi0rICB8ICAuaWYgRUxGVjIKLSsgIHwgIGFkZGkgVE1QMCwgc3AsIENGUkFNRV9TUEFD RSs5NgotKyAgfCAgLmVsaWYgR1BSNjQKLSsgIHwgIGFkZGkgVE1QMCwgc3AsIENGUkFNRV9TUEFD RSsxMTIKLSsgIHwgIC5lbHNlCi0gICB8ICBhZGRpIFRNUDAsIHNwLCBDRlJBTUVfU1BBQ0UrOAot LSAgfCAgc3R3IFRNUDAsIENUU1RBVEUtPmNiLnN0YWNrCi0rICB8ICAuZW5kaWYKLSsgIHwgIHN0 cCBUTVAwLCBDVFNUQVRFLT5jYi5zdGFjawotICAgfCAgIG1yIENBUkcxLCBDVFNUQVRFCi0gICB8 ICBzdHcgQ1RTVEFURSwgU0FWRV9QQwkJLy8gQW55IHZhbHVlIG91dHNpZGUgb2YgYnl0ZWNvZGUg aXMgb2suCi0gICB8ICAgbXIgQ0FSRzIsIHNwCi0gICB8ICBibCBleHRlcm4gbGpfY2NhbGxiYWNr X2VudGVyCS8vIChDVFN0YXRlICpjdHMsIHZvaWQgKmNmKQotICAgfCAgLy8gUmV0dXJucyBsdWFf U3RhdGUgKi4KLSAgIHwgIGxwIEJBU0UsIEw6Q1JFVDEtPmJhc2UKLSsgIHwuaWYgUDY0Ci0rICB8 ICAgICBsdXMgVElTTlVNLCBMSl9USVNOVU0gPj4gMTYJLy8gU2V0dXAgdHlwZSBjb21wYXJpc29u IGNvbnN0YW50cy4KLSsgIHwgICAgIG9yaSBUSVNOVU0sIFRJU05VTSwgTEpfVElTTlVNICYgMHhm ZmZmCi0rICB8LmVsc2UKLSAgIHwgICAgIGxpIFRJU05VTSwgTEpfVElTTlVNCQkvLyBTZXR1cCB0 eXBlIGNvbXBhcmlzb24gY29uc3RhbnRzLgotKyAgfC5lbmRpZgotICAgfCAgbHAgUkMsIEw6Q1JF VDEtPnRvcAotICAgfCAgICAgbHVzIFRNUDMsIDB4NTljMAkJLy8gVE9CSVQgPSAyXjUyICsgMl41 MSAoZmxvYXQpLgotICAgfCAgICAgbGkgWkVSTywgMAotQEAgLTI4MzUsOSArMzA5MSwyMSBAQCBz dGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQotICAgfCAgbXIgQ0FS RzEsIENUU1RBVEUKLSAgIHwgIG1yIENBUkcyLCBSQQotICAgfCAgYmwgZXh0ZXJuIGxqX2NjYWxs YmFja19sZWF2ZQkvLyAoQ1RTdGF0ZSAqY3RzLCBUVmFsdWUgKm8pCi0tICB8ICBsd3ogQ1JFVDEs IENUU1RBVEUtPmNiLmdwclswXQotKyAgfCAgbHAgQ1JFVDEsIENUU1RBVEUtPmNiLmdwclswXQot ICAgfCAgbGZkIEZBUkcxLCBDVFNUQVRFLT5jYi5mcHJbMF0KLS0gIHwgIGx3eiBDUkVUMiwgQ1RT VEFURS0+Y2IuZ3ByWzFdCi0rICB8ICBscCBDUkVUMiwgQ1RTVEFURS0+Y2IuZ3ByWzFdCi0rICB8 ICAuaWYgR1BSNjQKLSsgIHwgICAgbGZkIEZBUkcyLCBDVFNUQVRFLT5jYi5mcHJbMV0KLSsgIHwg IC5lbHNlCi0rICB8ICAgIGxwIENBUkczLCBDVFNUQVRFLT5jYi5ncHJbMl0KLSsgIHwgICAgbHAg Q0FSRzQsIENUU1RBVEUtPmNiLmdwclszXQotKyAgfCAgLmVuZGlmCi0rICB8ICAuZWxmdjIgbGZk IGYzLCBDVFNUQVRFLT5jYi5mcHJbMl0KLSsgIHwgIC5lbGZ2MiBsZmQgZjQsIENUU1RBVEUtPmNi LmZwclszXQotKyAgfCAgLmVsZnYyIGxmZCBmNSwgQ1RTVEFURS0+Y2IuZnByWzRdCi0rICB8ICAu ZWxmdjIgbGZkIGY2LCBDVFNUQVRFLT5jYi5mcHJbNV0KLSsgIHwgIC5lbGZ2MiBsZmQgZjcsIENU U1RBVEUtPmNiLmZwcls2XQotKyAgfCAgLmVsZnYyIGxmZCBmOCwgQ1RTVEFURS0+Y2IuZnByWzdd Ci0gICB8ICBiIC0+dm1fbGVhdmVfdW53Ci0gICB8LmVuZGlmCi0gICB8Ci1AQCAtMjg1MCwyMyAr MzExOCw0NiBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0eCAqY3R4KQot ICAgfCAgIGxieiBDQVJHMiwgQ0NTVEFURS0+bnNwCi0gICB8ICAgbGJ6IENBUkczLCBDQ1NUQVRF LT5uZnByCi0gICB8ICBuZWcgVE1QMSwgVE1QMQotKyAgfCAgLmlmIEdQUjY0Ci0rICB8ICAgIHN0 ZCBUTVAwLCAxNihzcCkKLSsgIHwgIC5lbHNlCi0gICB8ICAgIHN0dyBUTVAwLCA0KHNwKQotKyAg fCAgLmVuZGlmCi0gICB8ICAgY21wd2kgY3IxLCBDQVJHMywgMAotICAgfCAgbXIgVE1QMiwgc3AK LSAgIHwgICBhZGRpYy4gQ0FSRzIsIENBUkcyLCAtMQotKyAgfCAgLmlmIEdQUjY0Ci0rICB8ICBz dGR1eCBzcCwgc3AsIFRNUDEKLSsgIHwgIC5lbHNlCi0gICB8ICBzdHd1eCBzcCwgc3AsIFRNUDEK LSsgIHwgIC5lbmRpZgotICAgfCAgIGNybm90IDQqY3IxK2VxLCA0KmNyMStlcQkJLy8gRm9yIHZh cmFyZyBjYWxscy4KLS0gIHwgIHN0dyByMTQsIC00KFRNUDIpCi0tICB8ICBzdHcgQ0NTVEFURSwg LTgoVE1QMikKLSsgIHwgIC5pZiBHUFI2NAotKyAgfCAgICBzdGQgcjE0LCAtOChUTVAyKQotKyAg fCAgICBzdGQgQ0NTVEFURSwgLTE2KFRNUDIpCi0rICB8ICAuZWxzZQotKyAgfCAgICBzdHcgcjE0 LCAtNChUTVAyKQotKyAgfCAgICBzdHcgQ0NTVEFURSwgLTgoVE1QMikKLSsgIHwgIC5lbmRpZgot ICAgfCAgbXIgcjE0LCBUTVAyCi0gICB8ICBsYSBUTVAxLCBDQ1NUQVRFLT5zdGFjawotKyAgfCAg LmlmIEdQUjY0Ci0rICB8ICAgc2xkaSBDQVJHMiwgQ0FSRzIsIDMKLSsgIHwgIC5lbHNlCi0gICB8 ICAgc2x3aSBDQVJHMiwgQ0FSRzIsIDIKLSsgIHwgIC5lbmRpZgotICAgfCAgIGJsdHkgPjIKLS0g IHwgIGxhIFRNUDIsIDgoc3ApCi0rICB8ICAuaWYgRUxGVjIKLSsgIHwgICAgbGEgVE1QMiwgOTYo c3ApCi0rICB8ICAuZWxpZiBHUFI2NAotKyAgfCAgICBsYSBUTVAyLCAxMTIoc3ApCi0rICB8ICAu ZWxzZQotKyAgfCAgICBsYSBUTVAyLCA4KHNwKQotKyAgfCAgLmVuZGlmCi0gICB8MToKLS0gIHwg IGx3enggVE1QMCwgVE1QMSwgQ0FSRzIKLS0gIHwgIHN0d3ggVE1QMCwgVE1QMiwgQ0FSRzIKLS0g IHwgICBhZGRpYy4gQ0FSRzIsIENBUkcyLCAtNAotKyAgfCAgbHB4IFRNUDAsIFRNUDEsIENBUkcy Ci0rICB8ICBzdHB4IFRNUDAsIFRNUDIsIENBUkcyCi0rICB8ICAgYWRkaWMuIENBUkcyLCBDQVJH MiwgLVBTSVpFCi0gICB8ICBiZ2UgPDEKLSAgIHwyOgotICAgfCAgYm5leSBjcjEsID4zCi1AQCAt Mjg3OCwyOCArMzE2OSw1NSBAQCBzdGF0aWMgdm9pZCBidWlsZF9zdWJyb3V0aW5lcyhCdWlsZEN0 eCAqY3R4KQotICAgfCAgbGZkIGY2LCBDQ1NUQVRFLT5mcHJbNV0KLSAgIHwgIGxmZCBmNywgQ0NT VEFURS0+ZnByWzZdCi0gICB8ICBsZmQgZjgsIENDU1RBVEUtPmZwcls3XQotKyAgfCAgLmlmIEdQ UjY0Ci0rICB8ICBsZmQgZjksIENDU1RBVEUtPmZwcls4XQotKyAgfCAgbGZkIGYxMCwgQ0NTVEFU RS0+ZnByWzldCi0rICB8ICBsZmQgZjExLCBDQ1NUQVRFLT5mcHJbMTBdCi0rICB8ICBsZmQgZjEy LCBDQ1NUQVRFLT5mcHJbMTFdCi0rICB8ICBsZmQgZjEzLCBDQ1NUQVRFLT5mcHJbMTJdCi0rICB8 ICAuZW5kaWYKLSAgIHwzOgotLSAgfCAgIGxwIFRNUDAsIENDU1RBVEUtPmZ1bmMKLS0gIHwgIGx3 eiBDQVJHMiwgQ0NTVEFURS0+Z3ByWzFdCi0tICB8ICBsd3ogQ0FSRzMsIENDU1RBVEUtPmdwclsy XQotLSAgfCAgbHd6IENBUkc0LCBDQ1NUQVRFLT5ncHJbM10KLS0gIHwgIGx3eiBDQVJHNSwgQ0NT VEFURS0+Z3ByWzRdCi0tICB8ICAgbXRjdHIgVE1QMAotLSAgfCAgbHd6IHI4LCBDQ1NUQVRFLT5n cHJbNV0KLS0gIHwgIGx3eiByOSwgQ0NTVEFURS0+Z3ByWzZdCi0tICB8ICBsd3ogcjEwLCBDQ1NU QVRFLT5ncHJbN10KLS0gIHwgIGx3eiBDQVJHMSwgQ0NTVEFURS0+Z3ByWzBdCQkvLyBEbyB0aGlz IGxhc3QsIHNpbmNlIENDU1RBVEUgaXMgQ0FSRzEuCi0rICB8ICAudG9jIHN0ZCBUT0NSRUcsIFNB VkVfVE9DCi0rICB8ICAgbHAgRlVOQ1JFRywgQ0NTVEFURS0+ZnVuYwotKyAgfCAgbHAgQ0FSRzIs IENDU1RBVEUtPmdwclsxXQotKyAgfCAgbHAgQ0FSRzMsIENDU1RBVEUtPmdwclsyXQotKyAgfCAg Lm9wZCBscCBUT0NSRUcsIFRPQ19PRlMoRlVOQ1JFRykKLSsgIHwgIC5vcGRlbnYgbHAgRU5WUkVH LCBFTlZfT0ZTKEZVTkNSRUcpCi0rICB8ICAub3BkIGxwIEZVTkNSRUcsIDAoRlVOQ1JFRykKLSsg IHwgIGxwIENBUkc0LCBDQ1NUQVRFLT5ncHJbM10KLSsgIHwgIGxwIENBUkc1LCBDQ1NUQVRFLT5n cHJbNF0KLSsgIHwgICBtdGN0ciBGVU5DUkVHCi0rICB8ICBscCByOCwgQ0NTVEFURS0+Z3ByWzVd Ci0rICB8ICBscCByOSwgQ0NTVEFURS0+Z3ByWzZdCi0rICB8ICBscCByMTAsIENDU1RBVEUtPmdw cls3XQotKyAgfCAgbHAgQ0FSRzEsIENDU1RBVEUtPmdwclswXQkJLy8gRG8gdGhpcyBsYXN0LCBz aW5jZSBDQ1NUQVRFIGlzIENBUkcxLgotICAgfCAgIGJjdHJsCi0tICB8ICBsd3ogQ0NTVEFURTpU TVAxLCAtOChyMTQpCi0tICB8ICBsd3ogVE1QMiwgLTQocjE0KQotKyAgfCAgIC50b2MgbHAgVE9D UkVHLCBTQVZFX1RPQwotKyAgfCAgLmlmIEdQUjY0Ci0rICB8ICAgbGQgQ0NTVEFURTpUTVAxLCAt MTYocjE0KQotKyAgfCAgIGxkIFRNUDIsIC04KHIxNCkKLSsgIHwgICBsZCBUTVAwLCAxNihyMTQp Ci0rICB8ICAuZWxzZQotKyAgfCAgIGx3eiBDQ1NUQVRFOlRNUDEsIC04KHIxNCkKLSsgIHwgICBs d3ogVE1QMiwgLTQocjE0KQotICAgfCAgIGx3eiBUTVAwLCA0KHIxNCkKLS0gIHwgIHN0dyBDQVJH MSwgQ0NTVEFURTpUTVAxLT5ncHJbMF0KLSsgIHwgIC5lbmRpZgotKyAgfCAgc3RwIENBUkcxLCBD Q1NUQVRFOlRNUDEtPmdwclswXQotICAgfCAgc3RmZCBGQVJHMSwgQ0NTVEFURTpUTVAxLT5mcHJb MF0KLS0gIHwgIHN0dyBDQVJHMiwgQ0NTVEFURTpUTVAxLT5ncHJbMV0KLSsgIHwgIHN0cCBDQVJH MiwgQ0NTVEFURTpUTVAxLT5ncHJbMV0KLSsgIHwgIC5pZiBHUFI2NAotKyAgfCAgIHN0ZmQgRkFS RzIsIENDU1RBVEU6VE1QMS0+ZnByWzFdCi0rICB8ICAuZW5kaWYKLSsgIHwgIC5lbGZ2MiBzdGZk IEZBUkczLCBDQ1NUQVRFOlRNUDEtPmZwclsyXQotKyAgfCAgLmVsZnYyIHN0ZmQgRkFSRzQsIEND U1RBVEU6VE1QMS0+ZnByWzNdCi0rICB8ICAuZWxmdjIgc3RmZCBGQVJHNSwgQ0NTVEFURTpUTVAx LT5mcHJbNF0KLSsgIHwgIC5lbGZ2MiBzdGZkIEZBUkc2LCBDQ1NUQVRFOlRNUDEtPmZwcls1XQot KyAgfCAgLmVsZnYyIHN0ZmQgRkFSRzcsIENDU1RBVEU6VE1QMS0+ZnByWzZdCi0rICB8ICAuZWxm djIgc3RmZCBGQVJHOCwgQ0NTVEFURTpUTVAxLT5mcHJbN10KLSAgIHwgICBtdGxyIFRNUDAKLS0g IHwgIHN0dyBDQVJHMywgQ0NTVEFURTpUTVAxLT5ncHJbMl0KLSsgIHwgIHN0cCBDQVJHMywgQ0NT VEFURTpUTVAxLT5ncHJbMl0KLSAgIHwgICBtciBzcCwgcjE0Ci0tICB8ICBzdHcgQ0FSRzQsIEND U1RBVEU6VE1QMS0+Z3ByWzNdCi0rICB8ICBzdHAgQ0FSRzQsIENDU1RBVEU6VE1QMS0+Z3ByWzNd Ci0gICB8ICAgbXIgcjE0LCBUTVAyCi0gICB8ICBibHIKLSAgIHwuZW5kaWYKLUBAIC0yOTIzLDEz ICszMjQxLDEzIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9w LCBpbnQgZGVmb3ApCi0gICBjYXNlIEJDX0lTTFQ6IGNhc2UgQkNfSVNHRTogY2FzZSBCQ19JU0xF OiBjYXNlIEJDX0lTR1Q6Ci0gICAgIHwgIC8vIFJBID0gc3JjMSo4LCBSRCA9IHNyYzIqOCwgSk1Q IHdpdGggUkQgPSB0YXJnZXQKLSAgICAgfC5pZiBEVUFMTlVNCi0tICAgIHwgIGx3enV4IFRNUDAs IFJBLCBCQVNFCi0rICAgIHwgIGx3enggVE1QMCwgQkFTRV9ISSwgUkEKLSAgICAgfCAgICBhZGRp IFBDLCBQQywgNAotLSAgICB8ICAgbHd6IENBUkcyLCA0KFJBKQotLSAgICB8ICBsd3p1eCBUTVAx LCBSRCwgQkFTRQotKyAgICB8ICAgbHd6eCBDQVJHMiwgQkFTRV9MTywgUkEKLSsgICAgfCAgbHd6 eCBUTVAxLCBCQVNFX0hJLCBSRAotICAgICB8ICAgIGx3eiBUTVAyLCAtNChQQykKLSAgICAgfCAg Y2hlY2tudW0gY3IwLCBUTVAwCi0tICAgIHwgICBsd3ogQ0FSRzMsIDQoUkQpCi0rICAgIHwgICBs d3p4IENBUkczLCBCQVNFX0xPLCBSRAotICAgICB8ICAgIGRlY29kZV9SRDQgVE1QMiwgVE1QMgot ICAgICB8ICBjaGVja251bSBjcjEsIFRNUDEKLSAgICAgfCAgICBhZGRpcyBUTVAyLCBUTVAyLCAt KEJDQklBU19KKjQgPj4gMTYpCi1AQCAtMjk1Myw3ICszMjcxLDcgQEAgc3RhdGljIHZvaWQgYnVp bGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfDc6ICAvLyBS QSBpcyBub3QgYW4gaW50ZWdlci4KLSAgICAgfCAgYmd0IGNyMCwgLT52bWV0YV9jb21wCi0gICAg IHwgIC8vIFJBIGlzIGEgbnVtYmVyLgotLSAgICB8ICAgbGZkIGYwLCAwKFJBKQotKyAgICB8ICAg bGZkeCBmMCwgQkFTRSwgUkEKLSAgICAgfCAgYmd0IGNyMSwgLT52bWV0YV9jb21wCi0gICAgIHwg IGJsdCBjcjEsID40Ci0gICAgIHwgIC8vIFJBIGlzIGEgbnVtYmVyLCBSRCBpcyBhbiBpbnRlZ2Vy LgotQEAgLTI5NjUsNyArMzI4Myw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAq Y3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHwgIC8vIFJBIGlzIGFuIGludGVnZXIsIFJE IGlzIGEgbnVtYmVyLgotICAgICB8ICB0b251bV9pIGYwLCBDQVJHMgotICAgICB8NDoKLS0gICAg fCAgbGZkIGYxLCAwKFJEKQotKyAgICB8ICBsZmR4IGYxLCBCQVNFLCBSRAotICAgICB8NToKLSAg ICAgfCAgZmNtcHUgY3IwLCBmMCwgZjEKLSAgICAgaWYgKG9wID09IEJDX0lTTFQpIHsKLUBAIC0y OTgxLDEwICszMjk5LDEwIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBC Q09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIH0KLSAgICAgfCAgYiA8MQotICAgICB8LmVsc2UKLS0g ICAgfCAgbHd6eCBUTVAwLCBCQVNFLCBSQQotKyAgICB8ICBsd3p4IFRNUDAsIEJBU0VfSEksIFJB Ci0gICAgIHwgICAgYWRkaSBQQywgUEMsIDQKLSAgICAgfCAgIGxmZHggZjAsIEJBU0UsIFJBCi0t ICAgIHwgIGx3enggVE1QMSwgQkFTRSwgUkQKLSsgICAgfCAgbHd6eCBUTVAxLCBCQVNFX0hJLCBS RAotICAgICB8ICBjaGVja251bSBjcjAsIFRNUDAKLSAgICAgfCAgICBsd3ogVE1QMiwgLTQoUEMp Ci0gICAgIHwgICBsZmR4IGYxLCBCQVNFLCBSRAotQEAgLTMwMTUsMTUgKzMzMzMsMjMgQEAgc3Rh dGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAg ICAgdmsgPSBvcCA9PSBCQ19JU0VRVjsKLSAgICAgfCAgLy8gUkEgPSBzcmMxKjgsIFJEID0gc3Jj Mio4LCBKTVAgd2l0aCBSRCA9IHRhcmdldAotICAgICB8LmlmIERVQUxOVU0KLS0gICAgfCAgbHd6 dXggVE1QMCwgUkEsIEJBU0UKLSsgICAgfCAgbHd6eCBUTVAwLCBCQVNFX0hJLCBSQQotICAgICB8 ICAgIGFkZGkgUEMsIFBDLCA0Ci0tICAgIHwgICBsd3ogQ0FSRzIsIDQoUkEpCi0tICAgIHwgIGx3 enV4IFRNUDEsIFJELCBCQVNFCi0rICAgIHwgICBsd3p4IENBUkcyLCBCQVNFX0xPLCBSQQotKyAg ICB8ICAuaWYgRU5ESUFOX0xFCi0rICAgIHwgICAgbHd6eCBUTVAxLCBCQVNFX0hJLCBSRAotKyAg ICB8ICAuZWxzZQotKyAgICB8ICAgIGx3enV4IFRNUDEsIFJELCBCQVNFX0hJCi0rICAgIHwgIC5l bmRpZgotICAgICB8ICBjaGVja251bSBjcjAsIFRNUDAKLSAgICAgfCAgICBsd3ogVE1QMiwgLTQo UEMpCi0gICAgIHwgIGNoZWNrbnVtIGNyMSwgVE1QMQotICAgICB8ICAgIGRlY29kZV9SRDQgVE1Q MiwgVE1QMgotLSAgICB8ICAgbHd6IENBUkczLCA0KFJEKQotKyAgICB8ICAuaWYgRU5ESUFOX0xF Ci0rICAgIHwgICBsd3p1eCBDQVJHMywgUkQsIEJBU0VfTE8KLSsgICAgfCAgLmVsc2UKLSsgICAg fCAgIGx3eiBDQVJHMywgV09SRF9MTyhSRCkKLSsgICAgfCAgLmVuZGlmCi0gICAgIHwgIGNyb3Ig NCpjcjcrZ3QsIDQqY3IwK2d0LCA0KmNyMStndAotICAgICB8ICAgIGFkZGlzIFRNUDIsIFRNUDIs IC0oQkNCSUFTX0oqNCA+PiAxNikKLSAgICAgaWYgKHZrKSB7Ci1AQCAtMzAzMiwxNCArMzM1OCwx NCBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRl Zm9wKQotICAgICAgIHwgIGJsZSBjcjcsIC0+QkNfSVNORU5fWgotICAgICB9Ci0gICAgIHwuZWxz ZQotLSAgICB8ICBsd3p1eCBUTVAwLCBSQSwgQkFTRQotKyAgICB8ICBsd3p4IFRNUDAsIEJBU0Vf SEksIFJBCi0gICAgIHwgICBsd3ogVE1QMiwgMChQQykKLS0gICAgfCAgICBsZmQgZjAsIDAoUkEp Ci0rICAgIHwgICAgbGZkeCBmMCwgQkFTRSwgUkEKLSAgICAgfCAgIGFkZGkgUEMsIFBDLCA0Ci0t ICAgIHwgIGx3enV4IFRNUDEsIFJELCBCQVNFCi0rICAgIHwgIGx3enggVE1QMSwgQkFTRV9ISSwg UkQKLSAgICAgfCAgY2hlY2tudW0gY3IwLCBUTVAwCi0gICAgIHwgICBkZWNvZGVfUkQ0IFRNUDIs IFRNUDIKLS0gICAgfCAgICBsZmQgZjEsIDAoUkQpCi0rICAgIHwgICAgbGZkeCBmMSwgQkFTRSwg UkQKLSAgICAgfCAgY2hlY2tudW0gY3IxLCBUTVAxCi0gICAgIHwgICBhZGRpcyBUTVAyLCBUTVAy LCAtKEJDQklBU19KKjQgPj4gMTYpCi0gICAgIHwgIGJnZSBjcjAsID41Ci1AQCAtMzA1Nyw4ICsz MzgzLDggQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGlu dCBkZWZvcCkKLSAgICAgfC5lbmRpZgotICAgICB8NTogIC8vIEVpdGhlciBvciBib3RoIHR5cGVz IGFyZSBub3QgbnVtYmVycy4KLSAgICAgfC5pZiBub3QgRFVBTE5VTQotLSAgICB8ICAgIGx3eiBD QVJHMiwgNChSQSkKLS0gICAgfCAgICBsd3ogQ0FSRzMsIDQoUkQpCi0rICAgIHwgICAgbHd6eCBD QVJHMiwgQkFTRV9MTywgUkEKLSsgICAgfCAgICBsd3p4IENBUkczLCBCQVNFX0xPLCBSRAotICAg ICB8LmVuZGlmCi0gICAgIHwuaWYgRkZJCi0gICAgIHwgIGNtcHdpIGNyNywgVE1QMCwgTEpfVENE QVRBCi1AQCAtMzA3NCwxMCArMzQwMCwxNiBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRD dHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8LmlmIEZGSQotICAgICB8ICBiZXEg Y3I3LCAtPnZtZXRhX2VxdWFsX2NkCi0gICAgIHwuZW5kaWYKLSsgICAgfC5pZiBQNjQKLSsgICAg fCAgIGNtcGx3aSBjcjcsIFRNUDMsIH5MSl9UVURBVEEJCS8vIEF2b2lkIDY0IGJpdCBsaWdodHVz ZXJkYXRhLgotKyAgICB8LmVuZGlmCi0gICAgIHwgICAgY21wbHcgY3I1LCBDQVJHMiwgQ0FSRzMK LSAgICAgfCAgY3JhbmRjIDQqY3IwK2d0LCA0KmNyMCtlcSwgNCpjcjErZ3QJLy8gMjogU2FtZSB0 eXBlIGFuZCBwcmltaXRpdmUuCi0gICAgIHwgIGNyb3JjIDQqY3IwK2x0LCA0KmNyNStlcSwgNCpj cjArZXEJLy8gMTogU2FtZSB0diBvciBkaWZmZXJlbnQgdHlwZS4KLSAgICAgfCAgY3JhbmQgNCpj cjArZXEsIDQqY3IwK2VxLCA0KmNyNStlcQkvLyAwOiBTYW1lIHR5cGUgYW5kIHNhbWUgdHYuCi0r ICAgIHwuaWYgUDY0Ci0rICAgIHwgICBjcm9yIDQqY3I2K2x0LCA0KmNyNitsdCwgNCpjcjcrZ3QK LSsgICAgfC5lbmRpZgotICAgICB8ICAgbXIgU0FWRTAsIFBDCi0gICAgIHwgIGNyb3IgNCpjcjAr ZXEsIDQqY3IwK2VxLCA0KmNyMCtndAkvLyAwIG9yIDIuCi0gICAgIHwgIGNyb3IgNCpjcjArbHQs IDQqY3IwK2x0LCA0KmNyMCtndAkvLyAxIG9yIDIuCi1AQCAtMzExNiw5ICszNDQ4LDkgQEAgc3Rh dGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAg IGNhc2UgQkNfSVNFUVM6IGNhc2UgQkNfSVNORVM6Ci0gICAgIHZrID0gb3AgPT0gQkNfSVNFUVM7 Ci0gICAgIHwgIC8vIFJBID0gc3JjKjgsIFJEID0gc3RyX2NvbnN0KjggKH4pLCBKTVAgd2l0aCBS RCA9IHRhcmdldAotLSAgICB8ICBsd3p1eCBUTVAwLCBSQSwgQkFTRQotKyAgICB8ICBsd3p4IFRN UDAsIEJBU0VfSEksIFJBCi0gICAgIHwgICBzcndpIFJELCBSRCwgMQotLSAgICB8ICBsd3ogU1RS OlRNUDMsIDQoUkEpCi0rICAgIHwgIGx3enggU1RSOlRNUDMsIEJBU0VfTE8sIFJBCi0gICAgIHwg ICAgbHd6IFRNUDIsIDAoUEMpCi0gICAgIHwgICBzdWJmaWMgUkQsIFJELCAtNAotICAgICB8ICAg IGFkZGkgUEMsIFBDLCA0Ci1AQCAtMzE1MCwxNSArMzQ4MiwxNCBAQCBzdGF0aWMgdm9pZCBidWls ZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB2ayA9IG9wID09 IEJDX0lTRVFOOwotICAgICB8ICAvLyBSQSA9IHNyYyo4LCBSRCA9IG51bV9jb25zdCo4LCBKTVAg d2l0aCBSRCA9IHRhcmdldAotICAgICB8LmlmIERVQUxOVU0KLS0gICAgfCAgbHd6dXggVE1QMCwg UkEsIEJBU0UKLSsgICAgfCAgbHd6eCBUTVAwLCBCQVNFX0hJLCBSQQotICAgICB8ICAgIGFkZGkg UEMsIFBDLCA0Ci0tICAgIHwgICBsd3ogQ0FSRzIsIDQoUkEpCi0tICAgIHwgIGx3enV4IFRNUDEs IFJELCBLQkFTRQotKyAgICB8ICAgbHd6eCBDQVJHMiwgQkFTRV9MTywgUkEKLSsgICAgfCAgbHd6 dXgyIFRNUDEsIENBUkczLCBSRCwgS0JBU0UKLSAgICAgfCAgY2hlY2tudW0gY3IwLCBUTVAwCi0g ICAgIHwgICAgbHd6IFRNUDIsIC00KFBDKQotICAgICB8ICBjaGVja251bSBjcjEsIFRNUDEKLSAg ICAgfCAgICBkZWNvZGVfUkQ0IFRNUDIsIFRNUDIKLS0gICAgfCAgIGx3eiBDQVJHMywgNChSRCkK LSAgICAgfCAgICBhZGRpcyBUTVAyLCBUTVAyLCAtKEJDQklBU19KKjQgPj4gMTYpCi0gICAgIGlm ICh2aykgewotICAgICAgIHwtPkJDX0lTRVFOX1o6Ci1AQCAtMzE3NSw3ICszNTA2LDcgQEAgc3Rh dGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAg ICAgfSBlbHNlIHsKLSAgICAgICB8LT5CQ19JU05FTl9aOiAgLy8gRHVtbXkgbGFiZWwuCi0gICAg IH0KLS0gICAgfCAgbHd6eCBUTVAwLCBCQVNFLCBSQQotKyAgICB8ICBsd3p4IFRNUDAsIEJBU0Vf SEksIFJBCi0gICAgIHwgICAgYWRkaSBQQywgUEMsIDQKLSAgICAgfCAgIGxmZHggZjAsIEJBU0Us IFJBCi0gICAgIHwgICAgbHd6IFRNUDIsIC00KFBDKQotQEAgLTMyMTMsNyArMzU0NCw3IEBAIHN0 YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0g ICAgIHw3OiAgLy8gUkEgaXMgbm90IGFuIGludGVnZXIuCi0gICAgIHwgIGJnZSBjcjAsIDwzCi0g ICAgIHwgIC8vIFJBIGlzIGEgbnVtYmVyLgotLSAgICB8ICAgbGZkIGYwLCAwKFJBKQotKyAgICB8 ICAgbGZkeCBmMCwgQkFTRSwgUkEKLSAgICAgfCAgYmx0IGNyMSwgPjEKLSAgICAgfCAgLy8gUkEg aXMgYSBudW1iZXIsIFJEIGlzIGFuIGludGVnZXIuCi0gICAgIHwgIHRvbnVtX2kgZjEsIENBUkcz Ci1AQCAtMzIzMiw3ICszNTYzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpj dHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgIGNhc2UgQkNfSVNFUVA6IGNhc2UgQkNfSVNORVA6 Ci0gICAgIHZrID0gb3AgPT0gQkNfSVNFUVA7Ci0gICAgIHwgIC8vIFJBID0gc3JjKjgsIFJEID0g cHJpbWl0aXZlX3R5cGUqOCAofiksIEpNUCB3aXRoIFJEID0gdGFyZ2V0Ci0tICAgIHwgIGx3engg VE1QMCwgQkFTRSwgUkEKLSsgICAgfCAgbHd6eCBUTVAwLCBCQVNFX0hJLCBSQQotICAgICB8ICAg c3J3aSBUTVAxLCBSRCwgMwotICAgICB8ICAgIGx3eiBUTVAyLCAwKFBDKQotICAgICB8ICAgbm90 IFRNUDEsIFRNUDEKLUBAIC0zMjYyLDcgKzM1OTMsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMo QnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotIAotICAgY2FzZSBCQ19JU1RDOiBj YXNlIEJDX0lTRkM6IGNhc2UgQkNfSVNUOiBjYXNlIEJDX0lTRjoKLSAgICAgfCAgLy8gUkEgPSBk c3QqOCBvciB1bnVzZWQsIFJEID0gc3JjKjgsIEpNUCB3aXRoIFJEID0gdGFyZ2V0Ci0tICAgIHwg IGx3enggVE1QMCwgQkFTRSwgUkQKLSsgICAgfCAgbHd6eCBUTVAwLCBCQVNFX0hJLCBSRAotICAg ICB8ICAgbHd6IElOUywgMChQQykKLSAgICAgfCAgIGFkZGkgUEMsIFBDLCA0Ci0gICAgIGlmIChv cCA9PSBCQ19JU1QgfHwgb3AgPT0gQkNfSVNGKSB7Ci1AQCAtMzI5Nyw3ICszNjI4LDcgQEAgc3Rh dGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAK LSAgIGNhc2UgQkNfSVNUWVBFOgotICAgICB8ICAvLyBSQSA9IHNyYyo4LCBSRCA9IC10eXBlKjgK LS0gICAgfCAgbHd6eCBUTVAwLCBCQVNFLCBSQQotKyAgICB8ICBsd3p4IFRNUDAsIEJBU0VfSEks IFJBCi0gICAgIHwgIHNyd2kgVE1QMSwgUkQsIDMKLSAgICAgfCAgaW5zX25leHQxCi0gICAgIHwu aWYgbm90IFBQRSBhbmQgbm90IEdQUjY0Ci1AQCAtMzMxMSw3ICszNjQyLDcgQEAgc3RhdGljIHZv aWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgYnJl YWs7Ci0gICBjYXNlIEJDX0lTTlVNOgotICAgICB8ICAvLyBSQSA9IHNyYyo4LCBSRCA9IC0oVElT TlVNLTEpKjgKLS0gICAgfCAgbHd6eCBUTVAwLCBCQVNFLCBSQQotKyAgICB8ICBsd3p4IFRNUDAs IEJBU0VfSEksIFJBCi0gICAgIHwgIGluc19uZXh0MQotICAgICB8ICBjaGVja251bSBUTVAwCi0g ICAgIHwgIGJnZSAtPnZtZXRhX2lzdHlwZQotQEAgLTMzMzAsMTcgKzM2NjEsMjAgQEAgc3RhdGlj IHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgIGNh c2UgQkNfTk9UOgotICAgICB8ICAvLyBSQSA9IGRzdCo4LCBSRCA9IHNyYyo4Ci0gICAgIHwgIGlu c19uZXh0MQotLSAgICB8ICBsd3p4IFRNUDAsIEJBU0UsIFJECi0rICAgIHwgIGx3enggVE1QMCwg QkFTRV9ISSwgUkQKLSAgICAgfCAgLmdwcjY0IGV4dHN3IFRNUDAsIFRNUDAKLSAgICAgfCAgc3Vi ZmljIFRNUDEsIFRNUDAsIExKX1RUUlVFCi0gICAgIHwgIGFkZGUgVE1QMCwgVE1QMCwgVE1QMQot LSAgICB8ICBzdHd4IFRNUDAsIEJBU0UsIFJBCi0rICAgIHwgIHN0d3ggVE1QMCwgQkFTRV9ISSwg UkEKLSAgICAgfCAgaW5zX25leHQyCi0gICAgIGJyZWFrOwotICAgY2FzZSBCQ19VTk06Ci0gICAg IHwgIC8vIFJBID0gZHN0KjgsIFJEID0gc3JjKjgKLS0gICAgfCAgbHd6dXggVE1QMSwgUkQsIEJB U0UKLS0gICAgfCAgIGx3eiBUTVAwLCA0KFJEKQotKyAgICB8ICBsd3p4IFRNUDEsIEJBU0VfSEks IFJECi0rICAgIHwgICBsd3p4IFRNUDAsIEJBU0VfTE8sIFJECi0rICAgIHwuaWYgRFVBTE5VTSBh bmQgbm90IEdQUjY0Ci0rICAgIHwgIG10eGVyIFpFUk8KLSsgICAgfC5lbmRpZgotICAgICB8ICBj aGVja251bSBUTVAxCi0gICAgIHwuaWYgRFVBTE5VTQotICAgICB8ICBibmUgPjUKLUBAIC0zMzUy LDE4ICszNjg2LDEzIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09w IG9wLCBpbnQgZGVmb3ApCi0gICAgIHwuZWxzZQotICAgICB8ICBuZWdvLiBUTVAwLCBUTVAwCi0g ICAgIHwgIGJzbyA+NAotLSAgICB8MToKLSAgICAgfC5lbmRpZgotICAgICB8ICBpbnNfbmV4dDEK LS0gICAgfCAgc3R3dXggVElTTlVNLCBSQSwgQkFTRQotLSAgICB8ICAgc3R3IFRNUDAsIDQoUkEp Ci0rICAgIHwgIHN0d3ggVElTTlVNLCBCQVNFX0hJLCBSQQotKyAgICB8ICAgc3R3eCBUTVAwLCBC QVNFX0xPLCBSQQotICAgICB8MzoKLSAgICAgfCAgaW5zX25leHQyCi0gICAgIHw0OgotLSAgICB8 LmlmIG5vdCBHUFI2NAotLSAgICB8ICAvLyBQb3RlbnRpYWwgb3ZlcmZsb3cuCi0tICAgIHwgIGNo ZWNrb3YgVE1QMSwgPDEJCQkvLyBJZ25vcmUgdW5yZWxhdGVkIG92ZXJmbG93LgotLSAgICB8LmVu ZGlmCi0gICAgIHwgIGx1cyBUTVAxLCAweDQxZTAJCQkvLyAyXjMxLgotICAgICB8ICBsaSBUTVAw LCAwCi0gICAgIHwgIGIgPjcKLUBAIC0zMzczLDggKzM3MDIsOCBAQCBzdGF0aWMgdm9pZCBidWls ZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8ICB4b3JpcyBU TVAxLCBUTVAxLCAweDgwMDAKLSAgICAgfDc6Ci0gICAgIHwgIGluc19uZXh0MQotLSAgICB8ICBz dHd1eCBUTVAxLCBSQSwgQkFTRQotLSAgICB8ICAgc3R3IFRNUDAsIDQoUkEpCi0rICAgIHwgIHN0 d3ggVE1QMSwgQkFTRV9ISSwgUkEKLSsgICAgfCAgIHN0d3ggVE1QMCwgQkFTRV9MTywgUkEKLSAg ICAgfC5pZiBEVUFMTlVNCi0gICAgIHwgIGIgPDMKLSAgICAgfC5lbHNlCi1AQCAtMzM4MywxNSAr MzcxMiwxNSBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwg aW50IGRlZm9wKQotICAgICBicmVhazsKLSAgIGNhc2UgQkNfTEVOOgotICAgICB8ICAvLyBSQSA9 IGRzdCo4LCBSRCA9IHNyYyo4Ci0tICAgIHwgIGx3enV4IFRNUDAsIFJELCBCQVNFCi0tICAgIHwg ICBsd3ogQ0FSRzEsIDQoUkQpCi0rICAgIHwgIGx3enggVE1QMCwgQkFTRV9ISSwgUkQKLSsgICAg fCAgIGx3enggQ0FSRzEsIEJBU0VfTE8sIFJECi0gICAgIHwgIGNoZWNrc3RyIFRNUDA7IGJuZSA+ MgotICAgICB8ICBsd3ogQ1JFVDEsIFNUUjpDQVJHMS0+bGVuCi0gICAgIHwxOgotICAgICB8Lmlm IERVQUxOVU0KLSAgICAgfCAgaW5zX25leHQxCi0tICAgIHwgIHN0d3V4IFRJU05VTSwgUkEsIEJB U0UKLS0gICAgfCAgIHN0dyBDUkVUMSwgNChSQSkKLSsgICAgfCAgc3R3eCBUSVNOVU0sIEJBU0Vf SEksIFJBCi0rICAgIHwgICBzdHd4IENSRVQxLCBCQVNFX0xPLCBSQQotICAgICB8LmVsc2UKLSAg ICAgfCAgdG9udW1fdSBmMCwgQ1JFVDEJCS8vIFJlc3VsdCBpcyBhIG5vbi1uZWdhdGl2ZSBpbnRl Z2VyLgotICAgICB8ICBpbnNfbmV4dDEKLUBAIC0zNDI2LDkgKzM3NTUsMTYgQEAgc3RhdGljIHZv aWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfHx2 ayA9ICgoaW50KW9wIC0gQkNfQUREVk4pIC8gKEJDX0FERE5WLUJDX0FERFZOKTsKLSAgICAgfHxz d2l0Y2ggKHZrKSB7Ci0gICAgIHx8Y2FzZSAwOgotLSAgICB8ICAgbHd6eCBUTVAxLCBCQVNFLCBS QgotKyAgICB8ICAgLmlmIEVORElBTl9MRSBhbmQgRFVBTE5VTQotKyAgICB8ICAgICBhZGRpIFRN UDIsIFJDLCA0Ci0rICAgIHwgICAuZW5kaWYKLSsgICAgfCAgIGx3enggVE1QMSwgQkFTRV9ISSwg UkIKLSAgICAgfCAgIC5pZiBEVUFMTlVNCi0tICAgIHwgICAgIGx3enggVE1QMiwgS0JBU0UsIFJD Ci0rICAgIHwgICAgIC5pZiBFTkRJQU5fTEUKLSsgICAgfCAgICAgICBsd3p4IFRNUDIsIEtCQVNF LCBUTVAyCi0rICAgIHwgICAgIC5lbHNlCi0rICAgIHwgICAgICAgbHd6eCBUTVAyLCBLQkFTRSwg UkMKLSsgICAgfCAgICAgLmVuZGlmCi0gICAgIHwgICAuZW5kaWYKLSAgICAgfCAgICBsZmR4IGYx NCwgQkFTRSwgUkIKLSAgICAgfCAgICBsZmR4IGYxNSwgS0JBU0UsIFJDCi1AQCAtMzQ0Miw5ICsz Nzc4LDE2IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBp bnQgZGVmb3ApCi0gICAgIHwgICAuZW5kaWYKLSAgICAgfHwgIGJyZWFrOwotICAgICB8fGNhc2Ug MToKLS0gICAgfCAgIGx3enggVE1QMSwgQkFTRSwgUkIKLSsgICAgfCAgIC5pZiBFTkRJQU5fTEUg YW5kIERVQUxOVU0KLSsgICAgfCAgICAgYWRkaSBUTVAyLCBSQywgNAotKyAgICB8ICAgLmVuZGlm Ci0rICAgIHwgICBsd3p4IFRNUDEsIEJBU0VfSEksIFJCCi0gICAgIHwgICAuaWYgRFVBTE5VTQot LSAgICB8ICAgICBsd3p4IFRNUDIsIEtCQVNFLCBSQwotKyAgICB8ICAgICAuaWYgRU5ESUFOX0xF Ci0rICAgIHwgICAgICAgbHd6eCBUTVAyLCBLQkFTRSwgVE1QMgotKyAgICB8ICAgICAuZWxzZQot KyAgICB8ICAgICAgIGx3enggVE1QMiwgS0JBU0UsIFJDCi0rICAgIHwgICAgIC5lbmRpZgotICAg ICB8ICAgLmVuZGlmCi0gICAgIHwgICAgbGZkeCBmMTUsIEJBU0UsIFJCCi0gICAgIHwgICAgbGZk eCBmMTQsIEtCQVNFLCBSQwotQEAgLTM0NTgsOCArMzgwMSw4IEBAIHN0YXRpYyB2b2lkIGJ1aWxk X2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHwgICAuZW5kaWYK LSAgICAgfHwgIGJyZWFrOwotICAgICB8fGRlZmF1bHQ6Ci0tICAgIHwgICBsd3p4IFRNUDEsIEJB U0UsIFJCCi0tICAgIHwgICBsd3p4IFRNUDIsIEJBU0UsIFJDCi0rICAgIHwgICBsd3p4IFRNUDEs IEJBU0VfSEksIFJCCi0rICAgIHwgICBsd3p4IFRNUDIsIEJBU0VfSEksIFJDCi0gICAgIHwgICAg bGZkeCBmMTQsIEJBU0UsIFJCCi0gICAgIHwgICAgbGZkeCBmMTUsIEJBU0UsIFJDCi0gICAgIHwg ICBjaGVja251bSBjcjAsIFRNUDEKLUBAIC0zNTE0LDQxICszODU3LDYyIEBAIHN0YXRpYyB2b2lk IGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHx8dmsg PSAoKGludClvcCAtIEJDX0FERFZOKSAvIChCQ19BREROVi1CQ19BRERWTik7Ci0gICAgIHx8c3dp dGNoICh2aykgewotICAgICB8fGNhc2UgMDoKLS0gICAgfCAgIGx3enV4IFRNUDEsIFJCLCBCQVNF Ci0tICAgIHwgICBsd3p1eCBUTVAyLCBSQywgS0JBU0UKLS0gICAgfCAgICBsd3ogQ0FSRzEsIDQo UkIpCi0tICAgIHwgICBjaGVja251bSBjcjAsIFRNUDEKLS0gICAgfCAgICBsd3ogQ0FSRzIsIDQo UkMpCi0rICAgIHwgICAuaWYgRU5ESUFOX0xFCi0rICAgIHwgICAgIGx3enV4IENBUkcyLCBSQywg S0JBU0UKLSsgICAgfCAgICAgbHd6eCBUTVAxLCBSQiwgQkFTRV9ISQotKyAgICB8ICAgICAgbHd6 IFRNUDIsIDQoUkMpCi0rICAgIHwgICAgIGNoZWNrbnVtIGNyMCwgVE1QMQotKyAgICB8ICAgICAg bHd6dXggQ0FSRzEsIFJCLCBCQVNFCi0rICAgIHwgICAuZWxzZQotKyAgICB8ICAgICBsd3p1eCBU TVAxLCBSQiwgQkFTRQotKyAgICB8ICAgICBsd3p1eCBUTVAyLCBSQywgS0JBU0UKLSsgICAgfCAg ICAgIGx3eiBDQVJHMSwgNChSQikKLSsgICAgfCAgICAgY2hlY2tudW0gY3IwLCBUTVAxCi0rICAg IHwgICAgICBsd3ogQ0FSRzIsIDQoUkMpCi0rICAgIHwgICAuZW5kaWYKLSAgICAgfHwgIGJyZWFr OwotICAgICB8fGNhc2UgMToKLS0gICAgfCAgIGx3enV4IFRNUDEsIFJCLCBCQVNFCi0tICAgIHwg ICBsd3p1eCBUTVAyLCBSQywgS0JBU0UKLS0gICAgfCAgICBsd3ogQ0FSRzIsIDQoUkIpCi0tICAg IHwgICBjaGVja251bSBjcjAsIFRNUDEKLS0gICAgfCAgICBsd3ogQ0FSRzEsIDQoUkMpCi0rICAg IHwgICAuaWYgRU5ESUFOX0xFCi0rICAgIHwgICAgIGx3enV4IENBUkcxLCBSQywgS0JBU0UKLSsg ICAgfCAgICAgbHd6eCBUTVAxLCBSQiwgQkFTRV9ISQotKyAgICB8ICAgICAgbHd6IFRNUDIsIDQo UkMpCi0rICAgIHwgICAgIGNoZWNrbnVtIGNyMCwgVE1QMQotKyAgICB8ICAgICAgbHd6dXggQ0FS RzIsIFJCLCBCQVNFCi0rICAgIHwgICAuZWxzZQotKyAgICB8ICAgICBsd3p1eCBUTVAxLCBSQiwg QkFTRQotKyAgICB8ICAgICBsd3p1eCBUTVAyLCBSQywgS0JBU0UKLSsgICAgfCAgICAgIGx3eiBD QVJHMiwgNChSQikKLSsgICAgfCAgICAgY2hlY2tudW0gY3IwLCBUTVAxCi0rICAgIHwgICAgICBs d3ogQ0FSRzEsIDQoUkMpCi0rICAgIHwgICAuZW5kaWYKLSAgICAgfHwgIGJyZWFrOwotICAgICB8 fGRlZmF1bHQ6Ci0tICAgIHwgICBsd3p1eCBUTVAxLCBSQiwgQkFTRQotLSAgICB8ICAgbHd6dXgg VE1QMiwgUkMsIEJBU0UKLS0gICAgfCAgICBsd3ogQ0FSRzEsIDQoUkIpCi0tICAgIHwgICBjaGVj a251bSBjcjAsIFRNUDEKLS0gICAgfCAgICBsd3ogQ0FSRzIsIDQoUkMpCi0rICAgIHwgICAuaWYg RU5ESUFOX0xFCi0rICAgIHwgICAgIGx3enggVE1QMSwgUkIsIEJBU0VfSEkKLSsgICAgfCAgICAg bHd6eCBUTVAyLCBSQywgQkFTRV9ISQotKyAgICB8ICAgICAgbHd6dXggQ0FSRzEsIFJCLCBCQVNF Ci0rICAgIHwgICAgIGNoZWNrbnVtIGNyMCwgVE1QMQotKyAgICB8ICAgICAgbHd6dXggQ0FSRzIs IFJDLCBCQVNFCi0rICAgIHwgICAuZWxzZQotKyAgICB8ICAgICBsd3p1eCBUTVAxLCBSQiwgQkFT RQotKyAgICB8ICAgICBsd3p1eCBUTVAyLCBSQywgQkFTRQotKyAgICB8ICAgICAgbHd6IENBUkcx LCA0KFJCKQotKyAgICB8ICAgICBjaGVja251bSBjcjAsIFRNUDEKLSsgICAgfCAgICAgIGx3eiBD QVJHMiwgNChSQykKLSsgICAgfCAgIC5lbmRpZgotICAgICB8fCAgYnJlYWs7Ci0gICAgIHx8fQot KyAgICB8ICBtdHhlciBaRVJPCi0gICAgIHwgIGNoZWNrbnVtIGNyMSwgVE1QMgotICAgICB8ICBi bmUgPjUKLSAgICAgfCAgYm5lIGNyMSwgPjUKLSAgICAgfCAgaW50aW5zIENBUkcxLCBDQVJHMSwg Q0FSRzIKLS0gICAgfCAgYnNvID40Ci0tICAgIHwxOgotKyAgICB8ICBpbnNfYXJpdGhmYWxsYmFj ayBic28KLSAgICAgfCAgaW5zX25leHQxCi0tICAgIHwgIHN0d3V4IFRJU05VTSwgUkEsIEJBU0UK LS0gICAgfCAgc3R3IENBUkcxLCA0KFJBKQotKyAgICB8ICBzdHd4IFRJU05VTSwgQkFTRV9ISSwg UkEKLSsgICAgfCAgc3R3eCBDQVJHMSwgQkFTRV9MTywgUkEKLSAgICAgfDI6Ci0gICAgIHwgIGlu c19uZXh0MgotLSAgICB8NDogIC8vIE92ZXJmbG93LgotLSAgICB8ICBjaGVja292IFRNUDAsIDwx CQkJLy8gSWdub3JlIHVucmVsYXRlZCBvdmVyZmxvdy4KLS0gICAgfCAgaW5zX2FyaXRoZmFsbGJh Y2sgYgotICAgICB8NTogIC8vIEZQIHZhcmlhbnQuCi0gICAgIHx8aWYgKHZrID09IDEpIHsKLSAg ICAgfCAgbGZkIGYxNSwgMChSQikKLUBAIC0zNjIwLDkgKzM5ODQsOSBAQCBzdGF0aWMgdm9pZCBi dWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICBicmVhazsK LSAgIGNhc2UgQkNfUE9XOgotICAgICB8ICAvLyBOWUk6IChwYXJ0aWFsKSBpbnRlZ2VyIGFyaXRo bWV0aWMuCi0tICAgIHwgIGx3enggVE1QMSwgQkFTRSwgUkIKLSsgICAgfCAgbHd6eCBUTVAxLCBC QVNFX0hJLCBSQgotICAgICB8ICAgbGZkeCBGQVJHMSwgQkFTRSwgUkIKLS0gICAgfCAgbHd6eCBU TVAyLCBCQVNFLCBSQwotKyAgICB8ICBsd3p4IFRNUDIsIEJBU0VfSEksIFJDCi0gICAgIHwgICBs ZmR4IEZBUkcyLCBCQVNFLCBSQwotICAgICB8ICBjaGVja251bSBjcjAsIFRNUDEKLSAgICAgfCAg Y2hlY2tudW0gY3IxLCBUTVAyCi1AQCAtMzY0OCw2ICs0MDEyLDcgQEAgc3RhdGljIHZvaWQgYnVp bGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgLy8gUmV0 dXJucyBOVUxMIChmaW5pc2hlZCkgb3IgVFZhbHVlICogKG1ldGFtZXRob2QpLgotICAgICB8ICBj bXBsd2kgQ1JFVDEsIDAKLSAgICAgfCAgIGxwIEJBU0UsIEwtPmJhc2UKLSsgICAgfCAgIGFkZGkg QkFTRVA0LCBCQVNFLCA0Ci0gICAgIHwgIGJuZSAtPnZtZXRhX2Jpbm9wCi0gICAgIHwgIGluc19u ZXh0MQotICAgICB8ICBsZmR4IGYwLCBCQVNFLCBTQVZFMAkJLy8gQ29weSByZXN1bHQgZnJvbSBS QiB0byBSQS4KLUBAIC0zNjY0LDggKzQwMjksOCBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVp bGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8ICBpbnNfbmV4dDEKLSAgICAg fCAgbHd6eCBUTVAwLCBLQkFTRSwgVE1QMQkJLy8gS0JBU0UtNC1zdHJfY29uc3QqNAotICAgICB8 ICBsaSBUTVAyLCBMSl9UU1RSCi0tICAgIHwgIHN0d3V4IFRNUDIsIFJBLCBCQVNFCi0tICAgIHwg IHN0dyBUTVAwLCA0KFJBKQotKyAgICB8ICBzdHd4IFRNUDIsIEJBU0VfSEksIFJBCi0rICAgIHwg IHN0d3ggVE1QMCwgQkFTRV9MTywgUkEKLSAgICAgfCAgaW5zX25leHQyCi0gICAgIGJyZWFrOwot ICAgY2FzZSBCQ19LQ0RBVEE6Ci1AQCAtMzY3Niw4ICs0MDQxLDggQEAgc3RhdGljIHZvaWQgYnVp bGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgaW5zX25l eHQxCi0gICAgIHwgIGx3enggVE1QMCwgS0JBU0UsIFRNUDEJCS8vIEtCQVNFLTQtY2RhdGFfY29u c3QqNAotICAgICB8ICBsaSBUTVAyLCBMSl9UQ0RBVEEKLS0gICAgfCAgc3R3dXggVE1QMiwgUkEs IEJBU0UKLS0gICAgfCAgc3R3IFRNUDAsIDQoUkEpCi0rICAgIHwgIHN0d3ggVE1QMiwgQkFTRV9I SSwgUkEKLSsgICAgfCAgc3R3eCBUTVAwLCBCQVNFX0xPLCBSQQotICAgICB8ICBpbnNfbmV4dDIK LSAgICAgfC5lbmRpZgotICAgICBicmVhazsKLUBAIC0zNjg3LDE0ICs0MDUyLDE1IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAg IHwgIHNsd2kgUkQsIFJELCAxMwotICAgICB8ICBzcmF3aSBSRCwgUkQsIDE2Ci0gICAgIHwgIGlu c19uZXh0MQotLSAgICB8ICAgc3R3dXggVElTTlVNLCBSQSwgQkFTRQotLSAgICB8ICAgc3R3IFJE LCA0KFJBKQotKyAgICB8ICAgc3R3eCBUSVNOVU0sIEJBU0VfSEksIFJBCi0rICAgIHwgICBzdHd4 IFJELCBCQVNFX0xPLCBSQQotICAgICB8ICBpbnNfbmV4dDIKLSAgICAgfC5lbHNlCi0gICAgIHwg IC8vIFRoZSBzb2Z0LWZsb2F0IGFwcHJvYWNoIGlzIGZhc3Rlci4KLSAgICAgfCAgc2x3aSBSRCwg UkQsIDEzCi0gICAgIHwgIHNyYXdpIFRNUDEsIFJELCAzMQotICAgICB8ICB4b3IgVE1QMiwgVE1Q MSwgUkQKLSsgICAgfCAgLmdwcjY0IGV4dHN3IFJELCBSRAotICAgICB8ICBzdWIgVE1QMiwgVE1Q MiwgVE1QMQkJLy8gVE1QMiA9IGFicyh4KQotICAgICB8ICBjbnRsencgVE1QMywgVE1QMgotICAg ICB8ICBzdWJmaWMgVE1QMSwgVE1QMywgMHg0MGQJCS8vIFRNUDEgPSBleHBvbmVudC0xCi1AQCAt MzcwNiw4ICs0MDcyLDggQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJD T3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgIGFkZCBSRCwgUkQsIFRNUDEJCS8vIGhpID0gaGkg KyBleHBvbmVudC0xCi0gICAgIHwgICAgYW5kIFJELCBSRCwgVE1QMAkJLy8gaGkgPSB4ID09IDAg PyAwIDogaGkKLSAgICAgfCAgaW5zX25leHQxCi0tICAgIHwgICAgc3R3dXggUkQsIFJBLCBCQVNF Ci0tICAgIHwgICAgc3R3IFpFUk8sIDQoUkEpCi0rICAgIHwgICAgc3R3eCBSRCwgQkFTRV9ISSwg UkEKLSsgICAgfCAgICBzdHd4IFpFUk8sIEJBU0VfTE8sIFJBCi0gICAgIHwgIGluc19uZXh0Mgot ICAgICB8LmVuZGlmCi0gICAgIGJyZWFrOwotQEAgLTM3MjMsMTUgKzQwODksMTUgQEAgc3RhdGlj IHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAg fCAgc3J3aSBUTVAxLCBSRCwgMwotICAgICB8ICBub3QgVE1QMCwgVE1QMQotICAgICB8ICBpbnNf bmV4dDEKLS0gICAgfCAgc3R3eCBUTVAwLCBCQVNFLCBSQQotKyAgICB8ICBzdHd4IFRNUDAsIEJB U0VfSEksIFJBCi0gICAgIHwgIGluc19uZXh0MgotICAgICBicmVhazsKLSAgIGNhc2UgQkNfS05J TDoKLSAgICAgfCAgLy8gUkEgPSBiYXNlKjgsIFJEID0gZW5kKjgKLS0gICAgfCAgc3R3eCBUSVNO SUwsIEJBU0UsIFJBCi0rICAgIHwgIHN0d3ggVElTTklMLCBCQVNFX0hJLCBSQQotICAgICB8ICAg YWRkaSBSQSwgUkEsIDgKLSAgICAgfDE6Ci0tICAgIHwgIHN0d3ggVElTTklMLCBCQVNFLCBSQQot KyAgICB8ICBzdHd4IFRJU05JTCwgQkFTRV9ISSwgUkEKLSAgICAgfCAgY21wdyBSQSwgUkQKLSAg ICAgfCAgIGFkZGkgUkEsIFJBLCA4Ci0gICAgIHwgIGJsdCA8MQotQEAgLTM3NjMsMTAgKzQxMjks MTAgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBk ZWZvcCkKLSAgICAgfCAgIGx3eiBDQVJHMiwgVVBWQUw6UkItPnYKLSAgICAgfCAgYW5kaXguIFRN UDMsIFRNUDMsIExKX0dDX0JMQUNLCS8vIGlzYmxhY2sodXYpCi0gICAgIHwgICAgbGJ6IFRNUDAs IFVQVkFMOlJCLT5jbG9zZWQKLS0gICAgfCAgIGx3eiBUTVAyLCAwKFJEKQotKyAgICB8ICAgbHd6 IFRNUDIsIFdPUkRfSEkoUkQpCi0gICAgIHwgICBzdGZkIGYwLCAwKENBUkcyKQotICAgICB8ICAg IGNtcGx3aSBjcjEsIFRNUDAsIDAKLS0gICAgfCAgIGx3eiBUTVAxLCA0KFJEKQotKyAgICB8ICAg bHd6IFRNUDEsIFdPUkRfTE8oUkQpCi0gICAgIHwgIGNyb3IgNCpjcjArZXEsIDQqY3IwK2VxLCA0 KmNyMStlcQotICAgICB8ICAgc3ViaSBUTVAyLCBUTVAyLCAoTEpfVE5VTVgrMSkKLSAgICAgfCAg Ym5lID4yCQkJCS8vIFVwdmFsdWUgaXMgY2xvc2VkIGFuZCBibGFjaz8KLUBAIC0zNzk5LDggKzQx NjUsOCBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50 IGRlZm9wKQotICAgICB8ICAgbGJ6IFRNUDMsIFNUUjpUTVAxLT5tYXJrZWQKLSAgICAgfCAgIGxi eiBUTVAyLCBVUFZBTDpSQi0+Y2xvc2VkCi0gICAgIHwgICBsaSBUTVAwLCBMSl9UU1RSCi0tICAg IHwgICBzdHcgU1RSOlRNUDEsIDQoQ0FSRzIpCi0tICAgIHwgICBzdHcgVE1QMCwgMChDQVJHMikK LSsgICAgfCAgIHN0dyBTVFI6VE1QMSwgV09SRF9MTyhDQVJHMikKLSsgICAgfCAgIHN0dyBUTVAw LCBXT1JEX0hJKENBUkcyKQotICAgICB8ICBibmUgPjIKLSAgICAgfDE6Ci0gICAgIHwgIGluc19u ZXh0Ci1AQCAtMzgzNyw3ICs0MjAzLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4 ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgbHd6eCBVUFZBTDpSQiwgTEZVTkM6 UkIsIFJBCi0gICAgIHwgIGluc19uZXh0MQotICAgICB8ICBsd3ogVE1QMSwgVVBWQUw6UkItPnYK LS0gICAgfCAgc3R3IFRNUDAsIDAoVE1QMSkKLSsgICAgfCAgc3R3IFRNUDAsIFdPUkRfSEkoVE1Q MSkKLSAgICAgfCAgaW5zX25leHQyCi0gICAgIGJyZWFrOwotIAotQEAgLTM4NTIsNiArNDIxOCw3 IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVm b3ApCi0gICAgIHwgICBhZGQgQ0FSRzIsIEJBU0UsIFJBCi0gICAgIHwgIGJsIGV4dGVybiBsal9m dW5jX2Nsb3NldXYJLy8gKGx1YV9TdGF0ZSAqTCwgVFZhbHVlICpsZXZlbCkKLSAgICAgfCAgbHAg QkFTRSwgTC0+YmFzZQotKyAgICB8ICBhZGRpIEJBU0VQNCwgQkFTRSwgNAotICAgICB8MToKLSAg ICAgfCAgaW5zX25leHQKLSAgICAgYnJlYWs7Ci1AQCAtMzg3MCw4ICs0MjM3LDkgQEAgc3RhdGlj IHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAg fCAgLy8gUmV0dXJucyBHQ2Z1bmNMICouCi0gICAgIHwgIGxwIEJBU0UsIEwtPmJhc2UKLSAgICAg fCAgIGxpIFRNUDAsIExKX1RGVU5DCi0tICAgIHwgIHN0d3V4IFRNUDAsIFJBLCBCQVNFCi0tICAg IHwgIHN0dyBMRlVOQzpDUkVUMSwgNChSQSkKLSsgICAgfCAgYWRkaSBCQVNFUDQsIEJBU0UsIDQK LSsgICAgfCAgc3R3eCBUTVAwLCBCQVNFX0hJLCBSQQotKyAgICB8ICBzdHd4IExGVU5DOkNSRVQx LCBCQVNFX0xPLCBSQQotICAgICB8ICBpbnNfbmV4dAotICAgICBicmVhazsKLSAKLUBAIC0zOTA0 LDggKzQyNzIsOSBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBv cCwgaW50IGRlZm9wKQotICAgICB9Ci0gICAgIHwgIGxwIEJBU0UsIEwtPmJhc2UKLSAgICAgfCAg IGxpIFRNUDAsIExKX1RUQUIKLS0gICAgfCAgc3R3dXggVE1QMCwgUkEsIEJBU0UKLS0gICAgfCAg c3R3IFRBQjpDUkVUMSwgNChSQSkKLSsgICAgfCAgYWRkaSBCQVNFUDQsIEJBU0UsIDQKLSsgICAg fCAgc3R3eCBUTVAwLCBCQVNFX0hJLCBSQQotKyAgICB8ICBzdHd4IFRBQjpDUkVUMSwgQkFTRV9M TywgUkEKLSAgICAgfCAgaW5zX25leHQKLSAgICAgaWYgKG9wID09IEJDX1RORVcpIHsKLSAgICAg ICB8MzoKLUBAIC0zOTM4LDEzICs0MzA3LDEzIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWls ZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gCi0gICBjYXNlIEJDX1RHRVRWOgotICAg ICB8ICAvLyBSQSA9IGRzdCo4LCBSQiA9IHRhYmxlKjgsIFJDID0ga2V5KjgKLS0gICAgfCAgbHd6 dXggQ0FSRzEsIFJCLCBCQVNFCi0tICAgIHwgIGx3enV4IENBUkcyLCBSQywgQkFTRQotLSAgICB8 ICAgbHd6IFRBQjpSQiwgNChSQikKLSsgICAgfCAgbHd6eCBDQVJHMSwgQkFTRV9ISSwgUkIKLSsg ICAgfCAgbHd6eCBDQVJHMiwgQkFTRV9ISSwgUkMKLSsgICAgfCAgIGx3enggVEFCOlJCLCBCQVNF X0xPLCBSQgotICAgICB8LmlmIERVQUxOVU0KLS0gICAgfCAgIGx3eiBSQywgNChSQykKLSsgICAg fCAgIGx3enggUkMsIEJBU0VfTE8sIFJDCi0gICAgIHwuZWxzZQotLSAgICB8ICAgbGZkIGYwLCAw KFJDKQotKyAgICB8ICAgbGZkeCBmMCwgQkFTRSwgUkMKLSAgICAgfC5lbmRpZgotICAgICB8ICBj aGVja3RhYiBDQVJHMQotICAgICB8ICAgY2hlY2tudW0gY3IxLCBDQVJHMgotQEAgLTM5NzEsOCAr NDM0MCwxMyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwg aW50IGRlZm9wKQotICAgICB8ICAgc2x3aSBUTVAyLCBUTVAyLCAzCi0gICAgIHwuZW5kaWYKLSAg ICAgfCAgYmxlIC0+dm1ldGFfdGdldHYJCS8vIEludGVnZXIga2V5IGFuZCBpbiBhcnJheSBwYXJ0 PwotLSAgICB8ICBsd3p4IFRNUDAsIFRNUDEsIFRNUDIKLS0gICAgfCAgIGxmZHggZjE0LCBUTVAx LCBUTVAyCi0rICAgIHwgIC5pZiBFTkRJQU5fTEUKLSsgICAgfCAgICBsZmR1eCBmMTQsIFRNUDEs IFRNUDIKLSsgICAgfCAgICBsd3ogVE1QMCwgV09SRF9ISShUTVAxKQotKyAgICB8ICAuZWxzZQot KyAgICB8ICAgIGx3enggVE1QMCwgVE1QMSwgVE1QMgotKyAgICB8ICAgIGxmZHggZjE0LCBUTVAx LCBUTVAyCi0rICAgIHwgIC5lbmRpZgotICAgICB8ICBjaGVja25pbCBUTVAwOyBiZXEgPjIKLSAg ICAgfDE6Ci0gICAgIHwgIGluc19uZXh0MQotQEAgLTM5OTEsMTUgKzQzNjUsMTUgQEAgc3RhdGlj IHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAg fDU6Ci0gICAgIHwgIGNoZWNrc3RyIENBUkcyOyBibmUgLT52bWV0YV90Z2V0dgotICAgICB8Lmlm IG5vdCBEVUFMTlVNCi0tICAgIHwgIGx3eiBTVFI6UkMsIDQoUkMpCi0rICAgIHwgIGx3enggU1RS OlJDLCBCQVNFX0xPLCBSQwotICAgICB8LmVuZGlmCi0gICAgIHwgIGIgLT5CQ19UR0VUU19aCQkJ Ly8gU3RyaW5nIGtleT8KLSAgICAgYnJlYWs7Ci0gICBjYXNlIEJDX1RHRVRTOgotICAgICB8ICAv LyBSQSA9IGRzdCo4LCBSQiA9IHRhYmxlKjgsIFJDID0gc3RyX2NvbnN0KjggKH4pCi0tICAgIHwg IGx3enV4IENBUkcxLCBSQiwgQkFTRQotKyAgICB8ICBsd3p4IENBUkcxLCBCQVNFX0hJLCBSQgot ICAgICB8ICAgc3J3aSBUTVAxLCBSQywgMQotLSAgICB8ICAgIGx3eiBUQUI6UkIsIDQoUkIpCi0r ICAgIHwgICAgbHd6eCBUQUI6UkIsIEJBU0VfTE8sIFJCCi0gICAgIHwgICBzdWJmaWMgVE1QMSwg VE1QMSwgLTQKLSAgICAgfCAgY2hlY2t0YWIgQ0FSRzEKLSAgICAgfCAgIGx3enggU1RSOlJDLCBL QkFTRSwgVE1QMQkvLyBLQkFTRS00LXN0cl9jb25zdCo0Ci1AQCAtNDAxNSwxNiArNDM4OSwxNiBA QCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9w KQotICAgICB8ICBzdWIgVE1QMSwgVE1QMCwgVE1QMQotICAgICB8ICBhZGQgTk9ERTpUTVAyLCBO T0RFOlRNUDIsIFRNUDEJLy8gbm9kZSA9IHRhYi0+bm9kZSArIChpZHgqMzItaWR4KjgpCi0gICAg IHwxOgotLSAgICB8ICBsd3ogQ0FSRzEsIE5PREU6VE1QMi0+a2V5Ci0tICAgIHwgICBsd3ogVE1Q MCwgNCtvZmZzZXRvZihOb2RlLCBrZXkpKE5PREU6VE1QMikKLS0gICAgfCAgICBsd3ogQ0FSRzIs IE5PREU6VE1QMi0+dmFsCi0tICAgIHwgICAgIGx3eiBUTVAxLCA0K29mZnNldG9mKE5vZGUsIHZh bCkoTk9ERTpUTVAyKQotKyAgICB8ICBsd3ogQ0FSRzEsIFdPUkRfSEkrb2Zmc2V0b2YoTm9kZSwg a2V5KShOT0RFOlRNUDIpCi0rICAgIHwgICBsd3ogVE1QMCwgV09SRF9MTytvZmZzZXRvZihOb2Rl LCBrZXkpKE5PREU6VE1QMikKLSsgICAgfCAgICBsd3ogQ0FSRzIsIFdPUkRfSEkrb2Zmc2V0b2Yo Tm9kZSwgdmFsKShOT0RFOlRNUDIpCi0rICAgIHwgICAgIGx3eiBUTVAxLCBXT1JEX0xPK29mZnNl dG9mKE5vZGUsIHZhbCkoTk9ERTpUTVAyKQotICAgICB8ICBjaGVja3N0ciBDQVJHMTsgYm5lID40 Ci0gICAgIHwgICBjbXB3IFRNUDAsIFNUUjpSQzsgYm5lID40Ci0gICAgIHwgICAgY2hlY2tuaWwg Q0FSRzI7IGJlcSA+NQkJLy8gS2V5IGZvdW5kLCBidXQgbmlsIHZhbHVlPwotICAgICB8MzoKLS0g ICAgfCAgICBzdHd1eCBDQVJHMiwgUkEsIEJBU0UKLS0gICAgfCAgICAgc3R3IFRNUDEsIDQoUkEp Ci0rICAgIHwgICAgc3R3eCBDQVJHMiwgQkFTRV9ISSwgUkEKLSsgICAgfCAgICAgc3R3eCBUTVAx LCBCQVNFX0xPLCBSQQotICAgICB8ICBpbnNfbmV4dAotICAgICB8Ci0gICAgIHw0OiAgLy8gRm9s bG93IGhhc2ggY2hhaW4uCi1AQCAtNDA0NSwxNSArNDQxOSwyMCBAQCBzdGF0aWMgdm9pZCBidWls ZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICBicmVhazsKLSAg IGNhc2UgQkNfVEdFVEI6Ci0gICAgIHwgIC8vIFJBID0gZHN0KjgsIFJCID0gdGFibGUqOCwgUkMg PSBpbmRleCo4Ci0tICAgIHwgIGx3enV4IENBUkcxLCBSQiwgQkFTRQotKyAgICB8ICBsd3p4IENB UkcxLCBCQVNFX0hJLCBSQgotICAgICB8ICAgc3J3aSBUTVAwLCBSQywgMwotLSAgICB8ICAgbHd6 IFRBQjpSQiwgNChSQikKLSsgICAgfCAgIGx3enggVEFCOlJCLCBCQVNFX0xPLCBSQgotICAgICB8 ICBjaGVja3RhYiBDQVJHMTsgYm5lIC0+dm1ldGFfdGdldGIKLSAgICAgfCAgbHd6IFRNUDEsIFRB QjpSQi0+YXNpemUKLSAgICAgfCAgIGx3eiBUTVAyLCBUQUI6UkItPmFycmF5Ci0gICAgIHwgIGNt cGx3IFRNUDAsIFRNUDE7IGJnZSAtPnZtZXRhX3RnZXRiCi0tICAgIHwgIGx3enggVE1QMSwgVE1Q MiwgUkMKLS0gICAgfCAgIGxmZHggZjAsIFRNUDIsIFJDCi0rICAgIHwgIC5pZiBFTkRJQU5fTEUK LSsgICAgfCAgICBsZmR1eCBmMCwgVE1QMiwgUkMKLSsgICAgfCAgICBsd3ogVE1QMSwgV09SRF9I SShUTVAyKQotKyAgICB8ICAuZWxzZQotKyAgICB8ICAgIGx3enggVE1QMSwgVE1QMiwgUkMKLSsg ICAgfCAgICBsZmR4IGYwLCBUTVAyLCBSQwotKyAgICB8ICAuZW5kaWYKLSAgICAgfCAgY2hlY2tu aWwgVE1QMTsgYmVxID41Ci0gICAgIHwxOgotICAgICB8ICBpbnNfbmV4dDEKLUBAIC00MDcxLDEy ICs0NDUwLDEwIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9w LCBpbnQgZGVmb3ApCi0gICAgIGJyZWFrOwotICAgY2FzZSBCQ19UR0VUUjoKLSAgICAgfCAgLy8g UkEgPSBkc3QqOCwgUkIgPSB0YWJsZSo4LCBSQyA9IGtleSo4Ci0tICAgIHwgIGFkZCBSQiwgQkFT RSwgUkIKLS0gICAgfCAgbHd6IFRBQjpDQVJHMSwgNChSQikKLSsgICAgfCAgbHd6eCBUQUI6Q0FS RzEsIEJBU0VfTE8sIFJCCi0gICAgIHwuaWYgRFVBTE5VTQotLSAgICB8ICBhZGQgUkMsIEJBU0Us IFJDCi0gICAgIHwgIGx3eiBUTVAwLCBUQUI6Q0FSRzEtPmFzaXplCi0tICAgIHwgIGx3eiBDQVJH MiwgNChSQykKLSsgICAgfCAgbHd6eCBDQVJHMiwgQkFTRV9MTywgUkMKLSAgICAgfCAgIGx3eiBU TVAxLCBUQUI6Q0FSRzEtPmFycmF5Ci0gICAgIHwuZWxzZQotICAgICB8ICBsZmR4IGYwLCBCQVNF LCBSQwotQEAgLTQwOTYsMTMgKzQ0NzMsMTMgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxk Q3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAKLSAgIGNhc2UgQkNfVFNFVFY6Ci0gICAg IHwgIC8vIFJBID0gc3JjKjgsIFJCID0gdGFibGUqOCwgUkMgPSBrZXkqOAotLSAgICB8ICBsd3p1 eCBDQVJHMSwgUkIsIEJBU0UKLS0gICAgfCAgbHd6dXggQ0FSRzIsIFJDLCBCQVNFCi0tICAgIHwg ICBsd3ogVEFCOlJCLCA0KFJCKQotKyAgICB8ICBsd3p4IENBUkcxLCBCQVNFX0hJLCBSQgotKyAg ICB8ICBsd3p4IENBUkcyLCBCQVNFX0hJLCBSQwotKyAgICB8ICAgbHd6eCBUQUI6UkIsIEJBU0Vf TE8sIFJCCi0gICAgIHwuaWYgRFVBTE5VTQotLSAgICB8ICAgbHd6IFJDLCA0KFJDKQotKyAgICB8 ICAgbHd6eCBSQywgQkFTRV9MTywgUkMKLSAgICAgfC5lbHNlCi0tICAgIHwgICBsZmQgZjAsIDAo UkMpCi0rICAgIHwgICBsZmR4IGYwLCBCQVNFLCBSQwotICAgICB8LmVuZGlmCi0gICAgIHwgIGNo ZWNrdGFiIENBUkcxCi0gICAgIHwgICBjaGVja251bSBjcjEsIENBUkcyCi1AQCAtNDEyOSw3ICs0 NTA2LDEyIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBp bnQgZGVmb3ApCi0gICAgIHwgICBzbHdpIFRNUDAsIFRNUDIsIDMKLSAgICAgfC5lbmRpZgotICAg ICB8ICBibGUgLT52bWV0YV90c2V0dgkJLy8gSW50ZWdlciBrZXkgYW5kIGluIGFycmF5IHBhcnQ/ Ci0rICAgIHwgIC5pZiBFTkRJQU5fTEUKLSsgICAgfCAgIGFkZGkgVE1QMiwgVE1QMSwgNAotKyAg ICB8ICAgbHd6eCBUTVAyLCBUTVAyLCBUTVAwCi0rICAgIHwgIC5lbHNlCi0gICAgIHwgICBsd3p4 IFRNUDIsIFRNUDEsIFRNUDAKLSsgICAgfCAgLmVuZGlmCi0gICAgIHwgIGxieiBUTVAzLCBUQUI6 UkItPm1hcmtlZAotICAgICB8ICAgIGxmZHggZjE0LCBCQVNFLCBSQQotICAgICB8ICAgY2hlY2tu aWwgVE1QMjsgYmVxID4zCi1AQCAtNDE1Miw3ICs0NTM0LDcgQEAgc3RhdGljIHZvaWQgYnVpbGRf aW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfDU6Ci0gICAgIHwg IGNoZWNrc3RyIENBUkcyOyBibmUgLT52bWV0YV90c2V0dgotICAgICB8LmlmIG5vdCBEVUFMTlVN Ci0tICAgIHwgIGx3eiBTVFI6UkMsIDQoUkMpCi0rICAgIHwgIGx3enggU1RSOlJDLCBCQVNFX0xP LCBSQwotICAgICB8LmVuZGlmCi0gICAgIHwgIGIgLT5CQ19UU0VUU19aCQkJLy8gU3RyaW5nIGtl eT8KLSAgICAgfAotQEAgLTQxNjIsOSArNDU0NCw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhC dWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIGJyZWFrOwotICAgY2FzZSBC Q19UU0VUUzoKLSAgICAgfCAgLy8gUkEgPSBzcmMqOCwgUkIgPSB0YWJsZSo4LCBSQyA9IHN0cl9j b25zdCo4ICh+KQotLSAgICB8ICBsd3p1eCBDQVJHMSwgUkIsIEJBU0UKLSsgICAgfCAgbHd6eCBD QVJHMSwgQkFTRV9ISSwgUkIKLSAgICAgfCAgIHNyd2kgVE1QMSwgUkMsIDEKLS0gICAgfCAgICBs d3ogVEFCOlJCLCA0KFJCKQotKyAgICB8ICAgIGx3enggVEFCOlJCLCBCQVNFX0xPLCBSQgotICAg ICB8ICAgc3ViZmljIFRNUDEsIFRNUDEsIC00Ci0gICAgIHwgIGNoZWNrdGFiIENBUkcxCi0gICAg IHwgICBsd3p4IFNUUjpSQywgS0JBU0UsIFRNUDEJLy8gS0JBU0UtNC1zdHJfY29uc3QqNAotQEAg LTQxODMsOSArNDU2NSw5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBC Q09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHwgICAgbGJ6IFRNUDMsIFRBQjpSQi0+bWFya2VkCi0g ICAgIHwgIGFkZCBOT0RFOlRNUDIsIE5PREU6VE1QMiwgVE1QMQkvLyBub2RlID0gdGFiLT5ub2Rl ICsgKGlkeCozMi1pZHgqOCkKLSAgICAgfDE6Ci0tICAgIHwgIGx3eiBDQVJHMSwgTk9ERTpUTVAy LT5rZXkKLS0gICAgfCAgIGx3eiBUTVAwLCA0K29mZnNldG9mKE5vZGUsIGtleSkoTk9ERTpUTVAy KQotLSAgICB8ICAgIGx3eiBDQVJHMiwgTk9ERTpUTVAyLT52YWwKLSsgICAgfCAgbHd6IENBUkcx LCBXT1JEX0hJK29mZnNldG9mKE5vZGUsIGtleSkoTk9ERTpUTVAyKQotKyAgICB8ICAgbHd6IFRN UDAsIFdPUkRfTE8rb2Zmc2V0b2YoTm9kZSwga2V5KShOT0RFOlRNUDIpCi0rICAgIHwgICAgbHd6 IENBUkcyLCBXT1JEX0hJK29mZnNldG9mKE5vZGUsIHZhbCkoTk9ERTpUTVAyKQotICAgICB8ICAg ICBsd3ogTk9ERTpUTVAxLCBOT0RFOlRNUDItPm5leHQKLSAgICAgfCAgY2hlY2tzdHIgQ0FSRzE7 IGJuZSA+NQotICAgICB8ICAgY21wdyBUTVAwLCBTVFI6UkM7IGJuZSA+NQotQEAgLTQyMjUsMTMg KzQ2MDcsMTQgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3As IGludCBkZWZvcCkKLSAgICAgfCAgYmVxIC0+dm1ldGFfdHNldHMJCS8vICdubyBfX25ld2luZGV4 JyBmbGFnIE5PVCBzZXQ6IGNoZWNrLgotICAgICB8NjoKLSAgICAgfCAgbGkgVE1QMCwgTEpfVFNU UgotLSAgICB8ICAgc3R3IFNUUjpSQywgNChDQVJHMykKLSsgICAgfCAgIHN0dyBTVFI6UkMsIFdP UkRfTE8oQ0FSRzMpCi0gICAgIHwgICBtciBDQVJHMiwgVEFCOlJCCi0tICAgIHwgIHN0dyBUTVAw LCAwKENBUkczKQotKyAgICB8ICBzdHcgVE1QMCwgV09SRF9ISShDQVJHMykKLSAgICAgfCAgYmwg ZXh0ZXJuIGxqX3RhYl9uZXdrZXkJCS8vIChsdWFfU3RhdGUgKkwsIEdDdGFiICp0LCBUVmFsdWUg KmspCi0gICAgIHwgIC8vIFJldHVybnMgVFZhbHVlICouCi0gICAgIHwgIGxwIEJBU0UsIEwtPmJh c2UKLSAgICAgfCAgc3RmZCBmMTQsIDAoQ1JFVDEpCi0rICAgIHwgICBhZGRpIEJBU0VQNCwgQkFT RSwgNAotICAgICB8ICBiIDwzCQkJCS8vIE5vIDJuZCB3cml0ZSBiYXJyaWVyIG5lZWRlZC4KLSAg ICAgfAotICAgICB8NzogIC8vIFBvc3NpYmxlIHRhYmxlIHdyaXRlIGJhcnJpZXIgZm9yIHRoZSB2 YWx1ZS4gU2tpcCB2YWxpc3doaXRlIGNoZWNrLgotQEAgLTQyNDAsOSArNDYyMyw5IEBAIHN0YXRp YyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAg IGJyZWFrOwotICAgY2FzZSBCQ19UU0VUQjoKLSAgICAgfCAgLy8gUkEgPSBzcmMqOCwgUkIgPSB0 YWJsZSo4LCBSQyA9IGluZGV4KjgKLS0gICAgfCAgbHd6dXggQ0FSRzEsIFJCLCBCQVNFCi0rICAg IHwgIGx3enggQ0FSRzEsIEJBU0VfSEksIFJCCi0gICAgIHwgICBzcndpIFRNUDAsIFJDLCAzCi0t ICAgIHwgICBsd3ogVEFCOlJCLCA0KFJCKQotKyAgICB8ICAgbHd6eCBUQUI6UkIsIEJBU0VfTE8s IFJCCi0gICAgIHwgIGNoZWNrdGFiIENBUkcxOyBibmUgLT52bWV0YV90c2V0YgotICAgICB8ICBs d3ogVE1QMSwgVEFCOlJCLT5hc2l6ZQotICAgICB8ICAgbHd6IFRNUDIsIFRBQjpSQi0+YXJyYXkK LUBAIC00MjUwLDcgKzQ2MzMsMTIgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpj dHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgY21wbHcgVE1QMCwgVE1QMQotICAgICB8 ICAgbGZkeCBmMTQsIEJBU0UsIFJBCi0gICAgIHwgIGJnZSAtPnZtZXRhX3RzZXRiCi0tICAgIHwg IGx3enggVE1QMSwgVE1QMiwgUkMKLSsgICAgfCAgLmlmIEVORElBTl9MRQotKyAgICB8ICAgIGFk ZGkgVE1QMSwgVE1QMiwgNAotKyAgICB8ICAgIGx3enggVE1QMSwgVE1QMSwgUkMKLSsgICAgfCAg LmVsc2UKLSsgICAgfCAgICBsd3p4IFRNUDEsIFRNUDIsIFJDCi0rICAgIHwgIC5lbmRpZgotICAg ICB8ICBjaGVja25pbCBUTVAxOyBiZXEgPjUKLSAgICAgfDE6Ci0gICAgIHwgIGFuZGl4LiBUTVAw LCBUTVAzLCBMSl9HQ19CTEFDSwkvLyBpc2JsYWNrKHRhYmxlKQotQEAgLTQyNzQsMTMgKzQ2NjIs MTEgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBk ZWZvcCkKLSAgICAgYnJlYWs7Ci0gICBjYXNlIEJDX1RTRVRSOgotICAgICB8ICAvLyBSQSA9IGRz dCo4LCBSQiA9IHRhYmxlKjgsIFJDID0ga2V5KjgKLS0gICAgfCAgYWRkIFJCLCBCQVNFLCBSQgot LSAgICB8ICBsd3ogVEFCOkNBUkcyLCA0KFJCKQotKyAgICB8ICBsd3p4IFRBQjpDQVJHMiwgQkFT RV9MTywgUkIKLSAgICAgfC5pZiBEVUFMTlVNCi0tICAgIHwgIGFkZCBSQywgQkFTRSwgUkMKLSAg ICAgfCAgICBsYnogVE1QMywgVEFCOkNBUkcyLT5tYXJrZWQKLSAgICAgfCAgbHd6IFRNUDAsIFRB QjpDQVJHMi0+YXNpemUKLS0gICAgfCAgbHd6IENBUkczLCA0KFJDKQotKyAgICB8ICBsd3p4IENB UkczLCBCQVNFX0xPLCBSQwotICAgICB8ICAgbHd6IFRNUDEsIFRBQjpDQVJHMi0+YXJyYXkKLSAg ICAgfC5lbHNlCi0gICAgIHwgIGxmZHggZjAsIEJBU0UsIFJDCi1AQCAtNDMxMSw5ICs0Njk3LDkg QEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZv cCkKLSAgICAgfCAgYWRkIFJBLCBCQVNFLCBSQQotICAgICB8MToKLSAgICAgfCAgIGFkZCBUTVAz LCBLQkFTRSwgUkQKLS0gICAgfCAgbHd6IFRBQjpDQVJHMiwgLTQoUkEpCQkvLyBHdWFyYW50ZWVk IHRvIGJlIGEgdGFibGUuCi0rICAgIHwgIGx3eiBUQUI6Q0FSRzIsIFdPUkRfTE8tOChSQSkJLy8g R3VhcmFudGVlZCB0byBiZSBhIHRhYmxlLgotICAgICB8ICAgIGFkZGljLiBUTVAwLCBNVUxUUkVT LCAtOAotLSAgICB8ICAgbHd6IFRNUDMsIDQoVE1QMykJCS8vIEludGVnZXIgY29uc3RhbnQgaXMg aW4gbG8td29yZC4KLSsgICAgfCAgIGx3eiBUTVAzLCBXT1JEX0xPKFRNUDMpCQkvLyBJbnRlZ2Vy IGNvbnN0YW50IGlzIGluIGxvLXdvcmQuCi0gICAgIHwgICAgc3J3aSBDQVJHMywgVE1QMCwgMwot ICAgICB8ICAgIGJlcSA+NAkJCQkvLyBOb3RoaW5nIHRvIGNvcHk/Ci0gICAgIHwgIGFkZCBDQVJH MywgQ0FSRzMsIFRNUDMKLUBAIC00MzYyLDggKzQ3NDgsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9p bnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgY2FzZSBCQ19DQUxMOgot ICAgICB8ICAvLyBSQSA9IGJhc2UqOCwgKFJCID0gKG5yZXN1bHRzKzEpKjgsKSBSQyA9IChuYXJn cysxKSo4Ci0gICAgIHwgIG1yIFRNUDIsIEJBU0UKLS0gICAgfCAgbHd6dXggVE1QMCwgQkFTRSwg UkEKLS0gICAgfCAgIGx3eiBMRlVOQzpSQiwgNChCQVNFKQotKyAgICB8ICBsd3p1eDIgVE1QMCwg TEZVTkM6UkIsIEJBU0UsIFJBCi0gICAgIHwgICAgc3ViaSBOQVJHUzg6UkMsIE5BUkdTODpSQywg OAotICAgICB8ICAgYWRkaSBCQVNFLCBCQVNFLCA4Ci0gICAgIHwgIGNoZWNrZnVuYyBUTVAwOyBi bmUgLT52bWV0YV9jYWxsCi1AQCAtNDM3Nyw4ICs0NzYyLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRf aW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgYnJlYWs7Ci0gICBj YXNlIEJDX0NBTExUOgotICAgICB8ICAvLyBSQSA9IGJhc2UqOCwgKFJCID0gMCwpIFJDID0gKG5h cmdzKzEpKjgKLS0gICAgfCAgbHd6dXggVE1QMCwgUkEsIEJBU0UKLS0gICAgfCAgIGx3eiBMRlVO QzpSQiwgNChSQSkKLSsgICAgfCAgbHd6dXgyIFRNUDAsIExGVU5DOlJCLCBSQSwgQkFTRQotICAg ICB8ICAgIHN1YmkgTkFSR1M4OlJDLCBOQVJHUzg6UkMsIDgKLSAgICAgfCAgICBsd3ogVE1QMSwg RlJBTUVfUEMoQkFTRSkKLSAgICAgfCAgY2hlY2tmdW5jIFRNUDAKLUBAIC00NDMwLDEyICs0ODE0 LDEyIEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQg ZGVmb3ApCi0gICAgIHwgIC8vIFJBID0gYmFzZSo4LCAoUkIgPSAobnJlc3VsdHMrMSkqOCwgUkMg PSAobmFyZ3MrMSkqOCAoKDIrMSkqOCkpCi0gICAgIHwgIG1yIFRNUDIsIEJBU0UKLSAgICAgfCAg YWRkIEJBU0UsIEJBU0UsIFJBCi0tICAgIHwgIGx3eiBUTVAxLCAtMjQoQkFTRSkKLS0gICAgfCAg IGx3eiBMRlVOQzpSQiwgLTIwKEJBU0UpCi0rICAgIHwgIGx3eiBUTVAxLCBXT1JEX0hJLTI0KEJB U0UpCi0rICAgIHwgICBsd3ogTEZVTkM6UkIsIFdPUkRfTE8tMjQoQkFTRSkKLSAgICAgfCAgICBs ZmQgZjEsIC04KEJBU0UpCi0gICAgIHwgICAgbGZkIGYwLCAtMTYoQkFTRSkKLS0gICAgfCAgc3R3 IFRNUDEsIDAoQkFTRSkJCS8vIENvcHkgY2FsbGFibGUuCi0tICAgIHwgICBzdHcgTEZVTkM6UkIs IDQoQkFTRSkKLSsgICAgfCAgc3R3IFRNUDEsIFdPUkRfSEkoQkFTRSkJCS8vIENvcHkgY2FsbGFi bGUuCi0rICAgIHwgICBzdHcgTEZVTkM6UkIsIFdPUkRfTE8oQkFTRSkKLSAgICAgfCAgY2hlY2tm dW5jIFRNUDEKLSAgICAgfCAgICBzdGZkIGYxLCAxNihCQVNFKQkJLy8gQ29weSBjb250cm9sIHZh ci4KLSAgICAgfCAgICAgbGkgTkFSR1M4OlJDLCAxNgkJLy8gSXRlcmF0b3JzIGdldCAyIGFyZ3Vt ZW50cy4KLUBAIC00NDUwLDggKzQ4MzQsOCBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRD dHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8ICAvLyBOWUk6IGFkZCBob3Rsb29w LCByZWNvcmQgQkNfSVRFUk4uCi0gICAgIHwuZW5kaWYKLSAgICAgfCAgYWRkIFJBLCBCQVNFLCBS QQotLSAgICB8ICBsd3ogVEFCOlJCLCAtMTIoUkEpCi0tICAgIHwgIGx3eiBSQywgLTQoUkEpCQkJ Ly8gR2V0IGluZGV4IGZyb20gY29udHJvbCB2YXIuCi0rICAgIHwgIGx3eiBUQUI6UkIsIFdPUkRf TE8tMTYoUkEpCi0rICAgIHwgIGx3eiBSQywgV09SRF9MTy04KFJBKQkJLy8gR2V0IGluZGV4IGZy b20gY29udHJvbCB2YXIuCi0gICAgIHwgIGx3eiBUTVAwLCBUQUI6UkItPmFzaXplCi0gICAgIHwg IGx3eiBUTVAxLCBUQUI6UkItPmFycmF5Ci0gICAgIHwgICBhZGRpIFBDLCBQQywgNAotQEAgLTQ0 NTksMTQgKzQ4NDMsMTQgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJD T3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgY21wbHcgUkMsIFRNUDAKLSAgICAgfCAgIHNsd2kg VE1QMywgUkMsIDMKLSAgICAgfCAgYmdlID41CQkJCS8vIEluZGV4IHBvaW50cyBhZnRlciBhcnJh eSBwYXJ0PwotLSAgICB8ICBsd3p4IFRNUDIsIFRNUDEsIFRNUDMKLS0gICAgfCAgIGxmZHggZjAs IFRNUDEsIFRNUDMKLSsgICAgfCAgbGZkdXggZjAsIFRNUDMsIFRNUDEKLSsgICAgfCAgIGx3eiBU TVAyLCBXT1JEX0hJKFRNUDMpCi0gICAgIHwgIGNoZWNrbmlsIFRNUDIKLSAgICAgfCAgICAgbHd6 IElOUywgLTQoUEMpCi0gICAgIHwgIGJlcSA+NAotICAgICB8LmlmIERVQUxOVU0KLS0gICAgfCAg IHN0dyBSQywgNChSQSkKLS0gICAgfCAgIHN0dyBUSVNOVU0sIDAoUkEpCi0rICAgIHwgICBzdHcg UkMsIFdPUkRfTE8oUkEpCi0rICAgIHwgICBzdHcgVElTTlVNLCBXT1JEX0hJKFJBKQotICAgICB8 LmVsc2UKLSAgICAgfCAgIHRvbnVtX3UgZjEsIFJDCi0gICAgIHwuZW5kaWYKLUBAIC00NDc0LDcg KzQ4NTgsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwg aW50IGRlZm9wKQotICAgICB8ICAgICBhZGRpcyBUTVAzLCBQQywgLShCQ0JJQVNfSio0ID4+IDE2 KQotICAgICB8ICBzdGZkIGYwLCA4KFJBKQotICAgICB8ICAgICBkZWNvZGVfUkQ0IFRNUDEsIElO UwotLSAgICB8ICAgIHN0dyBSQywgLTQoUkEpCQkJLy8gVXBkYXRlIGNvbnRyb2wgdmFyLgotKyAg ICB8ICAgIHN0dyBSQywgV09SRF9MTy04KFJBKQkJLy8gVXBkYXRlIGNvbnRyb2wgdmFyLgotICAg ICB8ICAgICBhZGQgUEMsIFRNUDEsIFRNUDMKLSAgICAgfC5pZiBub3QgRFVBTE5VTQotICAgICB8 ICAgc3RmZCBmMSwgMChSQSkKLUBAIC00NDk2LDkgKzQ4ODAsOCBAQCBzdGF0aWMgdm9pZCBidWls ZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8ICBiZ3R5IDwz Ci0gICAgIHwgICBzbHdpIFJCLCBSQywgMwotICAgICB8ICAgc3ViIFRNUDMsIFRNUDMsIFJCCi0t ICAgIHwgIGx3enggUkIsIFRNUDIsIFRNUDMKLS0gICAgfCAgbGZkeCBmMCwgVE1QMiwgVE1QMwot LSAgICB8ICAgYWRkIE5PREU6VE1QMywgVE1QMiwgVE1QMwotKyAgICB8ICBsZmR1eCBmMCwgVE1Q MywgVE1QMgotKyAgICB8ICBsd3ogUkIsIFdPUkRfSEkoVE1QMykKLSAgICAgfCAgY2hlY2tuaWwg UkIKLSAgICAgfCAgICAgbHd6IElOUywgLTQoUEMpCi0gICAgIHwgIGJlcSA+NwotQEAgLTQ1MTAs NyArNDg5Myw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9w LCBpbnQgZGVmb3ApCi0gICAgIHwgICBzdGZkIGYxLCAwKFJBKQotICAgICB8ICAgIGFkZGkgUkMs IFJDLCAxCi0gICAgIHwgICAgIGFkZCBQQywgVE1QMSwgVE1QMgotLSAgICB8ICAgIHN0dyBSQywg LTQoUkEpCQkJLy8gVXBkYXRlIGNvbnRyb2wgdmFyLgotKyAgICB8ICAgIHN0dyBSQywgV09SRF9M Ty04KFJBKQkJLy8gVXBkYXRlIGNvbnRyb2wgdmFyLgotICAgICB8ICBiIDwzCi0gICAgIHwKLSAg ICAgfDc6ICAvLyBTa2lwIGhvbGVzIGluIGhhc2ggcGFydC4KLUBAIC00NTIxLDEwICs0OTA0LDEw IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVm b3ApCi0gICBjYXNlIEJDX0lTTkVYVDoKLSAgICAgfCAgLy8gUkEgPSBiYXNlKjgsIFJEID0gdGFy Z2V0IChwb2ludHMgdG8gSVRFUk4pCi0gICAgIHwgIGFkZCBSQSwgQkFTRSwgUkEKLS0gICAgfCAg bHd6IFRNUDAsIC0yNChSQSkKLS0gICAgfCAgbHd6IENGVU5DOlRNUDEsIC0yMChSQSkKLS0gICAg fCAgIGx3eiBUTVAyLCAtMTYoUkEpCi0tICAgIHwgICAgbHd6IFRNUDMsIC04KFJBKQotKyAgICB8 ICBsd3ogVE1QMCwgV09SRF9ISS0yNChSQSkKLSsgICAgfCAgbHd6IENGVU5DOlRNUDEsIFdPUkRf TE8tMjQoUkEpCi0rICAgIHwgICBsd3ogVE1QMiwgV09SRF9ISS0xNihSQSkKLSsgICAgfCAgICBs d3ogVE1QMywgV09SRF9ISS04KFJBKQotICAgICB8ICAgY21wd2kgY3IwLCBUTVAyLCBMSl9UVEFC Ci0gICAgIHwgIGNtcHdpIGNyMSwgVE1QMCwgTEpfVEZVTkMKLSAgICAgfCAgICBjbXB3aSBjcjYs IFRNUDMsIExKX1ROSUwKLUBAIC00NTM4LDE3ICs0OTIxLDI1IEBAIHN0YXRpYyB2b2lkIGJ1aWxk X2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHwgIGJuZSBjcjAs ID41Ci0gICAgIHwgIGx1cyBUTVAxLCAweGZmZmUKLSAgICAgfCAgb3JpIFRNUDEsIFRNUDEsIDB4 N2ZmZgotLSAgICB8ICBzdHcgWkVSTywgLTQoUkEpCQkJLy8gSW5pdGlhbGl6ZSBjb250cm9sIHZh ci4KLS0gICAgfCAgc3R3IFRNUDEsIC04KFJBKQotKyAgICB8ICBzdHcgWkVSTywgV09SRF9MTy04 KFJBKQkJLy8gSW5pdGlhbGl6ZSBjb250cm9sIHZhci4KLSsgICAgfCAgc3R3IFRNUDEsIFdPUkRf SEktOChSQSkKLSAgICAgfCAgICBhZGRpcyBQQywgVE1QMywgLShCQ0JJQVNfSio0ID4+IDE2KQot ICAgICB8MToKLSAgICAgfCAgaW5zX25leHQKLSAgICAgfDU6ICAvLyBEZXNwZWNpYWxpemUgYnl0 ZWNvZGUgaWYgYW55IG9mIHRoZSBjaGVja3MgZmFpbC4KLSAgICAgfCAgbGkgVE1QMCwgQkNfSk1Q Ci0gICAgIHwgICBsaSBUTVAxLCBCQ19JVEVSQwotKyAgICB8ICAuaWYgRU5ESUFOX0xFCi0rICAg IHwgIHN0YiBUTVAwLCAtNChQQykKLSsgICAgfCAgLmVsc2UKLSAgICAgfCAgc3RiIFRNUDAsIC0x KFBDKQotKyAgICB8ICAuZW5kaWYKLSAgICAgfCAgICBhZGRpcyBQQywgVE1QMywgLShCQ0JJQVNf Sio0ID4+IDE2KQotKyAgICB8ICAuaWYgRU5ESUFOX0xFCi0rICAgIHwgICBzdGIgVE1QMSwgMChQ QykKLSsgICAgfCAgLmVsc2UKLSAgICAgfCAgIHN0YiBUTVAxLCAzKFBDKQotKyAgICB8ICAuZW5k aWYKLSAgICAgfCAgYiA8MQotICAgICBicmVhazsKLSAKLUBAIC00NTgyLDcgKzQ5NzMsNyBAQCBz dGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQot ICAgICB8ICAgIGFkZGkgUkEsIFJBLCA4Ci0gICAgIHwgICBibHQgY3IxLCA8MQkJCS8vIE1vcmUg dmFyYXJnIHNsb3RzPwotICAgICB8MjogIC8vIEZpbGwgdXAgcmVtYWluZGVyIHdpdGggbmlsLgot LSAgICB8ICBzdHcgVElTTklMLCAwKFJBKQotKyAgICB8ICBzdHcgVElTTklMLCBXT1JEX0hJKFJB KQotICAgICB8ICBjbXBsdyBSQSwgVE1QMgotICAgICB8ICAgYWRkaSBSQSwgUkEsIDgKLSAgICAg fCAgYmx0IDwyCi1AQCAtNDYxOSw2ICs1MDEwLDcgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1 aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgYWRkIFJBLCBCQVNFLCBS QQotICAgICB8ICBhZGQgUkMsIEJBU0UsIFNBVkUwCi0gICAgIHwgIHN1YmkgVE1QMywgQkFTRSwg OAotKyAgICB8ICBhZGRpIEJBU0VQNCwgQkFTRSwgNAotICAgICB8ICBiIDw2Ci0gICAgIGJyZWFr OwotIAotQEAgLTQ2NjcsMTMgKzUwNTksMTQgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxk Q3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgYmd0ID42Ci0gICAgIHwgICBz dWIgQkFTRSwgVE1QMiwgUkEKLSAgICAgfCAgbHd6IExGVU5DOlRNUDEsIEZSQU1FX0ZVTkMoQkFT RSkKLSsgICAgfCAgYWRkaSBCQVNFUDQsIEJBU0UsIDQKLSAgICAgfCAgaW5zX25leHQxCi0gICAg IHwgIGx3eiBUTVAxLCBMRlVOQzpUTVAxLT5wYwotICAgICB8ICBsd3ogS0JBU0UsIFBDMlBST1RP KGspKFRNUDEpCi0gICAgIHwgIGluc19uZXh0MgotICAgICB8Ci0gICAgIHw2OiAgLy8gRmlsbCB1 cCByZXN1bHRzIHdpdGggbmlsLgotLSAgICB8ICBzdWJpIFRNUDEsIFJELCA4Ci0rICAgIHwgIGFk ZGkgVE1QMSwgUkQsIFdPUkRfSEktOAotICAgICB8ICAgYWRkaSBSRCwgUkQsIDgKLSAgICAgfCAg c3R3eCBUSVNOSUwsIFRNUDIsIFRNUDEKLSAgICAgfCAgYiA8NQotQEAgLTQ3MDksMTMgKzUxMDIs MTQgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBk ZWZvcCkKLSAgICAgfCAgYmd0ID42Ci0gICAgIHwgICBzdWIgQkFTRSwgVE1QMiwgUkEKLSAgICAg fCAgbHd6IExGVU5DOlRNUDEsIEZSQU1FX0ZVTkMoQkFTRSkKLSsgICAgfCAgYWRkaSBCQVNFUDQs IEJBU0UsIDQKLSAgICAgfCAgaW5zX25leHQxCi0gICAgIHwgIGx3eiBUTVAxLCBMRlVOQzpUTVAx LT5wYwotICAgICB8ICBsd3ogS0JBU0UsIFBDMlBST1RPKGspKFRNUDEpCi0gICAgIHwgIGluc19u ZXh0MgotICAgICB8Ci0gICAgIHw2OiAgLy8gRmlsbCB1cCByZXN1bHRzIHdpdGggbmlsLgotLSAg ICB8ICBzdWJpIFRNUDEsIFJELCA4Ci0rICAgIHwgIGFkZGkgVE1QMSwgUkQsIFdPUkRfSEktOAot ICAgICB8ICAgYWRkaSBSRCwgUkQsIDgKLSAgICAgfCAgc3R3eCBUSVNOSUwsIFRNUDIsIFRNUDEK LSAgICAgfCAgYiA8NQotQEAgLTQ3NDEsMTEgKzUxMzUsMTMgQEAgc3RhdGljIHZvaWQgYnVpbGRf aW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgdmsgPSAob3AgPT0g QkNfSUZPUkwgfHwgb3AgPT0gQkNfSkZPUkwpOwotICAgICB8LmlmIERVQUxOVU0KLSAgICAgfCAg Ly8gSW50ZWdlciBsb29wLgotLSAgICB8ICBsd3p1eCBUTVAxLCBSQSwgQkFTRQotLSAgICB8ICAg bHd6IENBUkcxLCBGT1JMX0lEWCo4KzQoUkEpCi0rICAgIHwgIGx3enV4MiBUTVAxLCBDQVJHMSwg UkEsIEJBU0UKLSsgICAgaWYgKHZrKSB7Ci0rICAgICAgfCAgbXR4ZXIgWkVSTwotKyAgICB9Ci0g ICAgIHwgIGNtcGx3IGNyMCwgVE1QMSwgVElTTlVNCi0gICAgIGlmICh2aykgewotLSAgICAgIHwg ICBsd3ogQ0FSRzMsIEZPUkxfU1RFUCo4KzQoUkEpCi0rICAgICAgfCAgIGx3eiBDQVJHMywgRk9S TF9TVEVQKjgrV09SRF9MTyhSQSkKLSAgICAgICB8ICBibmUgPjkKLSAgICAgICB8LmlmIEdQUjY0 Ci0gICAgICAgfCAgLy8gTmVlZCB0byBjaGVjayBvdmVyZmxvdyBmb3IgKGE8PDMyKSArIChiPDwz MikuCi1AQCAtNDc1NywxNSArNTE1MywxNSBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRD dHggKmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICAgIHwgIGFkZG8uIENBUkcxLCBDQVJH MSwgQ0FSRzMKLSAgICAgICB8LmVuZGlmCi0gICAgICAgfCAgICBjbXB3aSBjcjYsIENBUkczLCAw Ci0tICAgICAgfCAgIGx3eiBDQVJHMiwgRk9STF9TVE9QKjgrNChSQSkKLS0gICAgICB8ICBic28g PjYKLSsgICAgICB8ICAgbHd6IENBUkcyLCBGT1JMX1NUT1AqOCtXT1JEX0xPKFJBKQotKyAgICAg IHwgIGJzbyA+MgotICAgICAgIHw0OgotLSAgICAgIHwgIHN0dyBDQVJHMSwgRk9STF9JRFgqOCs0 KFJBKQotKyAgICAgIHwgIHN0dyBDQVJHMSwgRk9STF9JRFgqOCtXT1JEX0xPKFJBKQotICAgICB9 IGVsc2UgewotLSAgICAgIHwgIGx3eiBUTVAzLCBGT1JMX1NURVAqOChSQSkKLS0gICAgICB8ICAg bHd6IENBUkczLCBGT1JMX1NURVAqOCs0KFJBKQotLSAgICAgIHwgIGx3eiBUTVAyLCBGT1JMX1NU T1AqOChSQSkKLS0gICAgICB8ICAgbHd6IENBUkcyLCBGT1JMX1NUT1AqOCs0KFJBKQotKyAgICAg IHwgIGx3eiBUTVAzLCBGT1JMX1NURVAqOCtXT1JEX0hJKFJBKQotKyAgICAgIHwgICBsd3ogQ0FS RzMsIEZPUkxfU1RFUCo4K1dPUkRfTE8oUkEpCi0rICAgICAgfCAgbHd6IFRNUDIsIEZPUkxfU1RP UCo4K1dPUkRfSEkoUkEpCi0rICAgICAgfCAgIGx3eiBDQVJHMiwgRk9STF9TVE9QKjgrV09SRF9M TyhSQSkKLSAgICAgICB8ICBjbXBsdyBjcjcsIFRNUDMsIFRJU05VTQotICAgICAgIHwgIGNtcGx3 IGNyMSwgVE1QMiwgVElTTlVNCi0gICAgICAgfCAgY3JhbmQgNCpjcjArZXEsIDQqY3IwK2VxLCA0 KmNyNytlcQotQEAgLTQ3NzYsMTEgKzUxNzIsMTEgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1 aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgICAgfCAgICBibHQgY3I2LCA+NQot ICAgICB8ICBjbXB3IENBUkcxLCBDQVJHMgotICAgICB8MToKLS0gICAgfCAgIHN0dyBUSVNOVU0s IEZPUkxfRVhUKjgoUkEpCi0rICAgIHwgICBzdHcgVElTTlVNLCBGT1JMX0VYVCo4K1dPUkRfSEko UkEpCi0gICAgIGlmIChvcCAhPSBCQ19KRk9STCkgewotICAgICAgIHwgIHNyd2kgUkQsIFJELCAx Ci0gICAgIH0KLS0gICAgfCAgIHN0dyBDQVJHMSwgRk9STF9FWFQqOCs0KFJBKQotKyAgICB8ICAg c3R3IENBUkcxLCBGT1JMX0VYVCo4K1dPUkRfTE8oUkEpCi0gICAgIGlmIChvcCAhPSBCQ19KRk9S TCkgewotICAgICAgIHwgIGFkZCBSRCwgUEMsIFJECi0gICAgIH0KLUBAIC00ODAwLDExICs1MTk2 LDYgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBk ZWZvcCkKLSAgICAgfDU6ICAvLyBJbnZlcnQgY2hlY2sgZm9yIG5lZ2F0aXZlIHN0ZXAuCi0gICAg IHwgIGNtcHcgQ0FSRzIsIENBUkcxCi0gICAgIHwgIGIgPDEKLS0gICAgaWYgKHZrKSB7Ci0tICAg ICAgfDY6ICAvLyBQb3RlbnRpYWwgb3ZlcmZsb3cuCi0tICAgICAgfCAgY2hlY2tvdiBUTVAwLCA8 NAkJLy8gSWdub3JlIHVucmVsYXRlZCBvdmVyZmxvdy4KLS0gICAgICB8ICBiIDwyCi0tICAgIH0K LSAgICAgfC5lbmRpZgotICAgICBpZiAodmspIHsKLSAgICAgICB8LmlmIERVQUxOVU0KLUBAIC00 ODE1LDE0ICs1MjA2LDE5IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBC Q09wIG9wLCBpbnQgZGVmb3ApCi0gICAgICAgfC5lbmRpZgotICAgICAgIHwgIGxmZCBmMywgRk9S TF9TVEVQKjgoUkEpCi0gICAgICAgfCAgbGZkIGYyLCBGT1JMX1NUT1AqOChSQSkKLS0gICAgICB8 ICAgbHd6IFRNUDMsIEZPUkxfU1RFUCo4KFJBKQotKyAgICAgIHwgICBsd3ogVE1QMywgRk9STF9T VEVQKjgrV09SRF9ISShSQSkKLSAgICAgICB8ICBmYWRkIGYxLCBmMSwgZjMKLSAgICAgICB8ICBz dGZkIGYxLCBGT1JMX0lEWCo4KFJBKQotICAgICB9IGVsc2UgewotICAgICAgIHwuaWYgRFVBTE5V TQotICAgICAgIHw5OiAgLy8gRlAgbG9vcC4KLSAgICAgICB8LmVsc2UKLSsgICAgICB8LmlmIEVO RElBTl9MRQotKyAgICAgIHwgIGx3enggVE1QMSwgUkEsIEJBU0VfTE8KLSsgICAgICB8ICBhZGQg UkEsIFJBLCBCQVNFCi0rICAgICAgfC5lbHNlCi0gICAgICAgfCAgbHd6dXggVE1QMSwgUkEsIEJB U0UKLSsgICAgICB8LmVuZGlmCi0gICAgICAgfCAgbHd6IFRNUDMsIEZPUkxfU1RFUCo4KFJBKQot ICAgICAgIHwgIGx3eiBUTVAyLCBGT1JMX1NUT1AqOChSQSkKLSAgICAgICB8ICBjbXBsdyBjcjAs IFRNUDEsIFRJU05VTQotQEAgLTQ5MDMsMTcgKzUyOTksMTYgQEAgc3RhdGljIHZvaWQgYnVpbGRf aW5zKEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAjZW5kaWYKLSAgIGNhc2Ug QkNfSUlURVJMOgotICAgICB8ICAvLyBSQSA9IGJhc2UqOCwgUkQgPSB0YXJnZXQKLS0gICAgfCAg bHd6dXggVE1QMSwgUkEsIEJBU0UKLS0gICAgfCAgIGx3eiBUTVAyLCA0KFJBKQotKyAgICB8ICBs d3p1eDIgVE1QMSwgVE1QMiwgUkEsIEJBU0UKLSAgICAgfCAgY2hlY2tuaWwgVE1QMTsgYmVxID4x CQkvLyBTdG9wIGlmIGl0ZXJhdG9yIHJldHVybmVkIG5pbC4KLSAgICAgaWYgKG9wID09IEJDX0pJ VEVSTCkgewotLSAgICAgIHwgIHN0dyBUTVAxLCAtOChSQSkKLS0gICAgICB8ICAgc3R3IFRNUDIs IC00KFJBKQotKyAgICAgIHwgIHN0dyBUTVAxLCBXT1JEX0hJLTgoUkEpCi0rICAgICAgfCAgIHN0 dyBUTVAyLCBXT1JEX0xPLTgoUkEpCi0gICAgICAgfCAgYiA9PkJDX0pMT09QCi0gICAgIH0gZWxz ZSB7Ci0gICAgICAgfCAgYnJhbmNoX1JECQkJLy8gT3RoZXJ3aXNlIHNhdmUgY29udHJvbCB2YXIg KyBicmFuY2guCi0tICAgICAgfCAgc3R3IFRNUDEsIC04KFJBKQotLSAgICAgIHwgICBzdHcgVE1Q MiwgLTQoUkEpCi0rICAgICAgfCAgc3R3IFRNUDEsIFdPUkRfSEktOChSQSkKLSsgICAgICB8ICAg c3R3IFRNUDIsIFdPUkRfTE8tOChSQSkKLSAgICAgfQotICAgICB8MToKLSAgICAgfCAgaW5zX25l eHQKLUBAIC00OTQyLDcgKzUzMzcsNyBAQCBzdGF0aWMgdm9pZCBidWlsZF9pbnMoQnVpbGRDdHgg KmN0eCwgQkNPcCBvcCwgaW50IGRlZm9wKQotICAgICB8ICAvLyBUcmFjZXMgb24gUFBDIGRvbid0 IHN0b3JlIHRoZSB0cmFjZSBudW1iZXIsIHNvIHVzZSAwLgotICAgICB8ICAgc3R3IFpFUk8sIERJ U1BBVENIX0dMKHZtc3RhdGUpKERJU1BBVENIKQotICAgICB8ICBsd3p4IFRSQUNFOlRNUDIsIFRN UDEsIFJECi0tICAgIHwgIGNscnNvIFRNUDEKLSsgICAgfCAgbXR4ZXIgWkVSTwotICAgICB8ICBs cCBUTVAyLCBUUkFDRTpUTVAyLT5tY29kZQotICAgICB8ICAgc3R3IEJBU0UsIERJU1BBVENIX0dM KGppdF9iYXNlKShESVNQQVRDSCkKLSAgICAgfCAgbXRjdHIgVE1QMgotQEAgLTQ5OTQsNyArNTM4 OSw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQg ZGVmb3ApCi0gICAgIH0KLSAgICAgfAotICAgICB8MzogIC8vIENsZWFyIG1pc3NpbmcgcGFyYW1l dGVycy4KLS0gICAgfCAgc3R3eCBUSVNOSUwsIEJBU0UsIE5BUkdTODpSQwotKyAgICB8ICBzdHd4 IFRJU05JTCwgQkFTRV9ISSwgTkFSR1M4OlJDCi0gICAgIHwgIGFkZGkgTkFSR1M4OlJDLCBOQVJH Uzg6UkMsIDgKLSAgICAgfCAgYiA8MgotICAgICBicmVhazsKLUBAIC01MDExLDExICs1NDA2LDEx IEBAIHN0YXRpYyB2b2lkIGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVm b3ApCi0gICAgIHwgIGx3eiBUTVAyLCBMLT5tYXhzdGFjawotICAgICB8ICAgYWRkIFRNUDEsIEJB U0UsIFJDCi0gICAgIHwgIGFkZCBUTVAwLCBSQSwgUkMKLS0gICAgfCAgIHN0dyBMRlVOQzpSQiwg NChUTVAxKQkJLy8gU3RvcmUgY29weSBvZiBMRlVOQy4KLSsgICAgfCAgIHN0dyBMRlVOQzpSQiwg V09SRF9MTyhUTVAxKQkvLyBTdG9yZSBjb3B5IG9mIExGVU5DLgotICAgICB8ICAgYWRkaSBUTVAz LCBSQywgOCtGUkFNRV9WQVJHCi0gICAgIHwgICAgbHd6IEtCQVNFLCAtNCtQQzJQUk9UTyhrKShQ QykKLSAgICAgfCAgY21wbHcgVE1QMCwgVE1QMgotLSAgICB8ICAgc3R3IFRNUDMsIDAoVE1QMSkJ CS8vIFN0b3JlIGRlbHRhICsgRlJBTUVfVkFSRy4KLSsgICAgfCAgIHN0dyBUTVAzLCBXT1JEX0hJ KFRNUDEpCQkvLyBTdG9yZSBkZWx0YSArIEZSQU1FX1ZBUkcuCi0gICAgIHwgIGJnZSAtPnZtX2dy b3dzdGFja19sCi0gICAgIHwgIGxieiBUTVAyLCAtNCtQQzJQUk9UTyhudW1wYXJhbXMpKFBDKQot ICAgICB8ICAgbXIgUkEsIEJBU0UKLUBAIC01MDI2LDE4ICs1NDIxLDE5IEBAIHN0YXRpYyB2b2lk IGJ1aWxkX2lucyhCdWlsZEN0eCAqY3R4LCBCQ09wIG9wLCBpbnQgZGVmb3ApCi0gICAgIHwgIGJl cSA+MwotICAgICB8MToKLSAgICAgfCAgY21wbHcgUkEsIFJDCQkJLy8gTGVzcyBhcmdzIHRoYW4g cGFyYW1ldGVycz8KLS0gICAgfCAgIGx3eiBUTVAwLCAwKFJBKQotLSAgICB8ICAgbHd6IFRNUDMs IDQoUkEpCi0rICAgIHwgICBsd3ogVE1QMCwgV09SRF9ISShSQSkKLSsgICAgfCAgIGx3eiBUTVAz LCBXT1JEX0xPKFJBKQotICAgICB8ICBiZ2UgPjQKLS0gICAgfCAgICBzdHcgVElTTklMLCAwKFJB KQkJLy8gQ2xlYXIgb2xkIGZpeGFyZyBzbG90IChoZWxwIHRoZSBHQykuCi0rICAgIHwgICAgc3R3 IFRJU05JTCwgV09SRF9ISShSQSkJLy8gQ2xlYXIgb2xkIGZpeGFyZyBzbG90IChoZWxwIHRoZSBH QykuCi0gICAgIHwgICAgYWRkaSBSQSwgUkEsIDgKLSAgICAgfDI6Ci0gICAgIHwgIGFkZGljLiBU TVAyLCBUTVAyLCAtMQotLSAgICB8ICAgc3R3IFRNUDAsIDgoVE1QMSkKLS0gICAgfCAgIHN0dyBU TVAzLCAxMihUTVAxKQotKyAgICB8ICAgc3R3IFRNUDAsIFdPUkRfSEkrOChUTVAxKQotKyAgICB8 ICAgc3R3IFRNUDMsIFdPUkRfTE8rOChUTVAxKQotICAgICB8ICAgIGFkZGkgVE1QMSwgVE1QMSwg OAotICAgICB8ICBibmUgPDEKLSAgICAgfDM6Ci0rICAgIHwgIGFkZGkgQkFTRVA0LCBCQVNFLCA0 Ci0gICAgIHwgIGluc19uZXh0MgotICAgICB8Ci0gICAgIHw0OiAgLy8gQ2xlYXIgbWlzc2luZyBw YXJhbWV0ZXJzLgotQEAgLTUwNDksMzUgKzU0NDUsMzUgQEAgc3RhdGljIHZvaWQgYnVpbGRfaW5z KEJ1aWxkQ3R4ICpjdHgsIEJDT3Agb3AsIGludCBkZWZvcCkKLSAgIGNhc2UgQkNfRlVOQ0NXOgot ICAgICB8ICAvLyBCQVNFID0gbmV3IGJhc2UsIFJBID0gQkFTRStmcmFtZXNpemUqOCwgUkIgPSBD RlVOQywgUkMgPSBuYXJncyo4Ci0gICAgIGlmIChvcCA9PSBCQ19GVU5DQykgewotLSAgICAgIHwg IGxwIFJELCBDRlVOQzpSQi0+ZgotKyAgICAgIHwgIGxwIEZVTkNSRUcsIENGVU5DOlJCLT5mCi0g ICAgIH0gZWxzZSB7Ci0tICAgICAgfCAgbHAgUkQsIERJU1BBVENIX0dMKHdyYXBmKShESVNQQVRD SCkKLSsgICAgICB8ICBscCBGVU5DUkVHLCBESVNQQVRDSF9HTCh3cmFwZikoRElTUEFUQ0gpCi0g ICAgIH0KLSAgICAgfCAgIGFkZCBUTVAxLCBSQSwgTkFSR1M4OlJDCi0gICAgIHwgICBsd3ogVE1Q MiwgTC0+bWF4c3RhY2sKLS0gICAgfCAgLnRvYyBscCBUTVAzLCAwKFJEKQotKyAgICB8ICAub3Bk IGxwIFRNUDMsIDAoRlVOQ1JFRykKLSAgICAgfCAgICBhZGQgUkMsIEJBU0UsIE5BUkdTODpSQwot ICAgICB8ICAgc3RwIEJBU0UsIEwtPmJhc2UKLSAgICAgfCAgIGNtcGx3IFRNUDEsIFRNUDIKLSAg ICAgfCAgICBzdHAgUkMsIEwtPnRvcAotICAgICB8ICAgICBsaV92bXN0YXRlIEMKLS0gICAgfC5p ZiBUT0MKLSsgICAgfC5pZiBPUEQKLSAgICAgfCAgbXRjdHIgVE1QMwotICAgICB8LmVsc2UKLS0g ICAgfCAgbXRjdHIgUkQKLSsgICAgfCAgbXRjdHIgRlVOQ1JFRwotICAgICB8LmVuZGlmCi0gICAg IGlmIChvcCA9PSBCQ19GVU5DQ1cpIHsKLSAgICAgICB8ICBscCBDQVJHMiwgQ0ZVTkM6UkItPmYK LSAgICAgfQotICAgICB8ICBtciBDQVJHMSwgTAotICAgICB8ICAgYmd0IC0+dm1fZ3Jvd3N0YWNr X2MJCS8vIE5lZWQgdG8gZ3JvdyBzdGFjay4KLS0gICAgfCAgLnRvYyBscCBUT0NSRUcsIFRPQ19P RlMoUkQpCi0tICAgIHwgIC50b2NlbnYgbHAgRU5WUkVHLCBFTlZfT0ZTKFJEKQotKyAgICB8ICAu b3BkIGxwIFRPQ1JFRywgVE9DX09GUyhGVU5DUkVHKQotKyAgICB8ICAub3BkZW52IGxwIEVOVlJF RywgRU5WX09GUyhGVU5DUkVHKQotICAgICB8ICAgICBzdF92bXN0YXRlCi0gICAgIHwgIGJjdHJs CQkJCS8vIChsdWFfU3RhdGUgKkwgWywgbHVhX0NGdW5jdGlvbiBmXSkKLSsgICAgfCAgLnRvYyBs cCBUT0NSRUcsIFNBVkVfVE9DCi0gICAgIHwgIC8vIFJldHVybnMgbnJlc3VsdHMuCi0gICAgIHwg IGxwIEJBU0UsIEwtPmJhc2UKLS0gICAgfCAgLnRvYyBsZCBUT0NSRUcsIFNBVkVfVE9DCi0gICAg IHwgICBzbHdpIFJELCBDUkVUMSwgMwotICAgICB8ICBscCBUTVAxLCBMLT50b3AKLSAgICAgfCAg ICBsaV92bXN0YXRlIElOVEVSUAotQEAgLTUxMjgsNyArNTUyNCwxMSBAQCBzdGF0aWMgdm9pZCBl bWl0X2FzbV9kZWJ1ZyhCdWlsZEN0eCAqY3R4KQotIAkiXHQuYnl0ZSAweDFcbiIKLSAJIlx0LnN0 cmluZyBcIlwiXG4iCi0gCSJcdC51bGViMTI4IDB4MVxuIgotKyNpZiBMSl9BUkNIX1BQQzMyT042 NAotKwkiXHQuc2xlYjEyOCAtOFxuIgotKyNlbHNlCi0gCSJcdC5zbGViMTI4IC00XG4iCi0rI2Vu ZGlmCi0gCSJcdC5ieXRlIDY1XG4iCi0gCSJcdC5ieXRlIDB4Y1xuXHQudWxlYjEyOCAxXG5cdC51 bGViMTI4IDBcbiIKLSAJIlx0LmFsaWduIDJcbiIKLUBAIC01MTQxLDE0ICs1NTQxLDI0IEBAIHN0 YXRpYyB2b2lkIGVtaXRfYXNtX2RlYnVnKEJ1aWxkQ3R4ICpjdHgpCi0gCSJcdC5sb25nIC5MYmVn aW5cbiIKLSAJIlx0LmxvbmcgJWRcbiIKLSAJIlx0LmJ5dGUgMHhlXG5cdC51bGViMTI4ICVkXG4i Ci0rI2lmIExKX0FSQ0hfUFBDMzJPTjY0Ci0rCSJcdC5ieXRlIDB4MTFcblx0LnVsZWIxMjggNjVc blx0LnNsZWIxMjggLTJcbiIKLSsJIlx0LmJ5dGUgMHgxMVxuXHQudWxlYjEyOCA3MFxuXHQuc2xl YjEyOCAtMVxuIiwKLSsjZWxzZQotIAkiXHQuYnl0ZSAweDExXG5cdC51bGViMTI4IDY1XG5cdC5z bGViMTI4IC0xXG4iCi0gCSJcdC5ieXRlIDB4NVxuXHQudWxlYjEyOCA3MFxuXHQudWxlYjEyOCA1 NVxuIiwKLSsjZW5kaWYKLSAJZmNvZnMsIENGUkFNRV9TSVpFKTsKLSAgICAgZm9yIChpID0gMTQ7 IGkgPD0gMzE7IGkrKykKLSAgICAgICBmcHJpbnRmKGN0eC0+ZnAsCi0gCSJcdC5ieXRlICVkXG5c dC51bGViMTI4ICVkXG4iCi0gCSJcdC5ieXRlICVkXG5cdC51bGViMTI4ICVkXG4iLAotLQkweDgw K2ksIDM3KygzMS1pKSwgMHg4MCszMitpLCAyKzIqKDMxLWkpKTsKLSsjaWYgTEpfQVJDSF9QUEMz Mk9ONjQKLSsJMHg4MCtpLCAxOSsoMzEtaSksIDB4ODArMzIraSwgMSsoMzEtaSkKLSsjZWxzZQot KwkweDgwK2ksIDM3KygzMS1pKSwgMHg4MCszMitpLCAyKzIqKDMxLWkpCi0rI2VuZGlmCi0rICAg ICAgKTsKLSAgICAgZnByaW50ZihjdHgtPmZwLAotIAkiXHQuYWxpZ24gMlxuIgotIAkiLkxFRkRF MDpcblxuIik7Ci1AQCAtNTE2NCw4ICs1NTc0LDEyIEBAIHN0YXRpYyB2b2lkIGVtaXRfYXNtX2Rl YnVnKEJ1aWxkQ3R4ICpjdHgpCi0gCSJcdC5sb25nIGxqX3ZtX2ZmaV9jYWxsXG4iCi0gI2VuZGlm Ci0gCSJcdC5sb25nICVkXG4iCi0rI2lmIExKX0FSQ0hfUFBDMzJPTjY0Ci0rCSJcdC5ieXRlIDB4 MTFcblx0LnVsZWIxMjggNjVcblx0LnNsZWIxMjggLTJcbiIKLSsjZWxzZQotIAkiXHQuYnl0ZSAw eDExXG5cdC51bGViMTI4IDY1XG5cdC5zbGViMTI4IC0xXG4iCi0tCSJcdC5ieXRlIDB4OGVcblx0 LnVsZWIxMjggMlxuIgotKyNlbmRpZgotKwkiXHQuYnl0ZSAweDhlXG5cdC51bGViMTI4IDFcbiIK LSAJIlx0LmJ5dGUgMHhkXG5cdC51bGViMTI4IDB4ZVxuIgotIAkiXHQuYWxpZ24gMlxuIgotIAki LkxFRkRFMTpcblxuIiwgKGludCljdHgtPmNvZGVzeiAtIGZjb2ZzKTsKLUBAIC01MTgwLDcgKzU1 OTQsMTEgQEAgc3RhdGljIHZvaWQgZW1pdF9hc21fZGVidWcoQnVpbGRDdHggKmN0eCkKLSAJIlx0 LmJ5dGUgMHgxXG4iCi0gCSJcdC5zdHJpbmcgXCJ6UFJcIlxuIgotIAkiXHQudWxlYjEyOCAweDFc biIKLSsjaWYgTEpfQVJDSF9QUEMzMk9ONjQKLSsJIlx0LnNsZWIxMjggLThcbiIKLSsjZWxzZQot IAkiXHQuc2xlYjEyOCAtNFxuIgotKyNlbmRpZgotIAkiXHQuYnl0ZSA2NVxuIgotIAkiXHQudWxl YjEyOCA2XG4iCQkJLyogYXVnbWVudGF0aW9uIGxlbmd0aCAqLwotIAkiXHQuYnl0ZSAweDFiXG4i CQkJLyogcGNyZWx8c2RhdGE0ICovCi1AQCAtNTE5OCwxNCArNTYxNiwyNCBAQCBzdGF0aWMgdm9p ZCBlbWl0X2FzbV9kZWJ1ZyhCdWlsZEN0eCAqY3R4KQotIAkiXHQubG9uZyAlZFxuIgotIAkiXHQu dWxlYjEyOCAwXG4iCQkJLyogYXVnbWVudGF0aW9uIGxlbmd0aCAqLwotIAkiXHQuYnl0ZSAweGVc blx0LnVsZWIxMjggJWRcbiIKLSsjaWYgTEpfQVJDSF9QUEMzMk9ONjQKLSsJIlx0LmJ5dGUgMHgx MVxuXHQudWxlYjEyOCA2NVxuXHQuc2xlYjEyOCAtMlxuIgotKwkiXHQuYnl0ZSAweDExXG5cdC51 bGViMTI4IDcwXG5cdC5zbGViMTI4IC0xXG4iLAotKyNlbHNlCi0gCSJcdC5ieXRlIDB4MTFcblx0 LnVsZWIxMjggNjVcblx0LnNsZWIxMjggLTFcbiIKLSAJIlx0LmJ5dGUgMHg1XG5cdC51bGViMTI4 IDcwXG5cdC51bGViMTI4IDU1XG4iLAotKyNlbmRpZgotIAlmY29mcywgQ0ZSQU1FX1NJWkUpOwot ICAgICBmb3IgKGkgPSAxNDsgaSA8PSAzMTsgaSsrKQotICAgICAgIGZwcmludGYoY3R4LT5mcCwK LSAJIlx0LmJ5dGUgJWRcblx0LnVsZWIxMjggJWRcbiIKLSAJIlx0LmJ5dGUgJWRcblx0LnVsZWIx MjggJWRcbiIsCi0tCTB4ODAraSwgMzcrKDMxLWkpLCAweDgwKzMyK2ksIDIrMiooMzEtaSkpOwot KyNpZiBMSl9BUkNIX1BQQzMyT042NAotKwkweDgwK2ksIDE5KygzMS1pKSwgMHg4MCszMitpLCAx KygzMS1pKQotKyNlbHNlCi0rCTB4ODAraSwgMzcrKDMxLWkpLCAweDgwKzMyK2ksIDIrMiooMzEt aSkKLSsjZW5kaWYKLSsgICAgICApOwotICAgICBmcHJpbnRmKGN0eC0+ZnAsCi0gCSJcdC5hbGln biAyXG4iCi0gCSIuTEVGREUyOlxuXG4iKTsKLUBAIC01MjMzLDggKzU2NjEsMTIgQEAgc3RhdGlj IHZvaWQgZW1pdF9hc21fZGVidWcoQnVpbGRDdHggKmN0eCkKLSAJIlx0LmxvbmcgbGpfdm1fZmZp X2NhbGwtLlxuIgotIAkiXHQubG9uZyAlZFxuIgotIAkiXHQudWxlYjEyOCAwXG4iCQkJLyogYXVn bWVudGF0aW9uIGxlbmd0aCAqLwotKyNpZiBMSl9BUkNIX1BQQzMyT042NAotKwkiXHQuYnl0ZSAw eDExXG5cdC51bGViMTI4IDY1XG5cdC5zbGViMTI4IC0yXG4iCi0rI2Vsc2UKLSAJIlx0LmJ5dGUg MHgxMVxuXHQudWxlYjEyOCA2NVxuXHQuc2xlYjEyOCAtMVxuIgotLQkiXHQuYnl0ZSAweDhlXG5c dC51bGViMTI4IDJcbiIKLSsjZW5kaWYKLSsJIlx0LmJ5dGUgMHg4ZVxuXHQudWxlYjEyOCAxXG4i Ci0gCSJcdC5ieXRlIDB4ZFxuXHQudWxlYjEyOCAweGVcbiIKLSAJIlx0LmFsaWduIDJcbiIKLSAJ Ii5MRUZERTM6XG5cbiIsIChpbnQpY3R4LT5jb2Rlc3ogLSBmY29mcyk7CmRpZmYgLS1naXQgYS9z cmNwa2dzL0x1YUpJVC9maWxlcy9wYXRjaGVzL3BwYzY0L2ZpeC12bS1qaXQtcHBjNjQucGF0Y2gg Yi9zcmNwa2dzL0x1YUpJVC9maWxlcy9wYXRjaGVzL3BwYzY0L2ZpeC12bS1qaXQtcHBjNjQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY0ZTc2MGI3MzgzNjEuLjAwMDAwMDAw MDAwMDAKLS0tIGEvc3JjcGtncy9MdWFKSVQvZmlsZXMvcGF0Y2hlcy9wcGM2NC9maXgtdm0taml0 LXBwYzY0LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBAQAotLS0tIGEvc3JjL3Zt X3BwYy5kYXNjCTIwMTktMDYtMDMgMTk6NDE6NTAuMjE0NjcxNzMxICswMjAwCi0rKysgYi9zcmMv dm1fcHBjLmRhc2MJMjAxOS0wNi0wMyAxOTo0NDo0MC4yMjk2ODYxNDMgKzAyMDAKLUBAIC0yNzc0 LDcgKzI3NzQsNyBAQAotICAgfAotICAgfC0+dm1fZXhpdF9oYW5kbGVyOgotICAgfC5pZiBKSVQK LS0gIHwgIGFkZGkgc3AsIFRNUDAsIHNwLCAtKEVYSVRfT0ZGU0VUKzMyKjgrMzIqUFNJWkUpCi0r ICB8ICBhZGRpIHNwLCBzcCwgLShFWElUX09GRlNFVCszMio4KzMyKlBTSVpFKQotICAgfCAgc2F2 ZXIgMyAvLyBDQVJHMQotICAgfCAgc2F2ZXIgNCAvLyBDQVJHMgotICAgfCAgc2F2ZXIgNSAvLyBD QVJHMwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9MdWFKSVQvcGF0Y2hlcy9hYXJjaDY0LUZpeC1leGl0 LXN0dWItcGF0Y2hpbmcucGF0Y2ggYi9zcmNwa2dzL0x1YUpJVC9wYXRjaGVzL2FhcmNoNjQtRml4 LWV4aXQtc3R1Yi1wYXRjaGluZy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg NDg3YTFjZDFjYTc4Ny4uMDAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL0x1YUpJVC9wYXRjaGVz L2FhcmNoNjQtRml4LWV4aXQtc3R1Yi1wYXRjaGluZy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIzMSArMCwwIEBACi1jb21taXQgOWRhMDY1MzUwOTJkNmQ5ZGVjNDQyNjQxYTI2YzY0YmNlNTU3 NDMyMgotQXV0aG9yOiBNaWtlIFBhbGwgPG1pa2U+Ci1EYXRlOiAgIFN1biBKdW4gMjQgMTQ6MDg6 NTkgMjAxOCArMDIwMAotCi0gICAgQVJNNjQ6IEZpeCBleGl0IHN0dWIgcGF0Y2hpbmcuCi0gICAg Ci0gICAgQ29udHJpYnV0ZWQgYnkgSmF2aWVyIEd1ZXJyYSBHaXJhbGRlei4KLQotZGlmZiAtLWdp dCBhL3NyYy9sal9hc21fYXJtNjQuaCBiL3NyYy9sal9hc21fYXJtNjQuaAotaW5kZXggY2JiMTg2 ZDMuLmJhYWZhMjFhIDEwMDY0NAotLS0tIGEvc3JjL2xqX2FzbV9hcm02NC5oCi0rKysgYi9zcmMv bGpfYXNtX2FybTY0LmgKLUBAIC01NiwxMSArNTYsMTEgQEAgc3RhdGljIHZvaWQgYXNtX2V4aXRz dHViX3NldHVwKEFTTVN0YXRlICphcywgRXhpdE5vIG5leGl0cykKLSAgICAgYXNtX21jbGltaXQo YXMpOwotICAgLyogMTogc3RyIGxyLFtzcF07IGJsIC0+dm1fZXhpdF9oYW5kbGVyOyBtb3Z6IHcw LHRyYWNlbm87IGJsIDwxOyBibCA8MTsgLi4uICovCi0gICBmb3IgKGkgPSBuZXhpdHMtMTsgKGlu dDMyX3QpaSA+PSAwOyBpLS0pCi0tICAgICotLW14cCA9IEE2NElfTEUoQTY0SV9CTHwoKC0zLWkp JjB4MDNmZmZmZmZ1KSk7Ci0tICAqLS1teHAgPSBBNjRJX0xFKEE2NElfTU9WWnd8QTY0Rl9VMTYo YXMtPlQtPnRyYWNlbm8pKTsKLSsgICAgKi0tbXhwID0gQTY0SV9MRShBNjRJX0JMIHwgQTY0Rl9T MjYoLTMtaSkpOwotKyAgKi0tbXhwID0gQTY0SV9MRShBNjRJX01PVlp3IHwgQTY0Rl9VMTYoYXMt PlQtPnRyYWNlbm8pKTsKLSAgIG14cC0tOwotLSAgKm14cCA9IEE2NElfTEUoQTY0SV9CTHwoKChN Q29kZSAqKSh2b2lkICopbGpfdm1fZXhpdF9oYW5kbGVyLW14cCkmMHgwM2ZmZmZmZnUpKTsKLS0g ICotLW14cCA9IEE2NElfTEUoQTY0SV9TVFJ4fEE2NEZfRChSSURfTFIpfEE2NEZfTihSSURfU1Ap KTsKLSsgICpteHAgPSBBNjRJX0xFKEE2NElfQkwgfCBBNjRGX1MyNigoKE1Db2RlICopKHZvaWQg Kilsal92bV9leGl0X2hhbmRsZXItbXhwKSkpOwotKyAgKi0tbXhwID0gQTY0SV9MRShBNjRJX1NU UnggfCBBNjRGX0QoUklEX0xSKSB8IEE2NEZfTihSSURfU1ApKTsKLSAgIGFzLT5tY3RvcCA9IG14 cDsKLSB9Ci0gCi1AQCAtNzcsNyArNzcsNyBAQCBzdGF0aWMgdm9pZCBhc21fZ3VhcmRjYyhBU01T dGF0ZSAqYXMsIEE2NENDIGNjKQotICAgTUNvZGUgKnAgPSBhcy0+bWNwOwotICAgaWYgKExKX1VO TElLRUxZKHAgPT0gYXMtPmludm1jcCkpIHsKLSAgICAgYXMtPmxvb3BpbnYgPSAxOwotLSAgICAq cCA9IEE2NElfQiB8ICgodGFyZ2V0LXApICYgMHgwM2ZmZmZmZnUpOwotKyAgICAqcCA9IEE2NElf QiB8IEE2NEZfUzI2KHRhcmdldC1wKTsKLSAgICAgZW1pdF9jb25kX2JyYW5jaChhcywgY2NeMSwg cC0xKTsKLSAgICAgcmV0dXJuOwotICAgfQotQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljIHZvaWQg YXNtX2d1YXJkdG5iKEFTTVN0YXRlICphcywgQTY0SW5zIGFpLCBSZWcgciwgdWludDMyX3QgYml0 KQotICAgTUNvZGUgKnAgPSBhcy0+bWNwOwotICAgaWYgKExKX1VOTElLRUxZKHAgPT0gYXMtPmlu dm1jcCkpIHsKLSAgICAgYXMtPmxvb3BpbnYgPSAxOwotLSAgICAqcCA9IEE2NElfQiB8ICgodGFy Z2V0LXApICYgMHgwM2ZmZmZmZnUpOwotKyAgICAqcCA9IEE2NElfQiB8IEE2NEZfUzI2KHRhcmdl dC1wKTsKLSAgICAgZW1pdF90bmIoYXMsIGFpXjB4MDEwMDAwMDB1LCByLCBiaXQsIHAtMSk7Ci0g ICAgIHJldHVybjsKLSAgIH0KLUBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIHZvaWQgYXNtX2d1 YXJkY25iKEFTTVN0YXRlICphcywgQTY0SW5zIGFpLCBSZWcgcikKLSAgIE1Db2RlICpwID0gYXMt Pm1jcDsKLSAgIGlmIChMSl9VTkxJS0VMWShwID09IGFzLT5pbnZtY3ApKSB7Ci0gICAgIGFzLT5s b29waW52ID0gMTsKLS0gICAgKnAgPSBBNjRJX0IgfCAoKHRhcmdldC1wKSAmIDB4MDNmZmZmZmZ1 KTsKLSsgICAgKnAgPSBBNjRJX0IgfCBBNjRGX1MyNih0YXJnZXQtcCk7Ci0gICAgIGVtaXRfY25i KGFzLCBhaV4weDAxMDAwMDAwdSwgciwgcC0xKTsKLSAgICAgcmV0dXJuOwotICAgfQotQEAgLTE4 NTAsNyArMTg1MCw3IEBAIHN0YXRpYyB2b2lkIGFzbV9sb29wX2ZpeHVwKEFTTVN0YXRlICphcykK LSAgICAgcFstMl0gfD0gKCh1aW50MzJfdClkZWx0YSAmIG1hc2spIDw8IDU7Ci0gICB9IGVsc2Ug ewotICAgICBwdHJkaWZmX3QgZGVsdGEgPSB0YXJnZXQgLSAocCAtIDEpOwotLSAgICBwWy0xXSA9 IEE2NElfQiB8ICgodWludDMyX3QpKGRlbHRhKSAmIDB4MDNmZmZmZmZ1KTsKLSsgICAgcFstMV0g PSBBNjRJX0IgfCBBNjRGX1MyNihkZWx0YSk7Ci0gICB9Ci0gfQotIAotQEAgLTE5MTksNyArMTkx OSw3IEBAIHN0YXRpYyB2b2lkIGFzbV90YWlsX2ZpeHVwKEFTTVN0YXRlICphcywgVHJhY2VObyBs bmspCi0gICB9Ci0gICAvKiBQYXRjaCBleGl0IGJyYW5jaC4gKi8KLSAgIHRhcmdldCA9IGxuayA/ IHRyYWNlcmVmKGFzLT5KLCBsbmspLT5tY29kZSA6IChNQ29kZSAqKWxqX3ZtX2V4aXRfaW50ZXJw OwotLSAgcFstMV0gPSBBNjRJX0IgfCAoKCh0YXJnZXQtcCkrMSkmMHgwM2ZmZmZmZnUpOwotKyAg cFstMV0gPSBBNjRJX0IgfCBBNjRGX1MyNigodGFyZ2V0LXApKzEpOwotIH0KLSAKLSAvKiBQcmVw YXJlIHRhaWwgb2YgY29kZS4gKi8KLUBAIC0xOTgyLDQwICsxOTgyLDUwIEBAIHZvaWQgbGpfYXNt X3BhdGNoZXhpdChqaXRfU3RhdGUgKkosIEdDdHJhY2UgKlQsIEV4aXRObyBleGl0bm8sIE1Db2Rl ICp0YXJnZXQpCi0gewotICAgTUNvZGUgKnAgPSBULT5tY29kZTsKLSAgIE1Db2RlICpwZSA9IChN Q29kZSAqKSgoY2hhciAqKXAgKyBULT5zem1jb2RlKTsKLS0gIE1Db2RlICpjc3RhcnQgPSBOVUxM LCAqY2VuZCA9IHA7Ci0rICBNQ29kZSAqY3N0YXJ0ID0gTlVMTDsKLSAgIE1Db2RlICptY2FyZWEg PSBsal9tY29kZV9wYXRjaChKLCBwLCAwKTsKLSAgIE1Db2RlICpweCA9IGV4aXRzdHViX3RyYWNl X2FkZHIoVCwgZXhpdG5vKTsKLSsgIC8qIE5vdGU6IHRoaXMgYXNzdW1lcyBhIHRyYWNlIGV4aXQg aXMgb25seSBldmVyIHBhdGNoZWQgb25jZS4gKi8KLSAgIGZvciAoOyBwIDwgcGU7IHArKykgewot ICAgICAvKiBMb29rIGZvciBleGl0c3R1YiBicmFuY2gsIHJlcGxhY2Ugd2l0aCBicmFuY2ggdG8g dGFyZ2V0LiAqLwotKyAgICBwdHJkaWZmX3QgZGVsdGEgPSB0YXJnZXQgLSBwOwotICAgICBNQ29k ZSBpbnMgPSBBNjRJX0xFKCpwKTsKLSAgICAgaWYgKChpbnMgJiAweGZmMDAwMDAwdSkgPT0gMHg1 NDAwMDAwMHUgJiYKLSAJKChpbnMgXiAoKHB4LXApPDw1KSkgJiAweDAwZmZmZmUwdSkgPT0gMCkg ewotLSAgICAgIC8qIFBhdGNoIGJjYyBleGl0c3R1Yi4gKi8KLS0gICAgICAqcCA9IEE2NElfTEUo KGlucyAmIDB4ZmYwMDAwMWZ1KSB8ICgoKHRhcmdldC1wKTw8NSkgJiAweDAwZmZmZmUwdSkpOwot LSAgICAgIGNlbmQgPSBwKzE7Ci0tICAgICAgaWYgKCFjc3RhcnQpIGNzdGFydCA9IHA7Ci0rICAg ICAgLyogUGF0Y2ggYmNjLCBpZiB3aXRoaW4gcmFuZ2UuICovCi0rICAgICAgaWYgKEE2NEZfU19P SyhkZWx0YSwgMTkpKSB7Ci0rCSpwID0gQTY0SV9MRSgoaW5zICYgMHhmZjAwMDAxZnUpIHwgQTY0 Rl9TMTkoZGVsdGEpKTsKLSsJaWYgKCFjc3RhcnQpIGNzdGFydCA9IHA7Ci0rICAgICAgfQotICAg ICB9IGVsc2UgaWYgKChpbnMgJiAweGZjMDAwMDAwdSkgPT0gMHgxNDAwMDAwMHUgJiYKLSAJICAg ICAgICgoaW5zIF4gKHB4LXApKSAmIDB4MDNmZmZmZmZ1KSA9PSAwKSB7Ci0tICAgICAgLyogUGF0 Y2ggYiBleGl0c3R1Yi4gKi8KLS0gICAgICAqcCA9IEE2NElfTEUoKGlucyAmIDB4ZmMwMDAwMDB1 KSB8ICgodGFyZ2V0LXApICYgMHgwM2ZmZmZmZnUpKTsKLS0gICAgICBjZW5kID0gcCsxOwotKyAg ICAgIC8qIFBhdGNoIGIuICovCi0rICAgICAgbHVhX2Fzc2VydChBNjRGX1NfT0soZGVsdGEsIDI2 KSk7Ci0rICAgICAgKnAgPSBBNjRJX0xFKChpbnMgJiAweGZjMDAwMDAwdSkgfCBBNjRGX1MyNihk ZWx0YSkpOwotICAgICAgIGlmICghY3N0YXJ0KSBjc3RhcnQgPSBwOwotICAgICB9IGVsc2UgaWYg KChpbnMgJiAweDdlMDAwMDAwdSkgPT0gMHgzNDAwMDAwMHUgJiYKLSAJICAgICAgICgoaW5zIF4g KChweC1wKTw8NSkpICYgMHgwMGZmZmZlMHUpID09IDApIHsKLS0gICAgICAvKiBQYXRjaCBjYnov Y2JueiBleGl0c3R1Yi4gKi8KLS0gICAgICAqcCA9IEE2NElfTEUoKGlucyAmIDB4ZmYwMDAwMWYp IHwgKCgodGFyZ2V0LXApPDw1KSAmIDB4MDBmZmZmZTB1KSk7Ci0tICAgICAgY2VuZCA9IHArMTsK LS0gICAgICBpZiAoIWNzdGFydCkgY3N0YXJ0ID0gcDsKLSsgICAgICAvKiBQYXRjaCBjYnovY2Ju eiwgaWYgd2l0aGluIHJhbmdlLiAqLwotKyAgICAgIGlmIChBNjRGX1NfT0soZGVsdGEsIDE5KSkg ewotKwkqcCA9IEE2NElfTEUoKGlucyAmIDB4ZmYwMDAwMWZ1KSB8IEE2NEZfUzE5KGRlbHRhKSk7 Ci0rCWlmICghY3N0YXJ0KSBjc3RhcnQgPSBwOwotKyAgICAgIH0KLSAgICAgfSBlbHNlIGlmICgo aW5zICYgMHg3ZTAwMDAwMHUpID09IDB4MzYwMDAwMDB1ICYmCi0gCSAgICAgICAoKGlucyBeICgo cHgtcCk8PDUpKSAmIDB4MDAwN2ZmZTB1KSA9PSAwKSB7Ci0tICAgICAgLyogUGF0Y2ggdGJ6L3Ri bnogZXhpdHN0dWIuICovCi0tICAgICAgKnAgPSBBNjRJX0xFKChpbnMgJiAweGZmZjgwMDFmdSkg fCAoKCh0YXJnZXQtcCk8PDUpICYgMHgwMDA3ZmZlMHUpKTsKLS0gICAgICBjZW5kID0gcCsxOwot LSAgICAgIGlmICghY3N0YXJ0KSBjc3RhcnQgPSBwOwotKyAgICAgIC8qIFBhdGNoIHRiei90Ym56 LCBpZiB3aXRoaW4gcmFuZ2UuICovCi0rICAgICAgaWYgKEE2NEZfU19PSyhkZWx0YSwgMTQpKSB7 Ci0rCSpwID0gQTY0SV9MRSgoaW5zICYgMHhmZmY4MDAxZnUpIHwgQTY0Rl9TMTQoZGVsdGEpKTsK LSsJaWYgKCFjc3RhcnQpIGNzdGFydCA9IHA7Ci0rICAgICAgfQotICAgICB9Ci0gICB9Ci0tICBs dWFfYXNzZXJ0KGNzdGFydCAhPSBOVUxMKTsKLS0gIGxqX21jb2RlX3N5bmMoY3N0YXJ0LCBjZW5k KTsKLSsgIHsgIC8qIEFsd2F5cyBwYXRjaCBsb25nLXJhbmdlIGJyYW5jaCBpbiBleGl0IHN0dWIg aXRzZWxmLiAqLwotKyAgICBwdHJkaWZmX3QgZGVsdGEgPSB0YXJnZXQgLSBweDsKLSsgICAgbHVh X2Fzc2VydChBNjRGX1NfT0soZGVsdGEsIDI2KSk7Ci0rICAgICpweCA9IEE2NElfQiB8IEE2NEZf UzI2KGRlbHRhKTsKLSsgICAgaWYgKCFjc3RhcnQpIGNzdGFydCA9IHB4OwotKyAgfQotKyAgbGpf bWNvZGVfc3luYyhjc3RhcnQsIHB4KzEpOwotICAgbGpfbWNvZGVfcGF0Y2goSiwgbWNhcmVhLCAx KTsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvc3JjL2xqX2VtaXRfYXJtNjQuaCBiL3NyYy9sal9lbWl0 X2FybTY0LmgKLWluZGV4IDZkYTRjN2Q0Li4xMDAxYjFkOCAxMDA2NDQKLS0tLSBhL3NyYy9sal9l bWl0X2FybTY0LmgKLSsrKyBiL3NyYy9sal9lbWl0X2FybTY0LmgKLUBAIC0yNDEsNyArMjQxLDcg QEAgc3RhdGljIHZvaWQgZW1pdF9sb2FkayhBU01TdGF0ZSAqYXMsIFJlZyByZCwgdWludDY0X3Qg dTY0LCBpbnQgaXM2NCkKLSAjZGVmaW5lIG1jcG9mcyhhcywgaykgXAotICAgKChpbnRwdHJfdCko KHVpbnRwdHJfdCkoaykgLSAodWludHB0cl90KShhcy0+bWNwIC0gMSkpKQotICNkZWZpbmUgY2hl Y2ttY3BvZnMoYXMsIGspIFwKLS0gICgoKChtY3BvZnMoYXMsIGspPj4yKSArIDB4MDAwNDAwMDAp ID4+IDE5KSA9PSAwKQotKyAgKEE2NEZfU19PSyhtY3BvZnMoYXMsIGspPj4yLCAxOSkpCi0gCi0g c3RhdGljIFJlZyByYV9hbGxvY2soQVNNU3RhdGUgKmFzLCBpbnRwdHJfdCBrLCBSZWdTZXQgYWxs b3cpOwotIAotQEAgLTMxMiw3ICszMTIsNyBAQCBzdGF0aWMgdm9pZCBlbWl0X2NvbmRfYnJhbmNo KEFTTVN0YXRlICphcywgQTY0Q0MgY29uZCwgTUNvZGUgKnRhcmdldCkKLSB7Ci0gICBNQ29kZSAq cCA9IC0tYXMtPm1jcDsKLSAgIHB0cmRpZmZfdCBkZWx0YSA9IHRhcmdldCAtIHA7Ci0tICBsdWFf YXNzZXJ0KCgoZGVsdGEgKyAweDQwMDAwKSA+PiAxOSkgPT0gMCk7Ci0rICBsdWFfYXNzZXJ0KEE2 NEZfU19PSyhkZWx0YSwgMTkpKTsKLSAgICpwID0gQTY0SV9CQ0MgfCBBNjRGX1MxOShkZWx0YSkg fCBjb25kOwotIH0KLSAKLUBAIC0zMjAsMjQgKzMyMCwyNCBAQCBzdGF0aWMgdm9pZCBlbWl0X2Jy YW5jaChBU01TdGF0ZSAqYXMsIEE2NElucyBhaSwgTUNvZGUgKnRhcmdldCkKLSB7Ci0gICBNQ29k ZSAqcCA9IC0tYXMtPm1jcDsKLSAgIHB0cmRpZmZfdCBkZWx0YSA9IHRhcmdldCAtIHA7Ci0tICBs dWFfYXNzZXJ0KCgoZGVsdGEgKyAweDAyMDAwMDAwKSA+PiAyNikgPT0gMCk7Ci0tICAqcCA9IGFp IHwgKCh1aW50MzJfdClkZWx0YSAmIDB4MDNmZmZmZmZ1KTsKLSsgIGx1YV9hc3NlcnQoQTY0Rl9T X09LKGRlbHRhLCAyNikpOwotKyAgKnAgPSBhaSB8IEE2NEZfUzI2KGRlbHRhKTsKLSB9Ci0gCi0g c3RhdGljIHZvaWQgZW1pdF90bmIoQVNNU3RhdGUgKmFzLCBBNjRJbnMgYWksIFJlZyByLCB1aW50 MzJfdCBiaXQsIE1Db2RlICp0YXJnZXQpCi0gewotICAgTUNvZGUgKnAgPSAtLWFzLT5tY3A7Ci0g ICBwdHJkaWZmX3QgZGVsdGEgPSB0YXJnZXQgLSBwOwotLSAgbHVhX2Fzc2VydChiaXQgPCA2MyAm JiAoKGRlbHRhICsgMHgyMDAwKSA+PiAxNCkgPT0gMCk7Ci0rICBsdWFfYXNzZXJ0KGJpdCA8IDYz ICYmIEE2NEZfU19PSyhkZWx0YSwgMTQpKTsKLSAgIGlmIChiaXQgPiAzMSkgYWkgfD0gQTY0SV9Y OwotLSAgKnAgPSBhaSB8IEE2NEZfQklUKGJpdCAmIDMxKSB8IEE2NEZfUzE0KCh1aW50MzJfdClk ZWx0YSAmIDB4M2ZmZnUpIHwgcjsKLSsgICpwID0gYWkgfCBBNjRGX0JJVChiaXQgJiAzMSkgfCBB NjRGX1MxNChkZWx0YSkgfCByOwotIH0KLSAKLSBzdGF0aWMgdm9pZCBlbWl0X2NuYihBU01TdGF0 ZSAqYXMsIEE2NElucyBhaSwgUmVnIHIsIE1Db2RlICp0YXJnZXQpCi0gewotICAgTUNvZGUgKnAg PSAtLWFzLT5tY3A7Ci0gICBwdHJkaWZmX3QgZGVsdGEgPSB0YXJnZXQgLSBwOwotLSAgbHVhX2Fz c2VydCgoKGRlbHRhICsgMHg0MDAwMCkgPj4gMTkpID09IDApOwotKyAgbHVhX2Fzc2VydChBNjRG X1NfT0soZGVsdGEsIDE5KSk7Ci0gICAqcCA9IGFpIHwgQTY0Rl9TMTkoZGVsdGEpIHwgcjsKLSB9 Ci0gCi1AQCAtMzQ3LDggKzM0Nyw4IEBAIHN0YXRpYyB2b2lkIGVtaXRfY2FsbChBU01TdGF0ZSAq YXMsIHZvaWQgKnRhcmdldCkKLSB7Ci0gICBNQ29kZSAqcCA9IC0tYXMtPm1jcDsKLSAgIHB0cmRp ZmZfdCBkZWx0YSA9IChjaGFyICopdGFyZ2V0IC0gKGNoYXIgKilwOwotLSAgaWYgKCgoKGRlbHRh Pj4yKSArIDB4MDIwMDAwMDApID4+IDI2KSA9PSAwKSB7Ci0tICAgICpwID0gQTY0SV9CTCB8ICgo dWludDMyX3QpKGRlbHRhPj4yKSAmIDB4MDNmZmZmZmZ1KTsKLSsgIGlmIChBNjRGX1NfT0soZGVs dGE+PjIsIDI2KSkgewotKyAgICAqcCA9IEE2NElfQkwgfCBBNjRGX1MyNihkZWx0YT4+Mik7Ci0g ICB9IGVsc2UgeyAgLyogVGFyZ2V0IG91dCBvZiByYW5nZTogbmVlZCBpbmRpcmVjdCBjYWxsLiBC dXQgZG9uJ3QgdXNlIFIwLVI3LiAqLwotICAgICBSZWcgciA9IHJhX2FsbG9jayhhcywgaTY0cHRy KHRhcmdldCksCi0gCQkgICAgICBSU0VUX1JBTkdFKFJJRF9YOCwgUklEX01BWF9HUFIpLVJTRVRf RklYRUQpOwotZGlmZiAtLWdpdCBhL3NyYy9sal90YXJnZXRfYXJtNjQuaCBiL3NyYy9sal90YXJn ZXRfYXJtNjQuaAotaW5kZXggNTIwMDIzYWUuLmEyMDdhMmJhIDEwMDY0NAotLS0tIGEvc3JjL2xq X3RhcmdldF9hcm02NC5oCi0rKysgYi9zcmMvbGpfdGFyZ2V0X2FybTY0LmgKLUBAIC0xMzIsOSAr MTMyLDkgQEAgc3RhdGljIExKX0FJTkxJTkUgdWludDMyX3QgKmV4aXRzdHViX3RyYWNlX2FkZHJf KHVpbnQzMl90ICpwLCB1aW50MzJfdCBleGl0bm8pCi0gI2RlZmluZSBBNjRGX0lNTVIoeCkJKCh4 KSA8PCAxNikKLSAjZGVmaW5lIEE2NEZfVTE2KHgpCSgoeCkgPDwgNSkKLSAjZGVmaW5lIEE2NEZf VTEyKHgpCSgoeCkgPDwgMTApCi0tI2RlZmluZSBBNjRGX1MyNih4KQkoeCkKLSsjZGVmaW5lIEE2 NEZfUzI2KHgpCSgoKHVpbnQzMl90KSh4KSAmIDB4MDNmZmZmZmZ1KSkKLSAjZGVmaW5lIEE2NEZf UzE5KHgpCSgoKHVpbnQzMl90KSh4KSAmIDB4N2ZmZmZ1KSA8PCA1KQotLSNkZWZpbmUgQTY0Rl9T MTQoeCkJKCh4KSA8PCA1KQotKyNkZWZpbmUgQTY0Rl9TMTQoeCkJKCgodWludDMyX3QpKHgpICYg MHgzZmZmdSkgPDwgNSkKLSAjZGVmaW5lIEE2NEZfUzkoeCkJKCh4KSA8PCAxMikKLSAjZGVmaW5l IEE2NEZfQklUKHgpCSgoeCkgPDwgMTkpCi0gI2RlZmluZSBBNjRGX1NIKHNoLCB4KQkoKChzaCkg PDwgMjIpIHwgKCh4KSA8PCAxMCkpCi1AQCAtMTQ1LDYgKzE0NSw5IEBAIHN0YXRpYyBMSl9BSU5M SU5FIHVpbnQzMl90ICpleGl0c3R1Yl90cmFjZV9hZGRyXyh1aW50MzJfdCAqcCwgdWludDMyX3Qg ZXhpdG5vKQotICNkZWZpbmUgQTY0Rl9MU0wxNih4KQkoKCh4KSAvIDE2KSA8PCAyMSkKLSAjZGVm aW5lIEE2NEZfQlNIKHNoKQkoKHNoKSA8PCAxMCkKLSAKLSsvKiBDaGVjayBmb3IgdmFsaWQgZmll bGQgcmFuZ2UuICovCi0rI2RlZmluZSBBNjRGX1NfT0soeCwgYikJKCgoKHgpICsgKDEgPDwgKGIt MSkpKSA+PiAoYikpID09IDApCi0rCi0gdHlwZWRlZiBlbnVtIEE2NElucyB7Ci0gICBBNjRJX1Mg PSAweDIwMDAwMDAwLAotICAgQTY0SV9YID0gMHg4MDAwMDAwMCwKZGlmZiAtLWdpdCBhL3NyY3Br Z3MvTHVhSklUL3BhdGNoZXMvYWFyY2g2NC1yZWdpc3Rlci1hbGxvY2F0aW9uLWJ1Zy1maXgucGF0 Y2ggYi9zcmNwa2dzL0x1YUpJVC9wYXRjaGVzL2FhcmNoNjQtcmVnaXN0ZXItYWxsb2NhdGlvbi1i dWctZml4LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMzAyNjQ3ODY3NTVm Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvTHVhSklUL3BhdGNoZXMvYWFyY2g2NC1yZWdp c3Rlci1hbGxvY2F0aW9uLWJ1Zy1maXgucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyOSArMCww IEBACi1Gcm9tOiBKYXNvbiBUZXBsaXR6IDxqYXNvbkB0ZW5zeXIuY29tPgotRGF0ZTogTW9uLCA5 IE9jdCAyMDE3IDIzOjAzOjA5ICswMDAwCi1TdWJqZWN0OiBGaXggcmVnaXN0ZXIgYWxsb2NhdGlv biBidWcgaW4gYXJtNjQKLQotLS0tCi0gc3JjL2xqX2FzbV9hcm02NC5oIHwgMyArLS0KLSAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQg c3JjL2xqX2FzbV9hcm02NC5oIHNyYy9sal9hc21fYXJtNjQuaAotaW5kZXggOGZkOTJlNy4uNTQ5 ZjhhNiAxMDA2NDQKLS0tLSBhL3NyYy9sal9hc21fYXJtNjQuaAotKysrIGIvc3JjL2xqX2FzbV9h cm02NC5oCi1AQCAtODcxLDcgKzg3MSw3IEBAIHN0YXRpYyB2b2lkIGFzbV9ocmVmayhBU01TdGF0 ZSAqYXMsIElSSW5zICppcikKLSAgIGludCBiaWdvZnMgPSAhZW1pdF9jaGVja29mcyhBNjRJX0xE UngsIG9mcyk7Ci0gICBSZWdTZXQgYWxsb3cgPSBSU0VUX0dQUjsKLSAgIFJlZyBkZXN0ID0gKHJh X3VzZWQoaXIpIHx8IGJpZ29mcykgPyByYV9kZXN0KGFzLCBpciwgUlNFVF9HUFIpIDogUklEX05P TkU7Ci0tICBSZWcgbm9kZSA9IHJhX2FsbG9jMShhcywgaXItPm9wMSwgYWxsb3cpOwotKyAgUmVn IG5vZGUgPSByYV9hbGxvYzEoYXMsIGlyLT5vcDEsIHJhX2hhc3JlZyhkZXN0KSA/IHJzZXRfY2xl YXIoYWxsb3csIGRlc3QpIDogYWxsb3cpOwotICAgUmVnIGtleSA9IHJhX3NjcmF0Y2goYXMsIHJz ZXRfY2xlYXIoYWxsb3csIG5vZGUpKTsKLSAgIFJlZyBpZHggPSBub2RlOwotICAgdWludDY0X3Qg azsKLUBAIC04NzksNyArODc5LDYgQEAgc3RhdGljIHZvaWQgYXNtX2hyZWZrKEFTTVN0YXRlICph cywgSVJJbnMgKmlyKQotICAgcnNldF9jbGVhcihhbGxvdywga2V5KTsKLSAgIGlmIChiaWdvZnMp IHsKLSAgICAgaWR4ID0gZGVzdDsKLS0gICAgcnNldF9jbGVhcihhbGxvdywgZGVzdCk7Ci0gICAg IGtvZnMgPSAoaW50MzJfdClvZmZzZXRvZihOb2RlLCBrZXkpOwotICAgfSBlbHNlIGlmIChyYV9o YXNyZWcoZGVzdCkpIHsKLSAgICAgZW1pdF9vcGsoYXMsIEE2NElfQUREeCwgZGVzdCwgbm9kZSwg b2ZzLCBhbGxvdyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL0x1YUpJVC9wYXRjaGVzL2U5YWYxYWJl YzU0MmU2Zjk4NTFmZjIzNjhlN2YxOTZiNjM4MmE0NGMucGF0Y2ggYi9zcmNwa2dzL0x1YUpJVC9w YXRjaGVzL2U5YWYxYWJlYzU0MmU2Zjk4NTFmZjIzNjhlN2YxOTZiNjM4MmE0NGMucGF0Y2gKZGVs ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEyMTc4NjZjMzkyY2YuLjAwMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9MdWFKSVQvcGF0Y2hlcy9lOWFmMWFiZWM1NDJlNmY5ODUxZmYyMzY4ZTdm MTk2YjYzODJhNDRjLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTYyICswLDAgQEAKLUZyb20g ZTlhZjFhYmVjNTQyZTZmOTg1MWZmMjM2OGU3ZjE5NmI2MzgyYTQ0YyBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKLUZyb206IE1pa2UgUGFsbCA8bWlrZT4KLURhdGU6IFdlZCwgMzAgU2VwIDIwMjAg MDE6MzE6MjcgKzAyMDAKLVN1YmplY3Q6IFtQQVRDSF0gQWRkIHN1cHBvcnQgZm9yIGZ1bGwtcmFu Z2UgNjQgYml0IGxpZ2h0dXNlcmRhdGEuCi0KLS0tLQotIGRvYy9zdGF0dXMuaHRtbCAgIHwgMTEg LS0tLS0tLS0tCi0gc3JjL2ppdC9kdW1wLmx1YSAgfCAgNCArKystCi0gc3JjL2xpYl9kZWJ1Zy5j ICAgfCAxMiArKysrKy0tLS0tCi0gc3JjL2xpYl9qaXQuYyAgICAgfCAxNCArKysrKystLS0tLS0K LSBzcmMvbGliX3BhY2thZ2UuYyB8ICA4ICsrKy0tLS0KLSBzcmMvbGliX3N0cmluZy5jICB8ICAy ICstCi0gc3JjL2xqX2FwaS5jICAgICAgfCA0MCArKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0KLSBzcmMvbGpfY2NhbGwuYyAgICB8ICAyICstCi0gc3JjL2xqX2Njb252LmMgICAgfCAg MiArLQotIHNyYy9sal9jcmVjb3JkLmMgIHwgIDYgKystLS0KLSBzcmMvbGpfZGlzcGF0Y2guYyB8 ICAyICstCi0gc3JjL2xqX2lyLmMgICAgICAgfCAgNiArKystLQotIHNyYy9sal9vYmouYyAgICAg IHwgIDUgKysrLS0KLSBzcmMvbGpfb2JqLmggICAgICB8IDU3ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCi0gc3JjL2xqX3NuYXAuYyAgICAgfCAgOSArKysr KysrLQotIHNyYy9sal9zdGF0ZS5jICAgIHwgIDYgKysrKysKLSBzcmMvbGpfc3RyZm10LmMgICB8 ICAyICstCi0gMTcgZmlsZXMgY2hhbmdlZCwgMTIxIGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9u cygtKQotCi0jZGlmZiAtLWdpdCBhL2RvYy9zdGF0dXMuaHRtbCBiL2RvYy9zdGF0dXMuaHRtbAot I2luZGV4IDBhYWZlMTNhMi4uZmQwYWU4YmFlIDEwMDY0NAotIy0tLSBhL2RvYy9zdGF0dXMuaHRt bAotIysrKyBiL2RvYy9zdGF0dXMuaHRtbAotI0BAIC05MSwxNyArOTEsNiBAQCA8aDI+Q3VycmVu dCBTdGF0dXM8L2gyPgotIyA8dHQ+bHVhX2F0cGFuaWM8L3R0PiBvbiB4NjQuIFRoaXMgaXNzdWUg d2lsbCBiZSBmaXhlZCB3aXRoIHRoZSBuZXcKLSMgZ2FyYmFnZSBjb2xsZWN0b3IuCi0jIDwvbGk+ Ci0jLTxsaT4KLSMtTHVhSklUIG9uIDY0IGJpdCBzeXN0ZW1zIHByb3ZpZGVzIGEgPGI+bGltaXRl ZCByYW5nZTwvYj4gb2YgNDcgYml0cyBmb3IgdGhlCi0jLTxiPmxlZ2FjeSA8dHQ+bGlnaHR1c2Vy ZGF0YTwvdHQ+PC9iPiBkYXRhIHR5cGUuCi0jLVRoaXMgaXMgb25seSByZWxldmFudCBvbiB4NjQg c3lzdGVtcyB3aGljaCB1c2UgdGhlIG5lZ2F0aXZlIHBhcnQgb2YgdGhlCi0jLXZpcnR1YWwgYWRk cmVzcyBzcGFjZSBpbiB1c2VyIG1vZGUsIGUuZy4gU29sYXJpcy94NjQsIGFuZCBvbiBBUk02NCBz eXN0ZW1zCi0jLWNvbmZpZ3VyZWQgd2l0aCBhIDQ4IGJpdCBvciA1MiBiaXQgVkEuCi0jLUF2b2lk IHVzaW5nIDx0dD5saWdodHVzZXJkYXRhPC90dD4gdG8gaG9sZCBwb2ludGVycyB0aGF0IG1heSBw b2ludCBvdXRzaWRlCi0jLW9mIHRoYXQgcmFuZ2UsIGUuZy4gdmFyaWFibGVzIG9uIHRoZSBzdGFj ay4gSW4gZ2VuZXJhbCwgYXZvaWQgdGhpcyBkYXRhCi0jLXR5cGUgZm9yIG5ldyBjb2RlIGFuZCBy ZXBsYWNlIGl0IHdpdGggKG11Y2ggbW9yZSBwZXJmb3JtYW50KSBGRkkgYmluZGluZ3MuCi0jLUZG SSBjZGF0YSBwb2ludGVycyBjYW4gYWRkcmVzcyB0aGUgZnVsbCA2NCBiaXQgcmFuZ2UuCi0jLTwv bGk+Ci0jIDwvdWw+Ci0jIDxiciBjbGFzcz0iZmx1c2giPgotIyA8L2Rpdj4KLUluZGV4OiBsdWFq aXQvc3JjL2ppdC9kdW1wLmx1YQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGx1YWppdC5vcmlnL3NyYy9qaXQv ZHVtcC5sdWEKLSsrKyBsdWFqaXQvc3JjL2ppdC9kdW1wLmx1YQotQEAgLTMxNSw3ICszMTUsOSBA QAotICAgbG9jYWwgdG4gPSB0eXBlKGspCi0gICBsb2NhbCBzCi0gICBpZiB0biA9PSAibnVtYmVy IiB0aGVuCi0tICAgIGlmIGJhbmQoc24gb3IgMCwgMHgzMDAwMCkgfj0gMCB0aGVuCi0rICAgIGlm IHQgPCAxMiB0aGVuCi0rICAgICAgcyA9IGsgPT0gMCBhbmQgIk5VTEwiIG9yIGZvcm1hdCgiWzB4 JTA4eF0iLCBrKQotKyAgICBlbHNlaWYgYmFuZChzbiBvciAwLCAweDMwMDAwKSB+PSAwIHRoZW4K LSAgICAgICBzID0gYmFuZChzbiwgMHgyMDAwMCkgfj0gMCBhbmQgImNvbnRwYyIgb3IgImZ0c3oi Ci0gICAgIGVsc2VpZiBrID09IDJeNTIrMl41MSB0aGVuCi0gICAgICAgcyA9ICJiaWFzIgotSW5k ZXg6IGx1YWppdC9zcmMvbGliX2RlYnVnLmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsdWFqaXQub3JpZy9z cmMvbGliX2RlYnVnLmMKLSsrKyBsdWFqaXQvc3JjL2xpYl9kZWJ1Zy5jCi1AQCAtMjMxLDggKzIz MSw4IEBACi0gICBpbnQzMl90IG4gPSBsal9saWJfY2hlY2tpbnQoTCwgMikgLSAxOwotICAgaWYg KCh1aW50MzJfdCluID49IGZuLT5sLm51cHZhbHVlcykKLSAgICAgbGpfZXJyX2FyZyhMLCAyLCBM Sl9FUlJfSURYUk5HKTsKLS0gIHNldGxpZ2h0dWRWKEwtPnRvcC0xLCBpc2x1YWZ1bmMoZm4pID8g KHZvaWQgKilnY3JlZihmbi0+bC51dnB0cltuXSkgOgotLQkJCQkJKHZvaWQgKikmZm4tPmMudXB2 YWx1ZVtuXSk7Ci0rICBsdWFfcHVzaGxpZ2h0dXNlcmRhdGEoTCwgaXNsdWFmdW5jKGZuKSA/ICh2 b2lkICopZ2NyZWYoZm4tPmwudXZwdHJbbl0pIDoKLSsJCQkJCSAgICh2b2lkICopJmZuLT5jLnVw dmFsdWVbbl0pOwotICAgcmV0dXJuIDE7Ci0gfQotIAotQEAgLTI4MywxMyArMjgzLDEzIEBACi0g Ci0gLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0gCi0tI2RlZmluZSBLRVlfSE9PSwkoKHZvaWQgKikw eDMwMDQpCi0rI2RlZmluZSBLRVlfSE9PSwkoVTY0eCg4MDAwMDAwMCwwMDAwMDAwMCl8J2gnKQot IAotIHN0YXRpYyB2b2lkIGhvb2tmKGx1YV9TdGF0ZSAqTCwgbHVhX0RlYnVnICphcikKLSB7Ci0g ICBzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgaG9va25hbWVzW10gPQotICAgICB7ImNhbGwiLCAi cmV0dXJuIiwgImxpbmUiLCAiY291bnQiLCAidGFpbCByZXR1cm4ifTsKLS0gIGx1YV9wdXNobGln aHR1c2VyZGF0YShMLCBLRVlfSE9PSyk7Ci0rICAoTC0+dG9wKyspLT51NjQgPSBLRVlfSE9PSzsK LSAgIGx1YV9yYXdnZXQoTCwgTFVBX1JFR0lTVFJZSU5ERVgpOwotICAgaWYgKGx1YV9pc2Z1bmN0 aW9uKEwsIC0xKSkgewotICAgICBsdWFfcHVzaHN0cmluZyhMLCBob29rbmFtZXNbKGludClhci0+ ZXZlbnRdKTsKLUBAIC0zMzQsNyArMzM0LDcgQEAKLSAgICAgY291bnQgPSBsdWFMX29wdGludChM LCBhcmcrMywgMCk7Ci0gICAgIGZ1bmMgPSBob29rZjsgbWFzayA9IG1ha2VtYXNrKHNtYXNrLCBj b3VudCk7Ci0gICB9Ci0tICBsdWFfcHVzaGxpZ2h0dXNlcmRhdGEoTCwgS0VZX0hPT0spOwotKyAg KEwtPnRvcCsrKS0+dTY0ID0gS0VZX0hPT0s7Ci0gICBsdWFfcHVzaHZhbHVlKEwsIGFyZysxKTsK LSAgIGx1YV9yYXdzZXQoTCwgTFVBX1JFR0lTVFJZSU5ERVgpOwotICAgbHVhX3NldGhvb2soTCwg ZnVuYywgbWFzaywgY291bnQpOwotQEAgLTM0OSw3ICszNDksNyBAQAotICAgaWYgKGhvb2sgIT0g TlVMTCAmJiBob29rICE9IGhvb2tmKSB7ICAvKiBleHRlcm5hbCBob29rPyAqLwotICAgICBsdWFf cHVzaGxpdGVyYWwoTCwgImV4dGVybmFsIGhvb2siKTsKLSAgIH0gZWxzZSB7Ci0tICAgIGx1YV9w dXNobGlnaHR1c2VyZGF0YShMLCBLRVlfSE9PSyk7Ci0rICAgIChMLT50b3ArKyktPnU2NCA9IEtF WV9IT09LOwotICAgICBsdWFfcmF3Z2V0KEwsIExVQV9SRUdJU1RSWUlOREVYKTsgICAvKiBnZXQg aG9vayAqLwotICAgfQotICAgbHVhX3B1c2hzdHJpbmcoTCwgdW5tYWtlbWFzayhtYXNrLCBidWZm KSk7Ci1JbmRleDogbHVhaml0L3NyYy9saWJfaml0LmMKLT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBsdWFqaXQu b3JpZy9zcmMvbGliX2ppdC5jCi0rKysgbHVhaml0L3NyYy9saWJfaml0LmMKLUBAIC01NDAsMTUg KzU0MCwxNSBAQAotIAotIC8qIE5vdCBsb2FkZWQgYnkgZGVmYXVsdCwgdXNlOiBsb2NhbCBwcm9m aWxlID0gcmVxdWlyZSgiaml0LnByb2ZpbGUiKSAqLwotIAotLXN0YXRpYyBjb25zdCBjaGFyIEtF WV9QUk9GSUxFX1RIUkVBRCA9ICd0JzsKLS1zdGF0aWMgY29uc3QgY2hhciBLRVlfUFJPRklMRV9G VU5DID0gJ2YnOwotKyNkZWZpbmUgS0VZX1BST0ZJTEVfVEhSRUFECShVNjR4KDgwMDAwMDAwLDAw MDAwMDAwKXwndCcpCi0rI2RlZmluZSBLRVlfUFJPRklMRV9GVU5DCShVNjR4KDgwMDAwMDAwLDAw MDAwMDAwKXwnZicpCi0gCi0gc3RhdGljIHZvaWQgaml0X3Byb2ZpbGVfY2FsbGJhY2sobHVhX1N0 YXRlICpMMiwgbHVhX1N0YXRlICpMLCBpbnQgc2FtcGxlcywKLSAJCQkJIGludCB2bXN0YXRlKQot IHsKLSAgIFRWYWx1ZSBrZXk7Ci0gICBjVFZhbHVlICp0djsKLS0gIHNldGxpZ2h0dWRWKCZrZXks ICh2b2lkICopJktFWV9QUk9GSUxFX0ZVTkMpOwotKyAga2V5LnU2NCA9IEtFWV9QUk9GSUxFX0ZV TkM7Ci0gICB0diA9IGxqX3RhYl9nZXQoTCwgdGFiVihyZWdpc3RyeShMKSksICZrZXkpOwotICAg aWYgKHR2aXNmdW5jKHR2KSkgewotICAgICBjaGFyIHZtc3QgPSAoY2hhcil2bXN0YXRlOwotQEAg LTU3NSw5ICs1NzUsOSBAQAotICAgbHVhX1N0YXRlICpMMiA9IGx1YV9uZXd0aHJlYWQoTCk7ICAv KiBUaHJlYWQgdGhhdCBydW5zIHByb2ZpbGVyIGNhbGxiYWNrLiAqLwotICAgVFZhbHVlIGtleTsK LSAgIC8qIEFuY2hvciB0aHJlYWQgYW5kIGZ1bmN0aW9uIGluIHJlZ2lzdHJ5LiAqLwotLSAgc2V0 bGlnaHR1ZFYoJmtleSwgKHZvaWQgKikmS0VZX1BST0ZJTEVfVEhSRUFEKTsKLSsgIGtleS51NjQg PSBLRVlfUFJPRklMRV9USFJFQUQ7Ci0gICBzZXR0aHJlYWRWKEwsIGxqX3RhYl9zZXQoTCwgcmVn aXN0cnksICZrZXkpLCBMMik7Ci0tICBzZXRsaWdodHVkVigma2V5LCAodm9pZCAqKSZLRVlfUFJP RklMRV9GVU5DKTsKLSsgIGtleS51NjQgPSBLRVlfUFJPRklMRV9GVU5DOwotICAgc2V0ZnVuY1Yo TCwgbGpfdGFiX3NldChMLCByZWdpc3RyeSwgJmtleSksIGZ1bmMpOwotICAgbGpfZ2NfYW55YmFy cmllcnQoTCwgcmVnaXN0cnkpOwotICAgbHVhSklUX3Byb2ZpbGVfc3RhcnQoTCwgbW9kZSA/IHN0 cmRhdGEobW9kZSkgOiAiIiwKLUBAIC01OTIsOSArNTkyLDkgQEAKLSAgIFRWYWx1ZSBrZXk7Ci0g ICBsdWFKSVRfcHJvZmlsZV9zdG9wKEwpOwotICAgcmVnaXN0cnkgPSB0YWJWKHJlZ2lzdHJ5KEwp KTsKLS0gIHNldGxpZ2h0dWRWKCZrZXksICh2b2lkICopJktFWV9QUk9GSUxFX1RIUkVBRCk7Ci0r ICBrZXkudTY0ID0gS0VZX1BST0ZJTEVfVEhSRUFEOwotICAgc2V0bmlsVihsal90YWJfc2V0KEws IHJlZ2lzdHJ5LCAma2V5KSk7Ci0tICBzZXRsaWdodHVkVigma2V5LCAodm9pZCAqKSZLRVlfUFJP RklMRV9GVU5DKTsKLSsgIGtleS51NjQgPSBLRVlfUFJPRklMRV9GVU5DOwotICAgc2V0bmlsVihs al90YWJfc2V0KEwsIHJlZ2lzdHJ5LCAma2V5KSk7Ci0gICBsal9nY19hbnliYXJyaWVydChMLCBy ZWdpc3RyeSk7Ci0gICByZXR1cm4gMDsKLUluZGV4OiBsdWFqaXQvc3JjL2xpYl9wYWNrYWdlLmMK LT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tLSBsdWFqaXQub3JpZy9zcmMvbGliX3BhY2thZ2UuYwotKysrIGx1YWpp dC9zcmMvbGliX3BhY2thZ2UuYwotQEAgLTM5OCw3ICszOTgsNyBAQAotIAotIC8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSAqLwotIAotLSNkZWZpbmUgc2VudGluZWwJKCh2b2lkICopMHg0MDA0KQotKyNkZWZp bmUgS0VZX1NFTlRJTkVMCShVNjR4KDgwMDAwMDAwLDAwMDAwMDAwKXwncycpCi0gCi0gc3RhdGlj IGludCBsal9jZl9wYWNrYWdlX3JlcXVpcmUobHVhX1N0YXRlICpMKQotIHsKLUBAIC00MDgsNyAr NDA4LDcgQEAKLSAgIGx1YV9nZXRmaWVsZChMLCBMVUFfUkVHSVNUUllJTkRFWCwgIl9MT0FERUQi KTsKLSAgIGx1YV9nZXRmaWVsZChMLCAyLCBuYW1lKTsKLSAgIGlmIChsdWFfdG9ib29sZWFuKEws IC0xKSkgeyAgLyogaXMgaXQgdGhlcmU/ICovCi0tICAgIGlmIChsdWFfdG91c2VyZGF0YShMLCAt MSkgPT0gc2VudGluZWwpICAvKiBjaGVjayBsb29wcyAqLwotKyAgICBpZiAoKEwtPnRvcC0xKS0+ dTY0ID09IEtFWV9TRU5USU5FTCkgIC8qIGNoZWNrIGxvb3BzICovCi0gICAgICAgbHVhTF9lcnJv cihMLCAibG9vcCBvciBwcmV2aW91cyBlcnJvciBsb2FkaW5nIG1vZHVsZSAiIExVQV9RUywgbmFt ZSk7Ci0gICAgIHJldHVybiAxOyAgLyogcGFja2FnZSBpcyBhbHJlYWR5IGxvYWRlZCAqLwotICAg fQotQEAgLTQzMSwxNCArNDMxLDE0IEBACi0gICAgIGVsc2UKLSAgICAgICBsdWFfcG9wKEwsIDEp OwotICAgfQotLSAgbHVhX3B1c2hsaWdodHVzZXJkYXRhKEwsIHNlbnRpbmVsKTsKLSsgIChMLT50 b3ArKyktPnU2NCA9IEtFWV9TRU5USU5FTDsKLSAgIGx1YV9zZXRmaWVsZChMLCAyLCBuYW1lKTsg IC8qIF9MT0FERURbbmFtZV0gPSBzZW50aW5lbCAqLwotICAgbHVhX3B1c2hzdHJpbmcoTCwgbmFt ZSk7ICAvKiBwYXNzIG5hbWUgYXMgYXJndW1lbnQgdG8gbW9kdWxlICovCi0gICBsdWFfY2FsbChM LCAxLCAxKTsgIC8qIHJ1biBsb2FkZWQgbW9kdWxlICovCi0gICBpZiAoIWx1YV9pc25pbChMLCAt MSkpICAvKiBub24tbmlsIHJldHVybj8gKi8KLSAgICAgbHVhX3NldGZpZWxkKEwsIDIsIG5hbWUp OyAgLyogX0xPQURFRFtuYW1lXSA9IHJldHVybmVkIHZhbHVlICovCi0gICBsdWFfZ2V0ZmllbGQo TCwgMiwgbmFtZSk7Ci0tICBpZiAobHVhX3RvdXNlcmRhdGEoTCwgLTEpID09IHNlbnRpbmVsKSB7 ICAgLyogbW9kdWxlIGRpZCBub3Qgc2V0IGEgdmFsdWU/ICovCi0rICBpZiAoKEwtPnRvcC0xKS0+ dTY0ID09IEtFWV9TRU5USU5FTCkgeyAgIC8qIG1vZHVsZSBkaWQgbm90IHNldCBhIHZhbHVlPyAq LwotICAgICBsdWFfcHVzaGJvb2xlYW4oTCwgMSk7ICAvKiB1c2UgdHJ1ZSBhcyByZXN1bHQgKi8K LSAgICAgbHVhX3B1c2h2YWx1ZShMLCAtMSk7ICAvKiBleHRyYSBjb3B5IHRvIGJlIHJldHVybmVk ICovCi0gICAgIGx1YV9zZXRmaWVsZChMLCAyLCBuYW1lKTsgIC8qIF9MT0FERURbbmFtZV0gPSB0 cnVlICovCi1JbmRleDogbHVhaml0L3NyYy9saWJfc3RyaW5nLmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBs dWFqaXQub3JpZy9zcmMvbGliX3N0cmluZy5jCi0rKysgbHVhaml0L3NyYy9saWJfc3RyaW5nLmMK LUBAIC03MTQsNyArNzE0LDcgQEAKLSAJbGpfc3RyZm10X3B1dGZjaGFyKHNiLCBzZiwgbGpfbGli X2NoZWNraW50KEwsIGFyZykpOwotIAlicmVhazsKLSAgICAgICBjYXNlIFNUUkZNVF9QVFI6ICAv KiBObyBmb3JtYXR0aW5nLiAqLwotLQlsal9zdHJmbXRfcHV0cHRyKHNiLCBsal9vYmpfcHRyKEwt PmJhc2UrYXJnLTEpKTsKLSsJbGpfc3RyZm10X3B1dHB0cihzYiwgbGpfb2JqX3B0cihHKEwpLCBM LT5iYXNlK2FyZy0xKSk7Ci0gCWJyZWFrOwotICAgICAgIGRlZmF1bHQ6Ci0gCWx1YV9hc3NlcnQo MCk7Ci1JbmRleDogbHVhaml0L3NyYy9sal9hcGkuYwotPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGx1YWppdC5v cmlnL3NyYy9sal9hcGkuYwotKysrIGx1YWppdC9zcmMvbGpfYXBpLmMKLUBAIC01OTUsNyArNTk1 LDcgQEAKLSAgIGlmICh0dmlzdWRhdGEobykpCi0gICAgIHJldHVybiB1ZGRhdGEodWRhdGFWKG8p KTsKLSAgIGVsc2UgaWYgKHR2aXNsaWdodHVkKG8pKQotLSAgICByZXR1cm4gbGlnaHR1ZFYobyk7 Ci0rICAgIHJldHVybiBsaWdodHVkVihHKEwpLCBvKTsKLSAgIGVsc2UKLSAgICAgcmV0dXJuIE5V TEw7Ci0gfQotQEAgLTYwOCw3ICs2MDgsNyBAQAotIAotIExVQV9BUEkgY29uc3Qgdm9pZCAqbHVh X3RvcG9pbnRlcihsdWFfU3RhdGUgKkwsIGludCBpZHgpCi0gewotLSAgcmV0dXJuIGxqX29ial9w dHIoaW5kZXgyYWRyKEwsIGlkeCkpOwotKyAgcmV0dXJuIGxqX29ial9wdHIoRyhMKSwgaW5kZXgy YWRyKEwsIGlkeCkpOwotIH0KLSAKLSAvKiAtLSBTdGFjayBzZXR0ZXJzIChvYmplY3QgY3JlYXRp b24pIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KLUBAIC02OTQsOSAr Njk0LDM4IEBACi0gICBpbmNyX3RvcChMKTsKLSB9Ci0gCi0rI2lmIExKXzY0Ci0rc3RhdGljIHZv aWQgKmxpZ2h0dWRfaW50ZXJuKGx1YV9TdGF0ZSAqTCwgdm9pZCAqcCkKLSt7Ci0rICBnbG9iYWxf U3RhdGUgKmcgPSBHKEwpOwotKyAgdWludDY0X3QgdSA9ICh1aW50NjRfdClwOwotKyAgdWludDMy X3QgdXAgPSBsaWdodHVkdXAodSk7Ci0rICB1aW50MzJfdCAqc2VnbWFwID0gbXJlZihnLT5nYy5s aWdodHVkc2VnLCB1aW50MzJfdCk7Ci0rICBNU2l6ZSBzZWdudW0gPSBnLT5nYy5saWdodHVkbnVt OwotKyAgaWYgKHNlZ21hcCkgewotKyAgICBNU2l6ZSBzZWc7Ci0rICAgIGZvciAoc2VnID0gMDsg c2VnIDw9IHNlZ251bTsgc2VnKyspCi0rICAgICAgaWYgKHNlZ21hcFtzZWddID09IHVwKSAgLyog RmFzdCBwYXRoLiAqLwotKwlyZXR1cm4gKHZvaWQgKikoKCh1aW50NjRfdClzZWcgPDwgTEpfTElH SFRVRF9CSVRTX0xPKSB8IGxpZ2h0dWRsbyh1KSk7Ci0rICAgIHNlZ251bSsrOwotKyAgfQotKyAg aWYgKCEoKHNlZ251bS0xKSAmIHNlZ251bSkgJiYgc2VnbnVtICE9IDEpIHsKLSsgICAgaWYgKHNl Z251bSA+PSAoMSA8PCBMSl9MSUdIVFVEX0JJVFNfU0VHKSkgbGpfZXJyX21zZyhMLCBMSl9FUlJf QkFETFUpOwotKyAgICBsal9tZW1fcmVhbGxvY3ZlYyhMLCBzZWdtYXAsIHNlZ251bSwgc2VnbnVt ID8gMipzZWdudW0gOiAydSwgdWludDMyX3QpOwotKyAgICBzZXRtcmVmKGctPmdjLmxpZ2h0dWRz ZWcsIHNlZ21hcCk7Ci0rICB9Ci0rICBnLT5nYy5saWdodHVkbnVtID0gc2VnbnVtOwotKyAgc2Vn bWFwW3NlZ251bV0gPSB1cDsKLSsgIHJldHVybiAodm9pZCAqKSgoKHVpbnQ2NF90KXNlZ251bSA8 PCBMSl9MSUdIVFVEX0JJVFNfTE8pIHwgbGlnaHR1ZGxvKHUpKTsKLSt9Ci0rI2VuZGlmCi0rCi0g TFVBX0FQSSB2b2lkIGx1YV9wdXNobGlnaHR1c2VyZGF0YShsdWFfU3RhdGUgKkwsIHZvaWQgKnAp Ci0gewotLSAgc2V0bGlnaHR1ZFYoTC0+dG9wLCBjaGVja2xpZ2h0dWRwdHIoTCwgcCkpOwotKyNp ZiBMSl82NAotKyAgcCA9IGxpZ2h0dWRfaW50ZXJuKEwsIHApOwotKyNlbmRpZgotKyAgc2V0cmF3 bGlnaHR1ZFYoTC0+dG9wLCBwKTsKLSAgIGluY3JfdG9wKEwpOwotIH0KLSAKLUBAIC0xMTM4LDcg KzExNjcsMTAgQEAKLSAgIGZuLT5jLmYgPSBmdW5jOwotICAgc2V0ZnVuY1YoTCwgdG9wKyssIGZu KTsKLSAgIGlmIChMSl9GUjIpIHNldG5pbFYodG9wKyspOwotLSAgc2V0bGlnaHR1ZFYodG9wKyss IGNoZWNrbGlnaHR1ZHB0cihMLCB1ZCkpOwotKyNpZiBMSl82NAotKyAgdWQgPSBsaWdodHVkX2lu dGVybihMLCB1ZCk7Ci0rI2VuZGlmCi0rICBzZXRyYXdsaWdodHVkVih0b3ArKywgdWQpOwotICAg Y2ZyYW1lX25yZXMoTC0+Y2ZyYW1lKSA9IDErMDsgIC8qIFplcm8gcmVzdWx0cy4gKi8KLSAgIEwt PnRvcCA9IHRvcDsKLSAgIHJldHVybiB0b3AtMTsgIC8qIE5vdyBjYWxsIHRoZSBuZXdseSBhbGxv Y2F0ZWQgQyBmdW5jdGlvbi4gKi8KLUluZGV4OiBsdWFqaXQvc3JjL2xqX2NjYWxsLmMKLT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KLS0tLSBsdWFqaXQub3JpZy9zcmMvbGpfY2NhbGwuYwotKysrIGx1YWppdC9zcmMvbGpf Y2NhbGwuYwotQEAgLTEzMTQsNyArMTMxNCw3IEBACi0gICAgIGxqX3ZtX2ZmaV9jYWxsKCZjYyk7 Ci0gICAgIGlmIChjdHMtPmNiLnNsb3QgIT0gfjB1KSB7ICAvKiBCbGFja2xpc3QgZnVuY3Rpb24g dGhhdCBjYWxsZWQgYSBjYWxsYmFjay4gKi8KLSAgICAgICBUVmFsdWUgdHY7Ci0tICAgICAgc2V0 bGlnaHR1ZFYoJnR2LCAodm9pZCAqKWNjLmZ1bmMpOwotKyAgICAgIHR2LnU2NCA9ICgodWludHB0 cl90KSh2b2lkICopY2MuZnVuYyA+PiAyKSB8IFU2NHgoODAwMDAwMDAwLCAwMDAwMDAwMCk7Ci0g ICAgICAgc2V0Ym9vbFYobGpfdGFiX3NldChMLCBjdHMtPm1pc2NtYXAsICZ0diksIDEpOwotICAg ICB9Ci0gICAgIGN0ID0gKENUeXBlICopKChpbnRwdHJfdCljdCsoaW50cHRyX3QpY3RzLT50YWIp OyAgLyogTWF5IGJlIHJlYWxsb2NhdGVkLiAqLwotSW5kZXg6IGx1YWppdC9zcmMvbGpfY2NvbnYu YwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0tIGx1YWppdC5vcmlnL3NyYy9sal9jY29udi5jCi0rKysgbHVhaml0 L3NyYy9sal9jY29udi5jCi1AQCAtNjExLDcgKzYxMSw3IEBACi0gICAgIGlmICh1ZC0+dWR0eXBl ID09IFVEVFlQRV9JT19GSUxFKQotICAgICAgIHRtcHB0ciA9ICoodm9pZCAqKil0bXBwdHI7Ci0g ICB9IGVsc2UgaWYgKHR2aXNsaWdodHVkKG8pKSB7Ci0tICAgIHRtcHB0ciA9IGxpZ2h0dWRWKG8p OwotKyAgICB0bXBwdHIgPSBsaWdodHVkVihjdHMtPmcsIG8pOwotICAgfSBlbHNlIGlmICh0dmlz ZnVuYyhvKSkgewotICAgICB2b2lkICpwID0gbGpfY2NhbGxiYWNrX25ldyhjdHMsIGQsIGZ1bmNW KG8pKTsKLSAgICAgaWYgKHApIHsKLUluZGV4OiBsdWFqaXQvc3JjL2xqX2NyZWNvcmQuYwotPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotLS0tIGx1YWppdC5vcmlnL3NyYy9sal9jcmVjb3JkLmMKLSsrKyBsdWFqaXQvc3Jj L2xqX2NyZWNvcmQuYwotQEAgLTY0Myw4ICs2NDMsNyBAQAotICAgICB9Ci0gICB9IGVsc2UgaWYg KHRyZWZfaXNsaWdodHVkKHNwKSkgewotICNpZiBMSl82NAotLSAgICBzcCA9IGVtaXRpcihJUlQo SVJfQkFORCwgSVJUX1A2NCksIHNwLAotLQkJbGpfaXJfa2ludDY0KEosIFU2NHgoMDAwMDdmZmYs ZmZmZmZmZmYpKSk7Ci0rICAgIGxqX3RyYWNlX2VycihKLCBMSl9UUkVSUl9OWUlDT05WKTsKLSAj ZW5kaWYKLSAgIH0gZWxzZSB7ICAvKiBOWUk6IHRyZWZfaXN0YWIoc3ApLiAqLwotICAgICBJUlR5 cGUgdDsKLUBAIC0xMjA5LDggKzEyMDgsNyBAQAotICAgICBUUmVmIHRyOwotICAgICBUVmFsdWUg dHY7Ci0gICAgIC8qIENoZWNrIGZvciBibGFja2xpc3RlZCBDIGZ1bmN0aW9ucyB0aGF0IG1pZ2h0 IGNhbGwgYSBjYWxsYmFjay4gKi8KLS0gICAgc2V0bGlnaHR1ZFYoJnR2LAotLQkJY2RhdGFfZ2V0 cHRyKGNkYXRhcHRyKGNkKSwgKExKXzY0ICYmIHRwID09IElSVF9QNjQpID8gOCA6IDQpKTsKLSsg ICAgdHYudTY0ID0gKCh1aW50cHRyX3QpY2RhdGFfZ2V0cHRyKGNkYXRhcHRyKGNkKSwgKExKXzY0 ICYmIHRwID09IElSVF9QNjQpID8gOCA6IDQpID4+IDIpIHwgVTY0eCg4MDAwMDAwMDAsIDAwMDAw MDAwKTsKLSAgICAgaWYgKHR2aXN0cnVlKGxqX3RhYl9nZXQoSi0+TCwgY3RzLT5taXNjbWFwLCAm dHYpKSkKLSAgICAgICBsal90cmFjZV9lcnIoSiwgTEpfVFJFUlJfQkxBQ0tMKTsKLSAgICAgaWYg KGN0eXBlX2lzdm9pZChjdHItPmluZm8pKSB7Ci1JbmRleDogbHVhaml0L3NyYy9sal9kaXNwYXRj aC5jCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci0tLS0gbHVhaml0Lm9yaWcvc3JjL2xqX2Rpc3BhdGNoLmMKLSsrKyBs dWFqaXQvc3JjL2xqX2Rpc3BhdGNoLmMKLUBAIC0zMDIsNyArMzAyLDcgQEAKLSAgICAgICBpZiAo aWR4ICE9IDApIHsKLSAJY1RWYWx1ZSAqdHYgPSBpZHggPiAwID8gTC0+YmFzZSArIChpZHgtMSkg OiBMLT50b3AgKyBpZHg7Ci0gCWlmICh0dmlzbGlnaHR1ZCh0dikpCi0tCSAgZy0+d3JhcGYgPSAo bHVhX0NGdW5jdGlvbilsaWdodHVkVih0dik7Ci0rCSAgZy0+d3JhcGYgPSAobHVhX0NGdW5jdGlv bilsaWdodHVkVihnLCB0dik7Ci0gCWVsc2UKLSAJICByZXR1cm4gMDsgIC8qIEZhaWxlZC4gKi8K LSAgICAgICB9IGVsc2UgewotSW5kZXg6IGx1YWppdC9zcmMvbGpfaXIuYwotPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot LS0tIGx1YWppdC5vcmlnL3NyYy9sal9pci5jCi0rKysgbHVhaml0L3NyYy9sal9pci5jCi1AQCAt Mzg2LDggKzM4NiwxMCBAQAotICAgY2FzZSBJUl9LUFJJOiBzZXRwcmlWKHR2LCBpcnRfdG9pdHlw ZShpci0+dCkpOyBicmVhazsKLSAgIGNhc2UgSVJfS0lOVDogc2V0aW50Vih0diwgaXItPmkpOyBi cmVhazsKLSAgIGNhc2UgSVJfS0dDOiBzZXRnY1YoTCwgdHYsIGlyX2tnYyhpciksIGlydF90b2l0 eXBlKGlyLT50KSk7IGJyZWFrOwotLSAgY2FzZSBJUl9LUFRSOiBjYXNlIElSX0tLUFRSOiBzZXRs aWdodHVkVih0diwgaXJfa3B0cihpcikpOyBicmVhazsKLS0gIGNhc2UgSVJfS05VTEw6IHNldGxp Z2h0dWRWKHR2LCBOVUxMKTsgYnJlYWs7Ci0rICBjYXNlIElSX0tQVFI6IGNhc2UgSVJfS0tQVFI6 Ci0rICAgIHNldG51bVYodHYsIChsdWFfTnVtYmVyKSh1aW50cHRyX3QpaXJfa3B0cihpcikpOwot KyAgICBicmVhazsKLSsgIGNhc2UgSVJfS05VTEw6IHNldGludFYodHYsIDApOyBicmVhazsKLSAg IGNhc2UgSVJfS05VTTogc2V0bnVtVih0diwgaXJfa251bShpciktPm4pOyBicmVhazsKLSAjaWYg TEpfSEFTRkZJCi0gICBjYXNlIElSX0tJTlQ2NDogewotSW5kZXg6IGx1YWppdC9zcmMvbGpfb2Jq LmMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tLSBsdWFqaXQub3JpZy9zcmMvbGpfb2JqLmMKLSsrKyBsdWFqaXQv c3JjL2xqX29iai5jCi1AQCAtMzQsMTIgKzM0LDEzIEBACi0gfQotIAotIC8qIFJldHVybiBwb2lu dGVyIHRvIG9iamVjdCBvciBpdHMgb2JqZWN0IGRhdGEuICovCi0tY29uc3Qgdm9pZCAqIExKX0ZB U1RDQUxMIGxqX29ial9wdHIoY1RWYWx1ZSAqbykKLStjb25zdCB2b2lkICogTEpfRkFTVENBTEwg bGpfb2JqX3B0cihnbG9iYWxfU3RhdGUgKmcsIGNUVmFsdWUgKm8pCi0gewotKyAgVU5VU0VEKGcp OwotICAgaWYgKHR2aXN1ZGF0YShvKSkKLSAgICAgcmV0dXJuIHVkZGF0YSh1ZGF0YVYobykpOwot ICAgZWxzZSBpZiAodHZpc2xpZ2h0dWQobykpCi0tICAgIHJldHVybiBsaWdodHVkVihvKTsKLSsg ICAgcmV0dXJuIGxpZ2h0dWRWKGcsIG8pOwotICAgZWxzZSBpZiAoTEpfSEFTRkZJICYmIHR2aXNj ZGF0YShvKSkKLSAgICAgcmV0dXJuIGNkYXRhcHRyKGNkYXRhVihvKSk7Ci0gICBlbHNlIGlmICh0 dmlzZ2N2KG8pKQotSW5kZXg6IGx1YWppdC9zcmMvbGpfb2JqLmgKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBs dWFqaXQub3JpZy9zcmMvbGpfb2JqLmgKLSsrKyBsdWFqaXQvc3JjL2xqX29iai5oCi1AQCAtMjMy LDcgKzIzMiw3IEBACi0gKiogICAgICAgICAgICAgICAgICAtLS1NU1ctLS0uLS0tTFNXLS0tCi0g KiogcHJpbWl0aXZlIHR5cGVzIHwgIGl0eXBlICB8ICAgICAgICAgfAotICoqIGxpZ2h0dXNlcmRh dGEgICB8ICBpdHlwZSAgfCAgdm9pZCAqIHwgICgzMiBiaXQgcGxhdGZvcm1zKQotLSoqIGxpZ2h0 dXNlcmRhdGEgICB8ZmZmZnwgICAgdm9pZCAqICAgIHwgICg2NCBiaXQgcGxhdGZvcm1zLCA0NyBi aXQgcG9pbnRlcnMpCi0rKiogbGlnaHR1c2VyZGF0YSAgIHxmZmZmfHNlZ3wgICAgb2ZzICAgfCAg KDY0IGJpdCBwbGF0Zm9ybXMpCi0gKiogR0Mgb2JqZWN0cyAgICAgIHwgIGl0eXBlICB8ICBHQ1Jl ZiAgfAotICoqIGludCAoTEpfRFVBTE5VTSl8ICBpdHlwZSAgfCAgIGludCAgIHwKLSAqKiBudW1i ZXIgICAgICAgICAgIC0tLS0tLS1kb3VibGUtLS0tLS0KLUBAIC0yNDUsNyArMjQ1LDggQEAKLSAq KgotICoqICAgICAgICAgICAgICAgICAgICAgLS0tLS0tTVNXLS0tLS0tLi0tLS0tLUxTVy0tLS0t LQotICoqIHByaW1pdGl2ZSB0eXBlcyAgICB8MS4uMXxpdHlwZXwxLi4uLi4uLi4uLi4uLi4uLi4u MXwKLS0qKiBHQyBvYmplY3RzL2xpZ2h0dWQgfDEuLjF8aXR5cGV8LS0tLS0tLUdDUmVmLS0tLS0t LS18Ci0rKiogR0Mgb2JqZWN0cyAgICAgICAgIHwxLi4xfGl0eXBlfC0tLS0tLS1HQ1JlZi0tLS0t LS0tfAotKyoqIGxpZ2h0dXNlcmRhdGEgICAgICB8MS4uMXxpdHlwZXxzZWd8LS0tLS0tb2ZzLS0t LS0tLXwKLSAqKiBpbnQgKExKX0RVQUxOVU0pICAgfDEuLjF8aXR5cGV8MC4uMHwtLS0tLWludC0t LS0tLS18Ci0gKiogbnVtYmVyICAgICAgICAgICAgICAtLS0tLS0tLS0tLS1kb3VibGUtLS0tLS0t LS0tLS0tCi0gKioKLUBAIC0yODUsNiArMjg2LDEyIEBACi0gI2RlZmluZSBMSl9HQ1ZNQVNLCQko KCh1aW50NjRfdCkxIDw8IDQ3KSAtIDEpCi0gI2VuZGlmCi0gCi0rI2lmIExKXzY0Ci0rLyogVG8g c3RheSB3aXRoaW4gNDcgYml0cywgbGlnaHR1c2VyZGF0YSBpcyBzZWdtZW50ZWQuICovCi0rI2Rl ZmluZSBMSl9MSUdIVFVEX0JJVFNfU0VHCTgKLSsjZGVmaW5lIExKX0xJR0hUVURfQklUU19MTwko NDcgLSBMSl9MSUdIVFVEX0JJVFNfU0VHKQotKyNlbmRpZgotKwotIC8qIC0tIFN0cmluZyBvYmpl Y3QgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSAqLwotIAotIC8qIFN0cmluZyBvYmplY3QgaGVhZGVyLiBTdHJpbmcgcGF5bG9hZCBmb2xsb3dz LiAqLwotQEAgLTU3Niw3ICs1ODMsMTEgQEAKLSAgIHVpbnQ4X3QgY3VycmVudHdoaXRlOwkvKiBD dXJyZW50IHdoaXRlIGNvbG9yLiAqLwotICAgdWludDhfdCBzdGF0ZTsJLyogR0Mgc3RhdGUuICov Ci0gICB1aW50OF90IG5vY2RhdGFmaW47CS8qIE5vIGNkYXRhIGZpbmFsaXplciBjYWxsZWQuICov Ci0tICB1aW50OF90IHVudXNlZDI7Ci0rI2lmIExKXzY0Ci0rICB1aW50OF90IGxpZ2h0dWRudW07 CS8qIE51bWJlciBvZiBsaWdodHVzZXJkYXRhIHNlZ21lbnRzIC0gMS4gKi8KLSsjZWxzZQotKyAg dWludDhfdCB1bnVzZWQxOwotKyNlbmRpZgotICAgTVNpemUgc3dlZXBzdHI7CS8qIFN3ZWVwIHBv c2l0aW9uIGluIHN0cmluZyB0YWJsZS4gKi8KLSAgIEdDUmVmIHJvb3Q7CQkvKiBMaXN0IG9mIGFs bCBjb2xsZWN0YWJsZSBvYmplY3RzLiAqLwotICAgTVJlZiBzd2VlcDsJCS8qIFN3ZWVwIHBvc2l0 aW9uIGluIHJvb3QgbGlzdC4gKi8KLUBAIC01ODgsNiArNTk5LDkgQEAKLSAgIEdDU2l6ZSBlc3Rp bWF0ZTsJLyogRXN0aW1hdGUgb2YgbWVtb3J5IGFjdHVhbGx5IGluIHVzZS4gKi8KLSAgIE1TaXpl IHN0ZXBtdWw7CS8qIEluY3JlbWVudGFsIEdDIHN0ZXAgZ3JhbnVsYXJpdHkuICovCi0gICBNU2l6 ZSBwYXVzZTsJCS8qIFBhdXNlIGJldHdlZW4gc3VjY2Vzc2l2ZSBHQyBjeWNsZXMuICovCi0rI2lm IExKXzY0Ci0rICBNUmVmIGxpZ2h0dWRzZWc7CS8qIFVwcGVyIGJpdHMgb2YgbGlnaHR1c2VyZGF0 YSBzZWdtZW50cy4gKi8KLSsjZW5kaWYKLSB9IEdDU3RhdGU7Ci0gCi0gLyogR2xvYmFsIHN0YXRl LCBzaGFyZWQgYnkgYWxsIHRocmVhZHMgb2YgYSBMdWEgdW5pdmVyc2UuICovCi1AQCAtNzk1LDEw ICs4MDksMjMgQEAKLSAjZW5kaWYKLSAjZGVmaW5lIGJvb2xWKG8pCWNoZWNrX2V4cCh0dmlzYm9v bChvKSwgKExKX1RGQUxTRSAtIGl0eXBlKG8pKSkKLSAjaWYgTEpfNjQKLS0jZGVmaW5lIGxpZ2h0 dWRWKG8pIFwKLS0gIGNoZWNrX2V4cCh0dmlzbGlnaHR1ZChvKSwgKHZvaWQgKikoKG8pLT51NjQg JiBVNjR4KDAwMDA3ZmZmLGZmZmZmZmZmKSkpCi0rI2RlZmluZSBsaWdodHVkc2VnKHUpIFwKLSsg ICgoKHUpID4+IExKX0xJR0hUVURfQklUU19MTykgJiAoKDEgPDwgTEpfTElHSFRVRF9CSVRTX1NF RyktMSkpCi0rI2RlZmluZSBsaWdodHVkbG8odSkgXAotKyAgKCh1KSAmICgoKHVpbnQ2NF90KTEg PDwgTEpfTElHSFRVRF9CSVRTX0xPKSAtIDEpKQotKyNkZWZpbmUgbGlnaHR1ZHVwKHApIFwKLSsg ICgodWludDMyX3QpKCgocCkgPj4gTEpfTElHSFRVRF9CSVRTX0xPKSA8PCAoTEpfTElHSFRVRF9C SVRTX0xPLTMyKSkpCi0rc3RhdGljIExKX0FJTkxJTkUgdm9pZCAqbGlnaHR1ZFYoZ2xvYmFsX1N0 YXRlICpnLCBjVFZhbHVlICpvKQotK3sKLSsgIHVpbnQ2NF90IHUgPSBvLT51NjQ7Ci0rICB1aW50 NjRfdCBzZWcgPSBsaWdodHVkc2VnKHUpOwotKyAgdWludDMyX3QgKnNlZ21hcCA9IG1yZWYoZy0+ Z2MubGlnaHR1ZHNlZywgdWludDMyX3QpOwotKyAgbHVhX2Fzc2VydCh0dmlzbGlnaHR1ZChvKSk7 Ci0rICBsdWFfYXNzZXJ0KHNlZyA8PSBnLT5nYy5saWdodHVkbnVtKTsKLSsgIHJldHVybiAodm9p ZCAqKSgoKHVpbnQ2NF90KXNlZ21hcFtzZWddIDw8IDMyKSB8IGxpZ2h0dWRsbyh1KSk7Ci0rfQot ICNlbHNlCi0tI2RlZmluZSBsaWdodHVkVihvKQljaGVja19leHAodHZpc2xpZ2h0dWQobyksIGdj cmVmcCgobyktPmdjciwgdm9pZCkpCi0rI2RlZmluZSBsaWdodHVkVihnLCBvKQljaGVja19leHAo dHZpc2xpZ2h0dWQobyksIGdjcmVmcCgobyktPmdjciwgdm9pZCkpCi0gI2VuZGlmCi0gI2RlZmlu ZSBnY1YobykJCWNoZWNrX2V4cCh0dmlzZ2N2KG8pLCBnY3ZhbChvKSkKLSAjZGVmaW5lIHN0clYo bykJCWNoZWNrX2V4cCh0dmlzc3RyKG8pLCAmZ2N2YWwobyktPnN0cikKLUBAIC04MjQsNyArODUx LDcgQEAKLSAjZGVmaW5lIHNldHByaVYobywgaSkJCShzZXRpdHlwZSgobyksIChpKSkpCi0gI2Vu ZGlmCi0gCi0tc3RhdGljIExKX0FJTkxJTkUgdm9pZCBzZXRsaWdodHVkVihUVmFsdWUgKm8sIHZv aWQgKnApCi0rc3RhdGljIExKX0FJTkxJTkUgdm9pZCBzZXRyYXdsaWdodHVkVihUVmFsdWUgKm8s IHZvaWQgKnApCi0gewotICNpZiBMSl9HQzY0Ci0gICBvLT51NjQgPSAodWludDY0X3QpcCB8ICgo KHVpbnQ2NF90KUxKX1RMSUdIVFVEKSA8PCA0Nyk7Ci1AQCAtODM1LDI0ICs4NjIsMTQgQEAKLSAj ZW5kaWYKLSB9Ci0gCi0tI2lmIExKXzY0Ci0tI2RlZmluZSBjaGVja2xpZ2h0dWRwdHIoTCwgcCkg XAotLSAgKCgodWludDY0X3QpKHApID4+IDQ3KSA/IChsal9lcnJfbXNnKEwsIExKX0VSUl9CQURM VSksIE5VTEwpIDogKHApKQotLSNlbHNlCi0tI2RlZmluZSBjaGVja2xpZ2h0dWRwdHIoTCwgcCkJ KHApCi0tI2VuZGlmCi0tCi0tI2lmIExKX0ZSMgotKyNpZiBMSl9GUjIgfHwgTEpfMzIKLSAjZGVm aW5lIGNvbnRwdHIoZikJCSgodm9pZCAqKShmKSkKLSAjZGVmaW5lIHNldGNvbnQobywgZikJCSgo byktPnU2NCA9ICh1aW50NjRfdCkodWludHB0cl90KWNvbnRwdHIoZikpCi0tI2VsaWYgTEpfNjQK LSsjZWxzZQotICNkZWZpbmUgY29udHB0cihmKSBcCi0gICAoKHZvaWQgKikodWludHB0cl90KSh1 aW50MzJfdCkoKGludHB0cl90KShmKSAtIChpbnRwdHJfdClsal92bV9hc21fYmVnaW4pKQotICNk ZWZpbmUgc2V0Y29udChvLCBmKSBcCi0gICAoKG8pLT51NjQgPSAodWludDY0X3QpKHZvaWQgKiko ZikgLSAodWludDY0X3QpbGpfdm1fYXNtX2JlZ2luKQotLSNlbHNlCi0tI2RlZmluZSBjb250cHRy KGYpCQkoKHZvaWQgKikoZikpCi0tI2RlZmluZSBzZXRjb250KG8sIGYpCQlzZXRsaWdodHVkVigo byksIGNvbnRwdHIoZikpCi0gI2VuZGlmCi0gCi0gI2RlZmluZSB0dmNoZWNrbGl2ZShMLCBvKSBc Ci1AQCAtOTc4LDYgKzk5NSw2IEBACi0gCi0gLyogQ29tcGFyZSB0d28gb2JqZWN0cyB3aXRob3V0 IGNhbGxpbmcgbWV0YW1ldGhvZHMuICovCi0gTEpfRlVOQyBpbnQgTEpfRkFTVENBTEwgbGpfb2Jq X2VxdWFsKGNUVmFsdWUgKm8xLCBjVFZhbHVlICpvMik7Ci0tTEpfRlVOQyBjb25zdCB2b2lkICog TEpfRkFTVENBTEwgbGpfb2JqX3B0cihjVFZhbHVlICpvKTsKLStMSl9GVU5DIGNvbnN0IHZvaWQg KiBMSl9GQVNUQ0FMTCBsal9vYmpfcHRyKGdsb2JhbF9TdGF0ZSAqZywgY1RWYWx1ZSAqbyk7Ci0g Ci0gI2VuZGlmCi1JbmRleDogbHVhaml0L3NyYy9sal9zbmFwLmMKLT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tLSBs dWFqaXQub3JpZy9zcmMvbGpfc25hcC5jCi0rKysgbHVhaml0L3NyYy9sal9zbmFwLmMKLUBAIC02 MjYsNyArNjI2LDEyIEBACi0gICBJUlR5cGUxIHQgPSBpci0+dDsKLSAgIFJlZ1NQIHJzID0gaXIt PnByZXY7Ci0gICBpZiAoaXJyZWZfaXNrKHJlZikpIHsgIC8qIFJlc3RvcmUgY29uc3RhbnQgc2xv dC4gKi8KLS0gICAgbGpfaXJfa3ZhbHVlKEotPkwsIG8sIGlyKTsKLSsgICAgaWYgKGlyLT5vID09 IElSX0tQVFIpIHsKLSsgICAgICBvLT51NjQgPSAodWludDY0X3QpKHVpbnRwdHJfdClpcl9rcHRy KGlyKTsKLSsgICAgfSBlbHNlIHsKLSsgICAgICBsdWFfYXNzZXJ0KCEoaXItPm8gPT0gSVJfS0tQ VFIgfHwgaXItPm8gPT0gSVJfS05VTEwpKTsKLSsgICAgICBsal9pcl9rdmFsdWUoSi0+TCwgbywg aXIpOwotKyAgICB9Ci0gICAgIHJldHVybjsKLSAgIH0KLSAgIGlmIChMSl9VTkxJS0VMWShibG9v bXRlc3QocmZpbHQsIHJlZikpKQotSW5kZXg6IGx1YWppdC9zcmMvbGpfc3RhdGUuYwotPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQotLS0tIGx1YWppdC5vcmlnL3NyYy9sal9zdGF0ZS5jCi0rKysgbHVhaml0L3NyYy9sal9z dGF0ZS5jCi1AQCAtMTcxLDYgKzE3MSwxMiBAQAotICAgbGpfbWVtX2ZyZWV2ZWMoZywgZy0+c3Ry aGFzaCwgZy0+c3RybWFzaysxLCBHQ1JlZik7Ci0gICBsal9idWZfZnJlZShnLCAmZy0+dG1wYnVm KTsKLSAgIGxqX21lbV9mcmVldmVjKGcsIHR2cmVmKEwtPnN0YWNrKSwgTC0+c3RhY2tzaXplLCBU VmFsdWUpOwotKyNpZiBMSl82NAotKyAgaWYgKG1yZWYoZy0+Z2MubGlnaHR1ZHNlZywgdWludDMy X3QpKSB7Ci0rICAgIE1TaXplIHNlZ251bSA9IGctPmdjLmxpZ2h0dWRudW0gPyAoMiA8PCBsal9m bHMoZy0+Z2MubGlnaHR1ZG51bSkpIDogMjsKLSsgICAgbGpfbWVtX2ZyZWV2ZWMoZywgbXJlZihn LT5nYy5saWdodHVkc2VnLCB1aW50MzJfdCksIHNlZ251bSwgdWludDMyX3QpOwotKyAgfQotKyNl bmRpZgotICAgbHVhX2Fzc2VydChnLT5nYy50b3RhbCA9PSBzaXplb2YoR0dfU3RhdGUpKTsKLSAj aWZuZGVmIExVQUpJVF9VU0VfU1lTTUFMTE9DCi0gICBpZiAoZy0+YWxsb2NmID09IGxqX2FsbG9j X2YpCi1JbmRleDogbHVhaml0L3NyYy9sal9zdHJmbXQuYwotPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0tIGx1YWpp dC5vcmlnL3NyYy9sal9zdHJmbXQuYwotKysrIGx1YWppdC9zcmMvbGpfc3RyZm10LmMKLUBAIC0z OTMsNyArMzkzLDcgQEAKLSAgICAgICBwID0gbGpfYnVmX3dtZW0ocCwgImJ1aWx0aW4jIiwgOCk7 Ci0gICAgICAgcCA9IGxqX3N0cmZtdF93aW50KHAsIGZ1bmNWKG8pLT5jLmZmaWQpOwotICAgICB9 IGVsc2UgewotLSAgICAgIHAgPSBsal9zdHJmbXRfd3B0cihwLCBsal9vYmpfcHRyKG8pKTsKLSsg ICAgICBwID0gbGpfc3RyZm10X3dwdHIocCwgbGpfb2JqX3B0cihHKEwpLCBvKSk7Ci0gICAgIH0K LSAgICAgcmV0dXJuIGxqX3N0cl9uZXcoTCwgYnVmLCAoc2l6ZV90KShwIC0gYnVmKSk7Ci0gICB9 CmRpZmYgLS1naXQgYS9zcmNwa2dzL0x1YUpJVC9wYXRjaGVzL2VuYWJsZS1kZWJ1Zy1zeW1ib2xz LnBhdGNoIGIvc3JjcGtncy9MdWFKSVQvcGF0Y2hlcy9lbmFibGUtZGVidWctc3ltYm9scy5wYXRj aAppbmRleCA5NmU0YzkxMDZhY2Y5Li5hYzJhOTY3Yzk3NGQ0IDEwMDY0NAotLS0gYS9zcmNwa2dz L0x1YUpJVC9wYXRjaGVzL2VuYWJsZS1kZWJ1Zy1zeW1ib2xzLnBhdGNoCisrKyBiL3NyY3BrZ3Mv THVhSklUL3BhdGNoZXMvZW5hYmxlLWRlYnVnLXN5bWJvbHMucGF0Y2gKQEAgLTEsMTYgKzEsOCBA QAotRnJvbTogPT91dGYtOD9xP09uZD1DNT05OWVqX1N1cj1DMz1CRD89IDxvbmRyZWpAc3VyeS5v cmc+Ci1EYXRlOiBUdWUsIDE3IE5vdiAyMDE1IDE2OjI3OjExICswMTAwCi1TdWJqZWN0OiBFbmFi bGUgZGVidWdnaW5nIHN5bWJvbHMgaW4gdGhlIGJ1aWxkCi0KLS0tLQotIHNyYy9NYWtlZmlsZSB8 IDQgKystLQotIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0p Ci0KLWRpZmYgLS1naXQgc3JjL01ha2VmaWxlIHNyYy9NYWtlZmlsZQotaW5kZXggOGEzOGVmZC4u NmI3M2E4OSAxMDA2NDQKK2RpZmYgLS1naXQgYS9zcmMvTWFrZWZpbGUgYi9zcmMvTWFrZWZpbGUK K2luZGV4IDNhNmE0MzIuLmI2MDY5MjcgMTAwNjQ0CiAtLS0gYS9zcmMvTWFrZWZpbGUKICsrKyBi L3NyYy9NYWtlZmlsZQotQEAgLTU0LDkgKzU0LDkgQEAgQ0NPUFRfYXJtNjQ9CitAQCAtNTMsOSAr NTMsOSBAQCBDQ09QVF9hcm02ND0KICBDQ09QVF9wcGM9CiAgQ0NPUFRfbWlwcz0KICAjCmRpZmYg LS1naXQgYS9zcmNwa2dzL0x1YUpJVC9wYXRjaGVzL2ZpeC1iY3NhdmUtcHBjNjQucGF0Y2ggYi9z cmNwa2dzL0x1YUpJVC9wYXRjaGVzL2ZpeC1iY3NhdmUtcHBjNjQucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IGY1M2UyMTEwNzEwNjMuLjAwMDAwMDAwMDAwMDAKLS0tIGEvc3Jj cGtncy9MdWFKSVQvcGF0Y2hlcy9maXgtYmNzYXZlLXBwYzY0LnBhdGNoCisrKyAvZGV2L251bGwK QEAgLTEsMzMgKzAsMCBAQAotLS0tIGEvc3JjL2ppdC9iY3NhdmUubHVhCTIwMTgtMTItMTcgMTk6 MDY6MjcuMjE1MDQyNDE3ICswMTAwCi0rKysgYi9zcmMvaml0L2Jjc2F2ZS5sdWEJMjAxOC0xMi0x NyAxOToxNzoxMi45ODI0Nzc5NDUgKzAxMDAKLUBAIC02NCw3ICs2NCw3IEBACi0gCi0gbG9jYWwg bWFwX2FyY2ggPSB7Ci0gICB4ODYgPSB0cnVlLCB4NjQgPSB0cnVlLCBhcm0gPSB0cnVlLCBhcm02 NCA9IHRydWUsIGFybTY0YmUgPSB0cnVlLAotLSAgcHBjID0gdHJ1ZSwgbWlwcyA9IHRydWUsIG1p cHNlbCA9IHRydWUsCi0rICBwcGMgPSB0cnVlLCBwcGM2NCA9IHRydWUsIHBwYzY0bGUgPSB0cnVl LCBtaXBzID0gdHJ1ZSwgbWlwc2VsID0gdHJ1ZSwKLSB9Ci0gCi0gbG9jYWwgbWFwX29zID0gewot QEAgLTIwMCw5ICsyMDAsMTAgQEAKLSBdXQotICAgbG9jYWwgc3ltbmFtZSA9IExKQkNfUFJFRklY Li5jdHgubW9kbmFtZQotICAgbG9jYWwgaXM2NCwgaXNiZSA9IGZhbHNlLCBmYWxzZQotLSAgaWYg Y3R4LmFyY2ggPT0gIng2NCIgb3IgY3R4LmFyY2ggPT0gImFybTY0IiBvciBjdHguYXJjaCA9PSAi YXJtNjRiZSIgdGhlbgotKyAgaWYgY3R4LmFyY2ggPT0gIng2NCIgb3IgY3R4LmFyY2ggPT0gImFy bTY0IiBvciBjdHguYXJjaCA9PSAiYXJtNjRiZSIgb3IgY3R4LmFyY2ggPT0gInBwYzY0IiBvciBj dHguYXJjaCA9PSAicHBjNjRsZSIgdGhlbgotICAgICBpczY0ID0gdHJ1ZQotLSAgZWxzZWlmIGN0 eC5hcmNoID09ICJwcGMiIG9yIGN0eC5hcmNoID09ICJtaXBzIiB0aGVuCi0rICBlbmQKLSsgIGlm IGN0eC5hcmNoID09ICJwcGMiIG9yIGN0eC5hcmNoID09ICJwcGM2NCIgb3IgY3R4LmFyY2ggPT0g Im1pcHMiIHRoZW4KLSAgICAgaXNiZSA9IHRydWUKLSAgIGVuZAotIAotQEAgLTIzNyw3ICsyMzgs NyBAQAotICAgaGRyLmVlbmRpYW4gPSBpc2JlIGFuZCAyIG9yIDEKLSAgIGhkci5ldmVyc2lvbiA9 IDEKLSAgIGhkci50eXBlID0gZjE2KDEpCi0tICBoZHIubWFjaGluZSA9IGYxNigoeyB4ODY9Mywg eDY0PTYyLCBhcm09NDAsIGFybTY0PTE4MywgYXJtNjRiZT0xODMsIHBwYz0yMCwgbWlwcz04LCBt aXBzZWw9OCB9KVtjdHguYXJjaF0pCi0rICBoZHIubWFjaGluZSA9IGYxNigoeyB4ODY9MywgeDY0 PTYyLCBhcm09NDAsIGFybTY0PTE4MywgYXJtNjRiZT0xODMsIHBwYz0yMCwgcHBjNjQ9MjEsIHBw YzY0bGU9MjEsIG1pcHM9OCwgbWlwc2VsPTggfSlbY3R4LmFyY2hdKQotICAgaWYgY3R4LmFyY2gg PT0gIm1pcHMiIG9yIGN0eC5hcmNoID09ICJtaXBzZWwiIHRoZW4KLSAgICAgaGRyLmZsYWdzID0g ZjMyKDB4NTAwMDEwMDYpCi0gICBlbmQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvTHVhSklUL3BhdGNo ZXMvZ2V0LXJpZC1vZi1sdWFqaXQtdmVyc2lvbi1zeW0ucGF0Y2ggYi9zcmNwa2dzL0x1YUpJVC9w YXRjaGVzL2dldC1yaWQtb2YtbHVhaml0LXZlcnNpb24tc3ltLnBhdGNoCmluZGV4IDU5ZTFlZTcy ZmNiYjguLjIwNzc2MjI2M2RlNTMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvTHVhSklUL3BhdGNoZXMv Z2V0LXJpZC1vZi1sdWFqaXQtdmVyc2lvbi1zeW0ucGF0Y2gKKysrIGIvc3JjcGtncy9MdWFKSVQv cGF0Y2hlcy9nZXQtcmlkLW9mLWx1YWppdC12ZXJzaW9uLXN5bS5wYXRjaApAQCAtMSwxOCArMSw4 IEBACi1Gcm9tOiA9P3V0Zi04P3E/T25kPUM1PTk5ZWpfU3VyPUMzPUJEPz0gPG9uZHJlakBzdXJ5 Lm9yZz4KLURhdGU6IFRodSwgMTkgTm92IDIwMTUgMTY6Mjk6MDIgKzAyMDAKLVN1YmplY3Q6IEdl dCByaWQgb2YgTFVBSklUX1ZFUlNJT05fU1lNIHRoYXQgY2hhbmdlcyBBQkkgb24gZXZlcnkgcGF0 Y2ggcmVsZWFzZQotCi0tLS0KLSBzcmMvbGpfZGlzcGF0Y2guYyB8IDUgLS0tLS0KLSBzcmMvbHVh aml0LmMgICAgICB8IDIgLS0KLSBzcmMvbHVhaml0LmggICAgICB8IDMgLS0tCi0gMyBmaWxlcyBj aGFuZ2VkLCAxMCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBzcmMvbGpfZGlzcGF0Y2guYyBz cmMvbGpfZGlzcGF0Y2guYwotaW5kZXggNWQ2Nzk1Zi4uZTg2NWE3OCAxMDA2NDQKK2RpZmYgLS1n aXQgYS9zcmMvbGpfZGlzcGF0Y2guYyBiL3NyYy9sal9kaXNwYXRjaC5jCitpbmRleCA3YjY2YmU3 Li42ZDMxYTYxIDEwMDY0NAogLS0tIGEvc3JjL2xqX2Rpc3BhdGNoLmMKICsrKyBiL3NyYy9sal9k aXNwYXRjaC5jCi1AQCAtMzE5LDExICszMTksNiBAQCBpbnQgbHVhSklUX3NldG1vZGUobHVhX1N0 YXRlICpMLCBpbnQgaWR4LCBpbnQgbW9kZSkKK0BAIC0zMTgsMTEgKzMxOCw2IEBAIGludCBsdWFK SVRfc2V0bW9kZShsdWFfU3RhdGUgKkwsIGludCBpZHgsIGludCBtb2RlKQogICAgcmV0dXJuIDE7 ICAvKiBPSy4gKi8KICB9CiAgCkBAIC0yNCwyMyArMTQsMjIgQEAgaW5kZXggNWQ2Nzk1Zi4uZTg2 NWE3OCAxMDA2NDQKICAvKiAtLSBIb29rcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KICAKICAvKiBUaGlzIGZ1bmN0aW9u IGNhbiBiZSBjYWxsZWQgYXN5bmNocm9ub3VzbHkgKGUuZy4gZHVyaW5nIGEgc2lnbmFsKS4gKi8K LWRpZmYgLS1naXQgc3JjL2x1YWppdC5jIHNyYy9sdWFqaXQuYwotaW5kZXggMWNhMjQzMC4uY2Nm NDI1ZSAxMDA2NDQKK2RpZmYgLS1naXQgYS9zcmMvbHVhaml0LmMgYi9zcmMvbHVhaml0LmMKK2lu ZGV4IDczZTI5ZDQuLjMxZmRiYTEgMTAwNjQ0CiAtLS0gYS9zcmMvbHVhaml0LmMKICsrKyBiL3Ny Yy9sdWFqaXQuYwotQEAgLTUxNiw4ICs1MTYsNiBAQCBzdGF0aWMgaW50IHBtYWluKGx1YV9TdGF0 ZSAqTCkKK0BAIC01MTUsNyArNTE1LDYgQEAgc3RhdGljIGludCBwbWFpbihsdWFfU3RhdGUgKkwp CisgICBpbnQgYXJnbjsKKyAgIGludCBmbGFncyA9IDA7CiAgICBnbG9iYWxMID0gTDsKLSAgIGlm IChhcmd2WzBdICYmIGFyZ3ZbMF1bMF0pIHByb2duYW1lID0gYXJndlswXTsKLSAKIC0gIExVQUpJ VF9WRVJTSU9OX1NZTSgpOyAgLyogTGlua2VyLWVuZm9yY2VkIHZlcnNpb24gY2hlY2suICovCi0t CisgCiAgICBhcmduID0gY29sbGVjdGFyZ3MoYXJndiwgJmZsYWdzKTsKICAgIGlmIChhcmduIDwg MCkgeyAgLyogSW52YWxpZCBhcmdzPyAqLwotICAgICBwcmludF91c2FnZSgpOwotZGlmZiAtLWdp dCBzcmMvbHVhaml0Lmggc3JjL2x1YWppdC5oCi1pbmRleCA3MDhhNWExLi4zNWFlMDJjIDEwMDY0 NAotLS0tIGEvc3JjL2x1YWppdC5oCi0rKysgYi9zcmMvbHVhaml0LmgKK2RpZmYgLS1naXQgYS9z cmMvbHVhaml0X3JvbGxpbmcuaCBiL3NyYy9sdWFqaXRfcm9sbGluZy5oCitpbmRleCBlNTY0NDc3 Li4xYzdjMTQyIDEwMDY0NAorLS0tIGEvc3JjL2x1YWppdF9yb2xsaW5nLmgKKysrKyBiL3NyYy9s dWFqaXRfcm9sbGluZy5oCiBAQCAtNzMsNyArNzMsNCBAQCBMVUFfQVBJIHZvaWQgbHVhSklUX3By b2ZpbGVfc3RvcChsdWFfU3RhdGUgKkwpOwogIExVQV9BUEkgY29uc3QgY2hhciAqbHVhSklUX3By b2ZpbGVfZHVtcHN0YWNrKGx1YV9TdGF0ZSAqTCwgY29uc3QgY2hhciAqZm10LAogIAkJCQkJICAg ICBpbnQgZGVwdGgsIHNpemVfdCAqbGVuKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvTHVhSklUL3Bh dGNoZXMvdW5wb2xsdXRlLWdsb2JhbC1uYW1lc3BhY2UucGF0Y2ggYi9zcmNwa2dzL0x1YUpJVC9w YXRjaGVzL3VucG9sbHV0ZS1nbG9iYWwtbmFtZXNwYWNlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBhZWRhYWNiYWFlYTQ2Li4wMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv THVhSklUL3BhdGNoZXMvdW5wb2xsdXRlLWdsb2JhbC1uYW1lc3BhY2UucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyMSArMCwwIEBACi1Gcm9tOiA9P3V0Zi04P3E/T25kPUM1PTk5ZWpfU3VyPUMz PUJEPz0gPG9uZHJlakBzdXJ5Lm9yZz4KLURhdGU6IFdlZCwgMTEgT2N0IDIwMTcgMDg6NDI6NDEg KzAwMDAKLVN1YmplY3Q6IE1ha2UgY2NhbGxfY29weV9zdHJ1Y3Qgc3RhdGljIHRvIHVucG9sbHV0 ZSBnbG9iYWwgbGlicmFyeSBuYW1lc3BhY2UKLQotLS0tCi0gc3JjL2xqX2NjYWxsLmMgfCAyICst Ci0gMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRpZmYg LS1naXQgc3JjL2xqX2NjYWxsLmMgc3JjL2xqX2NjYWxsLmMKLWluZGV4IGI4OTE1OTEuLmE3ZGNj MWIgMTAwNjQ0Ci0tLS0gYS9zcmMvbGpfY2NhbGwuYwotKysrIGIvc3JjL2xqX2NjYWxsLmMKLUBA IC05NjAsNyArOTYwLDcgQEAgbm90aDogIC8qIE5vdCBhIGhvbW9nZW5lb3VzIGZsb2F0L2RvdWJs ZSBhZ2dyZWdhdGUuICovCi0gICByZXR1cm4gMDsgIC8qIFN0cnVjdCBpcyBpbiBHUFJzLiAqLwot IH0KLSAKLS12b2lkIGNjYWxsX2NvcHlfc3RydWN0KENDYWxsU3RhdGUgKmNjLCBDVHlwZSAqY3Ry LCB2b2lkICpkcCwgdm9pZCAqc3AsIGludCBmdCkKLStzdGF0aWMgdm9pZCBjY2FsbF9jb3B5X3N0 cnVjdChDQ2FsbFN0YXRlICpjYywgQ1R5cGUgKmN0ciwgdm9pZCAqZHAsIHZvaWQgKnNwLCBpbnQg ZnQpCi0gewotICAgaWYgKExKX0FCSV9TT0ZURlAgPyBmdCA6Ci0gICAgICAgKChmdCAmIDMpID09 IEZUWVBFX0ZMT0FUIHx8IChmdCA+PiAyKSA9PSBGVFlQRV9GTE9BVCkpIHsKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvTHVhSklUL3RlbXBsYXRlIGIvc3JjcGtncy9MdWFKSVQvdGVtcGxhdGUKaW5kZXgg ODU0NDlhYzNkNmY3My4uNzBiNDkxNDdlOThhNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9MdWFKSVQv dGVtcGxhdGUKKysrIGIvc3JjcGtncy9MdWFKSVQvdGVtcGxhdGUKQEAgLTEsNzEgKzEsNTggQEAK ICMgVGVtcGxhdGUgZmlsZSBmb3IgJ0x1YUpJVCcKIHBrZ25hbWU9THVhSklUCi12ZXJzaW9uPTIu MS4wYmV0YTMKLXJldmlzaW9uPTIKLV9zb192ZXJzaW9uPTIuMS4wCi1fZGlzdF92ZXJzaW9uPSR7 X3NvX3ZlcnNpb259LWJldGEzCit2ZXJzaW9uPTIuMS4xNjkyNTgwNzE1CityZXZpc2lvbj0xCitf ZGlzdF92ZXJzaW9uPTIuMS5ST0xMSU5HCitidWlsZF9zdHlsZT1nbnUtbWFrZWZpbGUKIGhvc3Rt YWtlZGVwZW5kcz0ibHVhNTItQml0T3AiCiBzaG9ydF9kZXNjPSJKdXN0LUluLVRpbWUgQ29tcGls ZXIgZm9yIEx1YSIKIG1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4Lm9yZz4i CiBsaWNlbnNlPSJNSVQiCiBob21lcGFnZT0iaHR0cDovL3d3dy5sdWFqaXQub3JnIgotZGlzdGZp bGVzPSJodHRwOi8vbHVhaml0Lm9yZy9kb3dubG9hZC8ke3BrZ25hbWV9LSR7X2Rpc3RfdmVyc2lv bn0udGFyLmd6IgotY2hlY2tzdW09MWFkMmUzNGIxMTFjODAyZjlkMGNkZjAxOWU5ODY5MDkxMjMy MzdhMjhjNzQ2YjIxMjk1YjYzYzllNzg1ZDljMworZGlzdGZpbGVzPSJodHRwczovL3JlcG8ub3Iu Y3ovbHVhaml0LTIuMC5naXQvc25hcHNob3QvcmVmcy90YWdzL3Yke19kaXN0X3ZlcnNpb259LnRh ci5neiIKK2NoZWNrc3VtPWU0YjJlMTI3ZGVmOWI3YzdmYTk3MTYxYzRkMmYzNWQxZDI3M2E4Yzcz Yzg3MzRmOTdiYzU0MjA4MzI0ZThmZWEKIAogYnVpbGRfb3B0aW9ucz0ibHVhNTJjb21wYXQiCitk ZXNjX29wdGlvbl9sdWE1MmNvbXBhdD0iaGlnaGVyIGNvbXBhdGliaWxpdHkgd2l0aCBsdWEgNS4y IgogCi1fY3Jvc3NfY2M9ImNjIgotaWYgWyAiJFhCUFNfV09SRFNJWkUiICE9ICIkWEJQU19UQVJH RVRfV09SRFNJWkUiIF07IHRoZW4KLQlpZiBbICIke1hCUFNfTUFDSElORS8tbXVzbC99IiA9ICJ4 ODZfNjQiIF07IHRoZW4KLQkJaG9zdG1ha2VkZXBlbmRzKz0iIGNyb3NzLWk2ODYtbGludXgtbXVz bCIKLQkJX2Nyb3NzX2NjPSJpNjg2LWxpbnV4LW11c2wtZ2NjIC1zdGF0aWMiCi0JZWxzZQotCQli cm9rZW49Ikhvc3QgYW5kIHRhcmdldCB3b3Jkc2l6ZSBtdXN0IG1hdGNoIgorX2hvc3RfY2M9ImNj IgoraWYgWyAtbiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaWYgWyAiJFhCUFNfV09SRFNJWkUi ICE9ICIkWEJQU19UQVJHRVRfV09SRFNJWkUiIF07IHRoZW4KKwkJaWYgWyAiJHtYQlBTX01BQ0hJ TkUlJS0qfSIgPSAieDg2XzY0IiBdOyB0aGVuCisJCQlob3N0bWFrZWRlcGVuZHMrPSIgY3Jvc3Mt aTY4Ni1saW51eC1tdXNsIgorCQkJX2hvc3RfY2M9Imk2ODYtbGludXgtbXVzbC1nY2MgLXN0YXRp YyIKKwkJZWxzZQorCQkJYnJva2VuPSJIb3N0IGFuZCB0YXJnZXQgd29yZHNpemUgbXVzdCBtYXRj aCB3aGVuIG5vdCBvbiB4ODZfNjQiCisJCWZpCiAJZmkKLWZpCiAKLSMgdGhlIHBwYzY0IHBhdGNo c2V0IHN1YnRseSBicmVha3MgcHBjLCBuZWVkcyBpbnZlc3RpZ2F0aW9uOyBmb3IKLSMgbm93IGFw cGx5IHBhdGNoZXMgY29uZGl0aW9uYWxseSwgc2VwYXJhdGVseSBmb3IgcHBjNjQgYW5kIHBwYwot cG9zdF9wYXRjaCgpIHsKLQlsb2NhbCBwYXRjaGRpcgorCW1ha2VfYnVpbGRfYXJncys9IiBDUk9T Uz0ke1hCUFNfQ1JPU1NfVFJJUExFVH0tIgorZmkKIAotCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgotCQlwcGM2NCopIHBhdGNoZGlyPSJwcGM2NCI7OwotCQlwcGMqKSBwYXRjaGRpcj0i cHBjIjs7Ci0JCSopIHJldHVybjs7Ci0JZXNhYworcHJlX2J1aWxkKCkgeworCWlmIFsgIiRidWls ZF9vcHRpb25fbHVhNTJjb21wYXQiIF07IHRoZW4KKwkJbWFrZV9idWlsZF9hcmdzKz0iIFhDRkxB R1M9LURMVUFKSVRfRU5BQkxFX0xVQTUyQ09NUEFUIgorCWZpCiAKLQlmb3IgaSBpbiAke0ZJTEVT RElSfS9wYXRjaGVzLyR7cGF0Y2hkaXJ9LyoucGF0Y2g7IGRvCi0JCW1zZ19ub3JtYWwgInBhdGNo aW5nOiAkaVxuIgotCQlwYXRjaCAtc05wMSAtaSAke2l9Ci0JZG9uZQorCSMgbHVhaml0IGdldHMg aXRzIGxvd2VzdCB2ZXJzaW9uIGZyb20gdGhpcyBmaWxlIGlmIG5vdCB1c2luZyBnaXQKKwlwcmlu dGYgJyVzJyAiJHt2ZXJzaW9uIyMqLn0iID4gIiR7d3Jrc3JjfS8ucmVsdmVyIgogfQogCiBkb19i dWlsZCgpIHsKKwkjIGlmIHdlIGRvbid0IHVuc2V0LCB0aGUgYnVpbGQgZmFpbHMgdG8gY3Jvc3Mt Y29tcGlsZQorCSMgZHVlIHRvIGNvbmZsaWN0aW9uIHdpdGggdGhlIG1ha2VmaWxlIG1hY3Jvcwog CWxvY2FsIF9jZmxhZ3M9JENGTEFHUwogCWxvY2FsIF9sZGZsYWdzPSRMREZMQUdTCi0KLQlpZiBb ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQkJbG9jYWwgY3Jvc3M9IkNST1NTPSR7WEJQU19DUk9T U19UUklQTEVUfS0iCi0JZmkKLQotCWlmIFsgIiRidWlsZF9vcHRpb25fbHVhNTJjb21wYXQiIF07 IHRoZW4KLQkJbG9jYWwgX3hjZmxhZ3M9IlhDRkxBR1M9LURMVUFKSVRfRU5BQkxFX0xVQTUyQ09N UEFUIgotCWZpCi0KIAl1bnNldCBDRkxBR1MgTERGTEFHUwotCW1ha2UgJHttYWtlam9ic30gUFJF RklYPS91c3IgSE9TVF9MVUE9bHVhNS4yIEhPU1RfQ0M9IiR7X2Nyb3NzX2NjfSIgXAorCisJbWFr ZSAke21ha2Vqb2JzfSBQUkVGSVg9L3VzciBIT1NUX0xVQT1sdWE1LjIgXAogCQlIT1NUX0NGTEFH Uz0iJFhCUFNfQ0ZMQUdTIiBIT1NUX0xERkxBR1M9IiRYQlBTX0xERkxBR1MiIFwKIAkJVEFSR0VU X0NGTEFHUz0iJHtfY2ZsYWdzfSIgVEFSR0VUX0xERkxBR1M9IiR7X2xkZmxhZ3N9IiBcCi0JCSR7 X3hjZmxhZ3N9ICR7Y3Jvc3N9CisJCUhPU1RfQ0M9IiR7X2hvc3RfY2N9IiAke21ha2VfYnVpbGRf YXJnc30KIH0KIAotZG9faW5zdGFsbCgpIHsKLQltYWtlIERQUkVGSVg9JHtERVNURElSfS91c3Ig REVTVERJUj0ke0RFU1RESVJ9IFwKLQkJSU5TVEFMTF9TSEFSRT0ke0RFU1RESVJ9L3Vzci9zaGFy ZSBQUkVGSVg9L3VzciBpbnN0YWxsCi0KK3Bvc3RfaW5zdGFsbCgpIHsKIAltdiAke0RFU1RESVJ9 L3Vzci9iaW4vbHVhaml0LSogJHtERVNURElSfS91c3IvYmluL2x1YWppdAotCWxuIC1mcyBsaWJs dWFqaXQtNS4xLnNvLiR7X3NvX3ZlcnNpb259ICR7REVTVERJUn0vdXNyL2xpYi9saWJsdWFqaXQt NS4xLnNvLjIKIAl2bGljZW5zZSBDT1BZUklHSFQKIH0KIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9M dWFKSVQvdXBkYXRlIGIvc3JjcGtncy9MdWFKSVQvdXBkYXRlCmluZGV4IDE1NjEzOTEwNjc3Yzku Ljk2YmJiZDQ1M2MzMmMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvTHVhSklUL3VwZGF0ZQorKysgYi9z cmNwa2dzL0x1YUpJVC91cGRhdGUKQEAgLTEgKzEgQEAKLXNpdGU9Imh0dHA6Ly9sdWFqaXQub3Jn L2Rvd25sb2FkLmh0bWwiCitkaXNhYmxlZD0iaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUgZ2l2ZW4g cmVsZWFzZSBzdHlsZSBhbmQgdmVyc2lvbmluZyBzY2hlbWUiCg== --===============6592981340872790619==--