X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 6D05CDC0265 for ; Thu, 4 Jun 2015 13:54:48 +0000 (UTC) Received: from ataiki.ednos.net (ednos.dserver.softronics.ch [91.214.168.83]) by mail.alpinelinux.org (Postfix) with ESMTP id 0A985DC0263 for ; Thu, 4 Jun 2015 13:54:42 +0000 (UTC) Received: from localhost.localdomain (pool-71-174-117-13.bstnma.fios.verizon.net [71.174.117.13]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ataiki.ednos.net (Postfix) with ESMTPSA id 9A4911744; Thu, 4 Jun 2015 09:57:08 -0400 (EDT) From: Andrew Hills To: alpine-aports@lists.alpinelinux.org Cc: Andrew Hills Subject: [alpine-aports] [PATCH] main/libbsd: update to version 0.7.0 Date: Thu, 4 Jun 2015 13:54:32 +0000 Message-Id: <1433426072-24416-1-git-send-email-ahills@ednos.net> X-Mailer: git-send-email 2.4.2 X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Virus-Scanned: ClamAV using ClamSMTP UmVmZXJlbmNlcyB0byBmdW5vcGVuKCkgd2VyZSBhbGwgcmVtb3ZlZCwgc2luY2UgbGliYnNkJ3Mg aW1wbGVtZW50YXRpb24NCmRlcGVuZHMgb24gZ2xpYmMncyBmb3BlbmNvb2tpZSgpLg0KLS0tDQog bWFpbi9saWJic2QvQVBLQlVJTEQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjQg Ky0NCiAuLi5yY2Vfc2V0cHJvY3RpdGxlX2ludG9fLmluaXRfYXJyYXlfc2VjdGlvbi5wYXRjaCB8 ICA3NyAtLS0NCiBtYWluL2xpYmJzZC9yZW1vdmUtZnVub3Blbi5wYXRjaCAgICAgICAgICAgICAg ICAgICB8IDcyMCArKysrKysrKysrKysrKysrKysrKysNCiAzIGZpbGVzIGNoYW5nZWQsIDczMiBp bnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi9s aWJic2QvUmV2ZXJ0X0ZvcmNlX3NldHByb2N0aXRsZV9pbnRvXy5pbml0X2FycmF5X3NlY3Rpb24u cGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgbWFpbi9saWJic2QvcmVtb3ZlLWZ1bm9wZW4ucGF0 Y2gNCg0KZGlmZiAtLWdpdCBhL21haW4vbGliYnNkL0FQS0JVSUxEIGIvbWFpbi9saWJic2QvQVBL QlVJTEQNCmluZGV4IDBiNjMxNjguLjc3ZWE4MmQgMTAwNjQ0DQotLS0gYS9tYWluL2xpYmJzZC9B UEtCVUlMRA0KKysrIGIvbWFpbi9saWJic2QvQVBLQlVJTEQNCkBAIC0xLDggKzEsOCBAQA0KICMg Q29udHJpYnV0b3I6IFdpbGxpYW0gUGl0Y29jayA8bmVub2xvZEBkZXJlZmVyZW5jZWQub3JnPg0K ICMgTWFpbnRhaW5lcjogV2lsbGlhbSBQaXRjb2NrIDxuZW5vbG9kQGRlcmVmZXJlbmNlZC5vcmc+ DQogcGtnbmFtZT1saWJic2QNCi1wa2d2ZXI9MC42LjANCi1wa2dyZWw9MQ0KK3BrZ3Zlcj0wLjcu MA0KK3BrZ3JlbD0wDQogcGtnZGVzYz0iY29tbW9ubHktdXNlZCBCU0QgZnVuY3Rpb25zIG5vdCBp bXBsZW1lbnRlZCBieSBhbGwgbGliY3MiDQogdXJsPSJodHRwOi8vbGliYnNkLmZyZWVkZXNrdG9w Lm9yZy8iDQogYXJjaD0ieDg2IHg4Nl82NCINCkBAIC0xNCw4ICsxNCw4IEBAIG1ha2VkZXBlbmRz PSIkZGVwZW5kc19kZXYgYXV0b2NvbmYgYXV0b21ha2UgbGlidG9vbCBic2QtY29tcGF0LWhlYWRl cnMNCiBpbnN0YWxsPSIiDQogc3VicGFja2FnZXM9IiRwa2duYW1lLWRldiAkcGtnbmFtZS1kb2Mi DQogc291cmNlPSJodHRwOi8vbGliYnNkLmZyZWVkZXNrdG9wLm9yZy9yZWxlYXNlcy9saWJic2Qt JHBrZ3Zlci50YXIueHoNCi0JUmV2ZXJ0X0ZvcmNlX3NldHByb2N0aXRsZV9pbnRvXy5pbml0X2Fy cmF5X3NlY3Rpb24ucGF0Y2gNCiAJbXVzbC1maXgtaGVhZGVycy5wYXRjaA0KKwlyZW1vdmUtZnVu b3Blbi5wYXRjaA0KIAkiDQogDQogX2J1aWxkZGlyPSIkc3JjZGlyIi9saWJic2QtJHBrZ3Zlcg0K QEAgLTQ5LDEyICs0OSwxMiBAQCBwYWNrYWdlKCkgew0KIAlybSAtZiAiJHBrZ2RpciIvdXNyL2xp Yi8qLmxhDQogfQ0KIA0KLW1kNXN1bXM9ImY2Yzc1ZjBhOTgxOGUzMjNhNTg5YmNiZDU2MGEwZWI0 ICBsaWJic2QtMC42LjAudGFyLnh6DQotNjI4YTg2MDY2ZjhhMTIyMmM3ZmZlZTVhYTNkNDg4ZWYg IFJldmVydF9Gb3JjZV9zZXRwcm9jdGl0bGVfaW50b18uaW5pdF9hcnJheV9zZWN0aW9uLnBhdGNo DQotNzEyZmNhOWM3MThmOGIwZjRkNjY0YzIxNDA3MmQ2YjMgIG11c2wtZml4LWhlYWRlcnMucGF0 Y2giDQotc2hhMjU2c3Vtcz0iOWU4ZjM0ZmZhOWM4NTc5Yzg3OTY1YTU1YTgyZDhhYzM3YTFkYzY0 ODU4ZjcxN2I3YzQ5NDUyYWRlMjc3Y2M2MiAgbGliYnNkLTAuNi4wLnRhci54eg0KLWE0NDk3ZGVm Y2MxNGQwNGU0MDcxMzA5MzFlZDg5YzZiOWU1ZTc5YzY4NDg4NDI5MWNjMDgwYzZlOTBjODI3Nzcg IFJldmVydF9Gb3JjZV9zZXRwcm9jdGl0bGVfaW50b18uaW5pdF9hcnJheV9zZWN0aW9uLnBhdGNo DQotMzA4MmQ1ZjQ3YzZkODk1ZGMzNTQ2ZDUxN2JhN2Q1NDE2MDI4NzJmMDBkNWIzOTg1MmEwYjI4 YjNkNzRjZTk1NCAgbXVzbC1maXgtaGVhZGVycy5wYXRjaCINCi1zaGE1MTJzdW1zPSJkNzUwZWFk MjhlNzY5MzhhYjhkOWM1NTc1YzFjODdiY2YyNzU3NTRmOWY4MmIxOWQ2NDdmNTIyYmZhZjA3ZTVh ODVkYzQ3ZWQ1ZmFhZTA5Mzk5NGU1NDU2YmU4MDZmZGViYjU1ZWVlZWQ3NGVmZmYzYzk1MGRmYjYx NDJlMmI1YyAgbGliYnNkLTAuNi4wLnRhci54eg0KLTUyZDNlNjlhMjU4OWRjMjk5YmNjNWNhOTli Y2Y1OTVkMDU0YmU0YzhiNmIyY2U0MTAxZDc2NTdhNTRmZWNjNGJjODQzYjQ0MzlmMGM5YjU4MjI2 NjU1OTI4ODIyMGIzNDJmOTI2ZTcwMGU3YWU3ZTkxYmYyOWYwYWUzMGQ3MDdmICBSZXZlcnRfRm9y Y2Vfc2V0cHJvY3RpdGxlX2ludG9fLmluaXRfYXJyYXlfc2VjdGlvbi5wYXRjaA0KLTg3YTQzMzcx MDg3NzZjZjhmZjA1YmU1OTM4YjNjOGE1NDhhNGRkNTYyNWFlOGU0YWZiYWI1NGM0YzA2YWYyODcx ODhhODEyMTM2MzM1NDBhODJjMDdlOTBiMDI4YjYxNmYzMDkzNGIwMmU4YWI3NDg1ZWZhMGFlMGFm ZGYyMGVlICBtdXNsLWZpeC1oZWFkZXJzLnBhdGNoIg0KK21kNXN1bXM9ImZjY2ViNGU2NmZkNDQ4 Y2E0ZWQ0MmJhMjJhOGJhYmIwICBsaWJic2QtMC43LjAudGFyLnh6DQorNzEyZmNhOWM3MThmOGIw ZjRkNjY0YzIxNDA3MmQ2YjMgIG11c2wtZml4LWhlYWRlcnMucGF0Y2gNCitjM2JiYjg0MGRmZDdk ZDA1Yzg3YWQ0ZGE4MGU2YmFmMiAgcmVtb3ZlLWZ1bm9wZW4ucGF0Y2giDQorc2hhMjU2c3Vtcz0i MGYzYjBlMTdlNWMzNGMwMzgxMjZlMGEwNDM1MWIxMWUyM2M2MTAxYTdkMGNlM2JlZWFiMjliYjY0 MTVjMTBiYiAgbGliYnNkLTAuNy4wLnRhci54eg0KKzMwODJkNWY0N2M2ZDg5NWRjMzU0NmQ1MTdi YTdkNTQxNjAyODcyZjAwZDViMzk4NTJhMGIyOGIzZDc0Y2U5NTQgIG11c2wtZml4LWhlYWRlcnMu cGF0Y2gNCis4OTMzODI0NjcxYTUyODIyNjU2OGNmYWI5YWRiZDlhMzBjOTcwZmE3NDcxODI3OWQ1 NzM1ZDQ5YjUyMTU4M2MzICByZW1vdmUtZnVub3Blbi5wYXRjaCINCitzaGE1MTJzdW1zPSIyYzRj OGZiMmFlN2ZiNWU1YWFiOTBmN2E1OWE2NzkyMjA5MjJkZmVlYWYwZDU0ZjgwOTc2OTE0ZmNkNTA3 MTcxYmI5MzU5ZjA4MzdjMzI0OTllNjNhMGYzZTkzNDJjOWRjZDM4N2E0NjZiMzU5ZDIwZTM3OTBk ZGM4Y2ExN2NlYSAgbGliYnNkLTAuNy4wLnRhci54eg0KKzg3YTQzMzcxMDg3NzZjZjhmZjA1YmU1 OTM4YjNjOGE1NDhhNGRkNTYyNWFlOGU0YWZiYWI1NGM0YzA2YWYyODcxODhhODEyMTM2MzM1NDBh ODJjMDdlOTBiMDI4YjYxNmYzMDkzNGIwMmU4YWI3NDg1ZWZhMGFlMGFmZGYyMGVlICBtdXNsLWZp eC1oZWFkZXJzLnBhdGNoDQorNDFmNTE1MDcwODZmMzU3YjgzMTBhZGEzMzE5MGE0MWQxZWVlMDJl MjEyNTljZjEwMWFiNDZiZDE4ZTI1YmQ0YWFiOGI1NmFiZWUzZDRlMGY5NTc2YTdlMjI0ZGU2MWM4 Y2YyNDhhMmY4M2E3ZmVhZTFkOWYyMmZmZjU0ZDY4MmMgIHJlbW92ZS1mdW5vcGVuLnBhdGNoIg0K ZGlmZiAtLWdpdCBhL21haW4vbGliYnNkL1JldmVydF9Gb3JjZV9zZXRwcm9jdGl0bGVfaW50b18u aW5pdF9hcnJheV9zZWN0aW9uLnBhdGNoIGIvbWFpbi9saWJic2QvUmV2ZXJ0X0ZvcmNlX3NldHBy b2N0aXRsZV9pbnRvXy5pbml0X2FycmF5X3NlY3Rpb24ucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggNWQ1YjIxNS4uMDAwMDAwMA0KLS0tIGEvbWFpbi9saWJic2QvUmV2ZXJ0 X0ZvcmNlX3NldHByb2N0aXRsZV9pbnRvXy5pbml0X2FycmF5X3NlY3Rpb24ucGF0Y2gNCisrKyAv ZGV2L251bGwNCkBAIC0xLDc3ICswLDAgQEANCi1kaWZmIC1ydXBOIGEvY29uZmlndXJlLmFjIGIv Y29uZmlndXJlLmFjDQotLS0tIGEvY29uZmlndXJlLmFjCTIwMTMtMDctMTQgMTM6MzQ6MDcuMDAw MDAwMDAwICswMjAwDQotKysrIGIvY29uZmlndXJlLmFjCTIwMTMtMTEtMTIgMTA6Mjc6MzkuOTg2 MTE3MDM5ICswMTAwDQotQEAgLTYwLDUxICs2MCw2IEBAIEFDX0NIRUNLX0RFQ0woW0ZfQ0xPU0VN XSwNCi0gICAgICAgICAgICAgICBbI2luY2x1ZGUgPGxpbWl0cy5oPg0KLSAgICAgICAgICAgICAg ICAjaW5jbHVkZSA8ZmNudGwuaD5dKQ0KLSANCi0tQUNfQ0FDSEVfQ0hFQ0soDQotLQlbZm9yIEdO VSAuaW5pdF9hcnJheSBzZWN0aW9uIHN1cHBvcnRdLA0KLS0JW2xpYmJzZF9jdl9nbnVfaW5pdF9h cnJheV9zdXBwb3J0XSwNCi0tCVtBQ19SVU5fSUZFTFNFKA0KLS0JCVtBQ19MQU5HX1NPVVJDRSgN Ci0tW1sNCi0tc3RhdGljIGludCByYyA9IDE7DQotLXN0YXRpYyB2b2lkIGluaXQoaW50IGFyZ2Mp IHsgaWYgKGFyZ2MgPT0gMSkgcmMgPSAwOyB9DQotLXZvaWQgKCppbml0X2Z1bmMpKGludCBhcmdj KSBfX2F0dHJpYnV0ZV9fKChzZWN0aW9uKCIuaW5pdF9hcnJheSIpKSkgPSBpbml0Ow0KLS1pbnQg bWFpbigpIHsgcmV0dXJuIHJjOyB9DQotLV1dDQotLQkJKV0sDQotLQkJW2xpYmJzZF9jdl9nbnVf aW5pdF9hcnJheV9zdXBwb3J0PXllc10sDQotLQkJW2xpYmJzZF9jdl9nbnVfaW5pdF9hcnJheV9z dXBwb3J0PW5vXSwNCi0tCQlbQUNfUFJFUFJPQ19JRkVMU0UoDQotLQkJCVtBQ19MQU5HX1NPVVJD RSgNCi0tW1sNCi0tLyogTG9vayBmb3IgYSBrbm93biBsaWJjIHRoYXQgc3VwcG9ydHMgLmluaXRf YXJyYXkgd2l0aCB0aGUgR05VIGV4dGVuc2lvbg0KLS0gKiB0byBwYXNzIG1haW4oKSBhcmd1bWVu dHMgdG8gdGhlIGluaXQgZnVuY3Rpb25zLiAqLw0KLS0jaW5jbHVkZSA8c3RkbGliLmg+DQotLSNp ZiBkZWZpbmVkIF9fR0xJQkNfUFJFUkVRDQotLSMgIGlmIF9fR0xJQkNfUFJFUkVRKDIsIDQpDQot LS8qIGdsaWJjIHN1cHBvcnRzIEdOVSAuaW5pdF9hcnJheSBzaW5jZSAyLjQuICovDQotLSMgIGVs c2UNCi0tIyAgICBlcnJvciBnbGliYyBkb2VzIG5vdCBzdXBwb3J0IEdOVSAuaW5pdF9hcnJheQ0K LS0jICBlbmRpZg0KLS0jZWxzZQ0KLS0vKg0KLS0gKiBCYXNpYyBTeXNWIEFCSSAuaW5pdF9hcnJh eSBzdXBwb3J0LCBpbml0IGZ1bmN0aW9ucyBkbyBub3QgZ2V0IGFyZ3VtZW50czoNCi0tICogLSBC aW9uaWMgc2luY2UgaXRzIGluY2VwdGlvbi4NCi0tICogLSB1Q2xpYmMgc2luY2UgMC45LjI5Lg0K LS0gKi8NCi0tIyAgZXJyb3IgdW5rbm93biB3aGV0aGVyIGxpYmMgc3VwcG9ydHMgR05VIC5pbml0 X2FycmF5DQotLSNlbmRpZg0KLS1dXQ0KLS0JCQkpXSwNCi0tCQkJW2xpYmJzZF9jdl9nbnVfaW5p dF9hcnJheV9zdXBwb3J0PXllc10sDQotLQkJCVtsaWJic2RfY3ZfZ251X2luaXRfYXJyYXlfc3Vw cG9ydD1ub10pDQotLQkJXQ0KLS0JKV0NCi0tKQ0KLS1pZiB0ZXN0ICIkbGliYnNkX2N2X2dudV9p bml0X2FycmF5X3N1cHBvcnQiID0gbm87IHRoZW4NCi0tCUFDX01TR19FUlJPUihbbWlzc2luZyBy ZXF1aXJlZCBHTlUgLmluaXRfYXJyYXkgc2VjdGlvbiBzdXBwb3J0XSkNCi0tZmkNCi0tDQotICMg Q2hlY2tzIGZvciBsaWJyYXJ5IGZ1bmN0aW9ucy4NCi0gQUNfTVNHX0NIRUNLSU5HKFtmb3IgcHJv Z3JhbV9pbnZvY2F0aW9uX3Nob3J0X25hbWVdKQ0KLSBBQ19MSU5LX0lGRUxTRSgNCi1kaWZmIC1y dXBOIGEvc3JjL3NldHByb2N0aXRsZS5jIGIvc3JjL3NldHByb2N0aXRsZS5jDQotLS0tIGEvc3Jj L3NldHByb2N0aXRsZS5jCTIwMTMtMDctMTQgMTM6MzQ6MDcuMDAwMDAwMDAwICswMjAwDQotKysr IGIvc3JjL3NldHByb2N0aXRsZS5jCTIwMTMtMTEtMTIgMTA6Mjg6NTUuMzMyNzg3ODgxICswMTAw DQotQEAgLTEsNiArMSw2IEBADQotIC8qDQotICAqIENvcHlyaWdodCDCqSAyMDEwIFdpbGxpYW0g QWhlcm4NCi0tICogQ29weXJpZ2h0IMKpIDIwMTItMjAxMyBHdWlsbGVtIEpvdmVyIDxndWlsbGVt QGhhZHJvbnMub3JnPg0KLSsgKiBDb3B5cmlnaHQgwqkgMjAxMiBHdWlsbGVtIEpvdmVyIDxndWls bGVtQGhhZHJvbnMub3JnPg0KLSAgKg0KLSAgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVk LCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQ0KLSAgKiBjb3B5IG9m IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlDQot QEAgLTE1NSw4ICsxNTUsOCBAQCBzcHRfY29weWFyZ3MoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkN Ci0gCXJldHVybiAwOw0KLSB9DQotIA0KLS12b2lkDQotLXNldHByb2N0aXRsZV9pbml0KGludCBh cmdjLCBjaGFyICphcmd2W10sIGNoYXIgKmVudnBbXSkNCi0rc3RhdGljIHZvaWQNCi0rc3B0X2lu aXQoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgY2hhciAqZW52cFtdKQ0KLSB7DQotIAljaGFyICpi YXNlLCAqZW5kLCAqbnVsLCAqdG1wOw0KLSAJaW50IGksIGVudmMsIGVycm9yOw0KZGlmZiAtLWdp dCBhL21haW4vbGliYnNkL3JlbW92ZS1mdW5vcGVuLnBhdGNoIGIvbWFpbi9saWJic2QvcmVtb3Zl LWZ1bm9wZW4ucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5kNjI4 NzdiDQotLS0gL2Rldi9udWxsDQorKysgYi9tYWluL2xpYmJzZC9yZW1vdmUtZnVub3Blbi5wYXRj aA0KQEAgLTAsMCArMSw3MjAgQEANCitkaWZmIC11ck4gbGliYnNkLTAuNy4wL2luY2x1ZGUvYnNk L3N0ZGlvLmggbGliYnNkLTAuNy4wLXBhdGNoL2luY2x1ZGUvYnNkL3N0ZGlvLmgNCistLS0gbGli YnNkLTAuNy4wL2luY2x1ZGUvYnNkL3N0ZGlvLmgJMjAxMy0xMC0yMSAwMzo0MjowNC4wMDAwMDAw MDAgKzAwMDANCisrKysgbGliYnNkLTAuNy4wLXBhdGNoL2luY2x1ZGUvYnNkL3N0ZGlvLmgJMjAx NS0wNi0wNCAxMzozMjoyMC45Nzg2MzMyNjIgKzAwMDANCitAQCAtNDYsMjMgKzQ2LDYgQEANCisg DQorIGNoYXIgKmZnZXRsbihGSUxFICpmcCwgc2l6ZV90ICpsZW5wKTsNCisgDQorLS8qDQorLSAq IE5vdGU6IFdlIGRpdmVyZ2UgZnJvbSB0aGUgRnJlZUJTRCwgT3BlbkJTRCBhbmQgRHJhZ29uRmx5 QlNEIGRlY2xhcmF0aW9ucywNCistICogYmVjYXVzZSBzZWVrZm4oKSB0aGVyZSB3cm9uZ2x5IHVz ZXMgZnBvc190LCBhc3N1bWluZyBpdCdzIGFuIGludGVncmFsDQorLSAqIHR5cGUsIGFuZCBhbnkg Y29kZSB1c2luZyB0aGF0IG9uIGEgc3lzdGVtIHdoZXJlIGZwb3NfdCBpcyBhIHN0cnVjdA0KKy0g KiAoc3VjaCBhcyBHTlUtYmFzZWQgc3lzdGVtcyBvciBOZXRCU0QpIHdpbGwgZmFpbCB0byBidWls ZC4gSW4gd2hpY2ggY2FzZSwNCistICogYXMgdGhlIGNvZGUgaGFzIHRvIGJlIG1vZGlmaWVkIGFu eXdheSwgd2UgbWlnaHQganVzdCBhcyB3ZWxsIHVzZSB0aGUNCistICogY29ycmVjdCBkZWNsYXJh dGlvbiBoZXJlLg0KKy0gKi8NCistRklMRSAqZnVub3Blbihjb25zdCB2b2lkICpjb29raWUsDQor LSAgICAgICAgICAgICAgaW50ICgqcmVhZGZuKSh2b2lkICpjb29raWUsIGNoYXIgKmJ1ZiwgaW50 IHNpemUpLA0KKy0gICAgICAgICAgICAgIGludCAoKndyaXRlZm4pKHZvaWQgKmNvb2tpZSwgY29u c3QgY2hhciAqYnVmLCBpbnQgc2l6ZSksDQorLSAgICAgICAgICAgICAgb2ZmX3QgKCpzZWVrZm4p KHZvaWQgKmNvb2tpZSwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKSwNCistICAgICAgICAgICAg ICBpbnQgKCpjbG9zZWZuKSh2b2lkICpjb29raWUpKTsNCistDQorLSNkZWZpbmUgZnJvcGVuKGNv b2tpZSwgZm4pIGZ1bm9wZW4oY29va2llLCBmbiwgTlVMTCwgTlVMTCwgTlVMTCkNCistI2RlZmlu ZSBmd29wZW4oY29va2llLCBmbikgZnVub3Blbihjb29raWUsIE5VTEwsIGZuLCBOVUxMLCBOVUxM KQ0KKy0NCisgaW50IGZwdXJnZShGSUxFICpmcCk7DQorIF9fRU5EX0RFQ0xTDQorIA0KK2RpZmYg LXVyTiBsaWJic2QtMC43LjAvbWFuL01ha2VmaWxlLmFtIGxpYmJzZC0wLjcuMC1wYXRjaC9tYW4v TWFrZWZpbGUuYW0NCistLS0gbGliYnNkLTAuNy4wL21hbi9NYWtlZmlsZS5hbQkyMDE0LTA3LTE3 IDAzOjA2OjI5LjAwMDAwMDAwMCArMDAwMA0KKysrKyBsaWJic2QtMC43LjAtcGF0Y2gvbWFuL01h a2VmaWxlLmFtCTIwMTUtMDYtMDQgMTM6MzI6NDMuMDM4NjgwMjAyICswMDAwDQorQEAgLTI4LDcg KzI4LDYgQEANCisgCWZsb3Blbi4zIFwNCisgCWZtdGNoZWNrLjMgXA0KKyAJZnBhcnNlbG4uMyBc DQorLQlmdW5vcGVuLjMgXA0KKyAJZ2V0YnNpemUuMyBcDQorIAlnZXRtb2RlLjMgXA0KKyAJZ2V0 cGVlcmVpZC4zIFwNCitkaWZmIC11ck4gbGliYnNkLTAuNy4wL21hbi9NYWtlZmlsZS5pbiBsaWJi c2QtMC43LjAtcGF0Y2gvbWFuL01ha2VmaWxlLmluDQorLS0tIGxpYmJzZC0wLjcuMC9tYW4vTWFr ZWZpbGUuaW4JMjAxNC0wNy0yOSAwMToxOTo1OS4wMDAwMDAwMDAgKzAwMDANCisrKysgbGliYnNk LTAuNy4wLXBhdGNoL21hbi9NYWtlZmlsZS5pbgkyMDE1LTA2LTA0IDEzOjMyOjQ1LjkyNTM1MzAw OSArMDAwMA0KK0BAIC0yODIsNyArMjgyLDYgQEANCisgCWZsb3Blbi4zIFwNCisgCWZtdGNoZWNr LjMgXA0KKyAJZnBhcnNlbG4uMyBcDQorLQlmdW5vcGVuLjMgXA0KKyAJZ2V0YnNpemUuMyBcDQor IAlnZXRtb2RlLjMgXA0KKyAJZ2V0cGVlcmVpZC4zIFwNCitkaWZmIC11ck4gbGliYnNkLTAuNy4w L21hbi9mdW5vcGVuLjMgbGliYnNkLTAuNy4wLXBhdGNoL21hbi9mdW5vcGVuLjMNCistLS0gbGli YnNkLTAuNy4wL21hbi9mdW5vcGVuLjMJMjAxMy0xMC0yMSAwMzo0MjowNC4wMDAwMDAwMDAgKzAw MDANCisrKysgbGliYnNkLTAuNy4wLXBhdGNoL21hbi9mdW5vcGVuLjMJMTk3MC0wMS0wMSAwMDow MDowMC4wMDAwMDAwMDAgKzAwMDANCitAQCAtMSwxOTEgKzAsMCBAQA0KKy0uXCIgQ29weXJpZ2h0 IChjKSAxOTkwLCAxOTkxLCAxOTkzDQorLS5cIglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0 eSBvZiBDYWxpZm9ybmlhLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4NCistLlwiDQorLS5cIiBUaGlz IGNvZGUgaXMgZGVyaXZlZCBmcm9tIHNvZnR3YXJlIGNvbnRyaWJ1dGVkIHRvIEJlcmtlbGV5IGJ5 DQorLS5cIiBDaHJpcyBUb3Jlay4NCistLlwiIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291 cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0KKy0uXCIgbW9kaWZpY2F0aW9u LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zDQor LS5cIiBhcmUgbWV0Og0KKy0uXCIgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11 c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCistLlwiICAgIG5vdGljZSwgdGhpcyBsaXN0 IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4NCistLlwiIDIuIFJl ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w eXJpZ2h0DQorLS5cIiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQorLS5cIiAgICBkb2N1bWVudGF0aW9uIGFuZC9v ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLg0KKy0uXCIg NC4gTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBub3IgdGhlIG5hbWVzIG9mIGl0 cyBjb250cmlidXRvcnMNCistLlwiICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90 ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZQ0KKy0uXCIgICAgd2l0aG91dCBz cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorLS5cIg0KKy0uXCIgVEhJUyBTT0ZU V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgUkVHRU5UUyBBTkQgQ09OVFJJQlVUT1JTIGBgQVMgSVMn JyBBTkQNCistLlwiIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQ0KKy0uXCIgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UNCistLlwi IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIFJFR0VOVFMgT1IgQ09OVFJJ QlVUT1JTIEJFIExJQUJMRQ0KKy0uXCIgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwNCistLlwiIERBTUFHRVMg KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF IEdPT0RTDQorLS5cIiBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7 IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikNCistLlwiIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUDQorLS5c IiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg QVJJU0lORyBJTiBBTlkgV0FZDQorLS5cIiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GDQorLS5cIiBTVUNIIERBTUFH RS4NCistLlwiDQorLS5cIiAgICAgQCgjKWZ1bm9wZW4uMwk4LjEgKEJlcmtlbGV5KSA2LzkvOTMN CistLlwiICRGcmVlQlNEJA0KKy0uXCINCistLkRkIE1hcmNoIDE5LCAyMDA0DQorLS5EdCBGVU5P UEVOIDMNCistLk9zDQorLS5TaCBOQU1FDQorLS5ObSBmdW5vcGVuICwNCistLk5tIGZyb3BlbiAs DQorLS5ObSBmd29wZW4NCistLk5kIG9wZW4gYSBzdHJlYW0NCistLlNoIExJQlJBUlkNCistLmRz IHN0ci1MYi1saWJic2QgVXRpbGl0eSBmdW5jdGlvbnMgZnJvbSBCU0Qgc3lzdGVtcyAobGliYnNk LCBcLWxic2QpDQorLS5MYiBsaWJic2QNCistLlNoIFNZTk9QU0lTDQorLS5JbiBic2Qvc3RkaW8u aA0KKy0uRnQgRklMRSAqDQorLS5GbiBmdW5vcGVuICJjb25zdCB2b2lkICpjb29raWUiICJpbnQg KCpyZWFkZm4pKHZvaWQgKiwgY2hhciAqLCBpbnQpIiAiaW50ICgqd3JpdGVmbikodm9pZCAqLCBj b25zdCBjaGFyICosIGludCkiICJvZmZfdCAoKnNlZWtmbikodm9pZCAqLCBvZmZfdCwgaW50KSIg ImludCAoKmNsb3NlZm4pKHZvaWQgKikiDQorLS5GdCBGSUxFICoNCistLkZuIGZyb3BlbiAidm9p ZCAqY29va2llIiAiaW50ICgqcmVhZGZuKSh2b2lkICosIGNoYXIgKiwgaW50KSINCistLkZ0IEZJ TEUgKg0KKy0uRm4gZndvcGVuICJ2b2lkICpjb29raWUiICJpbnQgKCp3cml0ZWZuKSh2b2lkICos IGNvbnN0IGNoYXIgKiwgaW50KSINCistLlNoIERFU0NSSVBUSU9ODQorLVRoZQ0KKy0uRm4gZnVu b3Blbg0KKy1mdW5jdGlvbg0KKy1hc3NvY2lhdGVzIGEgc3RyZWFtIHdpdGggdXAgdG8gZm91cg0K Ky0uRHEgVG4gSS9PIE5vIGZ1bmN0aW9ucyAuDQorLUVpdGhlcg0KKy0uRmEgcmVhZGZuDQorLW9y DQorLS5GYSB3cml0ZWZuDQorLW11c3QgYmUgc3BlY2lmaWVkOw0KKy10aGUgb3RoZXJzIGNhbiBi ZSBnaXZlbiBhcyBhbiBhcHByb3ByaWF0ZWx5LXR5cGVkDQorLS5EdiBOVUxMDQorLXBvaW50ZXIu DQorLVRoZXNlDQorLS5UbiBJL08NCistZnVuY3Rpb25zIHdpbGwgYmUgdXNlZCB0byByZWFkLCB3 cml0ZSwgc2VlayBhbmQNCistY2xvc2UgdGhlIG5ldyBzdHJlYW0uDQorLS5QcA0KKy1JbiBnZW5l cmFsLCBvbWl0dGluZyBhIGZ1bmN0aW9uIG1lYW5zIHRoYXQgYW55IGF0dGVtcHQgdG8gcGVyZm9y bSB0aGUNCistYXNzb2NpYXRlZCBvcGVyYXRpb24gb24gdGhlIHJlc3VsdGluZyBzdHJlYW0gd2ls bCBmYWlsLg0KKy1JZiB0aGUgY2xvc2UgZnVuY3Rpb24gaXMgb21pdHRlZCwgY2xvc2luZyB0aGUg c3RyZWFtIHdpbGwgZmx1c2gNCistYW55IGJ1ZmZlcmVkIG91dHB1dCBhbmQgdGhlbiBzdWNjZWVk Lg0KKy0uUHANCistVGhlIGNhbGxpbmcgY29udmVudGlvbnMgb2YNCistLkZhIHJlYWRmbiAsDQor LS5GYSB3cml0ZWZuICwNCistLkZhIHNlZWtmbg0KKy1hbmQNCistLkZhIGNsb3NlZm4NCistbXVz dCBtYXRjaCB0aG9zZSwgcmVzcGVjdGl2ZWx5LCBvZg0KKy0uWHIgcmVhZCAyICwNCistLlhyIHdy aXRlIDIgLA0KKy0uWHIgbHNlZWsgMiAsDQorLWFuZA0KKy0uWHIgY2xvc2UgMg0KKy13aXRoIHRo ZSBzaW5nbGUgZXhjZXB0aW9uIHRoYXQgdGhleSBhcmUgcGFzc2VkIHRoZQ0KKy0uRmEgY29va2ll DQorLWFyZ3VtZW50IHNwZWNpZmllZCB0bw0KKy0uRm4gZnVub3Blbg0KKy1pbiBwbGFjZSBvZiB0 aGUgdHJhZGl0aW9uYWwgZmlsZSBkZXNjcmlwdG9yIGFyZ3VtZW50Lg0KKy0uUHANCistUmVhZCBh bmQgd3JpdGUNCistLlRuIEkvTw0KKy1mdW5jdGlvbnMgYXJlIGFsbG93ZWQgdG8gY2hhbmdlIHRo ZSB1bmRlcmx5aW5nIGJ1ZmZlcg0KKy1vbiBmdWxseSBidWZmZXJlZCBvciBsaW5lIGJ1ZmZlcmVk IHN0cmVhbXMgYnkgY2FsbGluZw0KKy0uWHIgc2V0dmJ1ZiAzIC4NCistVGhleSBhcmUgYWxzbyBu b3QgcmVxdWlyZWQgdG8gY29tcGxldGVseSBmaWxsIG9yIGVtcHR5IHRoZSBidWZmZXIuDQorLVRo ZXkgYXJlIG5vdCwgaG93ZXZlciwgYWxsb3dlZCB0byBjaGFuZ2Ugc3RyZWFtcyBmcm9tIHVuYnVm ZmVyZWQgdG8gYnVmZmVyZWQNCistb3IgdG8gY2hhbmdlIHRoZSBzdGF0ZSBvZiB0aGUgbGluZSBi dWZmZXJpbmcgZmxhZy4NCistVGhleSBtdXN0IGFsc28gYmUgcHJlcGFyZWQgdG8gaGF2ZSByZWFk IG9yIHdyaXRlIGNhbGxzIG9jY3VyIG9uIGJ1ZmZlcnMgb3RoZXINCistdGhhbiB0aGUgb25lIG1v c3QgcmVjZW50bHkgc3BlY2lmaWVkLg0KKy0uUHANCistQWxsIHVzZXINCistLlRuIEkvTw0KKy1m dW5jdGlvbnMgY2FuIHJlcG9ydCBhbiBlcnJvciBieSByZXR1cm5pbmcgXC0xLg0KKy1BZGRpdGlv bmFsbHksIGFsbCBvZiB0aGUgZnVuY3Rpb25zIHNob3VsZCBzZXQgdGhlIGV4dGVybmFsIHZhcmlh YmxlDQorLS5WYSBlcnJubw0KKy1hcHByb3ByaWF0ZWx5IGlmIGFuIGVycm9yIG9jY3Vycy4NCist LlBwDQorLUFuIGVycm9yIG9uDQorLS5GbiBjbG9zZWZuDQorLWRvZXMgbm90IGtlZXAgdGhlIHN0 cmVhbSBvcGVuLg0KKy0uUHANCistQXMgYSBjb252ZW5pZW5jZSwgdGhlIGluY2x1ZGUgZmlsZQ0K Ky0uSW4gc3RkaW8uaA0KKy1kZWZpbmVzIHRoZSBtYWNyb3MNCistLkZuIGZyb3Blbg0KKy1hbmQN CistLkZuIGZ3b3Blbg0KKy1hcyBjYWxscyB0bw0KKy0uRm4gZnVub3Blbg0KKy13aXRoIG9ubHkg YSByZWFkIG9yIHdyaXRlIGZ1bmN0aW9uIHNwZWNpZmllZC4NCistLlNoIFJFVFVSTiBWQUxVRVMN CistVXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRpb24sDQorLS5GbiBmdW5vcGVuDQorLXJldHVybnMg YQ0KKy0uRHYgRklMRQ0KKy1wb2ludGVyLg0KKy1PdGhlcndpc2UsDQorLS5EdiBOVUxMDQorLWlz IHJldHVybmVkIGFuZCB0aGUgZ2xvYmFsIHZhcmlhYmxlDQorLS5WYSBlcnJubw0KKy1pcyBzZXQg dG8gaW5kaWNhdGUgdGhlIGVycm9yLg0KKy0uU2ggRVJST1JTDQorLS5CbCAtdGFnIC13aWR0aCBF cg0KKy0uSXQgQnEgRXIgRUlOVkFMDQorLVRoZQ0KKy0uRm4gZnVub3Blbg0KKy1mdW5jdGlvbg0K Ky13YXMgY2FsbGVkIHdpdGhvdXQgZWl0aGVyIGEgcmVhZCBvciB3cml0ZSBmdW5jdGlvbi4NCist VGhlDQorLS5GbiBmdW5vcGVuDQorLWZ1bmN0aW9uDQorLW1heSBhbHNvIGZhaWwgYW5kIHNldA0K Ky0uVmEgZXJybm8NCistZm9yIGFueSBvZiB0aGUgZXJyb3JzDQorLXNwZWNpZmllZCBmb3IgdGhl IHJvdXRpbmUNCistLlhyIG1hbGxvYyAzIC4NCistLkVsDQorLS5TaCBTRUUgQUxTTw0KKy0uWHIg ZmNudGwgMiAsDQorLS5YciBvcGVuIDIgLA0KKy0uWHIgZmNsb3NlIDMgLA0KKy0uWHIgZm9wZW4g MyAsDQorLS5YciBmc2VlayAzICwNCistLlhyIHNldGJ1ZiAzDQorLS5TaCBISVNUT1JZDQorLVRo ZQ0KKy0uRm4gZnVub3Blbg0KKy1mdW5jdGlvbnMgZmlyc3QgYXBwZWFyZWQgaW4NCistLkJ4IDQu NCAuDQorLS5TaCBCVUdTDQorLVRoZQ0KKy0uRm4gZnVub3Blbg0KKy1mdW5jdGlvbg0KKy1tYXkg bm90IGJlIHBvcnRhYmxlIHRvIHN5c3RlbXMgb3RoZXIgdGhhbg0KKy0uQnggLg0KKy0uUHANCist T24NCistLkZ4ICwNCistLk94DQorLWFuZA0KKy0uRHgNCistdGhlDQorLS5GbiBmdW5vcGVuDQor LWludGVyZmFjZSBlcnJvbmVvdXNseSBhc3N1bWVzIHRoYXQNCistLlZ0IGZwb3NfdA0KKy1pcyBh biBpbnRlZ3JhbCB0eXBlLCBhbmQgdXNlcyBpdCBpbiB0aGUNCistLkZhIHNlZWtmbg0KKy1ob29r OyBidXQgYmVjYXVzZSBjb2RlIHVzaW5nIGENCistLkZhIHNlZWtmbg0KKy1ob29rIHdpbGwgZmFp bCB0byBidWlsZCBvbiBzeXN0ZW1zIHdoZXJlDQorLS5WdCBmcG9zX3QNCistaXMgYSBzdHJ1Y3Qs IGFuZCBpdCB3aWxsIG5lZWQgdG8gYmUgc2xpZ2h0bHkgZml4ZWQgYW55d2F5LCB0aGUNCistaW1w bGVtZW50YXRpb24gcHJvdmlkZWQgYnkgbGliYnNkIChpbiB0aGUgc2FtZSB3YXkgYXMNCistLk54 ICkNCistdXNlcyB0aGUgY29ycmVjdA0KKy0uVnQgb2ZmX3QNCistdHlwZXMuDQorZGlmZiAtdXJO IGxpYmJzZC0wLjcuMC9zcmMvTWFrZWZpbGUuYW0gbGliYnNkLTAuNy4wLXBhdGNoL3NyYy9NYWtl ZmlsZS5hbQ0KKy0tLSBsaWJic2QtMC43LjAvc3JjL01ha2VmaWxlLmFtCTIwMTQtMDctMjAgMDA6 MDg6MDIuMDAwMDAwMDAwICswMDAwDQorKysrIGxpYmJzZC0wLjcuMC1wYXRjaC9zcmMvTWFrZWZp bGUuYW0JMjAxNS0wNi0wNCAxMzozMzowMC44Njg3MTgxNDIgKzAwMDANCitAQCAtNTYsNyArNTYs NiBAQA0KKyAJZm10Y2hlY2suYyBcDQorIAlmcGFyc2Vsbi5jIFwNCisgCWZwdXJnZS5jIFwNCist CWZ1bm9wZW4uYyBcDQorIAlnZXRic2l6ZS5jIFwNCisgCWdldHBlZXJlaWQuYyBcDQorIAloYXNo L21kNS5jIFwNCitkaWZmIC11ck4gbGliYnNkLTAuNy4wL3NyYy9NYWtlZmlsZS5pbiBsaWJic2Qt MC43LjAtcGF0Y2gvc3JjL01ha2VmaWxlLmluDQorLS0tIGxpYmJzZC0wLjcuMC9zcmMvTWFrZWZp bGUuaW4JMjAxNC0wNy0yOSAwMToxOTo1OS4wMDAwMDAwMDAgKzAwMDANCisrKysgbGliYnNkLTAu Ny4wLXBhdGNoL3NyYy9NYWtlZmlsZS5pbgkyMDE1LTA2LTA0IDEzOjMzOjEyLjk1MjA3NzE4NyAr MDAwMA0KK0BAIC0xNDIsNyArMTQyLDcgQEANCisgYW1fbGliYnNkX2xhX09CSkVDVFMgPSBhcmM0 cmFuZG9tLmxvIGJzZF9nZXRvcHQubG8gY2xvc2Vmcm9tLmxvIFwNCisgCWRlaHVtYW5pemVfbnVt YmVyLmxvIGVyci5sbyBleHBhbmRfbnVtYmVyLmxvIGZnZXRsbi5sbyBcDQorIAlmZ2V0d2xuLmxv IGZsb3Blbi5sbyBmbXRjaGVjay5sbyBmcGFyc2Vsbi5sbyBmcHVyZ2UubG8gXA0KKy0JZnVub3Bl bi5sbyBnZXRic2l6ZS5sbyBnZXRwZWVyZWlkLmxvIGhhc2gvbWQ1LmxvIGhhc2gvbWQ1aGwubG8g XA0KKysJZ2V0YnNpemUubG8gZ2V0cGVlcmVpZC5sbyBoYXNoL21kNS5sbyBoYXNoL21kNWhsLmxv IFwNCisgCWhlYXBzb3J0LmxvIGh1bWFuaXplX251bWJlci5sbyBpbmV0X25ldF9wdG9uLmxvIG1l cmdlLmxvIFwNCisgCW5saXN0LmxvIHBpZGZpbGUubG8gcHJvZ25hbWUubG8gcmFkaXhzb3J0Lmxv IHJlYWRwYXNzcGhyYXNlLmxvIFwNCisgCXJlYWxsb2NhcnJheS5sbyByZWFsbG9jZi5sbyBzZXRt b2RlLmxvIHNldHByb2N0aXRsZS5sbyBcDQorQEAgLTM3Niw3ICszNzYsNiBAQA0KKyAJZm10Y2hl Y2suYyBcDQorIAlmcGFyc2Vsbi5jIFwNCisgCWZwdXJnZS5jIFwNCistCWZ1bm9wZW4uYyBcDQor IAlnZXRic2l6ZS5jIFwNCisgCWdldHBlZXJlaWQuYyBcDQorIAloYXNoL21kNS5jIFwNCitAQCAt NTU2LDcgKzU1NSw2IEBADQorIEBBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAu LyQoREVQRElSKS9mbXRjaGVjay5QbG9AYW1fX3F1b3RlQA0KKyBAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZnBhcnNlbG4uUGxvQGFtX19xdW90ZUANCisg QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2ZwdXJnZS5Q bG9AYW1fX3F1b3RlQA0KKy1AQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvZnVub3Blbi5QbG9AYW1fX3F1b3RlQA0KKyBAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvZ2V0YnNpemUuUGxvQGFtX19xdW90ZUANCisgQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2dldHBlZXJlaWQu UGxvQGFtX19xdW90ZUANCisgQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2hlYXBzb3J0LlBsb0BhbV9fcXVvdGVADQorZGlmZiAtdXJOIGxpYmJzZC0wLjcu MC9zcmMvZnVub3Blbi5jIGxpYmJzZC0wLjcuMC1wYXRjaC9zcmMvZnVub3Blbi5jDQorLS0tIGxp YmJzZC0wLjcuMC9zcmMvZnVub3Blbi5jCTIwMTMtMTAtMjEgMDM6NDI6MDQuMDAwMDAwMDAwICsw MDAwDQorKysrIGxpYmJzZC0wLjcuMC1wYXRjaC9zcmMvZnVub3Blbi5jCTE5NzAtMDEtMDEgMDA6 MDA6MDAuMDAwMDAwMDAwICswMDAwDQorQEAgLTEsMTQyICswLDAgQEANCistLyoNCistICogQ29w eXJpZ2h0IMKpIDIwMTEsIDIwMTMgR3VpbGxlbSBKb3Zlcg0KKy0gKg0KKy0gKiBSZWRpc3RyaWJ1 dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQN CistICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zDQorLSAqIGFyZSBtZXQ6DQorLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0DQorLSAqICAgIG5v dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l ci4NCistICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl IHRoZSBhYm92ZSBjb3B5cmlnaHQNCistICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0 aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQ0KKy0gKiAgICBkb2N1bWVu dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0 aW9uLg0KKy0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBub3QgYmUgdXNlZCB0byBl bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMNCistICogICAgZGVyaXZlZCBmcm9tIHRoaXMgc29m dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uDQorLSAqDQor LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgYGBBUyBJUycnIEFORCBBTlkgRVhQUkVTUyBP UiBJTVBMSUVEIFdBUlJBTlRJRVMsDQorLSAqIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWQ0KKy0gKiBBTkQgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO VCBTSEFMTA0KKy0gKiBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsDQorLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywNCistICogUFJPQ1VSRU1F TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S IFBST0ZJVFM7DQorLSAqIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLA0KKy0gKiBXSEVUSEVSIElOIENPTlRSQUNU LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUg0KKy0g KiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP RlRXQVJFLCBFVkVOIElGDQorLSAqIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg REFNQUdFLg0KKy0gKi8NCistDQorLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4NCistI2luY2x1ZGUg PHN5cy90eXBlcy5oPg0KKy0jaW5jbHVkZSA8ZXJybm8uaD4NCistI2luY2x1ZGUgPHN0ZGxpYi5o Pg0KKy0jaW5jbHVkZSA8c3RkaW8uaD4NCistDQorLSNpZmRlZiBIQVZFX0ZPUEVOQ09PS0lFDQor LXN0cnVjdCBmdW5vcGVuX2Nvb2tpZSB7DQorLQl2b2lkICpvcmlnX2Nvb2tpZTsNCistDQorLQlp bnQgKCpyZWFkZm4pKHZvaWQgKmNvb2tpZSwgY2hhciAqYnVmLCBpbnQgc2l6ZSk7DQorLQlpbnQg KCp3cml0ZWZuKSh2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKmJ1ZiwgaW50IHNpemUpOw0KKy0J b2ZmX3QgKCpzZWVrZm4pKHZvaWQgKmNvb2tpZSwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNlKTsN CistCWludCAoKmNsb3NlZm4pKHZvaWQgKmNvb2tpZSk7DQorLX07DQorLQ0KKy1zdGF0aWMgc3Np emVfdA0KKy1mdW5vcGVuX3JlYWQodm9pZCAqY29va2llLCBjaGFyICpidWYsIHNpemVfdCBzaXpl KQ0KKy17DQorLQlzdHJ1Y3QgZnVub3Blbl9jb29raWUgKmNvb2tpZXdyYXAgPSBjb29raWU7DQor LQ0KKy0JaWYgKGNvb2tpZXdyYXAtPnJlYWRmbiA9PSBOVUxMKSB7DQorLQkJZXJybm8gPSBFQkFE RjsNCistCQlyZXR1cm4gLTE7DQorLQl9DQorLQ0KKy0JcmV0dXJuIGNvb2tpZXdyYXAtPnJlYWRm bihjb29raWV3cmFwLT5vcmlnX2Nvb2tpZSwgYnVmLCBzaXplKTsNCistfQ0KKy0NCistc3RhdGlj IHNzaXplX3QNCistZnVub3Blbl93cml0ZSh2b2lkICpjb29raWUsIGNvbnN0IGNoYXIgKmJ1Ziwg c2l6ZV90IHNpemUpDQorLXsNCistCXN0cnVjdCBmdW5vcGVuX2Nvb2tpZSAqY29va2lld3JhcCA9 IGNvb2tpZTsNCistDQorLQlpZiAoY29va2lld3JhcC0+d3JpdGVmbiA9PSBOVUxMKQ0KKy0JCXJl dHVybiBFT0Y7DQorLQ0KKy0JcmV0dXJuIGNvb2tpZXdyYXAtPndyaXRlZm4oY29va2lld3JhcC0+ b3JpZ19jb29raWUsIGJ1Ziwgc2l6ZSk7DQorLX0NCistDQorLXN0YXRpYyBpbnQNCistZnVub3Bl bl9zZWVrKHZvaWQgKmNvb2tpZSwgb2ZmNjRfdCAqb2Zmc2V0LCBpbnQgd2hlbmNlKQ0KKy17DQor LQlzdHJ1Y3QgZnVub3Blbl9jb29raWUgKmNvb2tpZXdyYXAgPSBjb29raWU7DQorLQlvZmZfdCBz b2ZmID0gKm9mZnNldDsNCistDQorLQlpZiAoY29va2lld3JhcC0+c2Vla2ZuID09IE5VTEwpIHsN CistCQllcnJubyA9IEVTUElQRTsNCistCQlyZXR1cm4gLTE7DQorLQl9DQorLQ0KKy0Jc29mZiA9 IGNvb2tpZXdyYXAtPnNlZWtmbihjb29raWV3cmFwLT5vcmlnX2Nvb2tpZSwgc29mZiwgd2hlbmNl KTsNCistCSpvZmZzZXQgPSBzb2ZmOw0KKy0NCistCXJldHVybiAqb2Zmc2V0Ow0KKy19DQorLQ0K Ky1zdGF0aWMgaW50DQorLWZ1bm9wZW5fY2xvc2Uodm9pZCAqY29va2llKQ0KKy17DQorLQlzdHJ1 Y3QgZnVub3Blbl9jb29raWUgKmNvb2tpZXdyYXAgPSBjb29raWU7DQorLQlpbnQgcmM7DQorLQ0K Ky0JaWYgKGNvb2tpZXdyYXAtPmNsb3NlZm4gPT0gTlVMTCkNCistCQlyZXR1cm4gMDsNCistDQor LQlyYyA9IGNvb2tpZXdyYXAtPmNsb3NlZm4oY29va2lld3JhcC0+b3JpZ19jb29raWUpOw0KKy0N CistCWZyZWUoY29va2lld3JhcCk7DQorLQ0KKy0JcmV0dXJuIHJjOw0KKy19DQorLQ0KKy1GSUxF ICoNCistZnVub3Blbihjb25zdCB2b2lkICpjb29raWUsDQorLSAgICAgICAgaW50ICgqcmVhZGZu KSh2b2lkICpjb29raWUsIGNoYXIgKmJ1ZiwgaW50IHNpemUpLA0KKy0gICAgICAgIGludCAoKndy aXRlZm4pKHZvaWQgKmNvb2tpZSwgY29uc3QgY2hhciAqYnVmLCBpbnQgc2l6ZSksDQorLSAgICAg ICAgb2ZmX3QgKCpzZWVrZm4pKHZvaWQgKmNvb2tpZSwgb2ZmX3Qgb2Zmc2V0LCBpbnQgd2hlbmNl KSwNCistICAgICAgICBpbnQgKCpjbG9zZWZuKSh2b2lkICpjb29raWUpKQ0KKy17DQorLQlzdHJ1 Y3QgZnVub3Blbl9jb29raWUgKmNvb2tpZXdyYXA7DQorLQljb29raWVfaW9fZnVuY3Rpb25zX3Qg ZnVuY3N3cmFwID0gew0KKy0JCS5yZWFkID0gZnVub3Blbl9yZWFkLA0KKy0JCS53cml0ZSA9IGZ1 bm9wZW5fd3JpdGUsDQorLQkJLnNlZWsgPSBmdW5vcGVuX3NlZWssDQorLQkJLmNsb3NlID0gZnVu b3Blbl9jbG9zZSwNCistCX07DQorLQljb25zdCBjaGFyICptb2RlOw0KKy0NCistCWlmIChyZWFk Zm4pIHsNCistCQlpZiAod3JpdGVmbiA9PSBOVUxMKQ0KKy0JCQltb2RlID0gInIiOw0KKy0JCWVs c2UNCistCQkJbW9kZSA9ICJyKyI7DQorLQl9IGVsc2UgaWYgKHdyaXRlZm4pIHsNCistCQltb2Rl ID0gInciOw0KKy0JfSBlbHNlIHsNCistCQllcnJubyA9IEVJTlZBTDsNCistCQlyZXR1cm4gTlVM TDsNCistCX0NCistDQorLQljb29raWV3cmFwID0gbWFsbG9jKHNpemVvZigqY29va2lld3JhcCkp Ow0KKy0JaWYgKGNvb2tpZXdyYXAgPT0gTlVMTCkNCistCQlyZXR1cm4gTlVMTDsNCistDQorLQlj b29raWV3cmFwLT5vcmlnX2Nvb2tpZSA9ICh2b2lkICopY29va2llOw0KKy0JY29va2lld3JhcC0+ cmVhZGZuID0gcmVhZGZuOw0KKy0JY29va2lld3JhcC0+d3JpdGVmbiA9IHdyaXRlZm47DQorLQlj b29raWV3cmFwLT5zZWVrZm4gPSBzZWVrZm47DQorLQljb29raWV3cmFwLT5jbG9zZWZuID0gY2xv c2VmbjsNCistDQorLQlyZXR1cm4gZm9wZW5jb29raWUoY29va2lld3JhcCwgbW9kZSwgZnVuY3N3 cmFwKTsNCistfQ0KKy0jZWxzZQ0KKy0jZXJyb3IgIkZ1bmN0aW9uIGZ1bm9wZW4oKSBuZWVkcyB0 byBiZSBwb3J0ZWQuIg0KKy0jZW5kaWYNCitkaWZmIC11ck4gbGliYnNkLTAuNy4wL3NyYy9saWJi c2QubWFwIGxpYmJzZC0wLjcuMC1wYXRjaC9zcmMvbGliYnNkLm1hcA0KKy0tLSBsaWJic2QtMC43 LjAvc3JjL2xpYmJzZC5tYXAJMjAxNC0wNy0xNyAwMzoxMToxNy4wMDAwMDAwMDAgKzAwMDANCisr KysgbGliYnNkLTAuNy4wLXBhdGNoL3NyYy9saWJic2QubWFwCTIwMTUtMDYtMDQgMTM6MzM6MjYu MDU4NzcxNzQwICswMDAwDQorQEAgLTExNCw4ICsxMTQsNiBAQA0KKyBMSUJCU0RfMC43IHsNCisg ICAgIGdldGJzaXplOw0KKyANCistICAgIGZ1bm9wZW47DQorLQ0KKyAgICAgcmVhbGxvY2FycmF5 Ow0KKyANCisgICAgIHNsX2luaXQ7DQorZGlmZiAtdXJOIGxpYmJzZC0wLjcuMC90ZXN0L01ha2Vm aWxlLmFtIGxpYmJzZC0wLjcuMC1wYXRjaC90ZXN0L01ha2VmaWxlLmFtDQorLS0tIGxpYmJzZC0w LjcuMC90ZXN0L01ha2VmaWxlLmFtCTIwMTQtMDctMjAgMDA6MDY6NDEuMDAwMDAwMDAwICswMDAw DQorKysrIGxpYmJzZC0wLjcuMC1wYXRjaC90ZXN0L01ha2VmaWxlLmFtCTIwMTUtMDYtMDQgMTM6 MzQ6MjkuMDgyMjM5MTc0ICswMDAwDQorQEAgLTEzLDcgKzEzLDYgQEANCisgCWVuZGlhbiBcDQor IAlodW1hbml6ZSBcDQorIAlmZ2V0bG4gXA0KKy0JZnVub3BlbiBcDQorIAlwcm9jdGl0bGUtaW5p dCBcDQorIAkkKG5pbCkNCisgDQorQEAgLTIzLDcgKzIyLDYgQEANCisgDQorIGh1bWFuaXplX0xE RkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc3JjL2xpYmJzZC5sYQ0KKyBmZ2V0bG5fTERGTEFHUyA9 ICQodG9wX2J1aWxkZGlyKS9zcmMvbGliYnNkLmxhDQorLWZ1bm9wZW5fTERGTEFHUyA9ICQodG9w X2J1aWxkZGlyKS9zcmMvbGliYnNkLmxhDQorIHByb2N0aXRsZV9pbml0X1NPVVJDRVMgPSBwcm9j dGl0bGUuYw0KKyBwcm9jdGl0bGVfaW5pdF9DUFBGTEFHUyA9ICQoQU1fQ1BQRkxBR1MpIC1EVEVT VF9VU0VfU0VUUFJPQ1RJVExFX0lOSVQ9MQ0KKyBwcm9jdGl0bGVfaW5pdF9MREZMQUdTID0gJCh0 b3BfYnVpbGRkaXIpL3NyYy9saWJic2QubGENCitkaWZmIC11ck4gbGliYnNkLTAuNy4wL3Rlc3Qv TWFrZWZpbGUuaW4gbGliYnNkLTAuNy4wLXBhdGNoL3Rlc3QvTWFrZWZpbGUuaW4NCistLS0gbGli YnNkLTAuNy4wL3Rlc3QvTWFrZWZpbGUuaW4JMjAxNC0wNy0yOSAwMToxOTo1OS4wMDAwMDAwMDAg KzAwMDANCisrKysgbGliYnNkLTAuNy4wLXBhdGNoL3Rlc3QvTWFrZWZpbGUuaW4JMjAxNS0wNi0w NCAxMzozNDoxNi41NDIyMTI0OTEgKzAwMDANCitAQCAtNzgsNyArNzgsNyBAQA0KKyBidWlsZF90 cmlwbGV0ID0gQGJ1aWxkQA0KKyBob3N0X3RyaXBsZXQgPSBAaG9zdEANCisgY2hlY2tfUFJPR1JB TVMgPSBoZWFkZXJzJChFWEVFWFQpIG92ZXJsYXkkKEVYRUVYVCkgZW5kaWFuJChFWEVFWFQpIFwN CistCWh1bWFuaXplJChFWEVFWFQpIGZnZXRsbiQoRVhFRVhUKSBmdW5vcGVuJChFWEVFWFQpIFwN CisrCWh1bWFuaXplJChFWEVFWFQpIGZnZXRsbiQoRVhFRVhUKSBcDQorIAlwcm9jdGl0bGUtaW5p dCQoRVhFRVhUKSAkKGFtX19FWEVFWFRfMSkNCisgQEJVSUxEX0xJQkJTRF9DVE9SX1RSVUVAYW1f X2FwcGVuZF8xID0gcHJvY3RpdGxlDQorIHN1YmRpciA9IHRlc3QNCitAQCAtMTEwLDEyICsxMTAs NiBAQA0KKyBmZ2V0bG5fTElOSyA9ICQoTElCVE9PTCkgJChBTV9WX2x0KSAtLXRhZz1DQyAkKEFN X0xJQlRPT0xGTEFHUykgXA0KKyAJJChMSUJUT09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ0NMRCkg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKSBcDQorIAkkKGZnZXRsbl9MREZMQUdTKSAkKExERkxBR1Mp IC1vICRADQorLWZ1bm9wZW5fU09VUkNFUyA9IGZ1bm9wZW4uYw0KKy1mdW5vcGVuX09CSkVDVFMg PSBmdW5vcGVuLiQoT0JKRVhUKQ0KKy1mdW5vcGVuX0xEQUREID0gJChMREFERCkNCistZnVub3Bl bl9MSU5LID0gJChMSUJUT09MKSAkKEFNX1ZfbHQpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdT KSBcDQorLQkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykg JChDRkxBR1MpIFwNCistCSQoZnVub3Blbl9MREZMQUdTKSAkKExERkxBR1MpIC1vICRADQorIGhl YWRlcnNfU09VUkNFUyA9IGhlYWRlcnMuYw0KKyBoZWFkZXJzX09CSkVDVFMgPSBoZWFkZXJzLiQo T0JKRVhUKQ0KKyBoZWFkZXJzX0xEQUREID0gJChMREFERCkNCitAQCAtMTc1LDkgKzE2OSw5IEBA DQorIGFtX192X0NDTERfID0gJChhbV9fdl9DQ0xEX0BBTV9ERUZBVUxUX1ZAKQ0KKyBhbV9fdl9D Q0xEXzAgPSBAZWNobyAiICBDQ0xEICAgICIgJEA7DQorIGFtX192X0NDTERfMSA9IA0KKy1TT1VS Q0VTID0gZW5kaWFuLmMgZmdldGxuLmMgZnVub3Blbi5jIGhlYWRlcnMuYyBodW1hbml6ZS5jIG92 ZXJsYXkuYyBcDQorK1NPVVJDRVMgPSBlbmRpYW4uYyBmZ2V0bG4uYyBoZWFkZXJzLmMgaHVtYW5p emUuYyBvdmVybGF5LmMgXA0KKyAJcHJvY3RpdGxlLmMgJChwcm9jdGl0bGVfaW5pdF9TT1VSQ0VT KQ0KKy1ESVNUX1NPVVJDRVMgPSBlbmRpYW4uYyBmZ2V0bG4uYyBmdW5vcGVuLmMgaGVhZGVycy5j IGh1bWFuaXplLmMgXA0KKytESVNUX1NPVVJDRVMgPSBlbmRpYW4uYyBmZ2V0bG4uYyBoZWFkZXJz LmMgaHVtYW5pemUuYyBcDQorIAlvdmVybGF5LmMgcHJvY3RpdGxlLmMgJChwcm9jdGl0bGVfaW5p dF9TT1VSQ0VTKQ0KKyBhbV9fY2FuX3J1bl9pbnN0YWxsaW5mbyA9IFwNCisgICBjYXNlICQkQU1f VVBEQVRFX0lORk9fRElSIGluIFwNCitAQCAtNTMyLDcgKzUyNiw2IEBADQorIA0KKyBodW1hbml6 ZV9MREZMQUdTID0gJCh0b3BfYnVpbGRkaXIpL3NyYy9saWJic2QubGENCisgZmdldGxuX0xERkxB R1MgPSAkKHRvcF9idWlsZGRpcikvc3JjL2xpYmJzZC5sYQ0KKy1mdW5vcGVuX0xERkxBR1MgPSAk KHRvcF9idWlsZGRpcikvc3JjL2xpYmJzZC5sYQ0KKyBwcm9jdGl0bGVfaW5pdF9TT1VSQ0VTID0g cHJvY3RpdGxlLmMNCisgcHJvY3RpdGxlX2luaXRfQ1BQRkxBR1MgPSAkKEFNX0NQUEZMQUdTKSAt RFRFU1RfVVNFX1NFVFBST0NUSVRMRV9JTklUPTENCisgcHJvY3RpdGxlX2luaXRfTERGTEFHUyA9 ICQodG9wX2J1aWxkZGlyKS9zcmMvbGliYnNkLmxhDQorQEAgLTU5NSwxMCArNTg4LDYgQEANCisg CUBybSAtZiBmZ2V0bG4kKEVYRUVYVCkNCisgCSQoQU1fVl9DQ0xEKSQoZmdldGxuX0xJTkspICQo ZmdldGxuX09CSkVDVFMpICQoZmdldGxuX0xEQUREKSAkKExJQlMpDQorIA0KKy1mdW5vcGVuJChF WEVFWFQpOiAkKGZ1bm9wZW5fT0JKRUNUUykgJChmdW5vcGVuX0RFUEVOREVOQ0lFUykgJChFWFRS QV9mdW5vcGVuX0RFUEVOREVOQ0lFUykgDQorLQlAcm0gLWYgZnVub3BlbiQoRVhFRVhUKQ0KKy0J JChBTV9WX0NDTEQpJChmdW5vcGVuX0xJTkspICQoZnVub3Blbl9PQkpFQ1RTKSAkKGZ1bm9wZW5f TERBREQpICQoTElCUykNCistDQorIGhlYWRlcnMkKEVYRUVYVCk6ICQoaGVhZGVyc19PQkpFQ1RT KSAkKGhlYWRlcnNfREVQRU5ERU5DSUVTKSAkKEVYVFJBX2hlYWRlcnNfREVQRU5ERU5DSUVTKSAN CisgCUBybSAtZiBoZWFkZXJzJChFWEVFWFQpDQorIAkkKEFNX1ZfQ0NMRCkkKExJTkspICQoaGVh ZGVyc19PQkpFQ1RTKSAkKGhlYWRlcnNfTERBREQpICQoTElCUykNCitAQCAtNjI3LDcgKzYxNiw2 IEBADQorIA0KKyBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJ UikvZW5kaWFuLlBvQGFtX19xdW90ZUANCisgQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1f X3F1b3RlQC4vJChERVBESVIpL2ZnZXRsbi5Qb0BhbV9fcXVvdGVADQorLUBBTURFUF9UUlVFQEBh bV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9mdW5vcGVuLlBvQGFtX19xdW90ZUAN CisgQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2hlYWRl cnMuUG9AYW1fX3F1b3RlQA0KKyBAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVA Li8kKERFUERJUikvaHVtYW5pemUuUG9AYW1fX3F1b3RlQA0KKyBAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvb3ZlcmxheS5Qb0BhbV9fcXVvdGVADQorQEAg LTkwNSwxMyArODkzLDYgQEANCisgCSQoYW1fX2NoZWNrX3ByZSkgJChMT0dfRFJJVkVSKSAtLXRl c3QtbmFtZSAiJCRmIiBcDQorIAktLWxvZy1maWxlICQkYi5sb2cgLS10cnMtZmlsZSAkJGIudHJz IFwNCisgCSQoYW1fX2NvbW1vbl9kcml2ZXJfZmxhZ3MpICQoQU1fTE9HX0RSSVZFUl9GTEFHUykg JChMT0dfRFJJVkVSX0ZMQUdTKSAtLSAkKExPR19DT01QSUxFKSBcDQorLQkiJCR0c3QiICQoQU1f VEVTVFNfRkRfUkVESVJFQ1QpDQorLWZ1bm9wZW4ubG9nOiBmdW5vcGVuJChFWEVFWFQpDQorLQlA cD0nZnVub3BlbiQoRVhFRVhUKSc7IFwNCistCWI9J2Z1bm9wZW4nOyBcDQorLQkkKGFtX19jaGVj a19wcmUpICQoTE9HX0RSSVZFUikgLS10ZXN0LW5hbWUgIiQkZiIgXA0KKy0JLS1sb2ctZmlsZSAk JGIubG9nIC0tdHJzLWZpbGUgJCRiLnRycyBcDQorLQkkKGFtX19jb21tb25fZHJpdmVyX2ZsYWdz KSAkKEFNX0xPR19EUklWRVJfRkxBR1MpICQoTE9HX0RSSVZFUl9GTEFHUykgLS0gJChMT0dfQ09N UElMRSkgXA0KKyAJIiQkdHN0IiAkKEFNX1RFU1RTX0ZEX1JFRElSRUNUKQ0KKyBwcm9jdGl0bGUt aW5pdC5sb2c6IHByb2N0aXRsZS1pbml0JChFWEVFWFQpDQorIAlAcD0ncHJvY3RpdGxlLWluaXQk KEVYRUVYVCknOyBcDQorZGlmZiAtdXJOIGxpYmJzZC0wLjcuMC90ZXN0L2Z1bm9wZW4uYyBsaWJi c2QtMC43LjAtcGF0Y2gvdGVzdC9mdW5vcGVuLmMNCistLS0gbGliYnNkLTAuNy4wL3Rlc3QvZnVu b3Blbi5jCTIwMTMtMTAtMjEgMDM6NDI6MDQuMDAwMDAwMDAwICswMDAwDQorKysrIGxpYmJzZC0w LjcuMC1wYXRjaC90ZXN0L2Z1bm9wZW4uYwkxOTcwLTAxLTAxIDAwOjAwOjAwLjAwMDAwMDAwMCAr MDAwMA0KK0BAIC0xLDE3OCArMCwwIEBADQorLS8qDQorLSAqIENvcHlyaWdodCDCqSAyMDEzIEd1 aWxsZW0gSm92ZXIgPGd1aWxsZW1AaGFkcm9ucy5vcmc+DQorLSAqDQorLSAqIFJlZGlzdHJpYnV0 aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dA0K Ky0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93 aW5nIGNvbmRpdGlvbnMNCistICogYXJlIG1ldDoNCistICogMS4gUmVkaXN0cmlidXRpb25zIG9m IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQNCistICogICAgbm90 aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy Lg0KKy0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug dGhlIGFib3ZlIGNvcHlyaWdodA0KKy0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlDQorLSAqICAgIGRvY3VtZW50 YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp b24uDQorLSAqIDMuIFRoZSBuYW1lIG9mIHRoZSBhdXRob3IgbWF5IG5vdCBiZSB1c2VkIHRvIGVu ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cw0KKy0gKiAgICBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0 d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4NCistICoNCist ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S IElNUExJRUQgV0FSUkFOVElFUywNCistICogSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZDQorLSAqIEFORCBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U IFNIQUxMDQorLSAqIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwNCistICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLA0KKy0gKiBQUk9DVVJFTUVO VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig UFJPRklUUzsNCistICogT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksDQorLSAqIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SDQorLSAq IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G VFdBUkUsIEVWRU4gSUYNCistICogQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE QU1BR0UuDQorLSAqLw0KKy0NCistI2luY2x1ZGUgPGFzc2VydC5oPg0KKy0jaW5jbHVkZSA8ZXJy bm8uaD4NCistI2luY2x1ZGUgPHN0cmluZy5oPg0KKy0jaW5jbHVkZSA8c3RkaW8uaD4NCistDQor LSNkZWZpbmUgQVJSQVlfU0laRSAxMDANCistI2RlZmluZSBURVNUX1NJWkUgNTANCistDQorLXN0 cnVjdCB0ZXN0X2Nvb2tpZSB7DQorLQljaGFyIGFycmF5W0FSUkFZX1NJWkVdOw0KKy0JaW50IGlu ZGV4Ow0KKy19Ow0KKy0NCistaW50DQorLXRlc3RfcmVhZGZuKHZvaWQgKmNvb2tpZSwgY2hhciAq YnVmLCBpbnQgc2l6ZSkNCistew0KKy0Jc3RydWN0IHRlc3RfY29va2llICp0YyA9IGNvb2tpZTsN CistCWludCBsZWZ0X3NpemUgPSBzaXplb2YodGMtPmFycmF5KSAtIHRjLT5pbmRleDsNCistDQor LQlpZiAobGVmdF9zaXplIDwgMCkNCistCQlzaXplID0gMDsNCistCWVsc2UgaWYgKGxlZnRfc2l6 ZSA8IHNpemUpDQorLQkJc2l6ZSA9IGxlZnRfc2l6ZTsNCistDQorLQlpZiAoc2l6ZSA+IDApIHsN CistCQltZW1jcHkoYnVmLCB0Yy0+YXJyYXkgKyB0Yy0+aW5kZXgsIHNpemUpOw0KKy0JCXRjLT5p bmRleCArPSBzaXplOw0KKy0JfQ0KKy0NCistCXJldHVybiBzaXplOw0KKy19DQorLQ0KKy1pbnQN CistdGVzdF93cml0ZWZuKHZvaWQgKmNvb2tpZSwgY29uc3QgY2hhciAqYnVmLCBpbnQgc2l6ZSkN Cistew0KKy0Jc3RydWN0IHRlc3RfY29va2llICp0YyA9IGNvb2tpZTsNCistCWludCBsZWZ0X3Np emUgPSBzaXplb2YodGMtPmFycmF5KSAtIHRjLT5pbmRleDsNCistDQorLQlpZiAobGVmdF9zaXpl IDwgMCkNCistCQlzaXplID0gMDsNCistCWVsc2UgaWYgKGxlZnRfc2l6ZSA8IHNpemUpDQorLQkJ c2l6ZSA9IGxlZnRfc2l6ZTsNCistDQorLQlpZiAoc2l6ZSA+IDApIHsNCistCQltZW1jcHkodGMt PmFycmF5ICsgdGMtPmluZGV4LCBidWYsIHNpemUpOw0KKy0JCXRjLT5pbmRleCArPSBzaXplOw0K Ky0JfQ0KKy0NCistCXJldHVybiBzaXplOw0KKy19DQorLQ0KKy1vZmZfdA0KKy10ZXN0X3NlZWtm bih2b2lkICpjb29raWUsIG9mZl90IG9mZnNldCwgaW50IHdoZW5jZSkNCistew0KKy0Jc3RydWN0 IHRlc3RfY29va2llICp0YyA9IGNvb2tpZTsNCistDQorLQlzd2l0Y2ggKHdoZW5jZSkgew0KKy0J Y2FzZSBTRUVLX1NFVDoNCistCQl0Yy0+aW5kZXggPSBvZmZzZXQ7DQorLQkJYnJlYWs7DQorLQlj YXNlIFNFRUtfQ1VSOg0KKy0JCXRjLT5pbmRleCArPSBvZmZzZXQ7DQorLQkJYnJlYWs7DQorLQlj YXNlIFNFRUtfRU5EOg0KKy0JCXRjLT5pbmRleCA9IHNpemVvZih0Yy0+YXJyYXkpICsgb2Zmc2V0 Ow0KKy0JCWJyZWFrOw0KKy0JfQ0KKy0NCistCXJldHVybiB0Yy0+aW5kZXg7DQorLX0NCistDQor LWludA0KKy10ZXN0X2Nsb3NlZm4odm9pZCAqY29va2llKQ0KKy17DQorLQlzdHJ1Y3QgdGVzdF9j b29raWUgKnRjID0gY29va2llOw0KKy0NCistCW1lbXNldCh0Yy0+YXJyYXksIDB4N2YsIHNpemVv Zih0Yy0+YXJyYXkpKTsNCistDQorLQlyZXR1cm4gMDsNCistfQ0KKy0NCistaW50DQorLW1haW4o aW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KKy17DQorLQlzdHJ1Y3QgdGVzdF9jb29raWUgdGM7DQor LQljaGFyIGRhdGFbQVJSQVlfU0laRV07DQorLQlGSUxFICpmcDsNCistCXNpemVfdCBpOw0KKy0N CistCS8qIFRlc3QgaW52YWxpZCBob29rcy4gKi8NCistCWZwID0gZnVub3BlbigmdGMsIE5VTEws IE5VTEwsIE5VTEwsIE5VTEwpOw0KKy0JYXNzZXJ0KGZwID09IE5VTEwpOw0KKy0JYXNzZXJ0KGVy cm5vID09IEVJTlZBTCk7DQorLQ0KKy0JLyogVGVzdCByZWFkLW9ubHkgZmlsZS4gKi8NCistCXRj LmluZGV4ID0gMDsNCistCWZvciAoaSA9IDA7IGkgPCBzaXplb2YodGMuYXJyYXkpOyBpKyspDQor LQkJdGMuYXJyYXlbaV0gPSBpOw0KKy0NCistCWZwID0gZnJvcGVuKCZ0YywgdGVzdF9yZWFkZm4p Ow0KKy0JYXNzZXJ0KGZwKTsNCistDQorLQlhc3NlcnQoZnJlYWQoZGF0YSwgMSwgVEVTVF9TSVpF LCBmcCkgPT0gVEVTVF9TSVpFKTsNCistCWFzc2VydChtZW1jbXAodGMuYXJyYXksIGRhdGEsIFRF U1RfU0laRSkgPT0gMCk7DQorLQ0KKy0JYXNzZXJ0KGZ3cml0ZShkYXRhLCAxLCBURVNUX1NJWkUs IGZwKSA9PSAwKTsNCistDQorLQlhc3NlcnQoZmNsb3NlKGZwKSA9PSAwKTsNCistDQorLQkvKiBU ZXN0IHdyaXRlLW9ubHkgZmlsZS4gKi8NCistCW1lbXNldCgmdGMsIDAsIHNpemVvZih0YykpOw0K Ky0NCistCWZwID0gZndvcGVuKCZ0YywgdGVzdF93cml0ZWZuKTsNCistCWFzc2VydChmcCk7DQor LQ0KKy0Jc2V0dmJ1ZihmcCwgTlVMTCwgX0lPTkJGLCAwKTsNCistDQorLQlhc3NlcnQoZndyaXRl KGRhdGEsIDEsIFRFU1RfU0laRSwgZnApID09IFRFU1RfU0laRSk7DQorLQlhc3NlcnQobWVtY21w KHRjLmFycmF5LCBkYXRhLCBURVNUX1NJWkUpID09IDApOw0KKy0NCistCWFzc2VydChmcmVhZChk YXRhLCAxLCBURVNUX1NJWkUsIGZwKSA9PSAwKTsNCistDQorLQlhc3NlcnQoZmNsb3NlKGZwKSA9 PSAwKTsNCistDQorLQkvKiBUZXN0IHNlZWthYmxlIGZpbGUuICovDQorLQltZW1zZXQoJnRjLCAw LCBzaXplb2YodGMpKTsNCistDQorLQlmcCA9IGZ1bm9wZW4oJnRjLCB0ZXN0X3JlYWRmbiwgdGVz dF93cml0ZWZuLCB0ZXN0X3NlZWtmbiwgTlVMTCk7DQorLQlhc3NlcnQoZnApOw0KKy0NCistCXNl dHZidWYoZnAsIE5VTEwsIF9JT05CRiwgMCk7DQorLQ0KKy0JYXNzZXJ0KGZ3cml0ZShkYXRhLCAx LCBURVNUX1NJWkUsIGZwKSA9PSBURVNUX1NJWkUpOw0KKy0JYXNzZXJ0KGZzZWVrKGZwLCAwTCwg U0VFS19TRVQpID09IDApOw0KKy0JYXNzZXJ0KGZ3cml0ZShkYXRhLCAxLCBBUlJBWV9TSVpFLCBm cCkgPT0gQVJSQVlfU0laRSk7DQorLQlhc3NlcnQobWVtY21wKHRjLmFycmF5LCBkYXRhLCBBUlJB WV9TSVpFKSA9PSAwKTsNCistDQorLQlhc3NlcnQoZnJlYWQoZGF0YSwgMSwgVEVTVF9TSVpFLCBm cCkgPT0gMCk7DQorLQ0KKy0JYXNzZXJ0KGZjbG9zZShmcCkgPT0gMCk7DQorLQ0KKy0JLyogVGVz dCBjbG9zZSBob29rLiAqLw0KKy0JbWVtc2V0KCZ0YywgMCwgc2l6ZW9mKHRjKSk7DQorLQ0KKy0J ZnAgPSBmdW5vcGVuKCZ0YywgdGVzdF9yZWFkZm4sIHRlc3Rfd3JpdGVmbiwgTlVMTCwgdGVzdF9j bG9zZWZuKTsNCistCWFzc2VydChmY2xvc2UoZnApID09IDApOw0KKy0NCistCWZvciAoaSA9IDA7 IGkgPCBzaXplb2YodGMuYXJyYXkpOyBpKyspDQorLQkJYXNzZXJ0KHRjLmFycmF5W2ldID09IDB4 N2YpOw0KKy0NCistCXJldHVybiAwOw0KKy19DQotLSANCjIuNC4yDQoNCg0KDQotLS0NClVuc3Vi c2NyaWJlOiAgYWxwaW5lLWFwb3J0cyt1bnN1YnNjcmliZUBsaXN0cy5hbHBpbmVsaW51eC5vcmcN CkhlbHA6ICAgICAgICAgYWxwaW5lLWFwb3J0cytoZWxwQGxpc3RzLmFscGluZWxpbnV4Lm9yZw0K LS0tDQo=