Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dhq6m-0002ov-LY for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Aug 2017 04:39:09 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dhq6k-0001Ij-Rq for pgsql-hackers@arkaria.postgresql.org; Wed, 16 Aug 2017 04:39:06 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dhq4A-0006qS-9b for pgsql-hackers@postgresql.org; Wed, 16 Aug 2017 04:36:27 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dhq3v-000641-Hg for pgsql-hackers@postgresql.org; Wed, 16 Aug 2017 04:36:24 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 8CE5B20DC6 for ; Wed, 16 Aug 2017 00:36:10 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute7.internal (MEProxy); Wed, 16 Aug 2017 00:36:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=hC5DpYIggWaUSkKoJfsoCGKGPn3hfkp55XmBHtdHT ss=; b=pBrflUvyZQ/L9OTU+2CLJuiq0OqEN9tU7XJUvurQDh7US6Plz5QrTAjmX aKelEwY9S3TVme/OhWau4VnQj3tkNxZqjYU+6ivCgd4qwuKyuQZ0svcka8nQMRV2 T9UsNKCeA2lERjOzOfh2ZRhvnk1mC7M/X0ZTutXym0H2JfL9jMJcvj+JCJsOYheC WzQJtQ993XuiU70/pOu2wXssARMOiazvJ8pxEXpnZqkBuQJBdBdu8pVBEzWSJ6Jd jF6nM+RbhL43lx4DYoT91/d6+jgeG8htK7pXHdgJ0F6jQpfn6UbYIo09EjSMWW5/ t134PXr6gUyJGFqWLqNgbIIIrKL3g== X-ME-Sender: X-Sasl-enc: 8tKB2ODMnumLpFPn7ERUBSeoidPZY3K7xHpdwuvqUHd1 1502858169 Received: from april.local (c-73-13-66-39.hsd1.pa.comcast.net [73.13.66.39]) by mail.messagingengine.com (Postfix) with ESMTPA id D9F87240B1 for ; Wed, 16 Aug 2017 00:36:09 -0400 (EDT) From: Peter Eisentraut Subject: taking stdbool.h into use Organization: 2ndQuadrant To: pgsql-hackers Message-ID: <3a0fe7e1-5ed1-414b-9230-53bbc0ed1f49@2ndquadrant.com> Date: Wed, 16 Aug 2017 00:36:09 -0400 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2E2F0D77CFDFB22F535375ED" Content-Language: en-US List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org This is a multi-part message in MIME format. --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Some not so long time ago, it was discussed to look into taking stdbool.h into use. The reason was that third-party libraries (perl?, ldap?, postgis?) are increasingly doing so, and having incompatible definitions of bool could/does create a mess. Here is a patch set that aims to accomplish that. On the way there, it cleans up various loose and weird uses of bool and proposes a way to ensure that the system catalog structs get a 1-byte bool even if the "standard" bool is not. I have done a fair amount of testing on this, including a hand-rigged setup where _Bool is not 1 byte. But obviously, more and wider testing would be very useful. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Fix-bool-int-type-confusion.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Fix-bool-int-type-confusion.patch" RnJvbSAzNDI3MzUyNDkxMmJlMjRhNDJkMmZjMGY5YzVmMjRmNTUwNTJiMDg5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDEvOF0gRml4IGJvb2wv aW50IHR5cGUgY29uZnVzaW9uCgpVc2luZyArKyBvbiBhIGJvb2wgdmFyaWFi bGUgZG9lc24ndCB3b3JrIHdlbGwgd2hlbiBzdGRib29sLmggaXMgaW4gdXNl LgpUaGUgb3JpZ2luYWwgQlNEIGNvZGUgYXBwZWFycyB0byB1c2UgaW50IGhl cmUsIHNvIHVzZSB0aGF0IGluc3RlYWQuCi0tLQogc3JjL3RpbWV6b25lL2xv Y2FsdGltZS5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9u KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3RpbWV6b25l L2xvY2FsdGltZS5jIGIvc3JjL3RpbWV6b25lL2xvY2FsdGltZS5jCmluZGV4 IDA4NjQyZDEyMzYuLjgyYzE4ZTg1NDQgMTAwNjQ0Ci0tLSBhL3NyYy90aW1l em9uZS9sb2NhbHRpbWUuYworKysgYi9zcmMvdGltZXpvbmUvbG9jYWx0aW1l LmMKQEAgLTEzNzksNyArMTM3OSw3IEBAIHRpbWVzdWIoY29uc3QgcGdfdGlt ZV90ICp0aW1lcCwgaW50MzIgb2Zmc2V0LAogCWludAkJCXk7CiAJY29uc3Qg aW50ICAqaXA7CiAJaW50NjQJCWNvcnI7Ci0JYm9vbAkJaGl0OworCWludAkJ CWhpdDsKIAlpbnQJCQlpOwogCiAJY29yciA9IDA7Ci0tIAoyLjE0LjEKCg== --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0002-Change-TRUE-FALSE-to-true-false.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Change-TRUE-FALSE-to-true-false.patch" RnJvbSBmZTg2YzY3Y2QzZjRkYjM0MTBiZWE0ZjcyYWJlZDFkNzlmOTM3OTJk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvOF0gQ2hhbmdlIFRS VUUvRkFMU0UgdG8gdHJ1ZS9mYWxzZQoKVGhlIGxvd2VyIGNhc2Ugc3BlbGxp bmdzIGFyZSBDIGFuZCBDKysgc3RhbmRhcmQgYW5kIGFyZSB1c2VkIGluIG1v c3QKcGFydHMgb2YgdGhlIFBvc3RncmVTUUwgc291cmNlcy4gIFRoZSB1cHBl ciBjYXNlIHNwZWxsaW5ncyBhcmUgb25seSB1c2VkCmluIHNvbWUgZmlsZXMv bW9kdWxlcy4gIFNvIHN0YW5kYXJkaXplIG9uIHRoZSBzdGFuZGFyZCBzcGVs bGluZ3MuCi0tLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2JpdC5jICAg ICAgICB8ICAgNiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2J5dGVh LmMgICAgICB8ICAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2lu ZXQuYyAgICAgICB8ICAgMiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVl X2ludGVydmFsLmMgICB8ICAgNCArLQogY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX251bWVyaWMuYyAgICB8ICAgMiArLQogY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX3RleHQuYyAgICAgICB8ICAgNCArLQogY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX3RpbWUuYyAgICAgICB8ICAgMiArLQogY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX3RzLmMgICAgICAgICB8ICAgMiArLQogY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX3V0aWxzX251bS5jICB8ICAgNCArLQogY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX3V0aWxzX3Zhci5jICB8ICAxMiArLQogY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYyAgICAgICB8ICAgMiArLQog Y29udHJpYi9jdWJlL2N1YmUuYyAgICAgICAgICAgICAgICAgICB8ICAzNiAr Ky0tLQogY29udHJpYi9kYmxpbmsvZGJsaW5rLmMgICAgICAgICAgICAgICB8 ICAgNiArLQogY29udHJpYi9mdXp6eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2gu YyB8ICAgOCArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlX2dpc3QuYyAgICAg ICAgICB8ICAxMCArLQogY29udHJpYi9pbnRhcnJheS9faW50X2Jvb2wuYyAg ICAgICAgICB8ICAgMiArLQogY29udHJpYi9pbnRhcnJheS9faW50X2dpbi5j ICAgICAgICAgICB8ICAxNCArLQogY29udHJpYi9pbnRhcnJheS9faW50X2dp c3QuYyAgICAgICAgICB8ICAxOCArLS0KIGNvbnRyaWIvaW50YXJyYXkvX2lu dF9vcC5jICAgICAgICAgICAgfCAgIDggKy0KIGNvbnRyaWIvaW50YXJyYXkv X2ludF90b29sLmMgICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvaW50YXJy YXkvX2ludGJpZ19naXN0LmMgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvbHRy ZWUvX2x0cmVlX2dpc3QuYyAgICAgICAgICAgfCAgIDQgKy0KIGNvbnRyaWIv bHRyZWUvbHRyZWVfZ2lzdC5jICAgICAgICAgICAgfCAgIDQgKy0KIGNvbnRy aWIvcGdfdHJnbS90cmdtX2dpc3QuYyAgICAgICAgICAgfCAgIDQgKy0KIGNv bnRyaWIvc2VnL3NlZy5jICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0K IGRvYy9zcmMvc2dtbC9naW4uc2dtbCAgICAgICAgICAgICAgICAgfCAgMjgg KystLQogZG9jL3NyYy9zZ21sL2luZGV4YW0uc2dtbCAgICAgICAgICAgICB8 ICAyNiArLS0KIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAg ICAgfCAgIDQgKy0KIGRvYy9zcmMvc2dtbC9zcGdpc3Quc2dtbCAgICAgICAg ICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9zc2xpbmZvLnNnbWwgICAg ICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu YnRyZWUuYyAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4v Z2luYnVsay5jICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9n aW4vZ2luZGF0YXBhZ2UuYyAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vz cy9naW4vZ2luZW50cnlwYWdlLmMgfCAgMTYgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naW4vZ2luZ2V0LmMgICAgICAgfCAgNDAgKystLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMgICAgfCAgIDQgKy0KIHNyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMgICAgfCAgMzIgKystLQog c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jICAgICAgICB8ICAgNCAr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jICAgICB8ICAg NCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHByb2MuYyAgICB8 ICAxNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMg ICB8ICAzOCArKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0 aWwuYyAgICB8ICAyNCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25v ZGVBZ2cuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVBcHBlbmQuYyAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVHcm91cC5jICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci91dGlsL3ByZWR0ZXN0LmMgfCAgNDIgKystLS0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgfCAyOTQgKysrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYyAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcmVwbF9ncmFtLnkgICB8ICAxOCArLS0KIHNyYy9iYWNrZW5k L3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jICAgfCAgMjYgKy0tCiBzcmMvYmFj a2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jIHwgICA2ICstCiBzcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zaG1lbS5jICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9zaG1xdWV1ZS5jICAgIHwgICA4ICst CiBzcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvbG9jay5jICAgICAgIHwgIDI2 ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMgICAgICB8 ICA1MCArKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5n LmMgICAgfCAyNzIgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQog c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyAgICAgICB8ICAxMiAr LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmtfZ2lzdC5jICB8ICAg NiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyAgICAgICB8 ICAxMCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMgICAg ICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lzdGlkeC5j ICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlf Z2lzdC5jICB8ICAgNCArLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWMu YyAgICAgICAgICB8ICAxOCArLS0KIHNyYy9pbnRlcmZhY2VzL2VjcGcvcHJl cHJvYy9wZ2MubCAgICAgfCAgMjQgKy0tCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1jb25uZWN0LmMgICAgIHwgIDI4ICsrLS0KIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWV4ZWMuYyAgICAgICAgfCAgODYgKysrKystLS0tLQogc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jICAgICAgICB8ICAgMiArLQog c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wyLmMgICB8ICAxMiAr LQogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgICB8ICAx MiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZlbnRzLmMgICB8 ICAzNCArKy0tCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAgICAg ICAgIHwgICA4ICstCiA3MiBmaWxlcyBjaGFuZ2VkLCA3NTAgaW5zZXJ0aW9u cygrKSwgNzUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9iaXQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9i dHJlZV9iaXQuYwppbmRleCBhNTZhMjc1MmE3Li4yMjI1MjQ0ZGVkIDEwMDY0 NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfYml0LmMKKysrIGIv Y29udHJpYi9idHJlZV9naXN0L2J0cmVlX2JpdC5jCkBAIC0xMTEsNyArMTEx LDcgQEAgc3RhdGljIGNvbnN0IGdidHJlZV92aW5mbyB0aW5mbyA9CiB7CiAJ Z2J0X3RfYml0LAogCTAsCi0JVFJVRSwKKwl0cnVlLAogCWdidF9iaXRndCwK IAlnYnRfYml0Z2UsCiAJZ2J0X2JpdGVxLApAQCAtMTUyLDEzICsxNTIsMTMg QEAgZ2J0X2JpdF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAoR0lTVF9MRUFGKGVudHJ5KSkKIAkJcmV0dmFsID0gZ2J0X3Zhcl9jb25z aXN0ZW50KCZyLCBxdWVyeSwgc3RyYXRlZ3ksIFBHX0dFVF9DT0xMQVRJT04o KSwKLQkJCQkJCQkJCVRSVUUsICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pOwor CQkJCQkJCQkJdHJ1ZSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbyk7CiAJZWxz ZQogCXsKIAkJYnl0ZWEJICAgKnEgPSBnYnRfYml0X3hmcm0oKGJ5dGVhICop IHF1ZXJ5KTsKIAogCQlyZXR2YWwgPSBnYnRfdmFyX2NvbnNpc3RlbnQoJnIs IHEsIHN0cmF0ZWd5LCBQR19HRVRfQ09MTEFUSU9OKCksCi0JCQkJCQkJCQlG QUxTRSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbyk7CisJCQkJCQkJCQlmYWxz ZSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbyk7CiAJfQogCVBHX1JFVFVSTl9C T09MKHJldHZhbCk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dp c3QvYnRyZWVfYnl0ZWEuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9i eXRlYS5jCmluZGV4IDAwNzUzZTdmNDguLjZiMDA1ZjAxNTcgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ieXRlYS5jCisrKyBiL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9ieXRlYS5jCkBAIC03NSw3ICs3NSw3 IEBAIHN0YXRpYyBjb25zdCBnYnRyZWVfdmluZm8gdGluZm8gPQogewogCWdi dF90X2J5dGVhLAogCTAsCi0JVFJVRSwKKwl0cnVlLAogCWdidF9ieXRlYWd0 LAogCWdidF9ieXRlYWdlLAogCWdidF9ieXRlYWVxLApkaWZmIC0tZ2l0IGEv Y29udHJpYi9idHJlZV9naXN0L2J0cmVlX2luZXQuYyBiL2NvbnRyaWIvYnRy ZWVfZ2lzdC9idHJlZV9pbmV0LmMKaW5kZXggYjViNTkzZjc3Zi4uODZjMjdj YTk1NSAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2lu ZXQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW5ldC5jCkBA IC0xMDUsNyArMTA1LDcgQEAgZ2J0X2luZXRfY29tcHJlc3MoUEdfRlVOQ1RJ T05fQVJHUykKIAkJci0+dXBwZXIgPSByLT5sb3dlcjsKIAkJZ2lzdGVudHJ5 aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ociksCiAJCQkJCSAgZW50 cnktPnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwg RkFMU0UpOworCQkJCQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAl9CiAJ ZWxzZQogCQlyZXR2YWwgPSBlbnRyeTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9pbnRlcnZhbC5jIGIvY29udHJpYi9idHJlZV9n aXN0L2J0cmVlX2ludGVydmFsLmMKaW5kZXggNjFhYjQ3OGM0Mi4uM2E1Mjdh NzVmYSAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2lu dGVydmFsLmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludGVy dmFsLmMKQEAgLTE2OSw3ICsxNjksNyBAQCBnYnRfaW50dl9jb21wcmVzcyhQ R19GVU5DVElPTl9BUkdTKQogCQl9CiAJCWdpc3RlbnRyeWluaXQoKnJldHZh bCwgUG9pbnRlckdldERhdHVtKHIpLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVu dHJ5LT5wYWdlLAotCQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZBTFNFKTsKKwkJ CQkJICBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAJfQogCiAJUEdfUkVUVVJO X1BPSU5URVIocmV0dmFsKTsKQEAgLTIwMSw3ICsyMDEsNyBAQCBnYnRfaW50 dl9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJZ2lzdGVudHJ5 aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ociksCiAJCQkJCSAgZW50 cnktPnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwg RkFMU0UpOworCQkJCQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAl9CiAJ UEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsKIH0KZGlmZiAtLWdpdCBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9udW1lcmljLmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfbnVtZXJpYy5jCmluZGV4IDQzNzkzZDM2YTIuLmI3 MjA2MGNkYjYgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJl ZV9udW1lcmljLmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX251 bWVyaWMuYwpAQCAtNzksNyArNzksNyBAQCBzdGF0aWMgY29uc3QgZ2J0cmVl X3ZpbmZvIHRpbmZvID0KIHsKIAlnYnRfdF9udW1lcmljLAogCTAsCi0JRkFM U0UsCisJZmFsc2UsCiAJZ2J0X251bWVyaWNfZ3QsCiAJZ2J0X251bWVyaWNf Z2UsCiAJZ2J0X251bWVyaWNfZXEsCmRpZmYgLS1naXQgYS9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfdGV4dC5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX3RleHQuYwppbmRleCAwOTBjODQ5NDcwLi43OWZmYWMyNjg1IDEwMDY0 NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdGV4dC5jCisrKyBi L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90ZXh0LmMKQEAgLTgwLDcgKzgw LDcgQEAgc3RhdGljIGdidHJlZV92aW5mbyB0aW5mbyA9CiB7CiAJZ2J0X3Rf dGV4dCwKIAkwLAotCUZBTFNFLAorCWZhbHNlLAogCWdidF90ZXh0Z3QsCiAJ Z2J0X3RleHRnZSwKIAlnYnRfdGV4dGVxLApAQCAtMTI4LDcgKzEyOCw3IEBA IGdidF9icGNoYXJfY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAogCQln aXN0ZW50cnlpbml0KHRyaW0sIGQsCiAJCQkJCSAgZW50cnktPnJlbCwgZW50 cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgVFJVRSk7CisJCQkJ CSAgZW50cnktPm9mZnNldCwgdHJ1ZSk7CiAJCXJldHZhbCA9IGdidF92YXJf Y29tcHJlc3MoJnRyaW0sICZ0aW5mbyk7CiAJfQogCWVsc2UKZGlmZiAtLWdp dCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90aW1lLmMgYi9jb250cmli L2J0cmVlX2dpc3QvYnRyZWVfdGltZS5jCmluZGV4IGJiMjM5ZDQ5ODYuLjkw Y2Y2NTU0ZWEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJl ZV90aW1lLmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3RpbWUu YwpAQCAtMTgzLDcgKzE4Myw3IEBAIGdidF90aW1ldHpfY29tcHJlc3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJci0+bG93ZXIgPSByLT51cHBlciA9IHRtcDsK IAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ociks CiAJCQkJCSAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCSAgZW50 cnktPm9mZnNldCwgRkFMU0UpOworCQkJCQkgIGVudHJ5LT5vZmZzZXQsIGZh bHNlKTsKIAl9CiAJZWxzZQogCQlyZXR2YWwgPSBlbnRyeTsKZGlmZiAtLWdp dCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV90cy5jIGIvY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX3RzLmMKaW5kZXggMTU4MmNmZjEwMi4uMTg3NDBj YWQzOCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3Rz LmMKKysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3RzLmMKQEAgLTIz MCw3ICsyMzAsNyBAQCBnYnRfdHN0el9jb21wcmVzcyhQR19GVU5DVElPTl9B UkdTKQogCQlyLT5sb3dlciA9IHItPnVwcGVyID0gZ210OwogCQlnaXN0ZW50 cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShyKSwKIAkJCQkJICBl bnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkJICBlbnRyeS0+b2Zmc2V0 LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9mZnNldCwgZmFsc2UpOwogCX0K IAllbHNlCiAJCXJldHZhbCA9IGVudHJ5OwpkaWZmIC0tZ2l0IGEvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX3V0aWxzX251bS5jIGIvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX3V0aWxzX251bS5jCmluZGV4IGJhZTMyYzQwNjQuLjNi NzdkMjJiNGIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJl ZV91dGlsc19udW0uYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVf dXRpbHNfbnVtLmMKQEAgLTg2LDcgKzg2LDcgQEAgZ2J0X251bV9jb21wcmVz cyhHSVNURU5UUlkgKmVudHJ5LCBjb25zdCBnYnRyZWVfbmluZm8gKnRpbmZv KQogCQltZW1jcHkoKHZvaWQgKikgJnJbdGluZm8tPnNpemVdLCBsZWFmLCB0 aW5mby0+c2l6ZSk7CiAJCXJldHZhbCA9IHBhbGxvYyhzaXplb2YoR0lTVEVO VFJZKSk7CiAJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdldERh dHVtKHIpLCBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkJICBlbnRy eS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9mZnNldCwgZmFs c2UpOwogCX0KIAllbHNlCiAJCXJldHZhbCA9IGVudHJ5OwpAQCAtMTUwLDcg KzE1MCw3IEBAIGdidF9udW1fZmV0Y2goR0lTVEVOVFJZICplbnRyeSwgY29u c3QgZ2J0cmVlX25pbmZvICp0aW5mbykKIAogCXJldHZhbCA9IHBhbGxvYyhz aXplb2YoR0lTVEVOVFJZKSk7CiAJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBk YXR1bSwgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsIGVudHJ5LT5vZmZzZXQs Ci0JCQkJICBGQUxTRSk7CisJCQkJICBmYWxzZSk7CiAJcmV0dXJuIHJldHZh bDsKIH0KIApkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVl X3V0aWxzX3Zhci5jIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V0aWxz X3Zhci5jCmluZGV4IDJjNjM2YWQyZmEuLmE3ZDc1OTdkN2EgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dGlsc192YXIuYworKysg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRpbHNfdmFyLmMKQEAgLTQ1 LDcgKzQ1LDcgQEAgZ2J0X3Zhcl9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0 dW0oa2V5KSwKIAkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJ CQkJICBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9m ZnNldCwgZmFsc2UpOwogCiAJCVBHX1JFVFVSTl9QT0lOVEVSKHJldHZhbCk7 CiAJfQpAQCAtMTY5LDcgKzE2OSw3IEBAIGdidF92YXJfbm9kZV9jcF9sZW4o Y29uc3QgR0JUX1ZBUktFWSAqbm9kZSwgY29uc3QgZ2J0cmVlX3ZpbmZvICp0 aW5mbykKIHN0YXRpYyBib29sCiBnYnRfYnl0ZWFfcGZfbWF0Y2goY29uc3Qg Ynl0ZWEgKnBmLCBjb25zdCBieXRlYSAqcXVlcnksIGNvbnN0IGdidHJlZV92 aW5mbyAqdGluZm8pCiB7Ci0JYm9vbAkJb3V0ID0gRkFMU0U7CisJYm9vbAkJ b3V0ID0gZmFsc2U7CiAJaW50MzIJCXFsZW4gPSBWQVJTSVpFKHF1ZXJ5KSAt IFZBUkhEUlNaOwogCWludDMyCQlubGVuID0gVkFSU0laRShwZikgLSBWQVJI RFJTWjsKIApAQCAtMjk0LDcgKzI5NCw3IEBAIGdidF92YXJfY29tcHJlc3Mo R0lTVEVOVFJZICplbnRyeSwgY29uc3QgZ2J0cmVlX3ZpbmZvICp0aW5mbykK IAkJcmV0dmFsID0gcGFsbG9jKHNpemVvZihHSVNURU5UUlkpKTsKIAkJZ2lz dGVudHJ5aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ociksCiAJCQkJ CSAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9m ZnNldCwgVFJVRSk7CisJCQkJCSAgZW50cnktPm9mZnNldCwgdHJ1ZSk7CiAJ fQogCWVsc2UKIAkJcmV0dmFsID0gZW50cnk7CkBAIC0zMTQsNyArMzE0LDcg QEAgZ2J0X3Zhcl9mZXRjaChQR19GVU5DVElPTl9BUkdTKQogCXJldHZhbCA9 IHBhbGxvYyhzaXplb2YoR0lTVEVOVFJZKSk7CiAJZ2lzdGVudHJ5aW5pdCgq cmV0dmFsLCBQb2ludGVyR2V0RGF0dW0oci5sb3dlciksCiAJCQkJICBlbnRy eS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkgIGVudHJ5LT5vZmZzZXQsIFRS VUUpOworCQkJCSAgZW50cnktPm9mZnNldCwgdHJ1ZSk7CiAKIAlQR19SRVRV Uk5fUE9JTlRFUihyZXR2YWwpOwogfQpAQCAtNTYxLDcgKzU2MSw3IEBAIGdi dF92YXJfY29uc2lzdGVudChHQlRfVkFSS0VZX1IgKmtleSwKIAkJCQkgICBj b25zdCBnYnRyZWVfdmluZm8gKnRpbmZvLAogCQkJCSAgIEZtZ3JJbmZvICpm bGluZm8pCiB7Ci0JYm9vbAkJcmV0dmFsID0gRkFMU0U7CisJYm9vbAkJcmV0 dmFsID0gZmFsc2U7CiAKIAlzd2l0Y2ggKHN0cmF0ZWd5KQogCXsKQEAgLTYw Nyw3ICs2MDcsNyBAQCBnYnRfdmFyX2NvbnNpc3RlbnQoR0JUX1ZBUktFWV9S ICprZXksCiAJCQkJCSAgICgqdGluZm8tPmZfZXEpIChxdWVyeSwga2V5LT51 cHBlciwgY29sbGF0aW9uLCBmbGluZm8pKTsKIAkJCWJyZWFrOwogCQlkZWZh dWx0OgotCQkJcmV0dmFsID0gRkFMU0U7CisJCQlyZXR2YWwgPSBmYWxzZTsK IAl9CiAKIAlyZXR1cm4gcmV0dmFsOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9i dHJlZV9naXN0L2J0cmVlX3V1aWQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9i dHJlZV91dWlkLmMKaW5kZXggZWNmMzU3ZDY2Mi4uYmJlZDE2YTg1MiAxMDA2 NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V1aWQuYworKysg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdXVpZC5jCkBAIC0xMTQsNyAr MTE0LDcgQEAgZ2J0X3V1aWRfY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJHUykK IAkJbWVtY3B5KCh2b2lkICopIChyICsgVVVJRF9MRU4pLCAodm9pZCAqKSBr ZXksIFVVSURfTEVOKTsKIAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2lu dGVyR2V0RGF0dW0ociksCiAJCQkJCSAgZW50cnktPnJlbCwgZW50cnktPnBh Z2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJCQkgIGVu dHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAl9CiAJZWxzZQogCQlyZXR2YWwgPSBl bnRyeTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY3ViZS9jdWJlLmMgYi9jb250 cmliL2N1YmUvY3ViZS5jCmluZGV4IDE0OTU1OGM3NjMuLjZhYjNhMTViYzgg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY3ViZS9jdWJlLmMKKysrIGIvY29udHJp Yi9jdWJlL2N1YmUuYwpAQCAtMzA5LDcgKzMwOSw3IEBAIGN1YmVfb3V0KFBH X0ZVTkNUSU9OX0FSR1MpCiAvKgogKiogVGhlIEdpU1QgQ29uc2lzdGVudCBt ZXRob2QgZm9yIGJveGVzCiAqKiBTaG91bGQgcmV0dXJuIGZhbHNlIGlmIGZv ciBhbGwgZGF0YSBpdGVtcyB4IGJlbG93IGVudHJ5LAotKiogdGhlIHByZWRp Y2F0ZSB4IG9wIHF1ZXJ5ID09IEZBTFNFLCB3aGVyZSBvcCBpcyB0aGUgb3Bl cgorKiogdGhlIHByZWRpY2F0ZSB4IG9wIHF1ZXJ5ID09IGZhbHNlLCB3aGVy ZSBvcCBpcyB0aGUgb3BlcgogKiogY29ycmVzcG9uZGluZyB0byBzdHJhdGVn eSBpbiB0aGUgcGdfYW1vcCB0YWJsZS4KICovCiBEYXR1bQpAQCAtMzk2LDcg KzM5Niw3IEBAIGdfY3ViZV9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0o a2V5KSwKIAkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkJ ICBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9mZnNl dCwgZmFsc2UpOwogCQlQR19SRVRVUk5fUE9JTlRFUihyZXR2YWwpOwogCX0K IAlQR19SRVRVUk5fUE9JTlRFUihlbnRyeSk7CkBAIC01ODksOSArNTg5LDkg QEAgZ19jdWJlX3NhbWUoUEdfRlVOQ1RJT05fQVJHUykKIAlib29sCSAgICpy ZXN1bHQgPSAoYm9vbCAqKSBQR19HRVRBUkdfUE9JTlRFUigyKTsKIAogCWlm IChjdWJlX2NtcF92MChiMSwgYjIpID09IDApCi0JCSpyZXN1bHQgPSBUUlVF OworCQkqcmVzdWx0ID0gdHJ1ZTsKIAllbHNlCi0JCSpyZXN1bHQgPSBGQUxT RTsKKwkJKnJlc3VsdCA9IGZhbHNlOwogCiAJUEdfUkVUVVJOX05EQk9YKHJl c3VsdCk7CiB9CkBAIC02MjMsNyArNjIzLDcgQEAgZ19jdWJlX2xlYWZfY29u c2lzdGVudChOREJPWCAqa2V5LAogCQkJcmV0dmFsID0gKGJvb2wpIGN1YmVf Y29udGFpbnNfdjAocXVlcnksIGtleSk7CiAJCQlicmVhazsKIAkJZGVmYXVs dDoKLQkJCXJldHZhbCA9IEZBTFNFOworCQkJcmV0dmFsID0gZmFsc2U7CiAJ fQogCXJldHVybiAocmV0dmFsKTsKIH0KQEAgLTY1MCw3ICs2NTAsNyBAQCBn X2N1YmVfaW50ZXJuYWxfY29uc2lzdGVudChOREJPWCAqa2V5LAogCQkJcmV0 dmFsID0gKGJvb2wpIGN1YmVfb3ZlcmxhcF92MChrZXksIHF1ZXJ5KTsKIAkJ CWJyZWFrOwogCQlkZWZhdWx0OgotCQkJcmV0dmFsID0gRkFMU0U7CisJCQly ZXR2YWwgPSBmYWxzZTsKIAl9CiAJcmV0dXJuIChyZXR2YWwpOwogfQpAQCAt MTA1OCw3ICsxMDU4LDcgQEAgY3ViZV9jb250YWluc192MChOREJPWCAqYSwg TkRCT1ggKmIpCiAJaW50CQkJaTsKIAogCWlmICgoYSA9PSBOVUxMKSB8fCAo YiA9PSBOVUxMKSkKLQkJcmV0dXJuIChGQUxTRSk7CisJCXJldHVybiAoZmFs c2UpOwogCiAJaWYgKERJTShhKSA8IERJTShiKSkKIAl7CkBAIC0xMDcwLDkg KzEwNzAsOSBAQCBjdWJlX2NvbnRhaW5zX3YwKE5EQk9YICphLCBOREJPWCAq YikKIAkJZm9yIChpID0gRElNKGEpOyBpIDwgRElNKGIpOyBpKyspCiAJCXsK IAkJCWlmIChMTF9DT09SRChiLCBpKSAhPSAwKQotCQkJCXJldHVybiAoRkFM U0UpOworCQkJCXJldHVybiAoZmFsc2UpOwogCQkJaWYgKFVSX0NPT1JEKGIs IGkpICE9IDApCi0JCQkJcmV0dXJuIChGQUxTRSk7CisJCQkJcmV0dXJuIChm YWxzZSk7CiAJCX0KIAl9CiAKQEAgLTEwODEsMTMgKzEwODEsMTMgQEAgY3Vi ZV9jb250YWluc192MChOREJPWCAqYSwgTkRCT1ggKmIpCiAJewogCQlpZiAo TWluKExMX0NPT1JEKGEsIGkpLCBVUl9DT09SRChhLCBpKSkgPgogCQkJTWlu KExMX0NPT1JEKGIsIGkpLCBVUl9DT09SRChiLCBpKSkpCi0JCQlyZXR1cm4g KEZBTFNFKTsKKwkJCXJldHVybiAoZmFsc2UpOwogCQlpZiAoTWF4KExMX0NP T1JEKGEsIGkpLCBVUl9DT09SRChhLCBpKSkgPAogCQkJTWF4KExMX0NPT1JE KGIsIGkpLCBVUl9DT09SRChiLCBpKSkpCi0JCQlyZXR1cm4gKEZBTFNFKTsK KwkJCXJldHVybiAoZmFsc2UpOwogCX0KIAotCXJldHVybiAoVFJVRSk7CisJ cmV0dXJuICh0cnVlKTsKIH0KIAogRGF0dW0KQEAgLTExMjgsNyArMTEyOCw3 IEBAIGN1YmVfb3ZlcmxhcF92MChOREJPWCAqYSwgTkRCT1ggKmIpCiAJaW50 CQkJaTsKIAogCWlmICgoYSA9PSBOVUxMKSB8fCAoYiA9PSBOVUxMKSkKLQkJ cmV0dXJuIChGQUxTRSk7CisJCXJldHVybiAoZmFsc2UpOwogCiAJLyogc3dh cCB0aGUgYm94IHBvaW50ZXJzIGlmIG5lZWRlZCAqLwogCWlmIChESU0oYSkg PCBESU0oYikpCkBAIC0xMTQzLDIxICsxMTQzLDIxIEBAIGN1YmVfb3Zlcmxh cF92MChOREJPWCAqYSwgTkRCT1ggKmIpCiAJZm9yIChpID0gMDsgaSA8IERJ TShiKTsgaSsrKQogCXsKIAkJaWYgKE1pbihMTF9DT09SRChhLCBpKSwgVVJf Q09PUkQoYSwgaSkpID4gTWF4KExMX0NPT1JEKGIsIGkpLCBVUl9DT09SRChi LCBpKSkpCi0JCQlyZXR1cm4gKEZBTFNFKTsKKwkJCXJldHVybiAoZmFsc2Up OwogCQlpZiAoTWF4KExMX0NPT1JEKGEsIGkpLCBVUl9DT09SRChhLCBpKSkg PCBNaW4oTExfQ09PUkQoYiwgaSksIFVSX0NPT1JEKGIsIGkpKSkKLQkJCXJl dHVybiAoRkFMU0UpOworCQkJcmV0dXJuIChmYWxzZSk7CiAJfQogCiAJLyog Y29tcGFyZSB0byB6ZXJvIHRob3NlIGRpbWVuc2lvbnMgaW4gKGEpIGFic2Vu dCBpbiAoYikgKi8KIAlmb3IgKGkgPSBESU0oYik7IGkgPCBESU0oYSk7IGkr KykKIAl7CiAJCWlmIChNaW4oTExfQ09PUkQoYSwgaSksIFVSX0NPT1JEKGEs IGkpKSA+IDApCi0JCQlyZXR1cm4gKEZBTFNFKTsKKwkJCXJldHVybiAoZmFs c2UpOwogCQlpZiAoTWF4KExMX0NPT1JEKGEsIGkpLCBVUl9DT09SRChhLCBp KSkgPCAwKQotCQkJcmV0dXJuIChGQUxTRSk7CisJCQlyZXR1cm4gKGZhbHNl KTsKIAl9CiAKLQlyZXR1cm4gKFRSVUUpOworCXJldHVybiAodHJ1ZSk7CiB9 CiAKIApkaWZmIC0tZ2l0IGEvY29udHJpYi9kYmxpbmsvZGJsaW5rLmMgYi9j b250cmliL2RibGluay9kYmxpbmsuYwppbmRleCA4MTEzNmIxMzFjLi5jOTA3 MTdlNjc4IDEwMDY0NAotLS0gYS9jb250cmliL2RibGluay9kYmxpbmsuYwor KysgYi9jb250cmliL2RibGluay9kYmxpbmsuYwpAQCAtMjQzLDcgKzI0Myw3 IEBAIGRibGlua19pbml0KHZvaWQpCiAJCXBjb25uID0gKHJlbW90ZUNvbm4g KikgTWVtb3J5Q29udGV4dEFsbG9jKFRvcE1lbW9yeUNvbnRleHQsIHNpemVv ZihyZW1vdGVDb25uKSk7CiAJCXBjb25uLT5jb25uID0gTlVMTDsKIAkJcGNv bm4tPm9wZW5DdXJzb3JDb3VudCA9IDA7Ci0JCXBjb25uLT5uZXdYYWN0Rm9y Q3Vyc29yID0gRkFMU0U7CisJCXBjb25uLT5uZXdYYWN0Rm9yQ3Vyc29yID0g ZmFsc2U7CiAJfQogfQogCkBAIC00MjMsNyArNDIzLDcgQEAgZGJsaW5rX29w ZW4oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKFBRcmVzdWx0U3RhdHVzKHJl cykgIT0gUEdSRVNfQ09NTUFORF9PSykKIAkJCWRibGlua19yZXNfaW50ZXJu YWxlcnJvcihjb25uLCByZXMsICJiZWdpbiBlcnJvciIpOwogCQlQUWNsZWFy KHJlcyk7Ci0JCXJjb25uLT5uZXdYYWN0Rm9yQ3Vyc29yID0gVFJVRTsKKwkJ cmNvbm4tPm5ld1hhY3RGb3JDdXJzb3IgPSB0cnVlOwogCiAJCS8qCiAJCSAq IFNpbmNlIHRyYW5zYWN0aW9uIHN0YXRlIHdhcyBJRExFLCB3ZSBmb3JjZSBj dXJzb3IgY291bnQgdG8KQEAgLTUyMyw3ICs1MjMsNyBAQCBkYmxpbmtfY2xv c2UoUEdfRlVOQ1RJT05fQVJHUykKIAkJLyogaWYgY291bnQgaXMgemVybywg Y29tbWl0IHRoZSB0cmFuc2FjdGlvbiAqLwogCQlpZiAocmNvbm4tPm9wZW5D dXJzb3JDb3VudCA9PSAwKQogCQl7Ci0JCQlyY29ubi0+bmV3WGFjdEZvckN1 cnNvciA9IEZBTFNFOworCQkJcmNvbm4tPm5ld1hhY3RGb3JDdXJzb3IgPSBm YWxzZTsKIAogCQkJcmVzID0gUFFleGVjKGNvbm4sICJDT01NSVQiKTsKIAkJ CWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0sp CmRpZmYgLS1naXQgYS9jb250cmliL2Z1enp5c3RybWF0Y2gvZnV6enlzdHJt YXRjaC5jIGIvY29udHJpYi9mdXp6eXN0cm1hdGNoL2Z1enp5c3RybWF0Y2gu YwppbmRleCBjZTU4YTZhN2ZjLi4yNWM2Y2U0NjVjIDEwMDY0NAotLS0gYS9j b250cmliL2Z1enp5c3RybWF0Y2gvZnV6enlzdHJtYXRjaC5jCisrKyBiL2Nv bnRyaWIvZnV6enlzdHJtYXRjaC9mdXp6eXN0cm1hdGNoLmMKQEAgLTg3LDcg Kzg3LDcgQEAgc291bmRleF9jb2RlKGNoYXIgbGV0dGVyKQogCQlwaG9uZWRf d29yZAkJLS0JVGhlIGZpbmFsIHBob25pemVkIHdvcmQuICAoV2UnbGwgYWxs b2NhdGUgdGhlCiAJCQkJCQkJbWVtb3J5LikKIAlPdXRwdXQKLQkJZXJyb3IJ LS0JQSBzaW1wbGUgZXJyb3IgZmxhZywgcmV0dXJucyBUUlVFIG9yIEZBTFNF CisJCWVycm9yCS0tCUEgc2ltcGxlIGVycm9yIGZsYWcsIHJldHVybnMgdHJ1 ZSBvciBmYWxzZQogCiAJTk9URVM6CUFMTCBub24tYWxwaGEgY2hhcmFjdGVy cyBhcmUgaWdub3JlZCwgdGhpcyBpbmNsdWRlcyB3aGl0ZXNwYWNlLAogCWFs dGhvdWdoIG5vbi1hbHBoYSBjaGFyYWN0ZXJzIHdpbGwgYnJlYWsgdXAgcGhv bmVtZXMuCkBAIC0xMDEsOSArMTAxLDkgQEAgc291bmRleF9jb2RlKGNoYXIg bGV0dGVyKQogCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAK LSNkZWZpbmUgTUVUQV9FUlJPUgkJCUZBTFNFCi0jZGVmaW5lIE1FVEFfU1VD Q0VTUwkJVFJVRQotI2RlZmluZSBNRVRBX0ZBSUxVUkUJCUZBTFNFCisjZGVm aW5lIE1FVEFfRVJST1IJCQlmYWxzZQorI2RlZmluZSBNRVRBX1NVQ0NFU1MJ CXRydWUKKyNkZWZpbmUgTUVUQV9GQUlMVVJFCQlmYWxzZQogCiAKIC8qCUkg YWRkIG1vZGlmaWNhdGlvbnMgdG8gdGhlIHRyYWRpdGlvbmFsIG1ldGFwaG9u ZSBhbGdvcml0aG0gdGhhdCB5b3UKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0 b3JlL2hzdG9yZV9naXN0LmMgYi9jb250cmliL2hzdG9yZS9oc3RvcmVfZ2lz dC5jCmluZGV4IGY4ZjU5MzRlNDAuLmM4ZmMxZjlkOWUgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9naXN0LmMKKysrIGIvY29udHJpYi9o c3RvcmUvaHN0b3JlX2dpc3QuYwpAQCAtMTQ0LDcgKzE0NCw3IEBAIGdoc3Rv cmVfY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJZ2lzdGVudHJ5aW5p dCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ocmVzKSwKIAkJCQkJICBlbnRy eS0+cmVsLCBlbnRyeS0+cGFnZSwKIAkJCQkJICBlbnRyeS0+b2Zmc2V0LAot CQkJCQkgIEZBTFNFKTsKKwkJCQkJICBmYWxzZSk7CiAJfQogCWVsc2UgaWYg KCFJU0FMTFRSVUUoRGF0dW1HZXRQb2ludGVyKGVudHJ5LT5rZXkpKSkKIAl7 CkBAIC0xNjYsNyArMTY2LDcgQEAgZ2hzdG9yZV9jb21wcmVzcyhQR19GVU5D VElPTl9BUkdTKQogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJH ZXREYXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdl LAogCQkJCQkgIGVudHJ5LT5vZmZzZXQsCi0JCQkJCSAgRkFMU0UpOworCQkJ CQkgIGZhbHNlKTsKIAl9CiAKIAlQR19SRVRVUk5fUE9JTlRFUihyZXR2YWwp OwpAQCAtNTcwLDcgKzU3MCw3IEBAIGdoc3RvcmVfY29uc2lzdGVudChQR19G VU5DVElPTl9BUkdTKQogCQkJCWNvbnRpbnVlOwogCQkJY3JjID0gY3JjMzJf c3ooVkFSREFUQShrZXlfZGF0dW1zW2ldKSwgVkFSU0laRShrZXlfZGF0dW1z W2ldKSAtIFZBUkhEUlNaKTsKIAkJCWlmICghKEdFVEJJVChzaWduLCBIQVNI VkFMKGNyYykpKSkKLQkJCQlyZXMgPSBGQUxTRTsKKwkJCQlyZXMgPSBmYWxz ZTsKIAkJfQogCX0KIAllbHNlIGlmIChzdHJhdGVneSA9PSBIU3RvcmVFeGlz dHNBbnlTdHJhdGVneU51bWJlcikKQEAgLTU4NSw3ICs1ODUsNyBAQCBnaHN0 b3JlX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkJCSAgVEVY VE9JRCwgLTEsIGZhbHNlLCAnaScsCiAJCQkJCQkgICZrZXlfZGF0dW1zLCAm a2V5X251bGxzLCAma2V5X2NvdW50KTsKIAotCQlyZXMgPSBGQUxTRTsKKwkJ cmVzID0gZmFsc2U7CiAKIAkJZm9yIChpID0gMDsgIXJlcyAmJiBpIDwga2V5 X2NvdW50OyArK2kpCiAJCXsKQEAgLTU5NSw3ICs1OTUsNyBAQCBnaHN0b3Jl X2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJCQljb250aW51ZTsK IAkJCWNyYyA9IGNyYzMyX3N6KFZBUkRBVEEoa2V5X2RhdHVtc1tpXSksIFZB UlNJWkUoa2V5X2RhdHVtc1tpXSkgLSBWQVJIRFJTWik7CiAJCQlpZiAoR0VU QklUKHNpZ24sIEhBU0hWQUwoY3JjKSkpCi0JCQkJcmVzID0gVFJVRTsKKwkJ CQlyZXMgPSB0cnVlOwogCQl9CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvaW50YXJyYXkvX2ludF9ib29sLmMgYi9jb250cmliL2ludGFycmF5 L19pbnRfYm9vbC5jCmluZGV4IGExOGM2NDU2MDYuLjU4NTZjYTFkYmEgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvaW50YXJyYXkvX2ludF9ib29sLmMKKysrIGIv Y29udHJpYi9pbnRhcnJheS9faW50X2Jvb2wuYwpAQCAtMzQyLDcgKzM0Miw3 IEBAIGdpbl9ib29sX2NvbnNpc3RlbnQoUVVFUllUWVBFICpxdWVyeSwgYm9v bCAqY2hlY2spCiAJCQkJaiA9IDA7CiAKIAlpZiAocXVlcnktPnNpemUgPD0g MCkKLQkJcmV0dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgog CSAqIFNldCB1cCBkYXRhIGZvciBjaGVja2NvbmRpdGlvbl9naW4uICBUaGlz IG11c3QgYWdyZWUgd2l0aCB0aGUgcXVlcnkKZGlmZiAtLWdpdCBhL2NvbnRy aWIvaW50YXJyYXkvX2ludF9naW4uYyBiL2NvbnRyaWIvaW50YXJyYXkvX2lu dF9naW4uYwppbmRleCA3MzYyOGJlYTExLi43YWViZmVjNTRiIDEwMDY0NAot LS0gYS9jb250cmliL2ludGFycmF5L19pbnRfZ2luLmMKKysrIGIvY29udHJp Yi9pbnRhcnJheS9faW50X2dpbi5jCkBAIC0xMTYsNyArMTE2LDcgQEAgZ2lu aW50NF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBQb2lu dGVyCSAgICpleHRyYV9kYXRhID0gKFBvaW50ZXIgKikgUEdfR0VUQVJHX1BP SU5URVIoNCk7ICovCiAJYm9vbAkgICAqcmVjaGVjayA9IChib29sICopIFBH X0dFVEFSR19QT0lOVEVSKDUpOwotCWJvb2wJCXJlcyA9IEZBTFNFOworCWJv b2wJCXJlcyA9IGZhbHNlOwogCWludDMyCQlpOwogCiAJc3dpdGNoIChzdHJh dGVneSkKQEAgLTEyNSwyNSArMTI1LDI1IEBAIGdpbmludDRfY29uc2lzdGVu dChQR19GVU5DVElPTl9BUkdTKQogCQkJLyogcmVzdWx0IGlzIG5vdCBsb3Nz eSAqLwogCQkJKnJlY2hlY2sgPSBmYWxzZTsKIAkJCS8qIGF0IGxlYXN0IG9u ZSBlbGVtZW50IGluIGNoZWNrW10gaXMgdHJ1ZSwgc28gcmVzdWx0ID0gdHJ1 ZSAqLwotCQkJcmVzID0gVFJVRTsKKwkJCXJlcyA9IHRydWU7CiAJCQlicmVh azsKIAkJY2FzZSBSVENvbnRhaW5lZEJ5U3RyYXRlZ3lOdW1iZXI6CiAJCWNh c2UgUlRPbGRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVyOgogCQkJLyogd2Ug d2lsbCBuZWVkIHJlY2hlY2sgKi8KIAkJCSpyZWNoZWNrID0gdHJ1ZTsKIAkJ CS8qIGF0IGxlYXN0IG9uZSBlbGVtZW50IGluIGNoZWNrW10gaXMgdHJ1ZSwg c28gcmVzdWx0ID0gdHJ1ZSAqLwotCQkJcmVzID0gVFJVRTsKKwkJCXJlcyA9 IHRydWU7CiAJCQlicmVhazsKIAkJY2FzZSBSVFNhbWVTdHJhdGVneU51bWJl cjoKIAkJCS8qIHdlIHdpbGwgbmVlZCByZWNoZWNrICovCiAJCQkqcmVjaGVj ayA9IHRydWU7CiAJCQkvKiBNdXN0IGhhdmUgYWxsIGVsZW1lbnRzIGluIGNo ZWNrW10gdHJ1ZSAqLwotCQkJcmVzID0gVFJVRTsKKwkJCXJlcyA9IHRydWU7 CiAJCQlmb3IgKGkgPSAwOyBpIDwgbmtleXM7IGkrKykKIAkJCXsKIAkJCQlp ZiAoIWNoZWNrW2ldKQogCQkJCXsKLQkJCQkJcmVzID0gRkFMU0U7CisJCQkJ CXJlcyA9IGZhbHNlOwogCQkJCQlicmVhazsKIAkJCQl9CiAJCQl9CkBAIC0x NTMsMTIgKzE1MywxMiBAQCBnaW5pbnQ0X2NvbnNpc3RlbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCS8qIHJlc3VsdCBpcyBub3QgbG9zc3kgKi8KIAkJCSpy ZWNoZWNrID0gZmFsc2U7CiAJCQkvKiBNdXN0IGhhdmUgYWxsIGVsZW1lbnRz IGluIGNoZWNrW10gdHJ1ZSAqLwotCQkJcmVzID0gVFJVRTsKKwkJCXJlcyA9 IHRydWU7CiAJCQlmb3IgKGkgPSAwOyBpIDwgbmtleXM7IGkrKykKIAkJCXsK IAkJCQlpZiAoIWNoZWNrW2ldKQogCQkJCXsKLQkJCQkJcmVzID0gRkFMU0U7 CisJCQkJCXJlcyA9IGZhbHNlOwogCQkJCQlicmVhazsKIAkJCQl9CiAJCQl9 CmRpZmYgLS1naXQgYS9jb250cmliL2ludGFycmF5L19pbnRfZ2lzdC5jIGIv Y29udHJpYi9pbnRhcnJheS9faW50X2dpc3QuYwppbmRleCA3OTUyMWIyOWIw Li45MTFkMTgwMjNiIDEwMDY0NAotLS0gYS9jb250cmliL2ludGFycmF5L19p bnRfZ2lzdC5jCisrKyBiL2NvbnRyaWIvaW50YXJyYXkvX2ludF9naXN0LmMK QEAgLTI3LDcgKzI3LDcgQEAgUEdfRlVOQ1RJT05fSU5GT19WMShnX2ludF9z YW1lKTsKIC8qCiAqKiBUaGUgR2lTVCBDb25zaXN0ZW50IG1ldGhvZCBmb3Ig X2ludG1lbnRzCiAqKiBTaG91bGQgcmV0dXJuIGZhbHNlIGlmIGZvciBhbGwg ZGF0YSBpdGVtcyB4IGJlbG93IGVudHJ5LAotKiogdGhlIHByZWRpY2F0ZSB4 IG9wIHF1ZXJ5ID09IEZBTFNFLCB3aGVyZSBvcCBpcyB0aGUgb3BlcgorKiog dGhlIHByZWRpY2F0ZSB4IG9wIHF1ZXJ5ID09IGZhbHNlLCB3aGVyZSBvcCBp cyB0aGUgb3BlcgogKiogY29ycmVzcG9uZGluZyB0byBzdHJhdGVneSBpbiB0 aGUgcGdfYW1vcCB0YWJsZS4KICovCiBEYXR1bQpAQCAtODksNyArODksNyBA QCBnX2ludF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJCQkJ CQkJICAgcXVlcnkpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6Ci0JCQlyZXR2 YWwgPSBGQUxTRTsKKwkJCXJldHZhbCA9IGZhbHNlOwogCX0KIAlwZnJlZShx dWVyeSk7CiAJUEdfUkVUVVJOX0JPT0wocmV0dmFsKTsKQEAgLTE1OSw3ICsx NTksNyBAQCBnX2ludF9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCiAJ CXJldHZhbCA9IHBhbGxvYyhzaXplb2YoR0lTVEVOVFJZKSk7CiAJCWdpc3Rl bnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdldERhdHVtKHIpLAotCQkJCQkg IGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLCBlbnRyeS0+b2Zmc2V0LCBGQUxT RSk7CisJCQkJCSAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsIGVudHJ5LT5v ZmZzZXQsIGZhbHNlKTsKIAogCQlQR19SRVRVUk5fUE9JTlRFUihyZXR2YWwp OwogCX0KQEAgLTIwNiw3ICsyMDYsNyBAQCBnX2ludF9jb21wcmVzcyhQR19G VU5DVElPTl9BUkdTKQogCQlyID0gcmVzaXplX2ludEFycmF5VHlwZShyLCBs ZW4pOwogCQlyZXR2YWwgPSBwYWxsb2Moc2l6ZW9mKEdJU1RFTlRSWSkpOwog CQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShyKSwK LQkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwgZW50cnktPm9mZnNl dCwgRkFMU0UpOworCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLCBl bnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAJCVBHX1JFVFVSTl9QT0lOVEVSKHJl dHZhbCk7CiAJfQogCWVsc2UKQEAgLTIzNiw3ICsyMzYsNyBAQCBnX2ludF9k ZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXsKIAkJCXJldHZhbCA9 IHBhbGxvYyhzaXplb2YoR0lTVEVOVFJZKSk7CiAJCQlnaXN0ZW50cnlpbml0 KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShpbiksCi0JCQkJCQkgIGVudHJ5 LT5yZWwsIGVudHJ5LT5wYWdlLCBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJ CQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLCBlbnRyeS0+b2Zmc2V0 LCBmYWxzZSk7CiAJCQlQR19SRVRVUk5fUE9JTlRFUihyZXR2YWwpOwogCQl9 CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCBnX2ludF9kZWNvbXByZXNzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCXsKIAkJCXJldHZhbCA9IHBhbGxvYyhzaXplb2Yo R0lTVEVOVFJZKSk7CiAJCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50 ZXJHZXREYXR1bShpbiksCi0JCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5w YWdlLCBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCQkgIGVudHJ5LT5y ZWwsIGVudHJ5LT5wYWdlLCBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAKIAkJ CVBHX1JFVFVSTl9QT0lOVEVSKHJldHZhbCk7CiAJCX0KQEAgLTI3Myw3ICsy NzMsNyBAQCBnX2ludF9kZWNvbXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CXBmcmVlKGluKTsKIAlyZXR2YWwgPSBwYWxsb2Moc2l6ZW9mKEdJU1RFTlRS WSkpOwogCWdpc3RlbnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdldERhdHVt KHIpLAotCQkJCSAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsIGVudHJ5LT5v ZmZzZXQsIEZBTFNFKTsKKwkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdl LCBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAKIAlQR19SRVRVUk5fUE9JTlRF UihyZXR2YWwpOwogfQpAQCAtMzIxLDE0ICszMjEsMTQgQEAgZ19pbnRfc2Ft ZShQR19GVU5DVElPTl9BUkdTKQogCQkqcmVzdWx0ID0gZmFsc2U7CiAJCVBH X1JFVFVSTl9QT0lOVEVSKHJlc3VsdCk7CiAJfQotCSpyZXN1bHQgPSBUUlVF OworCSpyZXN1bHQgPSB0cnVlOwogCWRhID0gQVJSUFRSKGEpOwogCWRiID0g QVJSUFRSKGIpOwogCXdoaWxlIChuLS0pCiAJewogCQlpZiAoKmRhKysgIT0g KmRiKyspCiAJCXsKLQkJCSpyZXN1bHQgPSBGQUxTRTsKKwkJCSpyZXN1bHQg PSBmYWxzZTsKIAkJCWJyZWFrOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvY29u dHJpYi9pbnRhcnJheS9faW50X29wLmMgYi9jb250cmliL2ludGFycmF5L19p bnRfb3AuYwppbmRleCAzNjM3YzQ1NjRjLi5mZTdmY2M0NjYyIDEwMDY0NAot LS0gYS9jb250cmliL2ludGFycmF5L19pbnRfb3AuYworKysgYi9jb250cmli L2ludGFycmF5L19pbnRfb3AuYwpAQCAtNzQsMTkgKzc0LDE5IEBAIF9pbnRf c2FtZShQR19GVU5DVElPTl9BUkdTKQogCWRhID0gQVJSUFRSKGEpOwogCWRi ID0gQVJSUFRSKGIpOwogCi0JcmVzdWx0ID0gRkFMU0U7CisJcmVzdWx0ID0g ZmFsc2U7CiAKIAlpZiAobmEgPT0gbmIpCiAJewogCQlTT1JUKGEpOwogCQlT T1JUKGIpOwotCQlyZXN1bHQgPSBUUlVFOworCQlyZXN1bHQgPSB0cnVlOwog CiAJCWZvciAobiA9IDA7IG4gPCBuYTsgbisrKQogCQl7CiAJCQlpZiAoZGFb bl0gIT0gZGJbbl0pCiAJCQl7Ci0JCQkJcmVzdWx0ID0gRkFMU0U7CisJCQkJ cmVzdWx0ID0gZmFsc2U7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0KQEAgLTEx MCw3ICsxMTAsNyBAQCBfaW50X292ZXJsYXAoUEdfRlVOQ1RJT05fQVJHUykK IAlDSEVDS0FSUlZBTElEKGEpOwogCUNIRUNLQVJSVkFMSUQoYik7CiAJaWYg KEFSUklTRU1QVFkoYSkgfHwgQVJSSVNFTVBUWShiKSkKLQkJcmV0dXJuIEZB TFNFOworCQlyZXR1cm4gZmFsc2U7CiAKIAlTT1JUKGEpOwogCVNPUlQoYik7 CmRpZmYgLS1naXQgYS9jb250cmliL2ludGFycmF5L19pbnRfdG9vbC5jIGIv Y29udHJpYi9pbnRhcnJheS9faW50X3Rvb2wuYwppbmRleCAyZmRmZDJlYzYz Li5lZThmYjY0YTQ3IDEwMDY0NAotLS0gYS9jb250cmliL2ludGFycmF5L19p bnRfdG9vbC5jCisrKyBiL2NvbnRyaWIvaW50YXJyYXkvX2ludF90b29sLmMK QEAgLTQwLDcgKzQwLDcgQEAgaW5uZXJfaW50X2NvbnRhaW5zKEFycmF5VHlw ZSAqYSwgQXJyYXlUeXBlICpiKQogCQkJYnJlYWs7CQkJCS8qIGRiW2pdIGlz IG5vdCBpbiBkYSAqLwogCX0KIAotCXJldHVybiAobiA9PSBuYikgPyBUUlVF IDogRkFMU0U7CisJcmV0dXJuIChuID09IG5iKSA/IHRydWUgOiBmYWxzZTsK IH0KIAogLyogYXJndW1lbnRzIGFyZSBhc3N1bWVkIHNvcnRlZCAqLwpAQCAt NjUsMTIgKzY1LDEyIEBAIGlubmVyX2ludF9vdmVybGFwKEFycmF5VHlwZSAq YSwgQXJyYXlUeXBlICpiKQogCQlpZiAoZGFbaV0gPCBkYltqXSkKIAkJCWkr KzsKIAkJZWxzZSBpZiAoZGFbaV0gPT0gZGJbal0pCi0JCQlyZXR1cm4gVFJV RTsKKwkJCXJldHVybiB0cnVlOwogCQllbHNlCiAJCQlqKys7CiAJfQogCi0J cmV0dXJuIEZBTFNFOworCXJldHVybiBmYWxzZTsKIH0KIAogQXJyYXlUeXBl ICoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaW50YXJyYXkvX2ludGJpZ19naXN0 LmMgYi9jb250cmliL2ludGFycmF5L19pbnRiaWdfZ2lzdC5jCmluZGV4IDZk YWU3YzkxYzEuLmRlN2JjODJhMjMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaW50 YXJyYXkvX2ludGJpZ19naXN0LmMKKysrIGIvY29udHJpYi9pbnRhcnJheS9f aW50YmlnX2dpc3QuYwpAQCAtMTY4LDcgKzE2OCw3IEBAIGdfaW50YmlnX2Nv bXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJldHZhbCA9IChHSVNURU5U UlkgKikgcGFsbG9jKHNpemVvZihHSVNURU5UUlkpKTsKIAkJZ2lzdGVudHJ5 aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0ocmVzKSwKIAkJCQkJICBl bnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkJICBlbnRyeS0+b2Zmc2V0 LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9mZnNldCwgZmFsc2UpOwogCiAJ CWlmIChpbiAhPSBEYXR1bUdldEFycmF5VHlwZVAoZW50cnktPmtleSkpCiAJ CQlwZnJlZShpbik7CkBAIC0xOTUsNyArMTk1LDcgQEAgZ19pbnRiaWdfY29t cHJlc3MoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmV0dmFsID0gKEdJU1RFTlRS WSAqKSBwYWxsb2Moc2l6ZW9mKEdJU1RFTlRSWSkpOwogCQlnaXN0ZW50cnlp bml0KCpyZXR2YWwsIFBvaW50ZXJHZXREYXR1bShyZXMpLAogCQkJCQkgIGVu dHJ5LT5yZWwsIGVudHJ5LT5wYWdlLAotCQkJCQkgIGVudHJ5LT5vZmZzZXQs IEZBTFNFKTsKKwkJCQkJICBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAKIAkJ UEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsKIAl9CkBAIC01OTQsNyArNTk0 LDcgQEAgZ19pbnRiaWdfY29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQog CQkJCXJldHZhbCA9IF9pbnRiaWdfb3ZlcmxhcCgoR0lTVFRZUEUgKikgRGF0 dW1HZXRQb2ludGVyKGVudHJ5LT5rZXkpLCBxdWVyeSk7CiAJCQlicmVhazsK IAkJZGVmYXVsdDoKLQkJCXJldHZhbCA9IEZBTFNFOworCQkJcmV0dmFsID0g ZmFsc2U7CiAJfQogCVBHX0ZSRUVfSUZfQ09QWShxdWVyeSwgMSk7CiAJUEdf UkVUVVJOX0JPT0wocmV0dmFsKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvbHRy ZWUvX2x0cmVlX2dpc3QuYyBiL2NvbnRyaWIvbHRyZWUvX2x0cmVlX2dpc3Qu YwppbmRleCBhMzg3ZjViODk5Li43N2VmYTJmZGViIDEwMDY0NAotLS0gYS9j b250cmliL2x0cmVlL19sdHJlZV9naXN0LmMKKysrIGIvY29udHJpYi9sdHJl ZS9fbHRyZWVfZ2lzdC5jCkBAIC0xMDAsNyArMTAwLDcgQEAgX2x0cmVlX2Nv bXByZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJldHZhbCA9IChHSVNURU5U UlkgKikgcGFsbG9jKHNpemVvZihHSVNURU5UUlkpKTsKIAkJZ2lzdGVudHJ5 aW5pdCgqcmV0dmFsLCBQb2ludGVyR2V0RGF0dW0oa2V5KSwKIAkJCQkJICBl bnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwKLQkJCQkJICBlbnRyeS0+b2Zmc2V0 LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPm9mZnNldCwgZmFsc2UpOwogCX0K IAllbHNlIGlmICghTFRHX0lTQUxMVFJVRShlbnRyeS0+a2V5KSkKIAl7CkBA IC0xMjMsNyArMTIzLDcgQEAgX2x0cmVlX2NvbXByZXNzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXJldHZhbCA9IChHSVNURU5UUlkgKikgcGFsbG9jKHNpemVv ZihHSVNURU5UUlkpKTsKIAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBQb2lu dGVyR2V0RGF0dW0oa2V5KSwKIAkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+ cGFnZSwKLQkJCQkJICBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAg ZW50cnktPm9mZnNldCwgZmFsc2UpOwogCX0KIAlQR19SRVRVUk5fUE9JTlRF UihyZXR2YWwpOwogfQpkaWZmIC0tZ2l0IGEvY29udHJpYi9sdHJlZS9sdHJl ZV9naXN0LmMgYi9jb250cmliL2x0cmVlL2x0cmVlX2dpc3QuYwppbmRleCA3 MGU3OGE2NzJhLi44NmQ1MDAyOGJiIDEwMDY0NAotLS0gYS9jb250cmliL2x0 cmVlL2x0cmVlX2dpc3QuYworKysgYi9jb250cmliL2x0cmVlL2x0cmVlX2dp c3QuYwpAQCAtNjQsNyArNjQsNyBAQCBsdHJlZV9jb21wcmVzcyhQR19GVU5D VElPTl9BUkdTKQogCQlyZXR2YWwgPSAoR0lTVEVOVFJZICopIHBhbGxvYyhz aXplb2YoR0lTVEVOVFJZKSk7CiAJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwg UG9pbnRlckdldERhdHVtKGtleSksCiAJCQkJCSAgZW50cnktPnJlbCwgZW50 cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJ CQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAl9CiAJUEdfUkVUVVJOX1BP SU5URVIocmV0dmFsKTsKIH0KQEAgLTgxLDcgKzgxLDcgQEAgbHRyZWVfZGVj b21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCiAJCWdpc3RlbnRyeWluaXQo KnJldHZhbCwgUG9pbnRlckdldERhdHVtKGtleSksCiAJCQkJCSAgZW50cnkt PnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgRkFM U0UpOworCQkJCQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAkJUEdfUkVU VVJOX1BPSU5URVIocmV0dmFsKTsKIAl9CiAJUEdfUkVUVVJOX1BPSU5URVIo ZW50cnkpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ190cmdtL3RyZ21fZ2lz dC5jIGIvY29udHJpYi9wZ190cmdtL3RyZ21fZ2lzdC5jCmluZGV4IGVkMDJh Zjg3NWMuLmU1NWRjMTlhNjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfdHJn bS90cmdtX2dpc3QuYworKysgYi9jb250cmliL3BnX3RyZ20vdHJnbV9naXN0 LmMKQEAgLTEwNiw3ICsxMDYsNyBAQCBndHJnbV9jb21wcmVzcyhQR19GVU5D VElPTl9BUkdTKQogCQlyZXR2YWwgPSAoR0lTVEVOVFJZICopIHBhbGxvYyhz aXplb2YoR0lTVEVOVFJZKSk7CiAJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwg UG9pbnRlckdldERhdHVtKHJlcyksCiAJCQkJCSAgZW50cnktPnJlbCwgZW50 cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJ CQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAl9CiAJZWxzZSBpZiAoSVNT SUdOS0VZKERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KSkgJiYKIAkJCSAh SVNBTExUUlVFKERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KSkpCkBAIC0x MzAsNyArMTMwLDcgQEAgZ3RyZ21fY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJH UykKIAkJcmV0dmFsID0gKEdJU1RFTlRSWSAqKSBwYWxsb2Moc2l6ZW9mKEdJ U1RFTlRSWSkpOwogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJH ZXREYXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdl LAotCQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZBTFNFKTsKKwkJCQkJICBlbnRy eS0+b2Zmc2V0LCBmYWxzZSk7CiAJfQogCVBHX1JFVFVSTl9QT0lOVEVSKHJl dHZhbCk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL3NlZy9zZWcuYyBiL2Nv bnRyaWIvc2VnL3NlZy5jCmluZGV4IDRmYzE4MTMwZTEuLjdiNzRmYjlkODQg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvc2VnL3NlZy5jCisrKyBiL2NvbnRyaWIv c2VnL3NlZy5jCkBAIC0xODgsNyArMTg4LDcgQEAgc2VnX3VwcGVyKFBHX0ZV TkNUSU9OX0FSR1MpCiAvKgogKiogVGhlIEdpU1QgQ29uc2lzdGVudCBtZXRo b2QgZm9yIHNlZ21lbnRzCiAqKiBTaG91bGQgcmV0dXJuIGZhbHNlIGlmIGZv ciBhbGwgZGF0YSBpdGVtcyB4IGJlbG93IGVudHJ5LAotKiogdGhlIHByZWRp Y2F0ZSB4IG9wIHF1ZXJ5ID09IEZBTFNFLCB3aGVyZSBvcCBpcyB0aGUgb3Bl cgorKiogdGhlIHByZWRpY2F0ZSB4IG9wIHF1ZXJ5ID09IGZhbHNlLCB3aGVy ZSBvcCBpcyB0aGUgb3BlcgogKiogY29ycmVzcG9uZGluZyB0byBzdHJhdGVn eSBpbiB0aGUgcGdfYW1vcCB0YWJsZS4KICovCiBEYXR1bQpAQCAtNDEzLDkg KzQxMyw5IEBAIGdzZWdfc2FtZShQR19GVU5DVElPTl9BUkdTKQogCWJvb2wJ ICAgKnJlc3VsdCA9IChib29sICopIFBHX0dFVEFSR19QT0lOVEVSKDIpOwog CiAJaWYgKERpcmVjdEZ1bmN0aW9uQ2FsbDIoc2VnX3NhbWUsIFBHX0dFVEFS R19EQVRVTSgwKSwgUEdfR0VUQVJHX0RBVFVNKDEpKSkKLQkJKnJlc3VsdCA9 IFRSVUU7CisJCSpyZXN1bHQgPSB0cnVlOwogCWVsc2UKLQkJKnJlc3VsdCA9 IEZBTFNFOworCQkqcmVzdWx0ID0gZmFsc2U7CiAKICNpZmRlZiBHSVNUX0RF QlVHCiAJZnByaW50ZihzdGRlcnIsICJzYW1lOiAlc1xuIiwgKCpyZXN1bHQg PyAiVFJVRSIgOiAiRkFMU0UiKSk7CkBAIC00NjUsNyArNDY1LDcgQEAgZ3Nl Z19sZWFmX2NvbnNpc3RlbnQoRGF0dW0ga2V5LCBEYXR1bSBxdWVyeSwgU3Ry YXRlZ3lOdW1iZXIgc3RyYXRlZ3kpCiAJCQlyZXR2YWwgPSBEaXJlY3RGdW5j dGlvbkNhbGwyKHNlZ19jb250YWluZWQsIGtleSwgcXVlcnkpOwogCQkJYnJl YWs7CiAJCWRlZmF1bHQ6Ci0JCQlyZXR2YWwgPSBGQUxTRTsKKwkJCXJldHZh bCA9IGZhbHNlOwogCX0KIAogCVBHX1JFVFVSTl9EQVRVTShyZXR2YWwpOwpA QCAtNTE0LDcgKzUxNCw3IEBAIGdzZWdfaW50ZXJuYWxfY29uc2lzdGVudChE YXR1bSBrZXksIERhdHVtIHF1ZXJ5LCBTdHJhdGVneU51bWJlciBzdHJhdGVn eSkKIAkJCQlEYXR1bUdldEJvb2woRGlyZWN0RnVuY3Rpb25DYWxsMihzZWdf b3ZlcmxhcCwga2V5LCBxdWVyeSkpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 Ci0JCQlyZXR2YWwgPSBGQUxTRTsKKwkJCXJldHZhbCA9IGZhbHNlOwogCX0K IAogCVBHX1JFVFVSTl9CT09MKHJldHZhbCk7CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZ2luLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2luLnNnbWwKaW5k ZXggN2MyMzIxZWMzYy4uZjViNWI5Mzg2YyAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL2dpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9naW4uc2dtbApA QCAtMjIzLDkgKzIyMyw5IEBAIDx0aXRsZT5FeHRlbnNpYmlsaXR5PC90aXRs ZT4KICAgICAgIDxwYXJhPgogICAgICAgIDxsaXRlcmFsPnBtYXRjaDwvPiBp cyBhbiBvdXRwdXQgYXJndW1lbnQgZm9yIHVzZSB3aGVuIHBhcnRpYWwgbWF0 Y2gKICAgICAgICBpcyBzdXBwb3J0ZWQuICBUbyB1c2UgaXQsIDxmdW5jdGlv bj5leHRyYWN0UXVlcnk8Lz4gbXVzdCBhbGxvY2F0ZQotICAgICAgIGFuIGFy cmF5IG9mIDxsaXRlcmFsPipua2V5czwvPiBib29sZWFucyBhbmQgc3RvcmUg aXRzIGFkZHJlc3MgYXQKLSAgICAgICA8bGl0ZXJhbD4qcG1hdGNoPC8+LiAg RWFjaCBlbGVtZW50IG9mIHRoZSBhcnJheSBzaG91bGQgYmUgc2V0IHRvIFRS VUUKLSAgICAgICBpZiB0aGUgY29ycmVzcG9uZGluZyBrZXkgcmVxdWlyZXMg cGFydGlhbCBtYXRjaCwgRkFMU0UgaWYgbm90LgorICAgICAgIGFuIGFycmF5 IG9mIDxsaXRlcmFsPipua2V5czwvPiBib29scyBhbmQgc3RvcmUgaXRzIGFk ZHJlc3MgYXQKKyAgICAgICA8bGl0ZXJhbD4qcG1hdGNoPC8+LiAgRWFjaCBl bGVtZW50IG9mIHRoZSBhcnJheSBzaG91bGQgYmUgc2V0IHRvIHRydWUKKyAg ICAgICBpZiB0aGUgY29ycmVzcG9uZGluZyBrZXkgcmVxdWlyZXMgcGFydGlh bCBtYXRjaCwgZmFsc2UgaWYgbm90LgogICAgICAgIElmIDxsaXRlcmFsPipw bWF0Y2g8Lz4gaXMgc2V0IHRvIDxzeW1ib2w+TlVMTDwvc3ltYm9sPiB0aGVu IEdJTiBhc3N1bWVzIHBhcnRpYWwgbWF0Y2gKICAgICAgICBpcyBub3QgcmVx dWlyZWQuICBUaGUgdmFyaWFibGUgaXMgaW5pdGlhbGl6ZWQgdG8gPHN5bWJv bD5OVUxMPC9zeW1ib2w+IGJlZm9yZSBjYWxsLAogICAgICAgIHNvIHRoaXMg YXJndW1lbnQgY2FuIHNpbXBseSBiZSBpZ25vcmVkIGJ5IG9wZXJhdG9yIGNs YXNzZXMgdGhhdCBkbwpAQCAtMjY3LDcgKzI2Nyw3IEBAIDx0aXRsZT5FeHRl bnNpYmlsaXR5PC90aXRsZT4KICAgICAgICAgRGF0dW0gcXVlcnlLZXlzW10s IGJvb2wgbnVsbEZsYWdzW10pPC8+PC90ZXJtPgogICAgICA8bGlzdGl0ZW0+ CiAgICAgICA8cGFyYT4KLSAgICAgICBSZXR1cm5zIFRSVUUgaWYgYW4gaW5k ZXhlZCBpdGVtIHNhdGlzZmllcyB0aGUgcXVlcnkgb3BlcmF0b3Igd2l0aAor ICAgICAgIFJldHVybnMgdHJ1ZSBpZiBhbiBpbmRleGVkIGl0ZW0gc2F0aXNm aWVzIHRoZSBxdWVyeSBvcGVyYXRvciB3aXRoCiAgICAgICAgc3RyYXRlZ3kg bnVtYmVyIDxsaXRlcmFsPm48Lz4gKG9yIG1pZ2h0IHNhdGlzZnkgaXQsIGlm IHRoZSByZWNoZWNrCiAgICAgICAgaW5kaWNhdGlvbiBpcyByZXR1cm5lZCku ICBUaGlzIGZ1bmN0aW9uIGRvZXMgbm90IGhhdmUgZGlyZWN0IGFjY2Vzcwog ICAgICAgIHRvIHRoZSBpbmRleGVkIGl0ZW0ncyB2YWx1ZSwgc2luY2UgPGFj cm9ueW0+R0lOPC9hY3JvbnltPiBkb2VzIG5vdApAQCAtMjc3LDggKzI3Nyw4 IEBAIDx0aXRsZT5FeHRlbnNpYmlsaXR5PC90aXRsZT4KICAgICAgICA8bGl0 ZXJhbD5ua2V5czwvPiwgd2hpY2ggaXMgdGhlIHNhbWUgYXMgdGhlIG51bWJl ciBvZiBrZXlzIHByZXZpb3VzbHkKICAgICAgICByZXR1cm5lZCBieSA8ZnVu Y3Rpb24+ZXh0cmFjdFF1ZXJ5PC8+IGZvciB0aGlzIDxsaXRlcmFsPnF1ZXJ5 PC8+IGRhdHVtLgogICAgICAgIEVhY2ggZWxlbWVudCBvZiB0aGUKLSAgICAg ICA8bGl0ZXJhbD5jaGVjazwvPiBhcnJheSBpcyBUUlVFIGlmIHRoZSBpbmRl eGVkIGl0ZW0gY29udGFpbnMgdGhlCi0gICAgICAgY29ycmVzcG9uZGluZyBx dWVyeSBrZXksIGkuZS4sIGlmIChjaGVja1tpXSA9PSBUUlVFKSB0aGUgaS10 aCBrZXkgb2YgdGhlCisgICAgICAgPGxpdGVyYWw+Y2hlY2s8Lz4gYXJyYXkg aXMgdHJ1ZSBpZiB0aGUgaW5kZXhlZCBpdGVtIGNvbnRhaW5zIHRoZQorICAg ICAgIGNvcnJlc3BvbmRpbmcgcXVlcnkga2V5LCBpLmUuLCBpZiAoY2hlY2tb aV0gPT0gdHJ1ZSkgdGhlIGktdGgga2V5IG9mIHRoZQogICAgICAgIDxmdW5j dGlvbj5leHRyYWN0UXVlcnk8Lz4gcmVzdWx0IGFycmF5IGlzIHByZXNlbnQg aW4gdGhlIGluZGV4ZWQgaXRlbS4KICAgICAgICBUaGUgb3JpZ2luYWwgPGxp dGVyYWw+cXVlcnk8Lz4gZGF0dW0gaXMKICAgICAgICBwYXNzZWQgaW4gY2Fz ZSB0aGUgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8Lz4gbWV0aG9kIG5lZWRzIHRv IGNvbnN1bHQgaXQsCkBAIC0yOTEsNyArMjkxLDcgQEAgPHRpdGxlPkV4dGVu c2liaWxpdHk8L3RpdGxlPgogICAgICAgPHBhcmE+CiAgICAgICAgV2hlbiA8 ZnVuY3Rpb24+ZXh0cmFjdFF1ZXJ5PC8+IHJldHVybnMgYSBudWxsIGtleSBp bgogICAgICAgIDxsaXRlcmFsPnF1ZXJ5S2V5c1tdPC8+LCB0aGUgY29ycmVz cG9uZGluZyA8bGl0ZXJhbD5jaGVja1tdPC8+IGVsZW1lbnQKLSAgICAgICBp cyBUUlVFIGlmIHRoZSBpbmRleGVkIGl0ZW0gY29udGFpbnMgYSBudWxsIGtl eTsgdGhhdCBpcywgdGhlCisgICAgICAgaXMgdHJ1ZSBpZiB0aGUgaW5kZXhl ZCBpdGVtIGNvbnRhaW5zIGEgbnVsbCBrZXk7IHRoYXQgaXMsIHRoZQogICAg ICAgIHNlbWFudGljcyBvZiA8bGl0ZXJhbD5jaGVja1tdPC8+IGFyZSBsaWtl IDxsaXRlcmFsPklTIE5PVCBESVNUSU5DVAogICAgICAgIEZST008Lz4uICBU aGUgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8Lz4gZnVuY3Rpb24gY2FuIGV4YW1p bmUgdGhlCiAgICAgICAgY29ycmVzcG9uZGluZyA8bGl0ZXJhbD5udWxsRmxh Z3NbXTwvPiBlbGVtZW50IGlmIGl0IG5lZWRzIHRvIHRlbGwKQEAgLTI5OSwx MyArMjk5LDEzIEBAIDx0aXRsZT5FeHRlbnNpYmlsaXR5PC90aXRsZT4KICAg ICAgIDwvcGFyYT4KIAogICAgICAgPHBhcmE+Ci0gICAgICAgT24gc3VjY2Vz cywgPGxpdGVyYWw+KnJlY2hlY2s8Lz4gc2hvdWxkIGJlIHNldCB0byBUUlVF IGlmIHRoZSBoZWFwCi0gICAgICAgdHVwbGUgbmVlZHMgdG8gYmUgcmVjaGVj a2VkIGFnYWluc3QgdGhlIHF1ZXJ5IG9wZXJhdG9yLCBvciBGQUxTRSBpZgot ICAgICAgIHRoZSBpbmRleCB0ZXN0IGlzIGV4YWN0LiAgVGhhdCBpcywgYSBG QUxTRSByZXR1cm4gdmFsdWUgZ3VhcmFudGVlcwotICAgICAgIHRoYXQgdGhl IGhlYXAgdHVwbGUgZG9lcyBub3QgbWF0Y2ggdGhlIHF1ZXJ5OyBhIFRSVUUg cmV0dXJuIHZhbHVlIHdpdGgKLSAgICAgICA8bGl0ZXJhbD4qcmVjaGVjazwv PiBzZXQgdG8gRkFMU0UgZ3VhcmFudGVlcyB0aGF0IHRoZSBoZWFwIHR1cGxl IGRvZXMKLSAgICAgICBtYXRjaCB0aGUgcXVlcnk7IGFuZCBhIFRSVUUgcmV0 dXJuIHZhbHVlIHdpdGgKLSAgICAgICA8bGl0ZXJhbD4qcmVjaGVjazwvPiBz ZXQgdG8gVFJVRSBtZWFucyB0aGF0IHRoZSBoZWFwIHR1cGxlIG1pZ2h0IG1h dGNoCisgICAgICAgT24gc3VjY2VzcywgPGxpdGVyYWw+KnJlY2hlY2s8Lz4g c2hvdWxkIGJlIHNldCB0byB0cnVlIGlmIHRoZSBoZWFwCisgICAgICAgdHVw bGUgbmVlZHMgdG8gYmUgcmVjaGVja2VkIGFnYWluc3QgdGhlIHF1ZXJ5IG9w ZXJhdG9yLCBvciBmYWxzZSBpZgorICAgICAgIHRoZSBpbmRleCB0ZXN0IGlz IGV4YWN0LiAgVGhhdCBpcywgYSBmYWxzZSByZXR1cm4gdmFsdWUgZ3VhcmFu dGVlcworICAgICAgIHRoYXQgdGhlIGhlYXAgdHVwbGUgZG9lcyBub3QgbWF0 Y2ggdGhlIHF1ZXJ5OyBhIHRydWUgcmV0dXJuIHZhbHVlIHdpdGgKKyAgICAg ICA8bGl0ZXJhbD4qcmVjaGVjazwvPiBzZXQgdG8gZmFsc2UgZ3VhcmFudGVl cyB0aGF0IHRoZSBoZWFwIHR1cGxlIGRvZXMKKyAgICAgICBtYXRjaCB0aGUg cXVlcnk7IGFuZCBhIHRydWUgcmV0dXJuIHZhbHVlIHdpdGgKKyAgICAgICA8 bGl0ZXJhbD4qcmVjaGVjazwvPiBzZXQgdG8gdHJ1ZSBtZWFucyB0aGF0IHRo ZSBoZWFwIHR1cGxlIG1pZ2h0IG1hdGNoCiAgICAgICAgdGhlIHF1ZXJ5LCBz byBpdCBuZWVkcyB0byBiZSBmZXRjaGVkIGFuZCByZWNoZWNrZWQgYnkgZXZh bHVhdGluZyB0aGUKICAgICAgICBxdWVyeSBvcGVyYXRvciBkaXJlY3RseSBh Z2FpbnN0IHRoZSBvcmlnaW5hbGx5IGluZGV4ZWQgaXRlbS4KICAgICAgIDwv cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmRleGFtLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvaW5kZXhhbS5zZ21sCmluZGV4IGFjNTEyNTg4ZTIu LjNlMGYwNWQzOTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9pbmRleGFt LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2luZGV4YW0uc2dtbApAQCAtMjgw LDkgKzI4MCw5IEBAIDx0aXRsZT5JbmRleCBBY2Nlc3MgTWV0aG9kIEZ1bmN0 aW9uczwvdGl0bGU+CiAgIDxwYXJhPgogICAgVGhlIGZ1bmN0aW9uJ3MgQm9v bGVhbiByZXN1bHQgdmFsdWUgaXMgc2lnbmlmaWNhbnQgb25seSB3aGVuCiAg ICA8bGl0ZXJhbD5jaGVja1VuaXF1ZTwvPiBpcyA8bGl0ZXJhbD5VTklRVUVf Q0hFQ0tfUEFSVElBTDwvPi4KLSAgIEluIHRoaXMgY2FzZSBhIFRSVUUgcmVz dWx0IG1lYW5zIHRoZSBuZXcgZW50cnkgaXMga25vd24gdW5pcXVlLCB3aGVy ZWFzCi0gICBGQUxTRSBtZWFucyBpdCBtaWdodCBiZSBub24tdW5pcXVlIChh bmQgYSBkZWZlcnJlZCB1bmlxdWVuZXNzIGNoZWNrIG11c3QKLSAgIGJlIHNj aGVkdWxlZCkuICBGb3Igb3RoZXIgY2FzZXMgYSBjb25zdGFudCBGQUxTRSBy ZXN1bHQgaXMgcmVjb21tZW5kZWQuCisgICBJbiB0aGlzIGNhc2UgYSB0cnVl IHJlc3VsdCBtZWFucyB0aGUgbmV3IGVudHJ5IGlzIGtub3duIHVuaXF1ZSwg d2hlcmVhcworICAgZmFsc2UgbWVhbnMgaXQgbWlnaHQgYmUgbm9uLXVuaXF1 ZSAoYW5kIGEgZGVmZXJyZWQgdW5pcXVlbmVzcyBjaGVjayBtdXN0CisgICBi ZSBzY2hlZHVsZWQpLiAgRm9yIG90aGVyIGNhc2VzIGEgY29uc3RhbnQgZmFs c2UgcmVzdWx0IGlzIHJlY29tbWVuZGVkLgogICA8L3BhcmE+CiAKICAgPHBh cmE+CkBAIC0zNjgsOCArMzY4LDggQEAgPHRpdGxlPkluZGV4IEFjY2VzcyBN ZXRob2QgRnVuY3Rpb25zPC90aXRsZT4KICAgIGxpbmtlbmQ9ImluZGV4ZXMt aW5kZXgtb25seS1zY2FucyI+PGZpcnN0dGVybT5pbmRleC1vbmx5IHNjYW5z PC8+PC9saW5rPiBvbgogICAgdGhlIGdpdmVuIGNvbHVtbiwgYnkgcmV0dXJu aW5nIHRoZSBpbmRleGVkIGNvbHVtbiB2YWx1ZXMgZm9yIGFuIGluZGV4IGVu dHJ5CiAgICBpbiB0aGUgZm9ybSBvZiBhbiA8c3RydWN0bmFtZT5JbmRleFR1 cGxlPC9zdHJ1Y3RuYW1lPi4gIFRoZSBhdHRyaWJ1dGUgbnVtYmVyCi0gICBp cyAxLWJhc2VkLCBpLmUuIHRoZSBmaXJzdCBjb2x1bW4ncyBhdHRubyBpcyAx LiBSZXR1cm5zIFRSVUUgaWYgc3VwcG9ydGVkLAotICAgZWxzZSBGQUxTRS4g IElmIHRoZSBhY2Nlc3MgbWV0aG9kIGRvZXMgbm90IHN1cHBvcnQgaW5kZXgt b25seSBzY2FucyBhdCBhbGwsCisgICBpcyAxLWJhc2VkLCBpLmUuIHRoZSBm aXJzdCBjb2x1bW4ncyBhdHRubyBpcyAxLiBSZXR1cm5zIHRydWUgaWYgc3Vw cG9ydGVkLAorICAgZWxzZSBmYWxzZS4gIElmIHRoZSBhY2Nlc3MgbWV0aG9k IGRvZXMgbm90IHN1cHBvcnQgaW5kZXgtb25seSBzY2FucyBhdCBhbGwsCiAg ICB0aGUgPHN0cnVjdGZpZWxkPmFtY2FucmV0dXJuPC8+IGZpZWxkIGluIGl0 cyA8c3RydWN0bmFtZT5JbmRleEFtUm91dGluZTwvPgogICAgc3RydWN0IGNh biBiZSBzZXQgdG8gTlVMTC4KICAgPC9wYXJhPgpAQCAtNTMyLDE1ICs1MzIs MTUgQEAgPHRpdGxlPkluZGV4IEFjY2VzcyBNZXRob2QgRnVuY3Rpb25zPC90 aXRsZT4KICAgICAgICAgICAgIFNjYW5EaXJlY3Rpb24gZGlyZWN0aW9uKTsK IDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICBGZXRjaCB0aGUgbmV4dCB0dXBsZSBp biB0aGUgZ2l2ZW4gc2NhbiwgbW92aW5nIGluIHRoZSBnaXZlbgotICAgZGly ZWN0aW9uIChmb3J3YXJkIG9yIGJhY2t3YXJkIGluIHRoZSBpbmRleCkuICBS ZXR1cm5zIFRSVUUgaWYgYSB0dXBsZSB3YXMKLSAgIG9idGFpbmVkLCBGQUxT RSBpZiBubyBtYXRjaGluZyB0dXBsZXMgcmVtYWluLiAgSW4gdGhlIFRSVUUg Y2FzZSB0aGUgdHVwbGUKKyAgIGRpcmVjdGlvbiAoZm9yd2FyZCBvciBiYWNr d2FyZCBpbiB0aGUgaW5kZXgpLiAgUmV0dXJucyB0cnVlIGlmIGEgdHVwbGUg d2FzCisgICBvYnRhaW5lZCwgZmFsc2UgaWYgbm8gbWF0Y2hpbmcgdHVwbGVz IHJlbWFpbi4gIEluIHRoZSB0cnVlIGNhc2UgdGhlIHR1cGxlCiAgICBUSUQg aXMgc3RvcmVkIGludG8gdGhlIDxsaXRlcmFsPnNjYW48Lz4gc3RydWN0dXJl LiAgTm90ZSB0aGF0CiAgICA8cXVvdGU+c3VjY2VzczwvPiBtZWFucyBvbmx5 IHRoYXQgdGhlIGluZGV4IGNvbnRhaW5zIGFuIGVudHJ5IHRoYXQgbWF0Y2hl cwogICAgdGhlIHNjYW4ga2V5cywgbm90IHRoYXQgdGhlIHR1cGxlIG5lY2Vz c2FyaWx5IHN0aWxsIGV4aXN0cyBpbiB0aGUgaGVhcCBvcgogICAgd2lsbCBw YXNzIHRoZSBjYWxsZXIncyBzbmFwc2hvdCB0ZXN0LiAgT24gc3VjY2Vzcywg PGZ1bmN0aW9uPmFtZ2V0dHVwbGU8Lz4KLSAgIG11c3QgYWxzbyBzZXQgPGxp dGVyYWw+c2Nhbi0mZ3Q7eHNfcmVjaGVjazwvPiB0byBUUlVFIG9yIEZBTFNF LgotICAgRkFMU0UgbWVhbnMgaXQgaXMgY2VydGFpbiB0aGF0IHRoZSBpbmRl eCBlbnRyeSBtYXRjaGVzIHRoZSBzY2FuIGtleXMuCi0gICBUUlVFIG1lYW5z IHRoaXMgaXMgbm90IGNlcnRhaW4sIGFuZCB0aGUgY29uZGl0aW9ucyByZXBy ZXNlbnRlZCBieSB0aGUKKyAgIG11c3QgYWxzbyBzZXQgPGxpdGVyYWw+c2Nh bi0mZ3Q7eHNfcmVjaGVjazwvPiB0byB0cnVlIG9yIGZhbHNlLgorICAgRmFs c2UgbWVhbnMgaXQgaXMgY2VydGFpbiB0aGF0IHRoZSBpbmRleCBlbnRyeSBt YXRjaGVzIHRoZSBzY2FuIGtleXMuCisgICB0cnVlIG1lYW5zIHRoaXMgaXMg bm90IGNlcnRhaW4sIGFuZCB0aGUgY29uZGl0aW9ucyByZXByZXNlbnRlZCBi eSB0aGUKICAgIHNjYW4ga2V5cyBtdXN0IGJlIHJlY2hlY2tlZCBhZ2FpbnN0 IHRoZSBoZWFwIHR1cGxlIGFmdGVyIGZldGNoaW5nIGl0LgogICAgVGhpcyBw cm92aXNpb24gc3VwcG9ydHMgPHF1b3RlPmxvc3N5PC8+IGluZGV4IG9wZXJh dG9ycy4KICAgIE5vdGUgdGhhdCByZWNoZWNraW5nIHdpbGwgZXh0ZW5kIG9u bHkgdG8gdGhlIHNjYW4gY29uZGl0aW9uczsgYSBwYXJ0aWFsCkBAIC01NTAs NyArNTUwLDcgQEAgPHRpdGxlPkluZGV4IEFjY2VzcyBNZXRob2QgRnVuY3Rp b25zPC90aXRsZT4KIAogICA8cGFyYT4KICAgIElmIHRoZSBpbmRleCBzdXBw b3J0cyA8bGluayBsaW5rZW5kPSJpbmRleGVzLWluZGV4LW9ubHktc2NhbnMi PmluZGV4LW9ubHkKLSAgIHNjYW5zPC9saW5rPiAoaS5lLiwgPGZ1bmN0aW9u PmFtY2FucmV0dXJuPC9mdW5jdGlvbj4gcmV0dXJucyBUUlVFIGZvciBpdCks CisgICBzY2FuczwvbGluaz4gKGkuZS4sIDxmdW5jdGlvbj5hbWNhbnJldHVy bjwvZnVuY3Rpb24+IHJldHVybnMgdHJ1ZSBmb3IgaXQpLAogICAgdGhlbiBv biBzdWNjZXNzIHRoZSBBTSBtdXN0IGFsc28gY2hlY2sgPGxpdGVyYWw+c2Nh bi0mZ3Q7eHNfd2FudF9pdHVwPC8+LAogICAgYW5kIGlmIHRoYXQgaXMgdHJ1 ZSBpdCBtdXN0IHJldHVybiB0aGUgb3JpZ2luYWxseSBpbmRleGVkIGRhdGEg Zm9yIHRoZQogICAgaW5kZXggZW50cnkuICBUaGUgZGF0YSBjYW4gYmUgcmV0 dXJuZWQgaW4gdGhlIGZvcm0gb2YgYW4KQEAgLTEwODIsOCArMTA4Miw4IEBA IDx0aXRsZT5JbmRleCBVbmlxdWVuZXNzIENoZWNrczwvdGl0bGU+CiAgICAg ICAgY29uc3RyYWludCBpcyBkZWZlcnJhYmxlLiA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAgICAgd2lsbCB1c2UgdGhpcyBt b2RlIHRvIGluc2VydCBlYWNoIHJvdydzIGluZGV4IGVudHJ5LiAgVGhlIGFj Y2VzcwogICAgICAgIG1ldGhvZCBtdXN0IGFsbG93IGR1cGxpY2F0ZSBlbnRy aWVzIGludG8gdGhlIGluZGV4LCBhbmQgcmVwb3J0IGFueQotICAgICAgIHBv dGVudGlhbCBkdXBsaWNhdGVzIGJ5IHJldHVybmluZyBGQUxTRSBmcm9tIDxm dW5jdGlvbj5hbWluc2VydDwvPi4KLSAgICAgICBGb3IgZWFjaCByb3cgZm9y IHdoaWNoIEZBTFNFIGlzIHJldHVybmVkLCBhIGRlZmVycmVkIHJlY2hlY2sg d2lsbAorICAgICAgIHBvdGVudGlhbCBkdXBsaWNhdGVzIGJ5IHJldHVybmlu ZyBmYWxzZSBmcm9tIDxmdW5jdGlvbj5hbWluc2VydDwvPi4KKyAgICAgICBG b3IgZWFjaCByb3cgZm9yIHdoaWNoIGZhbHNlIGlzIHJldHVybmVkLCBhIGRl ZmVycmVkIHJlY2hlY2sgd2lsbAogICAgICAgIGJlIHNjaGVkdWxlZC4KICAg ICAgIDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBx LnNnbWwgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCBhZDVlOWI5 NWI0Li5kYWQ3ZjUzZjUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbGli cHEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbGlicHEuc2dtbApAQCAtNjk2 NSwxMiArNjk2NSwxMiBAQCA8dGl0bGU+RXZlbnQgRXhhbXBsZTwvdGl0bGU+ CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIC8q IHVua25vd24gZXZlbnQgSUQsIGp1c3QgcmV0dXJuIFRSVUUuICovCisgICAg ICAgIC8qIHVua25vd24gZXZlbnQgSUQsIGp1c3QgcmV0dXJuIHRydWUuICov CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICBicmVhazsKICAgICB9 CiAKLSAgICByZXR1cm4gVFJVRTsgLyogZXZlbnQgcHJvY2Vzc2luZyBzdWNj ZWVkZWQgKi8KKyAgICByZXR1cm4gdHJ1ZTsgLyogZXZlbnQgcHJvY2Vzc2lu ZyBzdWNjZWVkZWQgKi8KIH0KIF1dPgogPC9wcm9ncmFtbGlzdGluZz4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zcGdpc3Quc2dtbCBiL2RvYy9zcmMv c2dtbC9zcGdpc3Quc2dtbAppbmRleCBjZDRhOGQwN2M0Li4yODQyYTNjNWQ5 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3BnaXN0LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3NwZ2lzdC5zZ21sCkBAIC03OTQsNyArNzk0LDcgQEAg PHRpdGxlPlNQLUdpU1QgTGltaXRzPC90aXRsZT4KICAgIHRyZWVzLCBpbiB3 aGljaCBlYWNoIGxldmVsIG9mIHRoZSB0cmVlIGluY2x1ZGVzIGEgcHJlZml4 IHRoYXQgaXMgc2hvcnQKICAgIGVub3VnaCB0byBmaXQgb24gYSBwYWdlLCBh bmQgdGhlIGZpbmFsIGxlYWYgbGV2ZWwgaW5jbHVkZXMgYSBzdWZmaXggYWxz bwogICAgc2hvcnQgZW5vdWdoIHRvIGZpdCBvbiBhIHBhZ2UuICBUaGUgb3Bl cmF0b3IgY2xhc3Mgc2hvdWxkIHNldAotICAgPHN0cnVjdGZpZWxkPmxvbmdW YWx1ZXNPSzwvPiB0byBUUlVFIG9ubHkgaWYgaXQgaXMgcHJlcGFyZWQgdG8g YXJyYW5nZSBmb3IKKyAgIDxzdHJ1Y3RmaWVsZD5sb25nVmFsdWVzT0s8Lz4g dG8gdHJ1ZSBvbmx5IGlmIGl0IGlzIHByZXBhcmVkIHRvIGFycmFuZ2UgZm9y CiAgICB0aGlzIHRvIGhhcHBlbi4gIE90aGVyd2lzZSwgdGhlIDxhY3Jvbnlt PlNQLUdpU1Q8L2Fjcm9ueW0+IGNvcmUgd2lsbAogICAgcmVqZWN0IGFueSBy ZXF1ZXN0IHRvIGluZGV4IGEgdmFsdWUgdGhhdCBpcyB0b28gbGFyZ2UgdG8g Zml0CiAgICBvbiBhbiBpbmRleCBwYWdlLgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3NzbGluZm8uc2dtbCBiL2RvYy9zcmMvc2dtbC9zc2xpbmZvLnNn bWwKaW5kZXggN2JkYTMzZWZhMy4uYWM3YmY2M2E5NyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3NzbGluZm8uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv c3NsaW5mby5zZ21sCkBAIC0zMiw3ICszMiw3IEBAIDx0aXRsZT5GdW5jdGlv bnMgUHJvdmlkZWQ8L3RpdGxlPgogICAgIDwvdGVybT4KICAgICA8bGlzdGl0 ZW0+CiAgICAgPHBhcmE+Ci0gICAgIFJldHVybnMgVFJVRSBpZiBjdXJyZW50 IGNvbm5lY3Rpb24gdG8gc2VydmVyIHVzZXMgU1NMLCBhbmQgRkFMU0UKKyAg ICAgUmV0dXJucyB0cnVlIGlmIGN1cnJlbnQgY29ubmVjdGlvbiB0byBzZXJ2 ZXIgdXNlcyBTU0wsIGFuZCBmYWxzZQogICAgICBvdGhlcndpc2UuCiAgICAg PC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CkBAIC03Nyw4ICs3Nyw4IEBAIDx0 aXRsZT5GdW5jdGlvbnMgUHJvdmlkZWQ8L3RpdGxlPgogICAgIDwvdGVybT4K ICAgICA8bGlzdGl0ZW0+CiAgICAgPHBhcmE+Ci0gICAgIFJldHVybnMgVFJV RSBpZiBjdXJyZW50IGNsaWVudCBoYXMgcHJlc2VudGVkIGEgdmFsaWQgU1NM IGNsaWVudAotICAgICBjZXJ0aWZpY2F0ZSB0byB0aGUgc2VydmVyLCBhbmQg RkFMU0Ugb3RoZXJ3aXNlLiAgKFRoZSBzZXJ2ZXIKKyAgICAgUmV0dXJucyB0 cnVlIGlmIGN1cnJlbnQgY2xpZW50IGhhcyBwcmVzZW50ZWQgYSB2YWxpZCBT U0wgY2xpZW50CisgICAgIGNlcnRpZmljYXRlIHRvIHRoZSBzZXJ2ZXIsIGFu ZCBmYWxzZSBvdGhlcndpc2UuICAoVGhlIHNlcnZlcgogICAgICBtaWdodCBv ciBtaWdodCBub3QgYmUgY29uZmlndXJlZCB0byByZXF1aXJlIGEgY2xpZW50 IGNlcnRpZmljYXRlLikKICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnRyZWUu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnRyZWUuYwppbmRleCBi MDJjYjhhZTU4Li4xYjkyMGZhY2MyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2luL2dpbmJ0cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW5idHJlZS5jCkBAIC00MSw3ICs0MSw3IEBAIGdpblRyYXZl cnNlTG9jayhCdWZmZXIgYnVmZmVyLCBib29sIHNlYXJjaE1vZGUpCiAJcGFn ZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlpZiAoR2luUGFnZUlzTGVh ZihwYWdlKSkKIAl7Ci0JCWlmIChzZWFyY2hNb2RlID09IEZBTFNFKQorCQlp ZiAoc2VhcmNoTW9kZSA9PSBmYWxzZSkKIAkJewogCQkJLyogd2Ugc2hvdWxk IHJlbG9jayBvdXIgcGFnZSAqLwogCQkJTG9ja0J1ZmZlcihidWZmZXIsIEdJ Tl9VTkxPQ0spOwpAQCAtMTA3LDcgKzEwNyw3IEBAIGdpbkZpbmRMZWFmUGFn ZShHaW5CdHJlZSBidHJlZSwgYm9vbCBzZWFyY2hNb2RlLCBTbmFwc2hvdCBz bmFwc2hvdCkKIAkJICogb2ssIHBhZ2UgaXMgY29ycmVjdGx5IGxvY2tlZCwg d2Ugc2hvdWxkIGNoZWNrIHRvIG1vdmUgcmlnaHQgLi4sCiAJCSAqIHJvb3Qg bmV2ZXIgaGFzIGEgcmlnaHQgbGluaywgc28gc21hbGwgb3B0aW1pemF0aW9u CiAJCSAqLwotCQl3aGlsZSAoYnRyZWUtPmZ1bGxTY2FuID09IEZBTFNFICYm IHN0YWNrLT5ibGtubyAhPSBidHJlZS0+cm9vdEJsa25vICYmCisJCXdoaWxl IChidHJlZS0+ZnVsbFNjYW4gPT0gZmFsc2UgJiYgc3RhY2stPmJsa25vICE9 IGJ0cmVlLT5yb290Qmxrbm8gJiYKIAkJCSAgIGJ0cmVlLT5pc01vdmVSaWdo dChidHJlZSwgcGFnZSkpCiAJCXsKIAkJCUJsb2NrTnVtYmVyIHJpZ2h0bGlu ayA9IEdpblBhZ2VHZXRPcGFxdWUocGFnZSktPnJpZ2h0bGluazsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luYnVsay5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2dpbi9naW5idWxrLmMKaW5kZXggNGZmMTQ5ZTU5 YS4uZDViOWU3ODEzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2dpbi9naW5idWxrLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9n aW5idWxrLmMKQEAgLTUyLDcgKzUyLDcgQEAgZ2luQ29tYmluZURhdGEoUkJO b2RlICpleGlzdGluZywgY29uc3QgUkJOb2RlICpuZXdkYXRhLCB2b2lkICph cmcpCiAJfQogCiAJLyogSWYgaXRlbSBwb2ludGVycyBhcmUgbm90IG9yZGVy ZWQsIHRoZXkgd2lsbCBuZWVkIHRvIGJlIHNvcnRlZCBsYXRlciAqLwotCWlm IChlby0+c2hvdWxkU29ydCA9PSBGQUxTRSkKKwlpZiAoZW8tPnNob3VsZFNv cnQgPT0gZmFsc2UpCiAJewogCQlpbnQJCQlyZXM7CiAKQEAgLTYwLDcgKzYw LDcgQEAgZ2luQ29tYmluZURhdGEoUkJOb2RlICpleGlzdGluZywgY29uc3Qg UkJOb2RlICpuZXdkYXRhLCB2b2lkICphcmcpCiAJCUFzc2VydChyZXMgIT0g MCk7CiAKIAkJaWYgKHJlcyA+IDApCi0JCQllby0+c2hvdWxkU29ydCA9IFRS VUU7CisJCQllby0+c2hvdWxkU29ydCA9IHRydWU7CiAJfQogCiAJZW8tPmxp c3RbZW8tPmNvdW50XSA9IGVuLT5saXN0WzBdOwpAQCAtMTc1LDcgKzE3NSw3 IEBAIGdpbkluc2VydEJBRW50cnkoQnVpbGRBY2N1bXVsYXRvciAqYWNjdW0s CiAJCQllYS0+a2V5ID0gZ2V0RGF0dW1Db3B5KGFjY3VtLCBhdHRudW0sIGtl eSk7CiAJCWVhLT5tYXhjb3VudCA9IERFRl9OUFRSOwogCQllYS0+Y291bnQg PSAxOwotCQllYS0+c2hvdWxkU29ydCA9IEZBTFNFOworCQllYS0+c2hvdWxk U29ydCA9IGZhbHNlOwogCQllYS0+bGlzdCA9CiAJCQkoSXRlbVBvaW50ZXJE YXRhICopIHBhbGxvYyhzaXplb2YoSXRlbVBvaW50ZXJEYXRhKSAqIERFRl9O UFRSKTsKIAkJZWEtPmxpc3RbMF0gPSAqaGVhcHB0cjsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZGF0YXBhZ2UuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9naW4vZ2luZGF0YXBhZ2UuYwppbmRleCAyZTVlYTQ3 OTc2Li45YzZjYmE0ODI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2luL2dpbmRhdGFwYWdlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2dpbi9naW5kYXRhcGFnZS5jCkBAIC0yMzUsOSArMjM1LDkgQEAgZGF0YUlz TW92ZVJpZ2h0KEdpbkJ0cmVlIGJ0cmVlLCBQYWdlIHBhZ2UpCiAJSXRlbVBv aW50ZXIgaXB0ciA9IEdpbkRhdGFQYWdlR2V0UmlnaHRCb3VuZChwYWdlKTsK IAogCWlmIChHaW5QYWdlUmlnaHRNb3N0KHBhZ2UpKQotCQlyZXR1cm4gRkFM U0U7CisJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiAoZ2luQ29tcGFyZUl0 ZW1Qb2ludGVycygmYnRyZWUtPml0ZW1wdHIsIGlwdHIpID4gMCkgPyBUUlVF IDogRkFMU0U7CisJcmV0dXJuIChnaW5Db21wYXJlSXRlbVBvaW50ZXJzKCZi dHJlZS0+aXRlbXB0ciwgaXB0cikgPiAwKSA/IHRydWUgOiBmYWxzZTsKIH0K IAogLyoKQEAgLTE4NzUsOSArMTg3NSw5IEBAIGdpblByZXBhcmVEYXRhU2Nh bihHaW5CdHJlZSBidHJlZSwgUmVsYXRpb24gaW5kZXgsIEJsb2NrTnVtYmVy IHJvb3RCbGtubykKIAlidHJlZS0+ZmlsbFJvb3QgPSBnaW5EYXRhRmlsbFJv b3Q7CiAJYnRyZWUtPnByZXBhcmVEb3dubGluayA9IGRhdGFQcmVwYXJlRG93 bmxpbms7CiAKLQlidHJlZS0+aXNEYXRhID0gVFJVRTsKLQlidHJlZS0+ZnVs bFNjYW4gPSBGQUxTRTsKLQlidHJlZS0+aXNCdWlsZCA9IEZBTFNFOworCWJ0 cmVlLT5pc0RhdGEgPSB0cnVlOworCWJ0cmVlLT5mdWxsU2NhbiA9IGZhbHNl OworCWJ0cmVlLT5pc0J1aWxkID0gZmFsc2U7CiB9CiAKIC8qCkBAIC0xOTE5 LDkgKzE5MTksOSBAQCBnaW5TY2FuQmVnaW5Qb3N0aW5nVHJlZShHaW5CdHJl ZSBidHJlZSwgUmVsYXRpb24gaW5kZXgsIEJsb2NrTnVtYmVyIHJvb3RCbGtu bywKIAogCWdpblByZXBhcmVEYXRhU2NhbihidHJlZSwgaW5kZXgsIHJvb3RC bGtubyk7CiAKLQlidHJlZS0+ZnVsbFNjYW4gPSBUUlVFOworCWJ0cmVlLT5m dWxsU2NhbiA9IHRydWU7CiAKLQlzdGFjayA9IGdpbkZpbmRMZWFmUGFnZShi dHJlZSwgVFJVRSwgc25hcHNob3QpOworCXN0YWNrID0gZ2luRmluZExlYWZQ YWdlKGJ0cmVlLCB0cnVlLCBzbmFwc2hvdCk7CiAKIAlyZXR1cm4gc3RhY2s7 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmVu dHJ5cGFnZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5lbnRyeXBh Z2UuYwppbmRleCBkNWNjNzAyNThhLi5iZjdiMDUxMDdiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmVudHJ5cGFnZS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZW50cnlwYWdlLmMKQEAgLTMw LDcgKzMwLDcgQEAgc3RhdGljIHZvaWQgZW50cnlTcGxpdFBhZ2UoR2luQnRy ZWUgYnRyZWUsIEJ1ZmZlciBvcmlnYnVmLAogICogRm9ybSBhIHR1cGxlIGZv ciBlbnRyeSB0cmVlLgogICoKICAqIElmIHRoZSB0dXBsZSB3b3VsZCBiZSB0 b28gYmlnIHRvIGJlIHN0b3JlZCwgZnVuY3Rpb24gdGhyb3dzIGEgc3VpdGFi bGUKLSAqIGVycm9yIGlmIGVycm9yVG9vQmlnIGlzIFRSVUUsIG9yIHJldHVy bnMgTlVMTCBpZiBlcnJvclRvb0JpZyBpcyBGQUxTRS4KKyAqIGVycm9yIGlm IGVycm9yVG9vQmlnIGlzIHRydWUsIG9yIHJldHVybnMgTlVMTCBpZiBlcnJv clRvb0JpZyBpcyBmYWxzZS4KICAqCiAgKiBTZWUgc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9SRUFETUUgZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGluZGV4 IHR1cGxlCiAgKiBmb3JtYXQgdGhhdCBpcyBiZWluZyBidWlsdCBoZXJlLiAg V2UgYnVpbGQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCB3ZQpAQCAtMjQ5LDcg KzI0OSw3IEBAIGVudHJ5SXNNb3ZlUmlnaHQoR2luQnRyZWUgYnRyZWUsIFBh Z2UgcGFnZSkKIAlHaW5OdWxsQ2F0ZWdvcnkgY2F0ZWdvcnk7CiAKIAlpZiAo R2luUGFnZVJpZ2h0TW9zdChwYWdlKSkKLQkJcmV0dXJuIEZBTFNFOworCQly ZXR1cm4gZmFsc2U7CiAKIAlpdHVwID0gZ2V0UmlnaHRNb3N0VHVwbGUocGFn ZSk7CiAJYXR0bnVtID0gZ2ludHVwbGVfZ2V0X2F0dHJudW0oYnRyZWUtPmdp bnN0YXRlLCBpdHVwKTsKQEAgLTI1OCw5ICsyNTgsOSBAQCBlbnRyeUlzTW92 ZVJpZ2h0KEdpbkJ0cmVlIGJ0cmVlLCBQYWdlIHBhZ2UpCiAJaWYgKGdpbkNv bXBhcmVBdHRFbnRyaWVzKGJ0cmVlLT5naW5zdGF0ZSwKIAkJCQkJCQkgYnRy ZWUtPmVudHJ5QXR0bnVtLCBidHJlZS0+ZW50cnlLZXksIGJ0cmVlLT5lbnRy eUNhdGVnb3J5LAogCQkJCQkJCSBhdHRudW0sIGtleSwgY2F0ZWdvcnkpID4g MCkKLQkJcmV0dXJuIFRSVUU7CisJCXJldHVybiB0cnVlOwogCi0JcmV0dXJu IEZBTFNFOworCXJldHVybiBmYWxzZTsKIH0KIAogLyoKQEAgLTM1Niw3ICsz NTYsNyBAQCBlbnRyeUxvY2F0ZUxlYWZFbnRyeShHaW5CdHJlZSBidHJlZSwg R2luQnRyZWVTdGFjayAqc3RhY2spCiAJaWYgKGJ0cmVlLT5mdWxsU2NhbikK IAl7CiAJCXN0YWNrLT5vZmYgPSBGaXJzdE9mZnNldE51bWJlcjsKLQkJcmV0 dXJuIFRSVUU7CisJCXJldHVybiB0cnVlOwogCX0KIAogCWxvdyA9IEZpcnN0 T2Zmc2V0TnVtYmVyOwpAQCAtNzYyLDkgKzc2Miw5IEBAIGdpblByZXBhcmVF bnRyeVNjYW4oR2luQnRyZWUgYnRyZWUsIE9mZnNldE51bWJlciBhdHRudW0s CiAJYnRyZWUtPmZpbGxSb290ID0gZ2luRW50cnlGaWxsUm9vdDsKIAlidHJl ZS0+cHJlcGFyZURvd25saW5rID0gZW50cnlQcmVwYXJlRG93bmxpbms7CiAK LQlidHJlZS0+aXNEYXRhID0gRkFMU0U7Ci0JYnRyZWUtPmZ1bGxTY2FuID0g RkFMU0U7Ci0JYnRyZWUtPmlzQnVpbGQgPSBGQUxTRTsKKwlidHJlZS0+aXNE YXRhID0gZmFsc2U7CisJYnRyZWUtPmZ1bGxTY2FuID0gZmFsc2U7CisJYnRy ZWUtPmlzQnVpbGQgPSBmYWxzZTsKIAogCWJ0cmVlLT5lbnRyeUF0dG51bSA9 IGF0dG51bTsKIAlidHJlZS0+ZW50cnlLZXkgPSBrZXk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmdldC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2dpbi9naW5nZXQuYwppbmRleCA1NmE1YmY0N2I4Li4yNzI5 Mjk3NjQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dp bmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luZ2V0LmMK QEAgLTMxMSw3ICszMTEsNyBAQCBzdGFydFNjYW5FbnRyeShHaW5TdGF0ZSAq Z2luc3RhdGUsIEdpblNjYW5FbnRyeSBlbnRyeSwgU25hcHNob3Qgc25hcHNo b3QpCiAJZW50cnktPm5saXN0ID0gMDsKIAllbnRyeS0+bWF0Y2hCaXRtYXAg PSBOVUxMOwogCWVudHJ5LT5tYXRjaFJlc3VsdCA9IE5VTEw7Ci0JZW50cnkt PnJlZHVjZVJlc3VsdCA9IEZBTFNFOworCWVudHJ5LT5yZWR1Y2VSZXN1bHQg PSBmYWxzZTsKIAllbnRyeS0+cHJlZGljdE51bWJlclJlc3VsdCA9IDA7CiAK IAkvKgpAQCAtMzI0LDkgKzMyNCw5IEBAIHN0YXJ0U2NhbkVudHJ5KEdpblN0 YXRlICpnaW5zdGF0ZSwgR2luU2NhbkVudHJ5IGVudHJ5LCBTbmFwc2hvdCBz bmFwc2hvdCkKIAlzdGFja0VudHJ5ID0gZ2luRmluZExlYWZQYWdlKCZidHJl ZUVudHJ5LCB0cnVlLCBzbmFwc2hvdCk7CiAJcGFnZSA9IEJ1ZmZlckdldFBh Z2Uoc3RhY2tFbnRyeS0+YnVmZmVyKTsKIAkvKiBnaW5GaW5kTGVhZlBhZ2Uo KSB3aWxsIGhhdmUgYWxyZWFkeSBjaGVja2VkIHNuYXBzaG90IGFnZS4gKi8K LQluZWVkVW5sb2NrID0gVFJVRTsKKwluZWVkVW5sb2NrID0gdHJ1ZTsKIAot CWVudHJ5LT5pc0ZpbmlzaGVkID0gVFJVRTsKKwllbnRyeS0+aXNGaW5pc2hl ZCA9IHRydWU7CiAKIAlpZiAoZW50cnktPmlzUGFydGlhbE1hdGNoIHx8CiAJ CWVudHJ5LT5xdWVyeUNhdGVnb3J5ID09IEdJTl9DQVRfRU1QVFlfUVVFUlkp CkBAIC0zNjMsNyArMzYzLDcgQEAgc3RhcnRTY2FuRW50cnkoR2luU3RhdGUg KmdpbnN0YXRlLCBHaW5TY2FuRW50cnkgZW50cnksIFNuYXBzaG90IHNuYXBz aG90KQogCQlpZiAoZW50cnktPm1hdGNoQml0bWFwICYmICF0Ym1faXNfZW1w dHkoZW50cnktPm1hdGNoQml0bWFwKSkKIAkJewogCQkJZW50cnktPm1hdGNo SXRlcmF0b3IgPSB0Ym1fYmVnaW5faXRlcmF0ZShlbnRyeS0+bWF0Y2hCaXRt YXApOwotCQkJZW50cnktPmlzRmluaXNoZWQgPSBGQUxTRTsKKwkJCWVudHJ5 LT5pc0ZpbmlzaGVkID0gZmFsc2U7CiAJCX0KIAl9CiAJZWxzZSBpZiAoYnRy ZWVFbnRyeS5maW5kSXRlbSgmYnRyZWVFbnRyeSwgc3RhY2tFbnRyeSkpCkBA IC0zODUsNyArMzg1LDcgQEAgc3RhcnRTY2FuRW50cnkoR2luU3RhdGUgKmdp bnN0YXRlLCBHaW5TY2FuRW50cnkgZW50cnksIFNuYXBzaG90IHNuYXBzaG90 KQogCQkJICogcm9vdCBvZiBwb3N0aW5nIHRyZWUuCiAJCQkgKi8KIAkJCUxv Y2tCdWZmZXIoc3RhY2tFbnRyeS0+YnVmZmVyLCBHSU5fVU5MT0NLKTsKLQkJ CW5lZWRVbmxvY2sgPSBGQUxTRTsKKwkJCW5lZWRVbmxvY2sgPSBmYWxzZTsK IAogCQkJc3RhY2sgPSBnaW5TY2FuQmVnaW5Qb3N0aW5nVHJlZSgmZW50cnkt PmJ0cmVlLCBnaW5zdGF0ZS0+aW5kZXgsCiAJCQkJCQkJCQkJCXJvb3RQb3N0 aW5nVHJlZSwgc25hcHNob3QpOwpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXJ0 U2NhbkVudHJ5KEdpblN0YXRlICpnaW5zdGF0ZSwgR2luU2NhbkVudHJ5IGVu dHJ5LCBTbmFwc2hvdCBzbmFwc2hvdCkKIAogCQkJTG9ja0J1ZmZlcihlbnRy eS0+YnVmZmVyLCBHSU5fVU5MT0NLKTsKIAkJCWZyZWVHaW5CdHJlZVN0YWNr KHN0YWNrKTsKLQkJCWVudHJ5LT5pc0ZpbmlzaGVkID0gRkFMU0U7CisJCQll bnRyeS0+aXNGaW5pc2hlZCA9IGZhbHNlOwogCQl9CiAJCWVsc2UgaWYgKEdp bkdldE5Qb3N0aW5nKGl0dXApID4gMCkKIAkJewpAQCAtNDE4LDcgKzQxOCw3 IEBAIHN0YXJ0U2NhbkVudHJ5KEdpblN0YXRlICpnaW5zdGF0ZSwgR2luU2Nh bkVudHJ5IGVudHJ5LCBTbmFwc2hvdCBzbmFwc2hvdCkKIAkJCQkJCQkJCSAg ICZlbnRyeS0+bmxpc3QpOwogCQkJZW50cnktPnByZWRpY3ROdW1iZXJSZXN1 bHQgPSBlbnRyeS0+bmxpc3Q7CiAKLQkJCWVudHJ5LT5pc0ZpbmlzaGVkID0g RkFMU0U7CisJCQllbnRyeS0+aXNGaW5pc2hlZCA9IGZhbHNlOwogCQl9CiAJ fQogCkBAIC01NjUsNyArNTY1LDcgQEAgc3RhcnRTY2FuKEluZGV4U2NhbkRl c2Mgc2NhbikKIAkJCWZvciAoaSA9IDA7IGkgPCBzby0+dG90YWxlbnRyaWVz OyBpKyspCiAJCQl7CiAJCQkJc28tPmVudHJpZXNbaV0tPnByZWRpY3ROdW1i ZXJSZXN1bHQgLz0gc28tPnRvdGFsZW50cmllczsKLQkJCQlzby0+ZW50cmll c1tpXS0+cmVkdWNlUmVzdWx0ID0gVFJVRTsKKwkJCQlzby0+ZW50cmllc1tp XS0+cmVkdWNlUmVzdWx0ID0gdHJ1ZTsKIAkJCX0KIAkJfQogCX0KQEAgLTY2 Niw3ICs2NjYsNyBAQCBlbnRyeUxvYWRNb3JlSXRlbXMoR2luU3RhdGUgKmdp bnN0YXRlLCBHaW5TY2FuRW50cnkgZW50cnksCiAJCQl7CiAJCQkJVW5sb2Nr UmVsZWFzZUJ1ZmZlcihlbnRyeS0+YnVmZmVyKTsKIAkJCQllbnRyeS0+YnVm ZmVyID0gSW52YWxpZEJ1ZmZlcjsKLQkJCQllbnRyeS0+aXNGaW5pc2hlZCA9 IFRSVUU7CisJCQkJZW50cnktPmlzRmluaXNoZWQgPSB0cnVlOwogCQkJCXJl dHVybjsKIAkJCX0KIApAQCAtNzI4LDcgKzcyOCw3IEBAIGVudHJ5TG9hZE1v cmVJdGVtcyhHaW5TdGF0ZSAqZ2luc3RhdGUsIEdpblNjYW5FbnRyeSBlbnRy eSwKIAogLyoKICAqIFNldHMgZW50cnktPmN1ckl0ZW0gdG8gbmV4dCBoZWFw IGl0ZW0gcG9pbnRlciA+IGFkdmFuY2VQYXN0LCBmb3Igb25lIGVudHJ5Ci0g KiBvZiBvbmUgc2NhbiBrZXksIG9yIHNldHMgZW50cnktPmlzRmluaXNoZWQg dG8gVFJVRSBpZiB0aGVyZSBhcmUgbm8gbW9yZS4KKyAqIG9mIG9uZSBzY2Fu IGtleSwgb3Igc2V0cyBlbnRyeS0+aXNGaW5pc2hlZCB0byB0cnVlIGlmIHRo ZXJlIGFyZSBubyBtb3JlLgogICoKICAqIEl0ZW0gcG9pbnRlcnMgYXJlIHJl dHVybmVkIGluIGFzY2VuZGluZyBvcmRlci4KICAqCkBAIC03NzUsNyArNzc1 LDcgQEAgZW50cnlHZXRJdGVtKEdpblN0YXRlICpnaW5zdGF0ZSwgR2luU2Nh bkVudHJ5IGVudHJ5LAogCQkJCQlJdGVtUG9pbnRlclNldEludmFsaWQoJmVu dHJ5LT5jdXJJdGVtKTsKIAkJCQkJdGJtX2VuZF9pdGVyYXRlKGVudHJ5LT5t YXRjaEl0ZXJhdG9yKTsKIAkJCQkJZW50cnktPm1hdGNoSXRlcmF0b3IgPSBO VUxMOwotCQkJCQllbnRyeS0+aXNGaW5pc2hlZCA9IFRSVUU7CisJCQkJCWVu dHJ5LT5pc0ZpbmlzaGVkID0gdHJ1ZTsKIAkJCQkJYnJlYWs7CiAJCQkJfQog CkBAIC04MzUsNyArODM1LDcgQEAgZW50cnlHZXRJdGVtKEdpblN0YXRlICpn aW5zdGF0ZSwgR2luU2NhbkVudHJ5IGVudHJ5LAogCQkJCQkJICAgZW50cnkt Pm1hdGNoUmVzdWx0LT5vZmZzZXRzW2VudHJ5LT5vZmZzZXRdKTsKIAkJCWVu dHJ5LT5vZmZzZXQrKzsKIAkJCWdvdGl0ZW0gPSB0cnVlOwotCQl9IHdoaWxl ICghZ290aXRlbSB8fCAoZW50cnktPnJlZHVjZVJlc3VsdCA9PSBUUlVFICYm IGRyb3BJdGVtKGVudHJ5KSkpOworCQl9IHdoaWxlICghZ290aXRlbSB8fCAo ZW50cnktPnJlZHVjZVJlc3VsdCA9PSB0cnVlICYmIGRyb3BJdGVtKGVudHJ5 KSkpOwogCX0KIAllbHNlIGlmICghQnVmZmVySXNWYWxpZChlbnRyeS0+YnVm ZmVyKSkKIAl7CkBAIC04NDgsNyArODQ4LDcgQEAgZW50cnlHZXRJdGVtKEdp blN0YXRlICpnaW5zdGF0ZSwgR2luU2NhbkVudHJ5IGVudHJ5LAogCQkJaWYg KGVudHJ5LT5vZmZzZXQgPj0gZW50cnktPm5saXN0KQogCQkJewogCQkJCUl0 ZW1Qb2ludGVyU2V0SW52YWxpZCgmZW50cnktPmN1ckl0ZW0pOwotCQkJCWVu dHJ5LT5pc0ZpbmlzaGVkID0gVFJVRTsKKwkJCQllbnRyeS0+aXNGaW5pc2hl ZCA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CiAKQEAgLTg3Niw3ICs4NzYs NyBAQCBlbnRyeUdldEl0ZW0oR2luU3RhdGUgKmdpbnN0YXRlLCBHaW5TY2Fu RW50cnkgZW50cnksCiAJCQllbnRyeS0+Y3VySXRlbSA9IGVudHJ5LT5saXN0 W2VudHJ5LT5vZmZzZXQrK107CiAKIAkJfSB3aGlsZSAoZ2luQ29tcGFyZUl0 ZW1Qb2ludGVycygmZW50cnktPmN1ckl0ZW0sICZhZHZhbmNlUGFzdCkgPD0g MCB8fAotCQkJCSAoZW50cnktPnJlZHVjZVJlc3VsdCA9PSBUUlVFICYmIGRy b3BJdGVtKGVudHJ5KSkpOworCQkJCSAoZW50cnktPnJlZHVjZVJlc3VsdCA9 PSB0cnVlICYmIGRyb3BJdGVtKGVudHJ5KSkpOwogCX0KIH0KIApAQCAtODkx LDcgKzg5MSw3IEBAIGVudHJ5R2V0SXRlbShHaW5TdGF0ZSAqZ2luc3RhdGUs IEdpblNjYW5FbnRyeSBlbnRyeSwKICAqIGlmZiByZWNoZWNrIGlzIG5lZWRl ZCBmb3IgdGhpcyBpdGVtIHBvaW50ZXIgKGluY2x1ZGluZyB0aGUgY2FzZSB3 aGVyZSB0aGUKICAqIGl0ZW0gcG9pbnRlciBpcyBhIGxvc3N5IHBhZ2UgcG9p bnRlcikuCiAgKgotICogSWYgYWxsIGVudHJ5IHN0cmVhbXMgYXJlIGV4aGF1 c3RlZCwgc2V0cyBrZXktPmlzRmluaXNoZWQgdG8gVFJVRS4KKyAqIElmIGFs bCBlbnRyeSBzdHJlYW1zIGFyZSBleGhhdXN0ZWQsIHNldHMga2V5LT5pc0Zp bmlzaGVkIHRvIHRydWUuCiAgKgogICogSXRlbSBwb2ludGVycyBtdXN0IGJl IHJldHVybmVkIGluIGFzY2VuZGluZyBvcmRlci4KICAqCkBAIC05NjMsNyAr OTYzLDcgQEAga2V5R2V0SXRlbShHaW5TdGF0ZSAqZ2luc3RhdGUsIE1lbW9y eUNvbnRleHQgdGVtcEN0eCwgR2luU2NhbktleSBrZXksCiAJaWYgKGFsbEZp bmlzaGVkKQogCXsKIAkJLyogYWxsIGVudHJpZXMgYXJlIGZpbmlzaGVkICov Ci0JCWtleS0+aXNGaW5pc2hlZCA9IFRSVUU7CisJCWtleS0+aXNGaW5pc2hl ZCA9IHRydWU7CiAJCXJldHVybjsKIAl9CiAKQEAgLTEwNTEsNyArMTA1MSw3 IEBAIGtleUdldEl0ZW0oR2luU3RhdGUgKmdpbnN0YXRlLCBNZW1vcnlDb250 ZXh0IHRlbXBDdHgsIEdpblNjYW5LZXkga2V5LAogCSAqIHRoZW0uIFdlIGNv dWxkIHBhc3MgdGhlbSBhcyBNQVlCRSBhcyB3ZWxsLCBidXQgaWYgd2UncmUg dXNpbmcgdGhlCiAJICogInNoaW0iIGltcGxlbWVudGF0aW9uIG9mIGEgdHJp LXN0YXRlIGNvbnNpc3RlbnQgZnVuY3Rpb24gKHNlZQogCSAqIGdpbmxvZ2lj LmMpLCBpdCdzIGJldHRlciB0byBwYXNzIGFzIGZldyBNQVlCRXMgYXMgcG9z c2libGUuIFNvIHBhc3MKLQkgKiB0aGVtIGFzIFRSVUUuCisJICogdGhlbSBh cyB0cnVlLgogCSAqCiAJICogTm90ZSB0aGF0IG9ubHkgbG9zc3ktcGFnZSBl bnRyaWVzIHBvaW50aW5nIHRvIHRoZSBjdXJyZW50IGl0ZW0ncyBwYWdlCiAJ ICogc2hvdWxkIHRyaWdnZXIgdGhpcyBwcm9jZXNzaW5nOyB3ZSBtaWdodCBo YXZlIGZ1dHVyZSBsb3NzeSBwYWdlcyBpbiB0aGUKQEAgLTEwNjQsNyArMTA2 NCw3IEBAIGtleUdldEl0ZW0oR2luU3RhdGUgKmdpbnN0YXRlLCBNZW1vcnlD b250ZXh0IHRlbXBDdHgsIEdpblNjYW5LZXkga2V5LAogCWZvciAoaSA9IDA7 IGkgPCBrZXktPm5lbnRyaWVzOyBpKyspCiAJewogCQllbnRyeSA9IGtleS0+ c2NhbkVudHJ5W2ldOwotCQlpZiAoZW50cnktPmlzRmluaXNoZWQgPT0gRkFM U0UgJiYKKwkJaWYgKGVudHJ5LT5pc0ZpbmlzaGVkID09IGZhbHNlICYmCiAJ CQlnaW5Db21wYXJlSXRlbVBvaW50ZXJzKCZlbnRyeS0+Y3VySXRlbSwgJmN1 clBhZ2VMb3NzeSkgPT0gMCkKIAkJewogCQkJaWYgKGkgPCBrZXktPm51c2Vy ZW50cmllcykKQEAgLTEzMTQsNyArMTMxNCw3IEBAIHNjYW5HZXRJdGVtKElu ZGV4U2NhbkRlc2Mgc2NhbiwgSXRlbVBvaW50ZXJEYXRhIGFkdmFuY2VQYXN0 LAogCQl9CiAJfQogCi0JcmV0dXJuIFRSVUU7CisJcmV0dXJuIHRydWU7CiB9 CiAKIApAQCAtMTUwOCw3ICsxNTA4LDcgQEAgY29sbGVjdE1hdGNoZXNGb3JI ZWFwUm93KEluZGV4U2NhbkRlc2Mgc2NhbiwgcGVuZGluZ1Bvc2l0aW9uICpw b3MpCiAKIAkJbWVtc2V0KGtleS0+ZW50cnlSZXMsIEdJTl9GQUxTRSwga2V5 LT5uZW50cmllcyk7CiAJfQotCW1lbXNldChwb3MtPmhhc01hdGNoS2V5LCBG QUxTRSwgc28tPm5rZXlzKTsKKwltZW1zZXQocG9zLT5oYXNNYXRjaEtleSwg ZmFsc2UsIHNvLT5ua2V5cyk7CiAKIAkvKgogCSAqIE91dGVyIGxvb3AgaXRl cmF0ZXMgb3ZlciBtdWx0aXBsZSBwZW5kaW5nLWxpc3QgcGFnZXMgd2hlbiBh IHNpbmdsZSBoZWFwCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mv Z2luL2dpbmluc2VydC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5p bnNlcnQuYwppbmRleCA1Mzc4MDExZjUwLi44YWNjMmIyNWIyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKQEAgLTE4NSw3 ICsxODUsNyBAQCBnaW5FbnRyeUluc2VydChHaW5TdGF0ZSAqZ2luc3RhdGUs CiAJSW5kZXhUdXBsZQlpdHVwOwogCVBhZ2UJCXBhZ2U7CiAKLQlpbnNlcnRk YXRhLmlzRGVsZXRlID0gRkFMU0U7CisJaW5zZXJ0ZGF0YS5pc0RlbGV0ZSA9 IGZhbHNlOwogCiAJLyogRHVyaW5nIGluZGV4IGJ1aWxkLCBjb3VudCB0aGUg dG8tYmUtaW5zZXJ0ZWQgZW50cnkgKi8KIAlpZiAoYnVpbGRTdGF0cykKQEAg LTIyMSw3ICsyMjEsNyBAQCBnaW5FbnRyeUluc2VydChHaW5TdGF0ZSAqZ2lu c3RhdGUsCiAJCWl0dXAgPSBhZGRJdGVtUG9pbnRlcnNUb0xlYWZUdXBsZShn aW5zdGF0ZSwgaXR1cCwKIAkJCQkJCQkJCQkgIGl0ZW1zLCBuaXRlbSwgYnVp bGRTdGF0cyk7CiAKLQkJaW5zZXJ0ZGF0YS5pc0RlbGV0ZSA9IFRSVUU7CisJ CWluc2VydGRhdGEuaXNEZWxldGUgPSB0cnVlOwogCX0KIAllbHNlCiAJewpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWN1dW0u YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFjdXVtLmMKaW5kZXgg MzE0MjVlOTk2My4uYTIwYTk5YzgxNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2dpbi9naW52YWN1dW0uYworKysgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2luL2dpbnZhY3V1bS5jCkBAIC0yMzUsNyArMjM1LDcgQEAgZ2lu U2NhblRvRGVsZXRlKEdpblZhY3V1bVN0YXRlICpndnMsIEJsb2NrTnVtYmVy IGJsa25vLCBib29sIGlzUm9vdCwKIAlEYXRhUGFnZURlbGV0ZVN0YWNrICpt ZTsKIAlCdWZmZXIJCWJ1ZmZlcjsKIAlQYWdlCQlwYWdlOwotCWJvb2wJCW1l RGVsZXRlID0gRkFMU0U7CisJYm9vbAkJbWVEZWxldGUgPSBmYWxzZTsKIAli b29sCQlpc2VtcHR5OwogCiAJaWYgKGlzUm9vdCkKQEAgLTI3NCw3ICsyNzQs NyBAQCBnaW5TY2FuVG9EZWxldGUoR2luVmFjdXVtU3RhdGUgKmd2cywgQmxv Y2tOdW1iZXIgYmxrbm8sIGJvb2wgaXNSb290LAogCQl7CiAJCQlQb3N0aW5n SXRlbSAqcGl0ZW0gPSBHaW5EYXRhUGFnZUdldFBvc3RpbmdJdGVtKHBhZ2Us IGkpOwogCi0JCQlpZiAoZ2luU2NhblRvRGVsZXRlKGd2cywgUG9zdGluZ0l0 ZW1HZXRCbG9ja051bWJlcihwaXRlbSksIEZBTFNFLCBtZSwgaSkpCisJCQlp ZiAoZ2luU2NhblRvRGVsZXRlKGd2cywgUG9zdGluZ0l0ZW1HZXRCbG9ja051 bWJlcihwaXRlbSksIGZhbHNlLCBtZSwgaSkpCiAJCQkJaS0tOwogCQl9CiAJ fQpAQCAtMjkxLDcgKzI5MSw3IEBAIGdpblNjYW5Ub0RlbGV0ZShHaW5WYWN1 dW1TdGF0ZSAqZ3ZzLCBCbG9ja051bWJlciBibGtubywgYm9vbCBpc1Jvb3Qs CiAJCXsKIAkJCUFzc2VydCghaXNSb290KTsKIAkJCWdpbkRlbGV0ZVBhZ2Uo Z3ZzLCBibGtubywgbWUtPmxlZnRCbGtubywgbWUtPnBhcmVudC0+Ymxrbm8s IG15b2ZmLCBtZS0+cGFyZW50LT5pc1Jvb3QpOwotCQkJbWVEZWxldGUgPSBU UlVFOworCQkJbWVEZWxldGUgPSB0cnVlOwogCQl9CiAJfQogCkBAIC0zMTks NyArMzE5LDcgQEAgZ2luVmFjdXVtUG9zdGluZ1RyZWVMZWF2ZXMoR2luVmFj dXVtU3RhdGUgKmd2cywgQmxvY2tOdW1iZXIgYmxrbm8sIGJvb2wgaXNSb290 KQogewogCUJ1ZmZlcgkJYnVmZmVyOwogCVBhZ2UJCXBhZ2U7Ci0JYm9vbAkJ aGFzVm9pZFBhZ2UgPSBGQUxTRTsKKwlib29sCQloYXNWb2lkUGFnZSA9IGZh bHNlOwogCU1lbW9yeUNvbnRleHQgb2xkQ3h0OwogCiAJYnVmZmVyID0gUmVh ZEJ1ZmZlckV4dGVuZGVkKGd2cy0+aW5kZXgsIE1BSU5fRk9SS05VTSwgYmxr bm8sCkBAIC0zMzksNyArMzM5LDcgQEAgZ2luVmFjdXVtUG9zdGluZ1RyZWVM ZWF2ZXMoR2luVmFjdXVtU3RhdGUgKmd2cywgQmxvY2tOdW1iZXIgYmxrbm8s IGJvb2wgaXNSb290KQogCiAJCS8qIGlmIHJvb3QgaXMgYSBsZWFmIHBhZ2Us IHdlIGRvbid0IGRlc2lyZSBmdXJ0aGVyIHByb2Nlc3NpbmcgKi8KIAkJaWYg KEdpbkRhdGFMZWFmUGFnZUlzRW1wdHkocGFnZSkpCi0JCQloYXNWb2lkUGFn ZSA9IFRSVUU7CisJCQloYXNWb2lkUGFnZSA9IHRydWU7CiAKIAkJVW5sb2Nr UmVsZWFzZUJ1ZmZlcihidWZmZXIpOwogCkBAIC0zNDgsOCArMzQ4LDggQEAg Z2luVmFjdXVtUG9zdGluZ1RyZWVMZWF2ZXMoR2luVmFjdXVtU3RhdGUgKmd2 cywgQmxvY2tOdW1iZXIgYmxrbm8sIGJvb2wgaXNSb290KQogCWVsc2UKIAl7 CiAJCU9mZnNldE51bWJlciBpOwotCQlib29sCQloYXNFbXB0eUNoaWxkID0g RkFMU0U7Ci0JCWJvb2wJCWhhc05vbkVtcHR5Q2hpbGQgPSBGQUxTRTsKKwkJ Ym9vbAkJaGFzRW1wdHlDaGlsZCA9IGZhbHNlOworCQlib29sCQloYXNOb25F bXB0eUNoaWxkID0gZmFsc2U7CiAJCU9mZnNldE51bWJlciBtYXhvZmYgPSBH aW5QYWdlR2V0T3BhcXVlKHBhZ2UpLT5tYXhvZmY7CiAJCUJsb2NrTnVtYmVy ICpjaGlsZHJlbiA9IHBhbGxvYyhzaXplb2YoQmxvY2tOdW1iZXIpICogKG1h eG9mZiArIDEpKTsKIApAQCAtMzY5LDEwICszNjksMTAgQEAgZ2luVmFjdXVt UG9zdGluZ1RyZWVMZWF2ZXMoR2luVmFjdXVtU3RhdGUgKmd2cywgQmxvY2tO dW1iZXIgYmxrbm8sIGJvb2wgaXNSb290KQogCiAJCWZvciAoaSA9IEZpcnN0 T2Zmc2V0TnVtYmVyOyBpIDw9IG1heG9mZjsgaSsrKQogCQl7Ci0JCQlpZiAo Z2luVmFjdXVtUG9zdGluZ1RyZWVMZWF2ZXMoZ3ZzLCBjaGlsZHJlbltpXSwg RkFMU0UpKQotCQkJCWhhc0VtcHR5Q2hpbGQgPSBUUlVFOworCQkJaWYgKGdp blZhY3V1bVBvc3RpbmdUcmVlTGVhdmVzKGd2cywgY2hpbGRyZW5baV0sIGZh bHNlKSkKKwkJCQloYXNFbXB0eUNoaWxkID0gdHJ1ZTsKIAkJCWVsc2UKLQkJ CQloYXNOb25FbXB0eUNoaWxkID0gVFJVRTsKKwkJCQloYXNOb25FbXB0eUNo aWxkID0gdHJ1ZTsKIAkJfQogCiAJCXBmcmVlKGNoaWxkcmVuKTsKQEAgLTM4 MCwxMiArMzgwLDEyIEBAIGdpblZhY3V1bVBvc3RpbmdUcmVlTGVhdmVzKEdp blZhY3V1bVN0YXRlICpndnMsIEJsb2NrTnVtYmVyIGJsa25vLCBib29sIGlz Um9vdCkKIAkJdmFjdXVtX2RlbGF5X3BvaW50KCk7CiAKIAkJLyoKLQkJICog QWxsIHN1YnRyZWUgaXMgZW1wdHkgLSBqdXN0IHJldHVybiBUUlVFIHRvIGlu ZGljYXRlIHRoYXQgcGFyZW50CisJCSAqIEFsbCBzdWJ0cmVlIGlzIGVtcHR5 IC0ganVzdCByZXR1cm4gdHJ1ZSB0byBpbmRpY2F0ZSB0aGF0IHBhcmVudAog CQkgKiBtdXN0IGRvIGEgY2xlYW51cC4gVW5sZXNzIHdlIGFyZSBST09UIGFu IHRoZXJlIGlzIHdheSB0byBnbyB1cHBlci4KIAkJICovCiAKIAkJaWYgKGhh c0VtcHR5Q2hpbGQgJiYgIWhhc05vbkVtcHR5Q2hpbGQgJiYgIWlzUm9vdCkK LQkJCXJldHVybiBUUlVFOworCQkJcmV0dXJuIHRydWU7CiAKIAkJaWYgKGhh c0VtcHR5Q2hpbGQpCiAJCXsKQEAgLTM5OSw5ICszOTksOSBAQCBnaW5WYWN1 dW1Qb3N0aW5nVHJlZUxlYXZlcyhHaW5WYWN1dW1TdGF0ZSAqZ3ZzLCBCbG9j a051bWJlciBibGtubywgYm9vbCBpc1Jvb3QpCiAKIAkJCW1lbXNldCgmcm9v dCwgMCwgc2l6ZW9mKERhdGFQYWdlRGVsZXRlU3RhY2spKTsKIAkJCXJvb3Qu bGVmdEJsa25vID0gSW52YWxpZEJsb2NrTnVtYmVyOwotCQkJcm9vdC5pc1Jv b3QgPSBUUlVFOworCQkJcm9vdC5pc1Jvb3QgPSB0cnVlOwogCi0JCQlnaW5T Y2FuVG9EZWxldGUoZ3ZzLCBibGtubywgVFJVRSwgJnJvb3QsIEludmFsaWRP ZmZzZXROdW1iZXIpOworCQkJZ2luU2NhblRvRGVsZXRlKGd2cywgYmxrbm8s IHRydWUsICZyb290LCBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIAogCQkJcHRy ID0gcm9vdC5jaGlsZDsKIApAQCAtNDE2LDE0ICs0MTYsMTQgQEAgZ2luVmFj dXVtUG9zdGluZ1RyZWVMZWF2ZXMoR2luVmFjdXVtU3RhdGUgKmd2cywgQmxv Y2tOdW1iZXIgYmxrbm8sIGJvb2wgaXNSb290KQogCQl9CiAKIAkJLyogSGVy ZSB3ZSBoYXZlIGRlbGV0ZWQgYWxsIGVtcHR5IHN1YnRyZWVzICovCi0JCXJl dHVybiBGQUxTRTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIH0KIAogc3RhdGlj IHZvaWQKIGdpblZhY3V1bVBvc3RpbmdUcmVlKEdpblZhY3V1bVN0YXRlICpn dnMsIEJsb2NrTnVtYmVyIHJvb3RCbGtubykKIHsKLQlnaW5WYWN1dW1Qb3N0 aW5nVHJlZUxlYXZlcyhndnMsIHJvb3RCbGtubywgVFJVRSk7CisJZ2luVmFj dXVtUG9zdGluZ1RyZWVMZWF2ZXMoZ3ZzLCByb290Qmxrbm8sIHRydWUpOwog fQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdC5jCmluZGV4 IDU2NTUyNWJiZGYuLjEyMWRjMDE2ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0LmMKQEAgLTEzNjQsOCArMTM2NCw4IEBAIGdpc3RTcGxp dChSZWxhdGlvbiByLAogCQkJCQkJSW5kZXhUdXBsZVNpemUoaXR1cFswXSks IEdpU1RQYWdlU2l6ZSwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHIpKSkpOwogCi0JbWVtc2V0KHYuc3BsX2xpc251bGwsIFRSVUUsIHNpemVv Zihib29sKSAqIGdpc3RzdGF0ZS0+dHVwZGVzYy0+bmF0dHMpOwotCW1lbXNl dCh2LnNwbF9yaXNudWxsLCBUUlVFLCBzaXplb2YoYm9vbCkgKiBnaXN0c3Rh dGUtPnR1cGRlc2MtPm5hdHRzKTsKKwltZW1zZXQodi5zcGxfbGlzbnVsbCwg dHJ1ZSwgc2l6ZW9mKGJvb2wpICogZ2lzdHN0YXRlLT50dXBkZXNjLT5uYXR0 cyk7CisJbWVtc2V0KHYuc3BsX3Jpc251bGwsIHRydWUsIHNpemVvZihib29s KSAqIGdpc3RzdGF0ZS0+dHVwZGVzYy0+bmF0dHMpOwogCWdpc3RTcGxpdEJ5 S2V5KHIsIHBhZ2UsIGl0dXAsIGxlbiwgZ2lzdHN0YXRlLCAmdiwgMCk7CiAK IAkvKiBmb3JtIGxlZnQgYW5kIHJpZ2h0IHZlY3RvciAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdGdldC5jCmluZGV4IDc2MGVhMGM5OTcu LmJiMWRkOWU5Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9n aXN0L2dpc3RnZXQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0Z2V0LmMKQEAgLTE5Nyw3ICsxOTcsNyBAQCBnaXN0aW5kZXhfa2V5dGVz dChJbmRleFNjYW5EZXNjIHNjYW4sCiAKIAkJCWdpc3RkZW50cnlpbml0KGdp c3RzdGF0ZSwga2V5LT5za19hdHRubyAtIDEsICZkZSwKIAkJCQkJCSAgIGRh dHVtLCByLCBwYWdlLCBvZmZzZXQsCi0JCQkJCQkgICBGQUxTRSwgaXNOdWxs KTsKKwkJCQkJCSAgIGZhbHNlLCBpc051bGwpOwogCiAJCQkvKgogCQkJICog Q2FsbCB0aGUgQ29uc2lzdGVudCBmdW5jdGlvbiB0byBldmFsdWF0ZSB0aGUg dGVzdC4gIFRoZQpAQCAtMjU4LDcgKzI1OCw3IEBAIGdpc3RpbmRleF9rZXl0 ZXN0KEluZGV4U2NhbkRlc2Mgc2NhbiwKIAogCQkJZ2lzdGRlbnRyeWluaXQo Z2lzdHN0YXRlLCBrZXktPnNrX2F0dG5vIC0gMSwgJmRlLAogCQkJCQkJICAg ZGF0dW0sIHIsIHBhZ2UsIG9mZnNldCwKLQkJCQkJCSAgIEZBTFNFLCBpc051 bGwpOworCQkJCQkJICAgZmFsc2UsIGlzTnVsbCk7CiAKIAkJCS8qCiAJCQkg KiBDYWxsIHRoZSBEaXN0YW5jZSBmdW5jdGlvbiB0byBldmFsdWF0ZSB0aGUg ZGlzdGFuY2UuICBUaGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3Rwcm9jLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0cHJvYy5jCmluZGV4IDA4OTkwZjVhMWIuLmI4NjQwNTNlZTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3Rwcm9jLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHByb2MuYwpAQCAtMTA1 LDcgKzEwNSw3IEBAIGJveF9wZW5hbHR5KGNvbnN0IEJPWCAqb3JpZ2luYWws IGNvbnN0IEJPWCAqbmV3KQogICogVGhlIEdpU1QgQ29uc2lzdGVudCBtZXRo b2QgZm9yIGJveGVzCiAgKgogICogU2hvdWxkIHJldHVybiBmYWxzZSBpZiBm b3IgYWxsIGRhdGEgaXRlbXMgeCBiZWxvdyBlbnRyeSwKLSAqIHRoZSBwcmVk aWNhdGUgeCBvcCBxdWVyeSBtdXN0IGJlIEZBTFNFLCB3aGVyZSBvcCBpcyB0 aGUgb3BlcgorICogdGhlIHByZWRpY2F0ZSB4IG9wIHF1ZXJ5IG11c3QgYmUg ZmFsc2UsIHdoZXJlIG9wIGlzIHRoZSBvcGVyCiAgKiBjb3JyZXNwb25kaW5n IHRvIHN0cmF0ZWd5IGluIHRoZSBwZ19hbW9wIHRhYmxlLgogICovCiBEYXR1 bQpAQCAtMTIyLDcgKzEyMiw3IEBAIGdpc3RfYm94X2NvbnNpc3RlbnQoUEdf RlVOQ1RJT05fQVJHUykKIAkqcmVjaGVjayA9IGZhbHNlOwogCiAJaWYgKERh dHVtR2V0Qm94UChlbnRyeS0+a2V5KSA9PSBOVUxMIHx8IHF1ZXJ5ID09IE5V TEwpCi0JCVBHX1JFVFVSTl9CT09MKEZBTFNFKTsKKwkJUEdfUkVUVVJOX0JP T0woZmFsc2UpOwogCiAJLyoKIAkgKiBpZiBlbnRyeSBpcyBub3QgbGVhZiwg dXNlIHJ0cmVlX2ludGVybmFsX2NvbnNpc3RlbnQsIGVsc2UgdXNlCkBAIC0x MDg0LDcgKzEwODQsNyBAQCBnaXN0X3BvbHlfY29tcHJlc3MoUEdfRlVOQ1RJ T05fQVJHUykKIAkJcmV0dmFsID0gKEdJU1RFTlRSWSAqKSBwYWxsb2Moc2l6 ZW9mKEdJU1RFTlRSWSkpOwogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBv aW50ZXJHZXREYXR1bShyKSwKIAkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+ cGFnZSwKLQkJCQkJICBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAg ZW50cnktPm9mZnNldCwgZmFsc2UpOwogCX0KIAllbHNlCiAJCXJldHZhbCA9 IGVudHJ5OwpAQCAtMTEwOSw3ICsxMTA5LDcgQEAgZ2lzdF9wb2x5X2NvbnNp c3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkqcmVjaGVjayA9IHRydWU7CiAK IAlpZiAoRGF0dW1HZXRCb3hQKGVudHJ5LT5rZXkpID09IE5VTEwgfHwgcXVl cnkgPT0gTlVMTCkKLQkJUEdfUkVUVVJOX0JPT0woRkFMU0UpOworCQlQR19S RVRVUk5fQk9PTChmYWxzZSk7CiAKIAkvKgogCSAqIFNpbmNlIHRoZSBvcGVy YXRvcnMgcmVxdWlyZSByZWNoZWNrIGFueXdheSwgd2UgY2FuIGp1c3QgdXNl CkBAIC0xMTUyLDcgKzExNTIsNyBAQCBnaXN0X2NpcmNsZV9jb21wcmVzcyhQ R19GVU5DVElPTl9BUkdTKQogCQlyZXR2YWwgPSAoR0lTVEVOVFJZICopIHBh bGxvYyhzaXplb2YoR0lTVEVOVFJZKSk7CiAJCWdpc3RlbnRyeWluaXQoKnJl dHZhbCwgUG9pbnRlckdldERhdHVtKHIpLAogCQkJCQkgIGVudHJ5LT5yZWws IGVudHJ5LT5wYWdlLAotCQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZBTFNFKTsK KwkJCQkJICBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAJfQogCWVsc2UKIAkJ cmV0dmFsID0gZW50cnk7CkBAIC0xMTc4LDcgKzExNzgsNyBAQCBnaXN0X2Np cmNsZV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiAJKnJlY2hlY2sg PSB0cnVlOwogCiAJaWYgKERhdHVtR2V0Qm94UChlbnRyeS0+a2V5KSA9PSBO VUxMIHx8IHF1ZXJ5ID09IE5VTEwpCi0JCVBHX1JFVFVSTl9CT09MKEZBTFNF KTsKKwkJUEdfUkVUVVJOX0JPT0woZmFsc2UpOwogCiAJLyoKIAkgKiBTaW5j ZSB0aGUgb3BlcmF0b3JzIHJlcXVpcmUgcmVjaGVjayBhbnl3YXksIHdlIGNh biBqdXN0IHVzZQpAQCAtMTIxNCw3ICsxMjE0LDcgQEAgZ2lzdF9wb2ludF9j b21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQlib3gtPmhpZ2ggPSBib3gt PmxvdyA9ICpwb2ludDsKIAogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIEJv eFBHZXREYXR1bShib3gpLAotCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5w YWdlLCBlbnRyeS0+b2Zmc2V0LCBGQUxTRSk7CisJCQkJCSAgZW50cnktPnJl bCwgZW50cnktPnBhZ2UsIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAogCQlQ R19SRVRVUk5fUE9JTlRFUihyZXR2YWwpOwogCX0KQEAgLTEyNDMsNyArMTI0 Myw3IEBAIGdpc3RfcG9pbnRfZmV0Y2goUEdfRlVOQ1RJT05fQVJHUykKIAly LT55ID0gaW4tPmhpZ2gueTsKIAlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBv aW50ZXJHZXREYXR1bShyKSwKIAkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5w YWdlLAotCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJCSAgZW50 cnktPm9mZnNldCwgZmFsc2UpOwogCiAJUEdfUkVUVVJOX1BPSU5URVIocmV0 dmFsKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0 L2dpc3RzcGxpdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNw bGl0LmMKaW5kZXggNjE3ZjQyYzMxNy4uOWVmYjE2ZGQyNCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHNwbGl0LmMKQEAgLTEyNSw3 ICsxMjUsNyBAQCBmaW5kRG9udENhcmVzKFJlbGF0aW9uIHIsIEdJU1RTVEFU RSAqZ2lzdHN0YXRlLCBHSVNURU5UUlkgKnZhbHZlYywKIAkgKiBjaGVjayBm b3IgbnVsbHMKIAkgKi8KIAlnaXN0ZW50cnlpbml0KGVudHJ5LCBzcGwtPnNw bGl0VmVjdG9yLnNwbF9yZGF0dW0sIHIsIE5VTEwsCi0JCQkJICAoT2Zmc2V0 TnVtYmVyKSAwLCBGQUxTRSk7CisJCQkJICAoT2Zmc2V0TnVtYmVyKSAwLCBm YWxzZSk7CiAJZm9yIChpID0gMDsgaSA8IHNwbC0+c3BsaXRWZWN0b3Iuc3Bs X25sZWZ0OyBpKyspCiAJewogCQlpbnQJCQlqID0gc3BsLT5zcGxpdFZlY3Rv ci5zcGxfbGVmdFtpXTsKQEAgLTE0MSw3ICsxNDEsNyBAQCBmaW5kRG9udENh cmVzKFJlbGF0aW9uIHIsIEdJU1RTVEFURSAqZ2lzdHN0YXRlLCBHSVNURU5U UlkgKnZhbHZlYywKIAogCS8qIEFuZCBjb252ZXJzZWx5IGZvciB0aGUgcmln aHQtc2lkZSB0dXBsZXMgKi8KIAlnaXN0ZW50cnlpbml0KGVudHJ5LCBzcGwt PnNwbGl0VmVjdG9yLnNwbF9sZGF0dW0sIHIsIE5VTEwsCi0JCQkJICAoT2Zm c2V0TnVtYmVyKSAwLCBGQUxTRSk7CisJCQkJICAoT2Zmc2V0TnVtYmVyKSAw LCBmYWxzZSk7CiAJZm9yIChpID0gMDsgaSA8IHNwbC0+c3BsaXRWZWN0b3Iu c3BsX25yaWdodDsgaSsrKQogCXsKIAkJaW50CQkJaiA9IHNwbC0+c3BsaXRW ZWN0b3Iuc3BsX3JpZ2h0W2ldOwpAQCAtMTc3LDcgKzE3Nyw3IEBAIHJlbW92 ZURvbnRDYXJlcyhPZmZzZXROdW1iZXIgKmEsIGludCAqbGVuLCBjb25zdCBi b29sICpkb250Y2FyZSkKIAl7CiAJCU9mZnNldE51bWJlciBhaSA9IGFbaV07 CiAKLQkJaWYgKGRvbnRjYXJlW2FpXSA9PSBGQUxTRSkKKwkJaWYgKGRvbnRj YXJlW2FpXSA9PSBmYWxzZSkKIAkJewogCQkJLyogcmUtZW1pdCBpdGVtIGlu dG8gYVtdICovCiAJCQkqY3Vyd3BvcyA9IGFpOwpAQCAtMjEzLDEwICsyMTMs MTAgQEAgcGxhY2VPbmUoUmVsYXRpb24gciwgR0lTVFNUQVRFICpnaXN0c3Rh dGUsIEdpc3RTcGxpdFZlY3RvciAqdiwKIAkJCQkJcnBlbmFsdHk7CiAJCUdJ U1RFTlRSWQllbnRyeTsKIAotCQlnaXN0ZW50cnlpbml0KGVudHJ5LCB2LT5z cGxfbGF0dHJbYXR0bm9dLCByLCBOVUxMLCAwLCBGQUxTRSk7CisJCWdpc3Rl bnRyeWluaXQoZW50cnksIHYtPnNwbF9sYXR0clthdHRub10sIHIsIE5VTEws IDAsIGZhbHNlKTsKIAkJbHBlbmFsdHkgPSBnaXN0cGVuYWx0eShnaXN0c3Rh dGUsIGF0dG5vLCAmZW50cnksIHYtPnNwbF9saXNudWxsW2F0dG5vXSwKIAkJ CQkJCQkgICBpZGVudHJ5ICsgYXR0bm8sIGlzbnVsbFthdHRub10pOwotCQln aXN0ZW50cnlpbml0KGVudHJ5LCB2LT5zcGxfcmF0dHJbYXR0bm9dLCByLCBO VUxMLCAwLCBGQUxTRSk7CisJCWdpc3RlbnRyeWluaXQoZW50cnksIHYtPnNw bF9yYXR0clthdHRub10sIHIsIE5VTEwsIDAsIGZhbHNlKTsKIAkJcnBlbmFs dHkgPSBnaXN0cGVuYWx0eShnaXN0c3RhdGUsIGF0dG5vLCAmZW50cnksIHYt PnNwbF9yaXNudWxsW2F0dG5vXSwKIAkJCQkJCQkgICBpZGVudHJ5ICsgYXR0 bm8sIGlzbnVsbFthdHRub10pOwogCkBAIC0yNjUsMTAgKzI2NSwxMCBAQCBz dXBwb3J0U2Vjb25kYXJ5U3BsaXQoUmVsYXRpb24gciwgR0lTVFNUQVRFICpn aXN0c3RhdGUsIGludCBhdHRubywKIAkJCQllbnRyeVNMLAogCQkJCWVudHJ5 U1I7CiAKLQlnaXN0ZW50cnlpbml0KGVudHJ5TCwgb2xkTCwgciwgTlVMTCwg MCwgRkFMU0UpOwotCWdpc3RlbnRyeWluaXQoZW50cnlSLCBvbGRSLCByLCBO VUxMLCAwLCBGQUxTRSk7Ci0JZ2lzdGVudHJ5aW5pdChlbnRyeVNMLCBzdi0+ c3BsX2xkYXR1bSwgciwgTlVMTCwgMCwgRkFMU0UpOwotCWdpc3RlbnRyeWlu aXQoZW50cnlTUiwgc3YtPnNwbF9yZGF0dW0sIHIsIE5VTEwsIDAsIEZBTFNF KTsKKwlnaXN0ZW50cnlpbml0KGVudHJ5TCwgb2xkTCwgciwgTlVMTCwgMCwg ZmFsc2UpOworCWdpc3RlbnRyeWluaXQoZW50cnlSLCBvbGRSLCByLCBOVUxM LCAwLCBmYWxzZSk7CisJZ2lzdGVudHJ5aW5pdChlbnRyeVNMLCBzdi0+c3Bs X2xkYXR1bSwgciwgTlVMTCwgMCwgZmFsc2UpOworCWdpc3RlbnRyeWluaXQo ZW50cnlTUiwgc3YtPnNwbF9yZGF0dW0sIHIsIE5VTEwsIDAsIGZhbHNlKTsK IAogCWlmIChzdi0+c3BsX2xkYXR1bV9leGlzdHMgJiYgc3YtPnNwbF9yZGF0 dW1fZXhpc3RzKQogCXsKQEAgLTMyMCw4ICszMjAsOCBAQCBzdXBwb3J0U2Vj b25kYXJ5U3BsaXQoUmVsYXRpb24gciwgR0lTVFNUQVRFICpnaXN0c3RhdGUs IGludCBhdHRubywKIAkJU1dBUFZBUihzdi0+c3BsX2xlZnQsIHN2LT5zcGxf cmlnaHQsIG9mZik7CiAJCVNXQVBWQVIoc3YtPnNwbF9ubGVmdCwgc3YtPnNw bF9ucmlnaHQsIG5vZmYpOwogCQlTV0FQVkFSKHN2LT5zcGxfbGRhdHVtLCBz di0+c3BsX3JkYXR1bSwgZGF0dW0pOwotCQlnaXN0ZW50cnlpbml0KGVudHJ5 U0wsIHN2LT5zcGxfbGRhdHVtLCByLCBOVUxMLCAwLCBGQUxTRSk7Ci0JCWdp c3RlbnRyeWluaXQoZW50cnlTUiwgc3YtPnNwbF9yZGF0dW0sIHIsIE5VTEws IDAsIEZBTFNFKTsKKwkJZ2lzdGVudHJ5aW5pdChlbnRyeVNMLCBzdi0+c3Bs X2xkYXR1bSwgciwgTlVMTCwgMCwgZmFsc2UpOworCQlnaXN0ZW50cnlpbml0 KGVudHJ5U1IsIHN2LT5zcGxfcmRhdHVtLCByLCBOVUxMLCAwLCBmYWxzZSk7 CiAJfQogCiAJaWYgKHN2LT5zcGxfbGRhdHVtX2V4aXN0cykKQEAgLTM5Niwy MCArMzk2LDIwIEBAIGdlbmVyaWNQaWNrU3BsaXQoR0lTVFNUQVRFICpnaXN0 c3RhdGUsIEdpc3RFbnRyeVZlY3RvciAqZW50cnl2ZWMsIEdJU1RfU1BMSVRW RUMKICAqIENhbGxzIHVzZXIgcGlja3NwbGl0IG1ldGhvZCBmb3IgYXR0bm8g Y29sdW1uIHRvIHNwbGl0IHR1cGxlcyBpbnRvCiAgKiB0d28gdmVjdG9ycy4K ICAqCi0gKiBSZXR1cm5zIEZBTFNFIGlmIHNwbGl0IGlzIGNvbXBsZXRlICh0 aGVyZSBhcmUgbm8gbW9yZSBpbmRleCBjb2x1bW5zLCBvcgorICogUmV0dXJu cyBmYWxzZSBpZiBzcGxpdCBpcyBjb21wbGV0ZSAodGhlcmUgYXJlIG5vIG1v cmUgaW5kZXggY29sdW1ucywgb3IKICAqIHRoZXJlIGlzIG5vIG5lZWQgdG8g Y29uc2lkZXIgdGhlbSBiZWNhdXNlIHNwbGl0IGlzIG9wdGltYWwgYWxyZWFk eSkuCiAgKgotICogUmV0dXJucyBUUlVFIGFuZCB2LT5zcGxfZG9udGNhcmUg PSBOVUxMIGlmIHRoZSBwaWNrc3BsaXQgcmVzdWx0IGlzCisgKiBSZXR1cm5z IHRydWUgYW5kIHYtPnNwbF9kb250Y2FyZSA9IE5VTEwgaWYgdGhlIHBpY2tz cGxpdCByZXN1bHQgaXMKICAqIGRlZ2VuZXJhdGUgKGFsbCB0dXBsZXMgc2Vl bSB0byBiZSBkb24ndC1jYXJlcyksIHNvIHdlIHNob3VsZCBqdXN0CiAgKiBk aXNyZWdhcmQgdGhpcyBjb2x1bW4gYW5kIHNwbGl0IG9uIHRoZSBuZXh0IGNv bHVtbihzKSBpbnN0ZWFkLgogICoKLSAqIFJldHVybnMgVFJVRSBhbmQgdi0+ c3BsX2RvbnRjYXJlICE9IE5VTEwgaWYgdGhlcmUgYXJlIGRvbid0LWNhcmUg dHVwbGVzCisgKiBSZXR1cm5zIHRydWUgYW5kIHYtPnNwbF9kb250Y2FyZSAh PSBOVUxMIGlmIHRoZXJlIGFyZSBkb24ndC1jYXJlIHR1cGxlcwogICogdGhh dCBjb3VsZCBiZSByZWxvY2F0ZWQgYmFzZWQgb24gdGhlIG5leHQgY29sdW1u KHMpLiAgVGhlIGRvbid0LWNhcmUKICAqIHR1cGxlcyBoYXZlIGJlZW4gcmVt b3ZlZCBmcm9tIHRoZSBzcGxpdCBhbmQgbXVzdCBiZSByZWluc2VydGVkIGJ5 IGNhbGxlci4KICAqIFRoZXJlIGlzIGF0IGxlYXN0IG9uZSBub24tZG9uJ3Qt Y2FyZSB0dXBsZSBvbiBlYWNoIHNpZGUgb2YgdGhlIHNwbGl0LAogICogYW5k IHVuaW9uIGtleXMgZm9yIGFsbCBjb2x1bW5zIGFyZSB1cGRhdGVkIHRvIGlu Y2x1ZGUganVzdCB0aG9zZSB0dXBsZXMuCiAgKgotICogQSBUUlVFIHJlc3Vs dCBpbXBsaWVzIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBtb3JlIGluZGV4IGNv bHVtbi4KKyAqIEEgdHJ1ZSByZXN1bHQgaW1wbGllcyB0aGVyZSBpcyBhdCBs ZWFzdCBvbmUgbW9yZSBpbmRleCBjb2x1bW4uCiAgKi8KIHN0YXRpYyBib29s CiBnaXN0VXNlclBpY2tzcGxpdChSZWxhdGlvbiByLCBHaXN0RW50cnlWZWN0 b3IgKmVudHJ5dmVjLCBpbnQgYXR0bm8sIEdpc3RTcGxpdFZlY3RvciAqdiwK QEAgLTYxMCw3ICs2MTAsNyBAQCBnaXN0U3BsaXRIYWxmKEdJU1RfU1BMSVRW RUMgKnYsIGludCBsZW4pCiAgKiBhdHRubzogY29sdW1uIHdlIGFyZSB3b3Jr aW5nIG9uICh6ZXJvLWJhc2VkIGluZGV4KQogICoKICAqIE91dHNpZGUgY2Fs bGVyIG11c3QgaW5pdGlhbGl6ZSB2LT5zcGxfbGlzbnVsbCBhbmQgdi0+c3Bs X3Jpc251bGwgYXJyYXlzCi0gKiB0byBhbGwtVFJVRS4gIE9uIHJldHVybiwg c3BsX2xlZnQvc3BsX25sZWZ0IGNvbnRhaW4gaW5kZXhlcyBvZiB0dXBsZXMK KyAqIHRvIGFsbC10cnVlLiAgT24gcmV0dXJuLCBzcGxfbGVmdC9zcGxfbmxl ZnQgY29udGFpbiBpbmRleGVzIG9mIHR1cGxlcwogICogdG8gZ28gbGVmdCwg c3BsX3JpZ2h0L3NwbF9ucmlnaHQgY29udGFpbiBpbmRleGVzIG9mIHR1cGxl cyB0byBnbyByaWdodCwKICAqIHNwbF9sYXR0ci9zcGxfbGlzbnVsbCBjb250 YWluIGxlZnQtc2lkZSB1bmlvbiBrZXkgdmFsdWVzLCBhbmQKICAqIHNwbF9y YXR0ci9zcGxfcmlzbnVsbCBjb250YWluIHJpZ2h0LXNpZGUgdW5pb24ga2V5 IHZhbHVlcy4gIE90aGVyIGZpZWxkcwpAQCAtNjQzLDcgKzY0Myw3IEBAIGdp c3RTcGxpdEJ5S2V5KFJlbGF0aW9uIHIsIFBhZ2UgcGFnZSwgSW5kZXhUdXBs ZSAqaXR1cCwgaW50IGxlbiwKIAkJCQkJCQkgICZJc051bGwpOwogCQlnaXN0 ZGVudHJ5aW5pdChnaXN0c3RhdGUsIGF0dG5vLCAmKGVudHJ5dmVjLT52ZWN0 b3JbaV0pLAogCQkJCQkgICBkYXR1bSwgciwgcGFnZSwgaSwKLQkJCQkJICAg RkFMU0UsIElzTnVsbCk7CisJCQkJCSAgIGZhbHNlLCBJc051bGwpOwogCQlp ZiAoSXNOdWxsKQogCQkJb2ZmTnVsbFR1cGxlc1tuT2ZmTnVsbFR1cGxlcysr XSA9IGk7CiAJfQpAQCAtNjU1LDcgKzY1NSw3IEBAIGdpc3RTcGxpdEJ5S2V5 KFJlbGF0aW9uIHIsIFBhZ2UgcGFnZSwgSW5kZXhUdXBsZSAqaXR1cCwgaW50 IGxlbiwKIAkJICogb3VyIGF0dGVudGlvbiB0byB0aGUgbmV4dCBjb2x1bW4u ICBJZiB0aGVyZSdzIG5vIG5leHQgY29sdW1uLCBqdXN0CiAJCSAqIHNwbGl0 IHBhZ2UgaW4gaGFsZi4KIAkJICovCi0JCXYtPnNwbF9yaXNudWxsW2F0dG5v XSA9IHYtPnNwbF9saXNudWxsW2F0dG5vXSA9IFRSVUU7CisJCXYtPnNwbF9y aXNudWxsW2F0dG5vXSA9IHYtPnNwbF9saXNudWxsW2F0dG5vXSA9IHRydWU7 CiAKIAkJaWYgKGF0dG5vICsgMSA8IGdpc3RzdGF0ZS0+dHVwZGVzYy0+bmF0 dHMpCiAJCQlnaXN0U3BsaXRCeUtleShyLCBwYWdlLCBpdHVwLCBsZW4sIGdp c3RzdGF0ZSwgdiwgYXR0bm8gKyAxKTsKQEAgLTY3Miw3ICs2NzIsNyBAQCBn aXN0U3BsaXRCeUtleShSZWxhdGlvbiByLCBQYWdlIHBhZ2UsIEluZGV4VHVw bGUgKml0dXAsIGludCBsZW4sCiAJCSAqLwogCQl2LT5zcGxpdFZlY3Rvci5z cGxfcmlnaHQgPSBvZmZOdWxsVHVwbGVzOwogCQl2LT5zcGxpdFZlY3Rvci5z cGxfbnJpZ2h0ID0gbk9mZk51bGxUdXBsZXM7Ci0JCXYtPnNwbF9yaXNudWxs W2F0dG5vXSA9IFRSVUU7CisJCXYtPnNwbF9yaXNudWxsW2F0dG5vXSA9IHRy dWU7CiAKIAkJdi0+c3BsaXRWZWN0b3Iuc3BsX2xlZnQgPSAoT2Zmc2V0TnVt YmVyICopIHBhbGxvYyhsZW4gKiBzaXplb2YoT2Zmc2V0TnVtYmVyKSk7CiAJ CXYtPnNwbGl0VmVjdG9yLnNwbF9ubGVmdCA9IDA7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwppbmRleCBiNmNjYzFhNjZhLi5j N2U5YjJiMWI2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dXRpbC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dp c3R1dGlsLmMKQEAgLTE3OSw3ICsxNzksNyBAQCBnaXN0TWFrZVVuaW9uSXRW ZWMoR0lTVFNUQVRFICpnaXN0c3RhdGUsIEluZGV4VHVwbGUgKml0dmVjLCBp bnQgbGVuLAogCQkJCQkJICAgZXZlYy0+dmVjdG9yICsgZXZlYy0+biwKIAkJ CQkJCSAgIGRhdHVtLAogCQkJCQkJICAgTlVMTCwgTlVMTCwgKE9mZnNldE51 bWJlcikgMCwKLQkJCQkJCSAgIEZBTFNFLCBJc051bGwpOworCQkJCQkJICAg ZmFsc2UsIElzTnVsbCk7CiAJCQlldmVjLT5uKys7CiAJCX0KIApAQCAtMTg3 LDcgKzE4Nyw3IEBAIGdpc3RNYWtlVW5pb25JdFZlYyhHSVNUU1RBVEUgKmdp c3RzdGF0ZSwgSW5kZXhUdXBsZSAqaXR2ZWMsIGludCBsZW4sCiAJCWlmIChl dmVjLT5uID09IDApCiAJCXsKIAkJCWF0dHJbaV0gPSAoRGF0dW0pIDA7Ci0J CQlpc251bGxbaV0gPSBUUlVFOworCQkJaXNudWxsW2ldID0gdHJ1ZTsKIAkJ fQogCQllbHNlCiAJCXsKQEAgLTIwNCw3ICsyMDQsNyBAQCBnaXN0TWFrZVVu aW9uSXRWZWMoR0lTVFNUQVRFICpnaXN0c3RhdGUsIEluZGV4VHVwbGUgKml0 dmVjLCBpbnQgbGVuLAogCQkJCQkJCQkJCVBvaW50ZXJHZXREYXR1bShldmVj KSwKIAkJCQkJCQkJCQlQb2ludGVyR2V0RGF0dW0oJmF0dHJzaXplKSk7CiAK LQkJCWlzbnVsbFtpXSA9IEZBTFNFOworCQkJaXNudWxsW2ldID0gZmFsc2U7 CiAJCX0KIAl9CiB9CkBAIC0yNDYsMTcgKzI0NiwxNyBAQCBnaXN0TWFrZVVu aW9uS2V5KEdJU1RTVEFURSAqZ2lzdHN0YXRlLCBpbnQgYXR0bm8sCiAKIAlp ZiAoaXNudWxsMSAmJiBpc251bGwyKQogCXsKLQkJKmRzdGlzbnVsbCA9IFRS VUU7CisJCSpkc3Rpc251bGwgPSB0cnVlOwogCQkqZHN0ID0gKERhdHVtKSAw OwogCX0KIAllbHNlCiAJewotCQlpZiAoaXNudWxsMSA9PSBGQUxTRSAmJiBp c251bGwyID09IEZBTFNFKQorCQlpZiAoaXNudWxsMSA9PSBmYWxzZSAmJiBp c251bGwyID09IGZhbHNlKQogCQl7CiAJCQlldmVjLT52ZWN0b3JbMF0gPSAq ZW50cnkxOwogCQkJZXZlYy0+dmVjdG9yWzFdID0gKmVudHJ5MjsKIAkJfQot CQllbHNlIGlmIChpc251bGwxID09IEZBTFNFKQorCQllbHNlIGlmIChpc251 bGwxID09IGZhbHNlKQogCQl7CiAJCQlldmVjLT52ZWN0b3JbMF0gPSAqZW50 cnkxOwogCQkJZXZlYy0+dmVjdG9yWzFdID0gKmVudHJ5MTsKQEAgLTI2Nyw3 ICsyNjcsNyBAQCBnaXN0TWFrZVVuaW9uS2V5KEdJU1RTVEFURSAqZ2lzdHN0 YXRlLCBpbnQgYXR0bm8sCiAJCQlldmVjLT52ZWN0b3JbMV0gPSAqZW50cnky OwogCQl9CiAKLQkJKmRzdGlzbnVsbCA9IEZBTFNFOworCQkqZHN0aXNudWxs ID0gZmFsc2U7CiAJCSpkc3QgPSBGdW5jdGlvbkNhbGwyQ29sbCgmZ2lzdHN0 YXRlLT51bmlvbkZuW2F0dG5vXSwKIAkJCQkJCQkJIGdpc3RzdGF0ZS0+c3Vw cG9ydENvbGxhdGlvblthdHRub10sCiAJCQkJCQkJCSBQb2ludGVyR2V0RGF0 dW0oZXZlYyksCkBAIC0zMDMsNyArMzAzLDcgQEAgZ2lzdERlQ29tcHJlc3NB dHQoR0lTVFNUQVRFICpnaXN0c3RhdGUsIFJlbGF0aW9uIHIsIEluZGV4VHVw bGUgdHVwbGUsIFBhZ2UgcCwKIAkJZGF0dW0gPSBpbmRleF9nZXRhdHRyKHR1 cGxlLCBpICsgMSwgZ2lzdHN0YXRlLT50dXBkZXNjLCAmaXNudWxsW2ldKTsK IAkJZ2lzdGRlbnRyeWluaXQoZ2lzdHN0YXRlLCBpLCAmYXR0ZGF0YVtpXSwK IAkJCQkJICAgZGF0dW0sIHIsIHAsIG8sCi0JCQkJCSAgIEZBTFNFLCBpc251 bGxbaV0pOworCQkJCQkgICBmYWxzZSwgaXNudWxsW2ldKTsKIAl9CiB9CiAK QEAgLTMxMyw3ICszMTMsNyBAQCBnaXN0RGVDb21wcmVzc0F0dChHSVNUU1RB VEUgKmdpc3RzdGF0ZSwgUmVsYXRpb24gciwgSW5kZXhUdXBsZSB0dXBsZSwg UGFnZSBwLAogSW5kZXhUdXBsZQogZ2lzdGdldGFkanVzdGVkKFJlbGF0aW9u IHIsIEluZGV4VHVwbGUgb2xkdHVwLCBJbmRleFR1cGxlIGFkZHR1cCwgR0lT VFNUQVRFICpnaXN0c3RhdGUpCiB7Ci0JYm9vbAkJbmVlZG5ldyA9IEZBTFNF OworCWJvb2wJCW5lZWRuZXcgPSBmYWxzZTsKIAlHSVNURU5UUlkJb2xkZW50 cmllc1tJTkRFWF9NQVhfS0VZU10sCiAJCQkJYWRkZW50cmllc1tJTkRFWF9N QVhfS0VZU107CiAJYm9vbAkJb2xkaXNudWxsW0lOREVYX01BWF9LRVlTXSwK QEAgLTQ1MSw3ICs0NTEsNyBAQCBnaXN0Y2hvb3NlKFJlbGF0aW9uIHIsIFBh Z2UgcCwgSW5kZXhUdXBsZSBpdCwJLyogaXQgaGFzIGNvbXByZXNzZWQgZW50 cnkgKi8KIAkJCS8qIENvbXB1dGUgcGVuYWx0eSBmb3IgdGhpcyBjb2x1bW4u ICovCiAJCQlkYXR1bSA9IGluZGV4X2dldGF0dHIoaXR1cCwgaiArIDEsIGdp c3RzdGF0ZS0+dHVwZGVzYywgJklzTnVsbCk7CiAJCQlnaXN0ZGVudHJ5aW5p dChnaXN0c3RhdGUsIGosICZlbnRyeSwgZGF0dW0sIHIsIHAsIGksCi0JCQkJ CQkgICBGQUxTRSwgSXNOdWxsKTsKKwkJCQkJCSAgIGZhbHNlLCBJc051bGwp OwogCQkJdXNpemUgPSBnaXN0cGVuYWx0eShnaXN0c3RhdGUsIGosICZlbnRy eSwgSXNOdWxsLAogCQkJCQkJCQkmaWRlbnRyeVtqXSwgaXNudWxsW2pdKTsK IAkJCWlmICh1c2l6ZSA+IDApCkBAIC02NzEsOCArNjcxLDggQEAgZ2lzdHBl bmFsdHkoR0lTVFNUQVRFICpnaXN0c3RhdGUsIGludCBhdHRubywKIHsKIAlm bG9hdAkJcGVuYWx0eSA9IDAuMDsKIAotCWlmIChnaXN0c3RhdGUtPnBlbmFs dHlGblthdHRub10uZm5fc3RyaWN0ID09IEZBTFNFIHx8Ci0JCShpc051bGxP cmlnID09IEZBTFNFICYmIGlzTnVsbEFkZCA9PSBGQUxTRSkpCisJaWYgKGdp c3RzdGF0ZS0+cGVuYWx0eUZuW2F0dG5vXS5mbl9zdHJpY3QgPT0gZmFsc2Ug fHwKKwkJKGlzTnVsbE9yaWcgPT0gZmFsc2UgJiYgaXNOdWxsQWRkID09IGZh bHNlKSkKIAl7CiAJCUZ1bmN0aW9uQ2FsbDNDb2xsKCZnaXN0c3RhdGUtPnBl bmFsdHlGblthdHRub10sCiAJCQkJCQkgIGdpc3RzdGF0ZS0+c3VwcG9ydENv bGxhdGlvblthdHRub10sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCmluZGV4IDUxM2E5ZWM0ODUuLjA2YWU2OWEwMDMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMjU0LDcgKzIy NTQsNyBAQCBNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqc2NoZW1hLCBMaXN0ICpz dXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiAgKgogICogY29uc3RyYWlu dHMgaXMgYSBsaXN0IG9mIENvb2tlZENvbnN0cmFpbnQgc3RydWN0cyBmb3Ig cHJldmlvdXMgY29uc3RyYWludHMuCiAgKgotICogUmV0dXJucyBUUlVFIGlm IG1lcmdlZCAoY29uc3RyYWludCBpcyBhIGR1cGxpY2F0ZSksIG9yIEZBTFNF IGlmIGl0J3MKKyAqIFJldHVybnMgdHJ1ZSBpZiBtZXJnZWQgKGNvbnN0cmFp bnQgaXMgYSBkdXBsaWNhdGUpLCBvciBmYWxzZSBpZiBpdCdzCiAgKiBnb3Qg YSBzby1mYXItdW5pcXVlIG5hbWUsIG9yIHRocm93cyBlcnJvciBpZiBjb25m bGljdC4KICAqLwogc3RhdGljIGJvb2wKQEAgLTU3MDEsNyArNTcwMSw3IEBA IEFURXhlY0Ryb3BOb3ROdWxsKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq Y29sTmFtZSwgTE9DS01PREUgbG9ja21vZGUpCiAJICovCiAJaWYgKCgoRm9y bV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVCh0dXBsZSkpLT5hdHRub3RudWxs KQogCXsKLQkJKChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHR1cGxl KSktPmF0dG5vdG51bGwgPSBGQUxTRTsKKwkJKChGb3JtX3BnX2F0dHJpYnV0 ZSkgR0VUU1RSVUNUKHR1cGxlKSktPmF0dG5vdG51bGwgPSBmYWxzZTsKIAog CQlDYXRhbG9nVHVwbGVVcGRhdGUoYXR0cl9yZWwsICZ0dXBsZS0+dF9zZWxm LCB0dXBsZSk7CiAKQEAgLTU3ODIsNyArNTc4Miw3IEBAIEFURXhlY1NldE5v dE51bGwoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ ICovCiAJaWYgKCEoKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QodHVw bGUpKS0+YXR0bm90bnVsbCkKIAl7Ci0JCSgoRm9ybV9wZ19hdHRyaWJ1dGUp IEdFVFNUUlVDVCh0dXBsZSkpLT5hdHRub3RudWxsID0gVFJVRTsKKwkJKChG b3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNUKHR1cGxlKSktPmF0dG5vdG51 bGwgPSB0cnVlOwogCiAJCUNhdGFsb2dUdXBsZVVwZGF0ZShhdHRyX3JlbCwg JnR1cGxlLT50X3NlbGYsIHR1cGxlKTsKIApAQCAtODIwMiwxNiArODIwMiwx NiBAQCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIgKmNvbm5h bWUsCiAJdHJpZy50Z29pZCA9IEludmFsaWRPaWQ7CiAJdHJpZy50Z25hbWUg PSBjb25uYW1lOwogCXRyaWcudGdlbmFibGVkID0gVFJJR0dFUl9GSVJFU19P Tl9PUklHSU47Ci0JdHJpZy50Z2lzaW50ZXJuYWwgPSBUUlVFOworCXRyaWcu dGdpc2ludGVybmFsID0gdHJ1ZTsKIAl0cmlnLnRnY29uc3RycmVsaWQgPSBS ZWxhdGlvbkdldFJlbGlkKHBrcmVsKTsKIAl0cmlnLnRnY29uc3RyaW5kaWQg PSBwa2luZE9pZDsKIAl0cmlnLnRnY29uc3RyYWludCA9IGNvbnN0cmFpbnRP aWQ7Ci0JdHJpZy50Z2RlZmVycmFibGUgPSBGQUxTRTsKLQl0cmlnLnRnaW5p dGRlZmVycmVkID0gRkFMU0U7CisJdHJpZy50Z2RlZmVycmFibGUgPSBmYWxz ZTsKKwl0cmlnLnRnaW5pdGRlZmVycmVkID0gZmFsc2U7CiAJLyogd2UgbmVl ZG4ndCBmaWxsIGluIHJlbWFpbmluZyBmaWVsZHMgKi8KIAogCS8qCi0JICog U2VlIGlmIHdlIGNhbiBkbyBpdCB3aXRoIGEgc2luZ2xlIExFRlQgSk9JTiBx dWVyeS4gIEEgRkFMU0UgcmVzdWx0CisJICogU2VlIGlmIHdlIGNhbiBkbyBp dCB3aXRoIGEgc2luZ2xlIExFRlQgSk9JTiBxdWVyeS4gIEEgZmFsc2UgcmVz dWx0CiAJICogaW5kaWNhdGVzIHdlIG11c3QgcHJvY2VlZCB3aXRoIHRoZSBm aXJlLXRoZS10cmlnZ2VyIG1ldGhvZC4KIAkgKi8KIAlpZiAoUklfSW5pdGlh bF9DaGVjaygmdHJpZywgcmVsLCBwa3JlbCkpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9ub2RlQWdnLmMKaW5kZXggNmEyNjc3M2E0OS4uN2UyMWI5MzUwMyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBZ2cuYwpAQCAtMjU5Nyw3 ICsyNTk3LDcgQEAgYWdnX3JldHJpZXZlX2hhc2hfdGFibGUoQWdnU3RhdGUg KmFnZ3N0YXRlKQogCQkJZWxzZQogCQkJewogCQkJCS8qIE5vIG1vcmUgaGFz aHRhYmxlcywgc28gZG9uZSAqLwotCQkJCWFnZ3N0YXRlLT5hZ2dfZG9uZSA9 IFRSVUU7CisJCQkJYWdnc3RhdGUtPmFnZ19kb25lID0gdHJ1ZTsKIAkJCQly ZXR1cm4gTlVMTDsKIAkJCX0KIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZUFwcGVuZC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUFwcGVuZC5jCmluZGV4IGJlZDliYjg3MTMuLjFkMmZiMzVkNTUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVBcHBlbmQu YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQXBwZW5kLmMKQEAg LTg4LDEwICs4OCwxMCBAQCBleGVjX2FwcGVuZF9pbml0aWFsaXplX25leHQo QXBwZW5kU3RhdGUgKmFwcGVuZHN0YXRlKQogCQkvKgogCQkgKiBpZiBzY2Fu bmluZyBpbiByZXZlcnNlLCB3ZSBzdGFydCBhdCB0aGUgbGFzdCBzY2FuIGlu IHRoZSBsaXN0IGFuZAogCQkgKiB0aGVuIHByb2NlZWQgYmFjayB0byB0aGUg Zmlyc3QuLiBpbiBhbnkgY2FzZSB3ZSBpbmZvcm0gRXhlY0FwcGVuZAotCQkg KiB0aGF0IHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGJ5IHJldHVy bmluZyBGQUxTRQorCQkgKiB0aGF0IHdlIGFyZSBhdCB0aGUgZW5kIG9mIHRo ZSBsaW5lIGJ5IHJldHVybmluZyBmYWxzZQogCQkgKi8KIAkJYXBwZW5kc3Rh dGUtPmFzX3doaWNocGxhbiA9IDA7Ci0JCXJldHVybiBGQUxTRTsKKwkJcmV0 dXJuIGZhbHNlOwogCX0KIAllbHNlIGlmICh3aGljaHBsYW4gPj0gYXBwZW5k c3RhdGUtPmFzX25wbGFucykKIAl7CkBAIC05OSwxMSArOTksMTEgQEAgZXhl Y19hcHBlbmRfaW5pdGlhbGl6ZV9uZXh0KEFwcGVuZFN0YXRlICphcHBlbmRz dGF0ZSkKIAkJICogYXMgYWJvdmUsIGVuZCB0aGUgc2NhbiBpZiB3ZSBnbyBi ZXlvbmQgdGhlIGxhc3Qgc2NhbiBpbiBvdXIgbGlzdC4uCiAJCSAqLwogCQlh cHBlbmRzdGF0ZS0+YXNfd2hpY2hwbGFuID0gYXBwZW5kc3RhdGUtPmFzX25w bGFucyAtIDE7Ci0JCXJldHVybiBGQUxTRTsKKwkJcmV0dXJuIGZhbHNlOwog CX0KIAllbHNlCiAJewotCQlyZXR1cm4gVFJVRTsKKwkJcmV0dXJuIHRydWU7 CiAJfQogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlR3JvdXAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVHcm91cC5j CmluZGV4IGFiNGFlMjRhNmIuLjZiNjg4MzVjYTEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVHcm91cC5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVHcm91cC5jCkBAIC03Myw3ICs3Myw3IEBAIEV4 ZWNHcm91cChQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJaWYgKFR1cElzTnVsbChv dXRlcnNsb3QpKQogCQl7CiAJCQkvKiBlbXB0eSBpbnB1dCwgc28gcmV0dXJu IG5vdGhpbmcgKi8KLQkJCW5vZGUtPmdycF9kb25lID0gVFJVRTsKKwkJCW5v ZGUtPmdycF9kb25lID0gdHJ1ZTsKIAkJCXJldHVybiBOVUxMOwogCQl9CiAJ CS8qIENvcHkgdHVwbGUgaW50byBmaXJzdHR1cGxlc2xvdCAqLwpAQCAtMTE2 LDcgKzExNiw3IEBAIEV4ZWNHcm91cChQbGFuU3RhdGUgKnBzdGF0ZSkKIAkJ CWlmIChUdXBJc051bGwob3V0ZXJzbG90KSkKIAkJCXsKIAkJCQkvKiBubyBt b3JlIGdyb3Vwcywgc28gd2UncmUgZG9uZSAqLwotCQkJCW5vZGUtPmdycF9k b25lID0gVFJVRTsKKwkJCQlub2RlLT5ncnBfZG9uZSA9IHRydWU7CiAJCQkJ cmV0dXJuIE5VTEw7CiAJCQl9CiAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBFeGVj SW5pdEdyb3VwKEdyb3VwICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVm bGFncykKIAlncnBzdGF0ZS0+c3MucHMucGxhbiA9IChQbGFuICopIG5vZGU7 CiAJZ3Jwc3RhdGUtPnNzLnBzLnN0YXRlID0gZXN0YXRlOwogCWdycHN0YXRl LT5zcy5wcy5FeGVjUHJvY05vZGUgPSBFeGVjR3JvdXA7Ci0JZ3Jwc3RhdGUt PmdycF9kb25lID0gRkFMU0U7CisJZ3Jwc3RhdGUtPmdycF9kb25lID0gZmFs c2U7CiAKIAkvKgogCSAqIGNyZWF0ZSBleHByZXNzaW9uIGNvbnRleHQKQEAg LTI0Niw3ICsyNDYsNyBAQCBFeGVjUmVTY2FuR3JvdXAoR3JvdXBTdGF0ZSAq bm9kZSkKIHsKIAlQbGFuU3RhdGUgICpvdXRlclBsYW4gPSBvdXRlclBsYW5T dGF0ZShub2RlKTsKIAotCW5vZGUtPmdycF9kb25lID0gRkFMU0U7CisJbm9k ZS0+Z3JwX2RvbmUgPSBmYWxzZTsKIAkvKiBtdXN0IGNsZWFyIGZpcnN0IHR1 cGxlICovCiAJRXhlY0NsZWFyVHVwbGUobm9kZS0+c3Muc3NfU2NhblR1cGxl U2xvdCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL3ByZWR0ZXN0LmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9w cmVkdGVzdC5jCmluZGV4IDUzNmQyNGI2OTguLjRmNDRlMDQxM2MgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3ByZWR0ZXN0LmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcHJlZHRlc3QuYwpA QCAtMTc0LDEwICsxNzQsMTAgQEAgcHJlZGljYXRlX2ltcGxpZWRfYnkoTGlz dCAqcHJlZGljYXRlX2xpc3QsIExpc3QgKmNsYXVzZV9saXN0LAogICogaW4g dGhlIHRlY2huaXF1ZSBhbmQgc3RydWN0dXJlIG9mIHRoZSBjb2RlLgogICoK ICAqIEFuIGltcG9ydGFudCBmaW5lIHBvaW50IGlzIHRoYXQgdHJ1dGggb2Yg dGhlIGNsYXVzZXMgbXVzdCBpbXBseSB0aGF0Ci0gKiB0aGUgcHJlZGljYXRl IHJldHVybnMgRkFMU0UsIG5vdCB0aGF0IGl0IGRvZXMgbm90IHJldHVybiBU UlVFLiAgVGhpcworICogdGhlIHByZWRpY2F0ZSByZXR1cm5zIGZhbHNlLCBu b3QgdGhhdCBpdCBkb2VzIG5vdCByZXR1cm4gdHJ1ZS4gIFRoaXMKICAqIGlz IG5vcm1hbGx5IHVzZWQgdG8gdHJ5IHRvIHJlZnV0ZSBDSEVDSyBjb25zdHJh aW50cywgYW5kIHRoZSBvbmx5CiAgKiB0aGluZyB3ZSBjYW4gYXNzdW1lIGFi b3V0IGEgQ0hFQ0sgY29uc3RyYWludCBpcyB0aGF0IGl0IGRpZG4ndCByZXR1 cm4KLSAqIEZBTFNFIC0tLSBhIE5VTEwgcmVzdWx0IGlzbid0IGEgdmlvbGF0 aW9uIHBlciB0aGUgU1FMIHNwZWMuICAoU29tZWRheQorICogZmFsc2UgLS0t IGEgTlVMTCByZXN1bHQgaXNuJ3QgYSB2aW9sYXRpb24gcGVyIHRoZSBTUUwg c3BlYy4gIChTb21lZGF5CiAgKiBwZXJoYXBzIHRoaXMgY29kZSBzaG91bGQg YmUgZXh0ZW5kZWQgdG8gc3VwcG9ydCBib3RoICJzdHJvbmciIGFuZAogICog IndlYWsiIHJlZnV0YXRpb24sIGJ1dCBmb3Igbm93IHdlIG9ubHkgbmVlZCAi c3Ryb25nIi4pCiAgKgpAQCAtNDg5LDcgKzQ4OSw3IEBAIHByZWRpY2F0ZV9p bXBsaWVkX2J5X3JlY3Vyc2UoTm9kZSAqY2xhdXNlLCBOb2RlICpwcmVkaWNh dGUsCiAgKiBJbiBhZGRpdGlvbiwgaWYgdGhlIHByZWRpY2F0ZSBpcyBhIE5P VC1jbGF1c2UgdGhlbiB3ZSBjYW4gdXNlCiAgKglBIFI9PiBOT1QgQiBpZjoJ CQkJCUEgPT4gQgogICogVGhpcyB3b3JrcyBmb3Igc2V2ZXJhbCBkaWZmZXJl bnQgU1FMIGNvbnN0cnVjdHMgdGhhdCBhc3NlcnQgdGhlIG5vbi10cnV0aAot ICogb2YgdGhlaXIgYXJndW1lbnQsIGllIE5PVCwgSVMgRkFMU0UsIElTIE5P VCBUUlVFLCBJUyBVTktOT1dOLgorICogb2YgdGhlaXIgYXJndW1lbnQsIGll IE5PVCwgSVMgZmFsc2UsIElTIE5PVCB0cnVlLCBJUyBVTktOT1dOLgogICog VW5mb3J0dW5hdGVseSB3ZSAqY2Fubm90KiB1c2UKICAqCU5PVCBBIFI9PiBC IGlmOgkJCQkJQiA9PiBBCiAgKiBiZWNhdXNlIHRoaXMgdHlwZSBvZiByZWFz b25pbmcgZmFpbHMgdG8gcHJvdmUgdGhhdCBCIGRvZXNuJ3QgeWllbGQgTlVM TC4KQEAgLTY5Miw3ICs2OTIsNyBAQCBwcmVkaWNhdGVfcmVmdXRlZF9ieV9y ZWN1cnNlKE5vZGUgKmNsYXVzZSwgTm9kZSAqcHJlZGljYXRlLAogCQkJICog SWYgQSBpcyBhIHN0cm9uZyBOT1QtY2xhdXNlLCBBIFI9PiBCIGlmIEIgZXF1 YWxzIEEncyBhcmcKIAkJCSAqCiAJCQkgKiBXZSBjYW5ub3QgbWFrZSB0aGUg c3Ryb25nZXIgY29uY2x1c2lvbiB0aGF0IEIgaXMgcmVmdXRlZCBpZiBCCi0J CQkgKiBpbXBsaWVzIEEncyBhcmc7IHRoYXQgd291bGQgb25seSBwcm92ZSB0 aGF0IEIgaXMgbm90LVRSVUUsIG5vdAorCQkJICogaW1wbGllcyBBJ3MgYXJn OyB0aGF0IHdvdWxkIG9ubHkgcHJvdmUgdGhhdCBCIGlzIG5vdC10cnVlLCBu b3QKIAkJCSAqIHRoYXQgaXQncyBub3QgTlVMTCBlaXRoZXIuICBIZW5jZSB1 c2UgZXF1YWwoKSByYXRoZXIgdGhhbgogCQkJICogcHJlZGljYXRlX2ltcGxp ZWRfYnlfcmVjdXJzZSgpLiAgV2UgY291bGQgZG8gdGhlIGxhdHRlciBpZiB3 ZQogCQkJICogZXZlciBoYWQgYSBuZWVkIGZvciB0aGUgd2VhayBmb3JtIG9m IHJlZnV0YXRpb24uCkBAIC0xMDQ4LDcgKzEwNDgsNyBAQCBhcnJheWV4cHJf Y2xlYW51cF9mbihQcmVkSXRlckluZm8gaW5mbykKICAqCSAgRG9lcyB0aGUg cHJlZGljYXRlIGltcGxpY2F0aW9uIHRlc3QgZm9yIGEgInNpbXBsZSBjbGF1 c2UiIHByZWRpY2F0ZQogICoJICBhbmQgYSAic2ltcGxlIGNsYXVzZSIgcmVz dHJpY3Rpb24uCiAgKgotICogV2UgcmV0dXJuIFRSVUUgaWYgYWJsZSB0byBw cm92ZSB0aGUgaW1wbGljYXRpb24sIEZBTFNFIGlmIG5vdC4KKyAqIFdlIHJl dHVybiB0cnVlIGlmIGFibGUgdG8gcHJvdmUgdGhlIGltcGxpY2F0aW9uLCBm YWxzZSBpZiBub3QuCiAgKgogICogV2UgaGF2ZSB0aHJlZSBzdHJhdGVnaWVz IGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIG9uZSBzaW1wbGUgY2xhdXNlCiAg KiBpbXBsaWVzIGFub3RoZXI6CkBAIC0xMDYzLDcgKzEwNjMsNyBAQCBhcnJh eWV4cHJfY2xlYW51cF9mbihQcmVkSXRlckluZm8gaW5mbykKICAqIE5PVCBO VUxMIiwgd2UgY2FuIGNvbmNsdWRlIHRoYXQgdGhlIHByZWRpY2F0ZSBpcyBp bXBsaWVkIGlmIHRoZSBjbGF1c2UgaXMKICAqIGEgc3RyaWN0IG9wZXJhdG9y IG9yIGZ1bmN0aW9uIHRoYXQgaGFzICJmb28iIGFzIGFuIGlucHV0LiAgSW4g dGhpcyBjYXNlCiAgKiB0aGUgY2xhdXNlIG11c3QgeWllbGQgTlVMTCB3aGVu ICJmb28iIGlzIE5VTEwsIHdoaWNoIHdlIGNhbiB0YWtlIGFzCi0gKiBlcXVp dmFsZW50IHRvIEZBTFNFIGdpdmVuIHRoZSBjb250ZXh0LiAoQWdhaW4sICJm b28iIGlzIGFscmVhZHkga25vd24KKyAqIGVxdWl2YWxlbnQgdG8gZmFsc2Ug Z2l2ZW4gdGhlIGNvbnRleHQuIChBZ2FpbiwgImZvbyIgaXMgYWxyZWFkeSBr bm93bgogICogaW1tdXRhYmxlLCBzbyB0aGUgY2xhdXNlIHdpbGwgY2VydGFp bmx5IGFsd2F5cyBmYWlsLikgQWxzbywgaWYgdGhlIGNsYXVzZQogICogaXMg anVzdCAiZm9vIiAobWVhbmluZyBpdCdzIGEgYm9vbGVhbiB2YXJpYWJsZSks IHRoZSBwcmVkaWNhdGUgaXMgaW1wbGllZAogICogc2luY2UgdGhlIGNsYXVz ZSBjYW4ndCBiZSB0cnVlIGlmICJmb28iIGlzIE5VTEwuCkBAIC0xMTE2LDcg KzExMTYsNyBAQCBwcmVkaWNhdGVfaW1wbGllZF9ieV9zaW1wbGVfY2xhdXNl KEV4cHIgKnByZWRpY2F0ZSwgTm9kZSAqY2xhdXNlLAogICoJICBEb2VzIHRo ZSBwcmVkaWNhdGUgcmVmdXRhdGlvbiB0ZXN0IGZvciBhICJzaW1wbGUgY2xh dXNlIiBwcmVkaWNhdGUKICAqCSAgYW5kIGEgInNpbXBsZSBjbGF1c2UiIHJl c3RyaWN0aW9uLgogICoKLSAqIFdlIHJldHVybiBUUlVFIGlmIGFibGUgdG8g cHJvdmUgdGhlIHJlZnV0YXRpb24sIEZBTFNFIGlmIG5vdC4KKyAqIFdlIHJl dHVybiB0cnVlIGlmIGFibGUgdG8gcHJvdmUgdGhlIHJlZnV0YXRpb24sIGZh bHNlIGlmIG5vdC4KICAqCiAgKiBVbmxpa2UgdGhlIGltcGxpY2F0aW9uIGNh c2UsIGNoZWNraW5nIGZvciBlcXVhbCgpIGNsYXVzZXMgaXNuJ3QKICAqIGhl bHBmdWwuCkBAIC0xMzYwLDEyICsxMzYwLDEyIEBAIHN0YXRpYyBjb25zdCBi b29sIEJUX2ltcGxpZXNfdGFibGVbNl1bNl0gPSB7CiAgKgkJCVRoZSBwcmVk aWNhdGUgb3BlcmF0b3I6CiAgKgkgTFQgICAgTEUJIEVRICAgIEdFCSBHVCAg ICBORQogICovCi0Je1RSVUUsIFRSVUUsIG5vbmUsIG5vbmUsIG5vbmUsIFRS VUV9LAkvKiBMVCAqLwotCXtub25lLCBUUlVFLCBub25lLCBub25lLCBub25l LCBub25lfSwJLyogTEUgKi8KLQl7bm9uZSwgVFJVRSwgVFJVRSwgVFJVRSwg bm9uZSwgbm9uZX0sCS8qIEVRICovCi0Je25vbmUsIG5vbmUsIG5vbmUsIFRS VUUsIG5vbmUsIG5vbmV9LAkvKiBHRSAqLwotCXtub25lLCBub25lLCBub25l LCBUUlVFLCBUUlVFLCBUUlVFfSwJLyogR1QgKi8KLQl7bm9uZSwgbm9uZSwg bm9uZSwgbm9uZSwgbm9uZSwgVFJVRX0JLyogTkUgKi8KKwl7dHJ1ZSwgdHJ1 ZSwgbm9uZSwgbm9uZSwgbm9uZSwgdHJ1ZX0sCS8qIExUICovCisJe25vbmUs IHRydWUsIG5vbmUsIG5vbmUsIG5vbmUsIG5vbmV9LAkvKiBMRSAqLworCXtu b25lLCB0cnVlLCB0cnVlLCB0cnVlLCBub25lLCBub25lfSwJLyogRVEgKi8K Kwl7bm9uZSwgbm9uZSwgbm9uZSwgdHJ1ZSwgbm9uZSwgbm9uZX0sCS8qIEdF ICovCisJe25vbmUsIG5vbmUsIG5vbmUsIHRydWUsIHRydWUsIHRydWV9LAkv KiBHVCAqLworCXtub25lLCBub25lLCBub25lLCBub25lLCBub25lLCB0cnVl fQkvKiBORSAqLwogfTsKIAogc3RhdGljIGNvbnN0IGJvb2wgQlRfcmVmdXRl c190YWJsZVs2XVs2XSA9IHsKQEAgLTEzNzMsMTIgKzEzNzMsMTIgQEAgc3Rh dGljIGNvbnN0IGJvb2wgQlRfcmVmdXRlc190YWJsZVs2XVs2XSA9IHsKICAq CQkJVGhlIHByZWRpY2F0ZSBvcGVyYXRvcjoKICAqCSBMVCAgICBMRQkgRVEg ICAgR0UJIEdUICAgIE5FCiAgKi8KLQl7bm9uZSwgbm9uZSwgVFJVRSwgVFJV RSwgVFJVRSwgbm9uZX0sCS8qIExUICovCi0Je25vbmUsIG5vbmUsIG5vbmUs IG5vbmUsIFRSVUUsIG5vbmV9LAkvKiBMRSAqLwotCXtUUlVFLCBub25lLCBu b25lLCBub25lLCBUUlVFLCBUUlVFfSwJLyogRVEgKi8KLQl7VFJVRSwgbm9u ZSwgbm9uZSwgbm9uZSwgbm9uZSwgbm9uZX0sCS8qIEdFICovCi0Je1RSVUUs IFRSVUUsIFRSVUUsIG5vbmUsIG5vbmUsIG5vbmV9LAkvKiBHVCAqLwotCXtu b25lLCBub25lLCBUUlVFLCBub25lLCBub25lLCBub25lfQkvKiBORSAqLwor CXtub25lLCBub25lLCB0cnVlLCB0cnVlLCB0cnVlLCBub25lfSwJLyogTFQg Ki8KKwl7bm9uZSwgbm9uZSwgbm9uZSwgbm9uZSwgdHJ1ZSwgbm9uZX0sCS8q IExFICovCisJe3RydWUsIG5vbmUsIG5vbmUsIG5vbmUsIHRydWUsIHRydWV9 LAkvKiBFUSAqLworCXt0cnVlLCBub25lLCBub25lLCBub25lLCBub25lLCBu b25lfSwJLyogR0UgKi8KKwl7dHJ1ZSwgdHJ1ZSwgdHJ1ZSwgbm9uZSwgbm9u ZSwgbm9uZX0sCS8qIEdUICovCisJe25vbmUsIG5vbmUsIHRydWUsIG5vbmUs IG5vbmUsIG5vbmV9CS8qIE5FICovCiB9OwogCiBzdGF0aWMgY29uc3QgU3Ry YXRlZ3lOdW1iZXIgQlRfaW1wbGljX3RhYmxlWzZdWzZdID0gewpAQCAtMTQx Nyw3ICsxNDE3LDcgQEAgc3RhdGljIGNvbnN0IFN0cmF0ZWd5TnVtYmVyIEJU X3JlZnV0ZV90YWJsZVs2XVs2XSA9IHsKICAqIFdoZW4gcmVmdXRlX2l0ID09 IGZhbHNlLCB3ZSB3YW50IHRvIHByb3ZlIHRoZSBwcmVkaWNhdGUgdHJ1ZTsK ICAqIHdoZW4gcmVmdXRlX2l0ID09IHRydWUsIHdlIHdhbnQgdG8gcHJvdmUg dGhlIHByZWRpY2F0ZSBmYWxzZS4KICAqIChUaGVyZSBpcyBlbm91Z2ggY29t bW9uIGNvZGUgdG8ganVzdGlmeSBoYW5kbGluZyB0aGVzZSB0d28gY2FzZXMK LSAqIGluIG9uZSByb3V0aW5lLikgIFdlIHJldHVybiBUUlVFIGlmIGFibGUg dG8gbWFrZSB0aGUgcHJvb2YsIEZBTFNFCisgKiBpbiBvbmUgcm91dGluZS4p ICBXZSByZXR1cm4gdHJ1ZSBpZiBhYmxlIHRvIG1ha2UgdGhlIHByb29mLCBm YWxzZQogICogaWYgbm90IGFibGUgdG8gcHJvdmUgaXQuCiAgKgogICogV2Ug Y2FuIG1ha2UgcHJvb2ZzIGludm9sdmluZyBzZXZlcmFsIGV4cHJlc3Npb24g Zm9ybXMgKGhlcmUgImZvbyIgYW5kICJiYXIiCkBAIC0xNjYxLDcgKzE2NjEs NyBAQCBvcGVyYXRvcl9wcmVkaWNhdGVfcHJvb2YoRXhwciAqcHJlZGljYXRl LCBOb2RlICpjbGF1c2UsIGJvb2wgcmVmdXRlX2l0KQogICoJICBBc3N1bWlu ZyB0aGF0IEVYUFIxIGNsYXVzZV9vcCBFWFBSMiBpcyB0cnVlLCB0cnkgdG8g cHJvdmUgb3IgcmVmdXRlCiAgKgkgIEVYUFIxIHByZWRfb3AgRVhQUjIuCiAg KgotICogUmV0dXJuIFRSVUUgaWYgYWJsZSB0byBtYWtlIHRoZSBwcm9vZiwg ZmFsc2UgaWYgbm90IGFibGUgdG8gcHJvdmUgaXQuCisgKiBSZXR1cm4gdHJ1 ZSBpZiBhYmxlIHRvIG1ha2UgdGhlIHByb29mLCBmYWxzZSBpZiBub3QgYWJs ZSB0byBwcm92ZSBpdC4KICAqLwogc3RhdGljIGJvb2wKIG9wZXJhdG9yX3Nh bWVfc3ViZXhwcnNfcHJvb2YoT2lkIHByZWRfb3AsIE9pZCBjbGF1c2Vfb3As IGJvb2wgcmVmdXRlX2l0KQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXgg N2QwZGU5OWJhZi4uZWM1Y2U3ODgyNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC0xMDA1LDcgKzEwMDUsNyBAQCBBbHRlck9wdFJvbGVFbGVtOgog CQkJCX0KIAkJCXwgSU5IRVJJVAogCQkJCXsKLQkJCQkJJCQgPSBtYWtlRGVm RWxlbSgiaW5oZXJpdCIsIChOb2RlICopbWFrZUludGVnZXIoVFJVRSksIEAx KTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiaW5oZXJpdCIsIChOb2RlICop bWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJCQl9CiAJCQl8IENPTk5FQ1RJ T04gTElNSVQgU2lnbmVkSWNvbnN0CiAJCQkJewpAQCAtMTAyOCwzNiArMTAy OCwzNiBAQCBBbHRlck9wdFJvbGVFbGVtOgogCQkJCQkgKiBzaXplIG9mIHRo ZSBtYWluIHBhcnNlci4KIAkJCQkJICovCiAJCQkJCWlmIChzdHJjbXAoJDEs ICJzdXBlcnVzZXIiKSA9PSAwKQotCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgi c3VwZXJ1c2VyIiwgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVFKSwgQDEpOwor CQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgic3VwZXJ1c2VyIiwgKE5vZGUgKilt YWtlSW50ZWdlcih0cnVlKSwgQDEpOwogCQkJCQllbHNlIGlmIChzdHJjbXAo JDEsICJub3N1cGVydXNlciIpID09IDApCi0JCQkJCQkkJCA9IG1ha2VEZWZF bGVtKCJzdXBlcnVzZXIiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKEZBTFNFKSwg QDEpOworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgic3VwZXJ1c2VyIiwgKE5v ZGUgKiltYWtlSW50ZWdlcihmYWxzZSksIEAxKTsKIAkJCQkJZWxzZSBpZiAo c3RyY21wKCQxLCAiY3JlYXRlcm9sZSIpID09IDApCi0JCQkJCQkkJCA9IG1h a2VEZWZFbGVtKCJjcmVhdGVyb2xlIiwgKE5vZGUgKiltYWtlSW50ZWdlcihU UlVFKSwgQDEpOworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY3JlYXRlcm9s ZSIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJCQkJZWxz ZSBpZiAoc3RyY21wKCQxLCAibm9jcmVhdGVyb2xlIikgPT0gMCkKLQkJCQkJ CSQkID0gbWFrZURlZkVsZW0oImNyZWF0ZXJvbGUiLCAoTm9kZSAqKW1ha2VJ bnRlZ2VyKEZBTFNFKSwgQDEpOworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgi Y3JlYXRlcm9sZSIsIChOb2RlICopbWFrZUludGVnZXIoZmFsc2UpLCBAMSk7 CiAJCQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgInJlcGxpY2F0aW9uIikgPT0g MCkKLQkJCQkJCSQkID0gbWFrZURlZkVsZW0oImlzcmVwbGljYXRpb24iLCAo Tm9kZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCBAMSk7CisJCQkJCQkkJCA9IG1h a2VEZWZFbGVtKCJpc3JlcGxpY2F0aW9uIiwgKE5vZGUgKiltYWtlSW50ZWdl cih0cnVlKSwgQDEpOwogCQkJCQllbHNlIGlmIChzdHJjbXAoJDEsICJub3Jl cGxpY2F0aW9uIikgPT0gMCkKLQkJCQkJCSQkID0gbWFrZURlZkVsZW0oImlz cmVwbGljYXRpb24iLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKEZBTFNFKSwgQDEp OworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiaXNyZXBsaWNhdGlvbiIsIChO b2RlICopbWFrZUludGVnZXIoZmFsc2UpLCBAMSk7CiAJCQkJCWVsc2UgaWYg KHN0cmNtcCgkMSwgImNyZWF0ZWRiIikgPT0gMCkKLQkJCQkJCSQkID0gbWFr ZURlZkVsZW0oImNyZWF0ZWRiIiwgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVF KSwgQDEpOworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY3JlYXRlZGIiLCAo Tm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCBAMSk7CiAJCQkJCWVsc2UgaWYg KHN0cmNtcCgkMSwgIm5vY3JlYXRlZGIiKSA9PSAwKQotCQkJCQkJJCQgPSBt YWtlRGVmRWxlbSgiY3JlYXRlZGIiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKEZB TFNFKSwgQDEpOworCQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY3JlYXRlZGIi LCAoTm9kZSAqKW1ha2VJbnRlZ2VyKGZhbHNlKSwgQDEpOwogCQkJCQllbHNl IGlmIChzdHJjbXAoJDEsICJsb2dpbiIpID09IDApCi0JCQkJCQkkJCA9IG1h a2VEZWZFbGVtKCJjYW5sb2dpbiIsIChOb2RlICopbWFrZUludGVnZXIoVFJV RSksIEAxKTsKKwkJCQkJCSQkID0gbWFrZURlZkVsZW0oImNhbmxvZ2luIiwg KE5vZGUgKiltYWtlSW50ZWdlcih0cnVlKSwgQDEpOwogCQkJCQllbHNlIGlm IChzdHJjbXAoJDEsICJub2xvZ2luIikgPT0gMCkKLQkJCQkJCSQkID0gbWFr ZURlZkVsZW0oImNhbmxvZ2luIiwgKE5vZGUgKiltYWtlSW50ZWdlcihGQUxT RSksIEAxKTsKKwkJCQkJCSQkID0gbWFrZURlZkVsZW0oImNhbmxvZ2luIiwg KE5vZGUgKiltYWtlSW50ZWdlcihmYWxzZSksIEAxKTsKIAkJCQkJZWxzZSBp ZiAoc3RyY21wKCQxLCAiYnlwYXNzcmxzIikgPT0gMCkKLQkJCQkJCSQkID0g bWFrZURlZkVsZW0oImJ5cGFzc3JscyIsIChOb2RlICopbWFrZUludGVnZXIo VFJVRSksIEAxKTsKKwkJCQkJCSQkID0gbWFrZURlZkVsZW0oImJ5cGFzc3Js cyIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJCQkJZWxz ZSBpZiAoc3RyY21wKCQxLCAibm9ieXBhc3NybHMiKSA9PSAwKQotCQkJCQkJ JCQgPSBtYWtlRGVmRWxlbSgiYnlwYXNzcmxzIiwgKE5vZGUgKiltYWtlSW50 ZWdlcihGQUxTRSksIEAxKTsKKwkJCQkJCSQkID0gbWFrZURlZkVsZW0oImJ5 cGFzc3JscyIsIChOb2RlICopbWFrZUludGVnZXIoZmFsc2UpLCBAMSk7CiAJ CQkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIm5vaW5oZXJpdCIpID09IDApCiAJ CQkJCXsKIAkJCQkJCS8qCiAJCQkJCQkgKiBOb3RlIHRoYXQgSU5IRVJJVCBp cyBhIGtleXdvcmQsIHNvIGl0J3MgaGFuZGxlZCBieSBtYWluIHBhcnNlciwg YnV0CiAJCQkJCQkgKiBOT0lOSEVSSVQgaXMgaGFuZGxlZCBoZXJlLgogCQkJ CQkJICovCi0JCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJpbmhlcml0IiwgKE5v ZGUgKiltYWtlSW50ZWdlcihGQUxTRSksIEAxKTsKKwkJCQkJCSQkID0gbWFr ZURlZkVsZW0oImluaGVyaXQiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKGZhbHNl KSwgQDEpOwogCQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJCWVyZXBvcnQoRVJS T1IsCkBAIC0xMTkwLDIxICsxMTkwLDIxIEBAIERyb3BSb2xlU3RtdDoKIAkJ CURST1AgUk9MRSByb2xlX2xpc3QKIAkJCQl7CiAJCQkJCURyb3BSb2xlU3Rt dCAqbiA9IG1ha2VOb2RlKERyb3BSb2xlU3RtdCk7Ci0JCQkJCW4tPm1pc3Np bmdfb2sgPSBGQUxTRTsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwog CQkJCQluLT5yb2xlcyA9ICQzOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJ CQl9CiAJCQl8IERST1AgUk9MRSBJRl9QIEVYSVNUUyByb2xlX2xpc3QKIAkJ CQl7CiAJCQkJCURyb3BSb2xlU3RtdCAqbiA9IG1ha2VOb2RlKERyb3BSb2xl U3RtdCk7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBUUlVFOworCQkJCQluLT5t aXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJbi0+cm9sZXMgPSAkNTsKIAkJCQkJ JCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJfCBEUk9QIFVTRVIgcm9sZV9s aXN0CiAJCQkJewogCQkJCQlEcm9wUm9sZVN0bXQgKm4gPSBtYWtlTm9kZShE cm9wUm9sZVN0bXQpOwotCQkJCQluLT5taXNzaW5nX29rID0gRkFMU0U7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJbi0+cm9sZXMgPSAk MzsKIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQpAQCAtMTIxMiwyMCAr MTIxMiwyMCBAQCBEcm9wUm9sZVN0bXQ6CiAJCQkJewogCQkJCQlEcm9wUm9s ZVN0bXQgKm4gPSBtYWtlTm9kZShEcm9wUm9sZVN0bXQpOwogCQkJCQluLT5y b2xlcyA9ICQ1OwotCQkJCQluLT5taXNzaW5nX29rID0gVFJVRTsKKwkJCQkJ bi0+bWlzc2luZ19vayA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKiluOwog CQkJCX0KIAkJCXwgRFJPUCBHUk9VUF9QIHJvbGVfbGlzdAogCQkJCXsKIAkJ CQkJRHJvcFJvbGVTdG10ICpuID0gbWFrZU5vZGUoRHJvcFJvbGVTdG10KTsK LQkJCQkJbi0+bWlzc2luZ19vayA9IEZBTFNFOworCQkJCQluLT5taXNzaW5n X29rID0gZmFsc2U7CiAJCQkJCW4tPnJvbGVzID0gJDM7CiAJCQkJCSQkID0g KE5vZGUgKiluOwogCQkJCX0KIAkJCXwgRFJPUCBHUk9VUF9QIElGX1AgRVhJ U1RTIHJvbGVfbGlzdAogCQkJCXsKIAkJCQkJRHJvcFJvbGVTdG10ICpuID0g bWFrZU5vZGUoRHJvcFJvbGVTdG10KTsKLQkJCQkJbi0+bWlzc2luZ19vayA9 IFRSVUU7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQluLT5y b2xlcyA9ICQ1OwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CkBAIC0x NzMwLDggKzE3MzAsOCBAQCBjb25zdHJhaW50c19zZXRfbGlzdDoKIAkJOwog CiBjb25zdHJhaW50c19zZXRfbW9kZToKLQkJCURFRkVSUkVECQkJCQkJCQl7 ICQkID0gVFJVRTsgfQotCQkJfCBJTU1FRElBVEUJCQkJCQkJCXsgJCQgPSBG QUxTRTsgfQorCQkJREVGRVJSRUQJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJ CQl8IElNTUVESUFURQkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAog CkBAIC0yMTU2LDcgKzIxNTYsNyBAQCBhbHRlcl90YWJsZV9jbWQ6CiAJCQkJ CW4tPnN1YnR5cGUgPSBBVF9Ecm9wQ29sdW1uOwogCQkJCQluLT5uYW1lID0g JDU7CiAJCQkJCW4tPmJlaGF2aW9yID0gJDY7Ci0JCQkJCW4tPm1pc3Npbmdf b2sgPSBUUlVFOworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJ JCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJLyogQUxURVIgVEFCTEUgPG5h bWU+IERST1AgW0NPTFVNTl0gPGNvbG5hbWU+IFtSRVNUUklDVHxDQVNDQURF XSAqLwpAQCAtMjE2Niw3ICsyMTY2LDcgQEAgYWx0ZXJfdGFibGVfY21kOgog CQkJCQluLT5zdWJ0eXBlID0gQVRfRHJvcENvbHVtbjsKIAkJCQkJbi0+bmFt ZSA9ICQzOwogCQkJCQluLT5iZWhhdmlvciA9ICQ0OwotCQkJCQluLT5taXNz aW5nX29rID0gRkFMU0U7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsK IAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJLyoKQEAgLTIyMzQs NyArMjIzNCw3IEBAIGFsdGVyX3RhYmxlX2NtZDoKIAkJCQkJbi0+c3VidHlw ZSA9IEFUX0Ryb3BDb25zdHJhaW50OwogCQkJCQluLT5uYW1lID0gJDU7CiAJ CQkJCW4tPmJlaGF2aW9yID0gJDY7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBU UlVFOworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKW47CiAJCQkJfQogCQkJLyogQUxURVIgVEFCTEUgPG5hbWU+IERS T1AgQ09OU1RSQUlOVCA8bmFtZT4gW1JFU1RSSUNUfENBU0NBREVdICovCkBA IC0yMjQ0LDcgKzIyNDQsNyBAQCBhbHRlcl90YWJsZV9jbWQ6CiAJCQkJCW4t PnN1YnR5cGUgPSBBVF9Ecm9wQ29uc3RyYWludDsKIAkJCQkJbi0+bmFtZSA9 ICQzOwogCQkJCQluLT5iZWhhdmlvciA9ICQ0OwotCQkJCQluLT5taXNzaW5n X29rID0gRkFMU0U7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQogCQkJLyogQUxURVIgVEFCTEUg PG5hbWU+IFNFVCBXSVRIIE9JRFMgICovCkBAIC0yNzM5LDcgKzI3MzksNyBA QCBhbHRlcl90eXBlX2NtZDoKIAkJCQkJbi0+c3VidHlwZSA9IEFUX0Ryb3BD b2x1bW47CiAJCQkJCW4tPm5hbWUgPSAkNTsKIAkJCQkJbi0+YmVoYXZpb3Ig PSAkNjsKLQkJCQkJbi0+bWlzc2luZ19vayA9IFRSVUU7CisJCQkJCW4tPm1p c3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9 CiAJCQkvKiBBTFRFUiBUWVBFIDxuYW1lPiBEUk9QIEFUVFJJQlVURSA8YXR0 bmFtZT4gW1JFU1RSSUNUfENBU0NBREVdICovCkBAIC0yNzQ5LDcgKzI3NDks NyBAQCBhbHRlcl90eXBlX2NtZDoKIAkJCQkJbi0+c3VidHlwZSA9IEFUX0Ry b3BDb2x1bW47CiAJCQkJCW4tPm5hbWUgPSAkMzsKIAkJCQkJbi0+YmVoYXZp b3IgPSAkNDsKLQkJCQkJbi0+bWlzc2luZ19vayA9IEZBTFNFOworCQkJCQlu LT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwog CQkJCX0KIAkJCS8qIEFMVEVSIFRZUEUgPG5hbWU+IEFMVEVSIEFUVFJJQlVU RSA8YXR0bmFtZT4gW1NFVCBEQVRBXSBUWVBFIDx0eXBlbmFtZT4gW1JFU1RS SUNUfENBU0NBREVdICovCkBAIC0yODY5LDEzICsyODY5LDEzIEBAIENvcHlT dG10OglDT1BZIG9wdF9iaW5hcnkgcXVhbGlmaWVkX25hbWUgb3B0X2NvbHVt bl9saXN0IG9wdF9vaWRzCiAJCTsKIAogY29weV9mcm9tOgotCQkJRlJPTQkJ CQkJCQkJCXsgJCQgPSBUUlVFOyB9Ci0JCQl8IFRPCQkJCQkJCQkJeyAkJCA9 IEZBTFNFOyB9CisJCQlGUk9NCQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJ CXwgVE8JCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCiBvcHRfcHJv Z3JhbToKLQkJCVBST0dSQU0JCQkJCQkJCQl7ICQkID0gVFJVRTsgfQotCQkJ fCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gRkFMU0U7IH0KKwkJCVBST0dS QU0JCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJ CQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCiAvKgpAQCAtMjkwNiwxMSAr MjkwNiwxMSBAQCBjb3B5X29wdF9pdGVtOgogCQkJCX0KIAkJCXwgT0lEUwog CQkJCXsKLQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgib2lkcyIsIChOb2RlICop bWFrZUludGVnZXIoVFJVRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxl bSgib2lkcyIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJ CQl9CiAJCQl8IEZSRUVaRQogCQkJCXsKLQkJCQkJJCQgPSBtYWtlRGVmRWxl bSgiZnJlZXplIiwgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVFKSwgQDEpOwor CQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJmcmVlemUiLCAoTm9kZSAqKW1ha2VJ bnRlZ2VyKHRydWUpLCBAMSk7CiAJCQkJfQogCQkJfCBERUxJTUlURVIgb3B0 X2FzIFNjb25zdAogCQkJCXsKQEAgLTI5MjYsNyArMjkyNiw3IEBAIGNvcHlf b3B0X2l0ZW06CiAJCQkJfQogCQkJfCBIRUFERVJfUAogCQkJCXsKLQkJCQkJ JCQgPSBtYWtlRGVmRWxlbSgiaGVhZGVyIiwgKE5vZGUgKiltYWtlSW50ZWdl cihUUlVFKSwgQDEpOworCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJoZWFkZXIi LCAoTm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCBAMSk7CiAJCQkJfQogCQkJ fCBRVU9URSBvcHRfYXMgU2NvbnN0CiAJCQkJewpAQCAtMjk3MSw3ICsyOTcx LDcgQEAgb3B0X2JpbmFyeToKIG9wdF9vaWRzOgogCQkJV0lUSCBPSURTCiAJ CQkJewotCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJvaWRzIiwgKE5vZGUgKilt YWtlSW50ZWdlcihUUlVFKSwgQDEpOworCQkJCQkkJCA9IG1ha2VEZWZFbGVt KCJvaWRzIiwgKE5vZGUgKiltYWtlSW50ZWdlcih0cnVlKSwgQDEpOwogCQkJ CX0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQogCQk7 CkBAIC0zNjI1LDggKzM2MjUsOCBAQCBDb25zdHJhaW50RWxlbToKIAkJCQl9 CiAJCTsKIAotb3B0X25vX2luaGVyaXQ6CU5PIElOSEVSSVQJCQkJCQkJeyAg JCQgPSBUUlVFOyB9Ci0JCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgICQkID0g RkFMU0U7IH0KK29wdF9ub19pbmhlcml0OglOTyBJTkhFUklUCQkJCQkJCXsg ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICAkJCA9 IGZhbHNlOyB9CiAJCTsKIAogb3B0X2NvbHVtbl9saXN0OgpAQCAtMzkwMyw5 ICszOTAzLDkgQEAgY3JlYXRlX2FzX3RhcmdldDoKIAkJOwogCiBvcHRfd2l0 aF9kYXRhOgotCQkJV0lUSCBEQVRBX1AJCQkJCQkJCXsgJCQgPSBUUlVFOyB9 Ci0JCQl8IFdJVEggTk8gREFUQV9QCQkJCQkJeyAkJCA9IEZBTFNFOyB9Ci0J CQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFRSVUU7IH0KKwkJCVdJVEgg REFUQV9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCBXSVRIIE5PIERB VEFfUAkJCQkJCXsgJCQgPSBmYWxzZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSB0cnVlOyB9CiAJCTsKIAogCkBAIC00MDU2LDExICs0MDU2 LDExIEBAIFNlcU9wdEVsZW06IEFTIFNpbXBsZVR5cGVuYW1lCiAJCQkJfQog CQkJfCBDWUNMRQogCQkJCXsKLQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY3lj bGUiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCBAMSk7CisJCQkJCSQk ID0gbWFrZURlZkVsZW0oImN5Y2xlIiwgKE5vZGUgKiltYWtlSW50ZWdlcih0 cnVlKSwgQDEpOwogCQkJCX0KIAkJCXwgTk8gQ1lDTEUKIAkJCQl7Ci0JCQkJ CSQkID0gbWFrZURlZkVsZW0oImN5Y2xlIiwgKE5vZGUgKiltYWtlSW50ZWdl cihGQUxTRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY3ljbGUi LCAoTm9kZSAqKW1ha2VJbnRlZ2VyKGZhbHNlKSwgQDEpOwogCQkJCX0KIAkJ CXwgSU5DUkVNRU5UIG9wdF9ieSBOdW1lcmljT25seQogCQkJCXsKQEAgLTQx NjAsOCArNDE2MCw4IEBAIENyZWF0ZVBMYW5nU3RtdDoKIAkJOwogCiBvcHRf dHJ1c3RlZDoKLQkJCVRSVVNURUQJCQkJCQkJCQl7ICQkID0gVFJVRTsgfQot CQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBGQUxTRTsgfQorCQkJVFJV U1RFRAkJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJ CQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAogLyogVGhpcyBvdWdodCB0 byBiZSBqdXN0IGZ1bmNfbmFtZSwgYnV0IHRoYXQgY2F1c2VzIHJlZHVjZS9y ZWR1Y2UgY29uZmxpY3RzCkBAIC00MzEyLDcgKzQzMTIsNyBAQCBjcmVhdGVf ZXh0ZW5zaW9uX29wdF9pdGVtOgogCQkJCX0KIAkJCXwgQ0FTQ0FERQogCQkJ CXsKLQkJCQkJJCQgPSBtYWtlRGVmRWxlbSgiY2FzY2FkZSIsIChOb2RlICop bWFrZUludGVnZXIoVFJVRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxl bSgiY2FzY2FkZSIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsK IAkJCQl9CiAJCTsKIApAQCAtNTE3Niw5ICs1MTc2LDkgQEAgQ3JlYXRlVHJp Z1N0bXQ6CiAJCQkJCW4tPmNvbHVtbnMgPSAoTGlzdCAqKSBsc2Vjb25kKCQ1 KTsKIAkJCQkJbi0+d2hlbkNsYXVzZSA9ICQxMDsKIAkJCQkJbi0+dHJhbnNp dGlvblJlbHMgPSAkODsKLQkJCQkJbi0+aXNjb25zdHJhaW50ICA9IEZBTFNF OwotCQkJCQluLT5kZWZlcnJhYmxlCSA9IEZBTFNFOwotCQkJCQluLT5pbml0 ZGVmZXJyZWQgID0gRkFMU0U7CisJCQkJCW4tPmlzY29uc3RyYWludCAgPSBm YWxzZTsKKwkJCQkJbi0+ZGVmZXJyYWJsZQkgPSBmYWxzZTsKKwkJCQkJbi0+ aW5pdGRlZmVycmVkICA9IGZhbHNlOwogCQkJCQluLT5jb25zdHJyZWwgPSBO VUxMOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CkBAIC01MTkyLDEz ICs1MTkyLDEzIEBAIENyZWF0ZVRyaWdTdG10OgogCQkJCQluLT5yZWxhdGlv biA9ICQ4OwogCQkJCQluLT5mdW5jbmFtZSA9ICQxNzsKIAkJCQkJbi0+YXJn cyA9ICQxOTsKLQkJCQkJbi0+cm93ID0gVFJVRTsKKwkJCQkJbi0+cm93ID0g dHJ1ZTsKIAkJCQkJbi0+dGltaW5nID0gVFJJR0dFUl9UWVBFX0FGVEVSOwog CQkJCQluLT5ldmVudHMgPSBpbnRWYWwobGluaXRpYWwoJDYpKTsKIAkJCQkJ bi0+Y29sdW1ucyA9IChMaXN0ICopIGxzZWNvbmQoJDYpOwogCQkJCQluLT53 aGVuQ2xhdXNlID0gJDE0OwogCQkJCQluLT50cmFuc2l0aW9uUmVscyA9IE5J TDsKLQkJCQkJbi0+aXNjb25zdHJhaW50ICA9IFRSVUU7CisJCQkJCW4tPmlz Y29uc3RyYWludCAgPSB0cnVlOwogCQkJCQlwcm9jZXNzQ0FTYml0cygkMTAs IEAxMCwgIlRSSUdHRVIiLAogCQkJCQkJCQkgICAmbi0+ZGVmZXJyYWJsZSwg Jm4tPmluaXRkZWZlcnJlZCwgTlVMTCwKIAkJCQkJCQkJICAgTlVMTCwgeXlz Y2FubmVyKTsKQEAgLTUyNzIsMTIgKzUyNzIsMTIgQEAgVHJpZ2dlclRyYW5z aXRpb246CiAJCTsKIAogVHJhbnNpdGlvbk9sZE9yTmV3OgotCQkJTkVXCQkJ CQkJCQkJCXsgJCQgPSBUUlVFOyB9Ci0JCQl8IE9MRAkJCQkJCQkJCXsgJCQg PSBGQUxTRTsgfQorCQkJTkVXCQkJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJ CQl8IE9MRAkJCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKIFRyYW5z aXRpb25Sb3dPclRhYmxlOgotCQkJVEFCTEUJCQkJCQkJCQl7ICQkID0gVFJV RTsgfQorCQkJVEFCTEUJCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQogCQkJLyoK IAkJCSAqIEFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQsIGxhY2sgb2YgYSBr ZXl3b3JkIGhlcmUgaW1wbGllcyBST1cuCiAJCQkgKiBTdXBwb3J0IGZvciB0 aGF0IHdvdWxkIHJlcXVpcmUgcHJvaGliaXRpbmcgUk9XIGVudGlyZWx5IGhl cmUsCkBAIC01Mjg2LDcgKzUyODYsNyBAQCBUcmFuc2l0aW9uUm93T3JUYWJs ZToKIAkJCSAqIG5leHQgdG9rZW4uICBSZXF1aXJpbmcgUk9XIHNlZW1zIGNs ZWFuZXN0IGFuZCBlYXNpZXN0IHRvCiAJCQkgKiBleHBsYWluLgogCQkJICov Ci0JCQl8IFJPVwkJCQkJCQkJCXsgJCQgPSBGQUxTRTsgfQorCQkJfCBST1cJ CQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCiBUcmFuc2l0aW9uUmVs TmFtZToKQEAgLTUzMDQsNyArNTMwNCw3IEBAIFRyaWdnZXJGb3JTcGVjOgog CQkJCQkgKiBJZiBST1cvU1RBVEVNRU5UIG5vdCBzcGVjaWZpZWQsIGRlZmF1 bHQgdG8KIAkJCQkJICogU1RBVEVNRU5ULCBwZXIgU1FMCiAJCQkJCSAqLwot CQkJCQkkJCA9IEZBTFNFOworCQkJCQkkJCA9IGZhbHNlOwogCQkJCX0KIAkJ OwogCkBAIC01MzE0LDggKzUzMTQsOCBAQCBUcmlnZ2VyRm9yT3B0RWFjaDoK IAkJOwogCiBUcmlnZ2VyRm9yVHlwZToKLQkJCVJPVwkJCQkJCQkJCQl7ICQk ID0gVFJVRTsgfQotCQkJfCBTVEFURU1FTlQJCQkJCQkJCXsgJCQgPSBGQUxT RTsgfQorCQkJUk9XCQkJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IFNU QVRFTUVOVAkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAogVHJpZ2dl cldoZW46CkBAIC01NDY2LDcgKzU0NjYsNyBAQCBDcmVhdGVBc3NlcnRTdG10 OgogCQkJCQlDcmVhdGVUcmlnU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVRy aWdTdG10KTsKIAkJCQkJbi0+dHJpZ25hbWUgPSAkMzsKIAkJCQkJbi0+YXJn cyA9IGxpc3RfbWFrZTEoJDYpOwotCQkJCQluLT5pc2NvbnN0cmFpbnQgID0g VFJVRTsKKwkJCQkJbi0+aXNjb25zdHJhaW50ICA9IHRydWU7CiAJCQkJCXBy b2Nlc3NDQVNiaXRzKCQ4LCBAOCwgIkFTU0VSVElPTiIsCiAJCQkJCQkJCSAg ICZuLT5kZWZlcnJhYmxlLCAmbi0+aW5pdGRlZmVycmVkLCBOVUxMLAogCQkJ CQkJCQkgICBOVUxMLCB5eXNjYW5uZXIpOwpAQCAtNTg0Niw4ICs1ODQ2LDgg QEAgb3BjbGFzc19pdGVtOgogCQkJCX0KIAkJOwogCi1vcHRfZGVmYXVsdDoJ REVGQVVMVAkJCQkJCXsgJCQgPSBUUlVFOyB9Ci0JCQl8IC8qRU1QVFkqLwkJ CQkJCXsgJCQgPSBGQUxTRTsgfQorb3B0X2RlZmF1bHQ6CURFRkFVTFQJCQkJ CQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQl7ICQkID0g ZmFsc2U7IH0KIAkJOwogCiBvcHRfb3BmYW1pbHk6CUZBTUlMWSBhbnlfbmFt ZQkJCQl7ICQkID0gJDI7IH0KQEAgLTU4NzEsOSArNTg3MSw5IEBAIG9wdF9y ZWNoZWNrOglSRUNIRUNLCiAJCQkJCQkJIGVycm1zZygiUkVDSEVDSyBpcyBu byBsb25nZXIgcmVxdWlyZWQiKSwKIAkJCQkJCQkgZXJyaGludCgiVXBkYXRl IHlvdXIgZGF0YSB0eXBlLiIpLAogCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRp b24oQDEpKSk7Ci0JCQkJCSQkID0gVFJVRTsKKwkJCQkJJCQgPSB0cnVlOwog CQkJCX0KLQkJCXwgLypFTVBUWSovCQkJCQkJeyAkJCA9IEZBTFNFOyB9CisJ CQl8IC8qRU1QVFkqLwkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKIApA QCAtNjAyMSw3ICs2MDIxLDcgQEAgRHJvcFN0bXQ6CURST1AgZHJvcF90eXBl X2FueV9uYW1lIElGX1AgRVhJU1RTIGFueV9uYW1lX2xpc3Qgb3B0X2Ryb3Bf YmVoYXZpb3IKIAkJCQl7CiAJCQkJCURyb3BTdG10ICpuID0gbWFrZU5vZGUo RHJvcFN0bXQpOwogCQkJCQluLT5yZW1vdmVUeXBlID0gJDI7Ci0JCQkJCW4t Pm1pc3Npbmdfb2sgPSBUUlVFOworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1 ZTsKIAkJCQkJbi0+b2JqZWN0cyA9ICQ1OwogCQkJCQluLT5iZWhhdmlvciA9 ICQ2OwogCQkJCQluLT5jb25jdXJyZW50ID0gZmFsc2U7CkBAIC02MDMxLDcg KzYwMzEsNyBAQCBEcm9wU3RtdDoJRFJPUCBkcm9wX3R5cGVfYW55X25hbWUg SUZfUCBFWElTVFMgYW55X25hbWVfbGlzdCBvcHRfZHJvcF9iZWhhdmlvcgog CQkJCXsKIAkJCQkJRHJvcFN0bXQgKm4gPSBtYWtlTm9kZShEcm9wU3RtdCk7 CiAJCQkJCW4tPnJlbW92ZVR5cGUgPSAkMjsKLQkJCQkJbi0+bWlzc2luZ19v ayA9IEZBTFNFOworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJ CW4tPm9iamVjdHMgPSAkMzsKIAkJCQkJbi0+YmVoYXZpb3IgPSAkNDsKIAkJ CQkJbi0+Y29uY3VycmVudCA9IGZhbHNlOwpAQCAtNjA0MSw3ICs2MDQxLDcg QEAgRHJvcFN0bXQ6CURST1AgZHJvcF90eXBlX2FueV9uYW1lIElGX1AgRVhJ U1RTIGFueV9uYW1lX2xpc3Qgb3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CiAJ CQkJCURyb3BTdG10ICpuID0gbWFrZU5vZGUoRHJvcFN0bXQpOwogCQkJCQlu LT5yZW1vdmVUeXBlID0gJDI7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBUUlVF OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJbi0+b2JqZWN0 cyA9ICQ1OwogCQkJCQluLT5iZWhhdmlvciA9ICQ2OwogCQkJCQluLT5jb25j dXJyZW50ID0gZmFsc2U7CkBAIC02MDUxLDcgKzYwNTEsNyBAQCBEcm9wU3Rt dDoJRFJPUCBkcm9wX3R5cGVfYW55X25hbWUgSUZfUCBFWElTVFMgYW55X25h bWVfbGlzdCBvcHRfZHJvcF9iZWhhdmlvcgogCQkJCXsKIAkJCQkJRHJvcFN0 bXQgKm4gPSBtYWtlTm9kZShEcm9wU3RtdCk7CiAJCQkJCW4tPnJlbW92ZVR5 cGUgPSAkMjsKLQkJCQkJbi0+bWlzc2luZ19vayA9IEZBTFNFOworCQkJCQlu LT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCW4tPm9iamVjdHMgPSAkMzsK IAkJCQkJbi0+YmVoYXZpb3IgPSAkNDsKIAkJCQkJbi0+Y29uY3VycmVudCA9 IGZhbHNlOwpAQCAtNjA4MSw3ICs2MDgxLDcgQEAgRHJvcFN0bXQ6CURST1Ag ZHJvcF90eXBlX2FueV9uYW1lIElGX1AgRVhJU1RTIGFueV9uYW1lX2xpc3Qg b3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CiAJCQkJCURyb3BTdG10ICpuID0g bWFrZU5vZGUoRHJvcFN0bXQpOwogCQkJCQluLT5yZW1vdmVUeXBlID0gT0JK RUNUX1RZUEU7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBGQUxTRTsKKwkJCQkJ bi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQluLT5vYmplY3RzID0gJDM7 CiAJCQkJCW4tPmJlaGF2aW9yID0gJDQ7CiAJCQkJCW4tPmNvbmN1cnJlbnQg PSBmYWxzZTsKQEAgLTYwOTEsNyArNjA5MSw3IEBAIERyb3BTdG10OglEUk9Q IGRyb3BfdHlwZV9hbnlfbmFtZSBJRl9QIEVYSVNUUyBhbnlfbmFtZV9saXN0 IG9wdF9kcm9wX2JlaGF2aW9yCiAJCQkJewogCQkJCQlEcm9wU3RtdCAqbiA9 IG1ha2VOb2RlKERyb3BTdG10KTsKIAkJCQkJbi0+cmVtb3ZlVHlwZSA9IE9C SkVDVF9UWVBFOwotCQkJCQluLT5taXNzaW5nX29rID0gVFJVRTsKKwkJCQkJ bi0+bWlzc2luZ19vayA9IHRydWU7CiAJCQkJCW4tPm9iamVjdHMgPSAkNTsK IAkJCQkJbi0+YmVoYXZpb3IgPSAkNjsKIAkJCQkJbi0+Y29uY3VycmVudCA9 IGZhbHNlOwpAQCAtNjEwMSw3ICs2MTAxLDcgQEAgRHJvcFN0bXQ6CURST1Ag ZHJvcF90eXBlX2FueV9uYW1lIElGX1AgRVhJU1RTIGFueV9uYW1lX2xpc3Qg b3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CiAJCQkJCURyb3BTdG10ICpuID0g bWFrZU5vZGUoRHJvcFN0bXQpOwogCQkJCQluLT5yZW1vdmVUeXBlID0gT0JK RUNUX0RPTUFJTjsKLQkJCQkJbi0+bWlzc2luZ19vayA9IEZBTFNFOworCQkJ CQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCW4tPm9iamVjdHMgPSAk MzsKIAkJCQkJbi0+YmVoYXZpb3IgPSAkNDsKIAkJCQkJbi0+Y29uY3VycmVu dCA9IGZhbHNlOwpAQCAtNjExMSw3ICs2MTExLDcgQEAgRHJvcFN0bXQ6CURS T1AgZHJvcF90eXBlX2FueV9uYW1lIElGX1AgRVhJU1RTIGFueV9uYW1lX2xp c3Qgb3B0X2Ryb3BfYmVoYXZpb3IKIAkJCQl7CiAJCQkJCURyb3BTdG10ICpu ID0gbWFrZU5vZGUoRHJvcFN0bXQpOwogCQkJCQluLT5yZW1vdmVUeXBlID0g T0JKRUNUX0RPTUFJTjsKLQkJCQkJbi0+bWlzc2luZ19vayA9IFRSVUU7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQluLT5vYmplY3RzID0g JDU7CiAJCQkJCW4tPmJlaGF2aW9yID0gJDY7CiAJCQkJCW4tPmNvbmN1cnJl bnQgPSBmYWxzZTsKQEAgLTYxMjEsNyArNjEyMSw3IEBAIERyb3BTdG10OglE Uk9QIGRyb3BfdHlwZV9hbnlfbmFtZSBJRl9QIEVYSVNUUyBhbnlfbmFtZV9s aXN0IG9wdF9kcm9wX2JlaGF2aW9yCiAJCQkJewogCQkJCQlEcm9wU3RtdCAq biA9IG1ha2VOb2RlKERyb3BTdG10KTsKIAkJCQkJbi0+cmVtb3ZlVHlwZSA9 IE9CSkVDVF9JTkRFWDsKLQkJCQkJbi0+bWlzc2luZ19vayA9IEZBTFNFOwor CQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCW4tPm9iamVjdHMg PSAkNDsKIAkJCQkJbi0+YmVoYXZpb3IgPSAkNTsKIAkJCQkJbi0+Y29uY3Vy cmVudCA9IHRydWU7CkBAIC02MTMxLDcgKzYxMzEsNyBAQCBEcm9wU3RtdDoJ RFJPUCBkcm9wX3R5cGVfYW55X25hbWUgSUZfUCBFWElTVFMgYW55X25hbWVf bGlzdCBvcHRfZHJvcF9iZWhhdmlvcgogCQkJCXsKIAkJCQkJRHJvcFN0bXQg Km4gPSBtYWtlTm9kZShEcm9wU3RtdCk7CiAJCQkJCW4tPnJlbW92ZVR5cGUg PSBPQkpFQ1RfSU5ERVg7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBUUlVFOwor CQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKIAkJCQkJbi0+b2JqZWN0cyA9 ICQ2OwogCQkJCQluLT5iZWhhdmlvciA9ICQ3OwogCQkJCQluLT5jb25jdXJy ZW50ID0gdHJ1ZTsKQEAgLTY1NTMsMTMgKzY1NTMsMTMgQEAgc2VjdXJpdHlf bGFiZWw6CVNjb25zdAkJCQl7ICQkID0gJDE7IH0KIEZldGNoU3RtdDoJRkVU Q0ggZmV0Y2hfYXJncwogCQkJCXsKIAkJCQkJRmV0Y2hTdG10ICpuID0gKEZl dGNoU3RtdCAqKSAkMjsKLQkJCQkJbi0+aXNtb3ZlID0gRkFMU0U7CisJCQkJ CW4tPmlzbW92ZSA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJ CQl9CiAJCQl8IE1PVkUgZmV0Y2hfYXJncwogCQkJCXsKIAkJCQkJRmV0Y2hT dG10ICpuID0gKEZldGNoU3RtdCAqKSAkMjsKLQkJCQkJbi0+aXNtb3ZlID0g VFJVRTsKKwkJCQkJbi0+aXNtb3ZlID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKW47CiAJCQkJfQogCQk7CkBAIC02OTY5LDggKzY5NjksOCBAQCBncmFu dGVlOgogCiAKIG9wdF9ncmFudF9ncmFudF9vcHRpb246Ci0JCQlXSVRIIEdS QU5UIE9QVElPTiB7ICQkID0gVFJVRTsgfQotCQkJfCAvKkVNUFRZKi8geyAk JCA9IEZBTFNFOyB9CisJCQlXSVRIIEdSQU5UIE9QVElPTiB7ICQkID0gdHJ1 ZTsgfQorCQkJfCAvKkVNUFRZKi8geyAkJCA9IGZhbHNlOyB9CiAJCTsKIAog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC03MDE1LDgg KzcwMTUsOCBAQCBSZXZva2VSb2xlU3RtdDoKIAkJCQl9CiAJCTsKIAotb3B0 X2dyYW50X2FkbWluX29wdGlvbjogV0lUSCBBRE1JTiBPUFRJT04JCQkJeyAk JCA9IFRSVUU7IH0KLQkJCXwgLypFTVBUWSovCQkJCQkJCQkJeyAkJCA9IEZB TFNFOyB9CitvcHRfZ3JhbnRfYWRtaW5fb3B0aW9uOiBXSVRIIEFETUlOIE9Q VElPTgkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJ CQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCiBvcHRfZ3JhbnRlZF9ieTogR1JB TlRFRCBCWSBSb2xlU3BlYwkJCQkJCXsgJCQgPSAkMzsgfQpAQCAtNzE3OSwx MyArNzE3OSwxMyBAQCBJbmRleFN0bXQ6CUNSRUFURSBvcHRfdW5pcXVlIElO REVYIG9wdF9jb25jdXJyZW50bHkgb3B0X2luZGV4X25hbWUKIAkJOwogCiBv cHRfdW5pcXVlOgotCQkJVU5JUVVFCQkJCQkJCQkJeyAkJCA9IFRSVUU7IH0K LQkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0KKwkJCVVO SVFVRQkJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJ CQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAogb3B0X2NvbmN1cnJlbnRs eToKLQkJCUNPTkNVUlJFTlRMWQkJCQkJCQl7ICQkID0gVFJVRTsgfQotCQkJ fCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBGQUxTRTsgfQorCQkJQ09OQ1VS UkVOVExZCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJ CQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJCTsKIAogb3B0X2luZGV4X25hbWU6 CkBAIC03MzEzLDggKzczMTMsOCBAQCBDcmVhdGVGdW5jdGlvblN0bXQ6CiAJ CTsKIAogb3B0X29yX3JlcGxhY2U6Ci0JCQlPUiBSRVBMQUNFCQkJCQkJCQl7 ICQkID0gVFJVRTsgfQotCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBG QUxTRTsgfQorCQkJT1IgUkVQTEFDRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0K KwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwog CiBmdW5jX2FyZ3M6CScoJyBmdW5jX2FyZ3NfbGlzdCAnKScJCQkJCXsgJCQg PSAkMjsgfQpAQCAtNzQ4Myw3ICs3NDgzLDcgQEAgZnVuY190eXBlOglUeXBl bmFtZQkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJewogCQkJCQkkJCA9IG1h a2VUeXBlTmFtZUZyb21OYW1lTGlzdChsY29ucyhtYWtlU3RyaW5nKCQyKSwg JDMpKTsKIAkJCQkJJCQtPnBjdF90eXBlID0gdHJ1ZTsKLQkJCQkJJCQtPnNl dG9mID0gVFJVRTsKKwkJCQkJJCQtPnNldG9mID0gdHJ1ZTsKIAkJCQkJJCQt PmxvY2F0aW9uID0gQDI7CiAJCQkJfQogCQk7CkBAIC03NTk5LDE1ICs3NTk5 LDE1IEBAIGNyZWF0ZWZ1bmNfb3B0X2xpc3Q6CiBjb21tb25fZnVuY19vcHRf aXRlbToKIAkJCUNBTExFRCBPTiBOVUxMX1AgSU5QVVRfUAogCQkJCXsKLQkJ CQkJJCQgPSBtYWtlRGVmRWxlbSgic3RyaWN0IiwgKE5vZGUgKiltYWtlSW50 ZWdlcihGQUxTRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxlbSgic3Ry aWN0IiwgKE5vZGUgKiltYWtlSW50ZWdlcihmYWxzZSksIEAxKTsKIAkJCQl9 CiAJCQl8IFJFVFVSTlMgTlVMTF9QIE9OIE5VTExfUCBJTlBVVF9QCiAJCQkJ ewotCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJzdHJpY3QiLCAoTm9kZSAqKW1h a2VJbnRlZ2VyKFRSVUUpLCBAMSk7CisJCQkJCSQkID0gbWFrZURlZkVsZW0o InN0cmljdCIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJ CQl9CiAJCQl8IFNUUklDVF9QCiAJCQkJewotCQkJCQkkJCA9IG1ha2VEZWZF bGVtKCJzdHJpY3QiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCBAMSk7 CisJCQkJCSQkID0gbWFrZURlZkVsZW0oInN0cmljdCIsIChOb2RlICopbWFr ZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJCQl9CiAJCQl8IElNTVVUQUJMRQog CQkJCXsKQEAgLTc2MjMsMjcgKzc2MjMsMjcgQEAgY29tbW9uX2Z1bmNfb3B0 X2l0ZW06CiAJCQkJfQogCQkJfCBFWFRFUk5BTCBTRUNVUklUWSBERUZJTkVS CiAJCQkJewotCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJzZWN1cml0eSIsIChO b2RlICopbWFrZUludGVnZXIoVFJVRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtl RGVmRWxlbSgic2VjdXJpdHkiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUp LCBAMSk7CiAJCQkJfQogCQkJfCBFWFRFUk5BTCBTRUNVUklUWSBJTlZPS0VS CiAJCQkJewotCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJzZWN1cml0eSIsIChO b2RlICopbWFrZUludGVnZXIoRkFMU0UpLCBAMSk7CisJCQkJCSQkID0gbWFr ZURlZkVsZW0oInNlY3VyaXR5IiwgKE5vZGUgKiltYWtlSW50ZWdlcihmYWxz ZSksIEAxKTsKIAkJCQl9CiAJCQl8IFNFQ1VSSVRZIERFRklORVIKIAkJCQl7 Ci0JCQkJCSQkID0gbWFrZURlZkVsZW0oInNlY3VyaXR5IiwgKE5vZGUgKilt YWtlSW50ZWdlcihUUlVFKSwgQDEpOworCQkJCQkkJCA9IG1ha2VEZWZFbGVt KCJzZWN1cml0eSIsIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIEAxKTsK IAkJCQl9CiAJCQl8IFNFQ1VSSVRZIElOVk9LRVIKIAkJCQl7Ci0JCQkJCSQk ID0gbWFrZURlZkVsZW0oInNlY3VyaXR5IiwgKE5vZGUgKiltYWtlSW50ZWdl cihGQUxTRSksIEAxKTsKKwkJCQkJJCQgPSBtYWtlRGVmRWxlbSgic2VjdXJp dHkiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKGZhbHNlKSwgQDEpOwogCQkJCX0K IAkJCXwgTEVBS1BST09GCiAJCQkJewotCQkJCQkkJCA9IG1ha2VEZWZFbGVt KCJsZWFrcHJvb2YiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCBAMSk7 CisJCQkJCSQkID0gbWFrZURlZkVsZW0oImxlYWtwcm9vZiIsIChOb2RlICop bWFrZUludGVnZXIodHJ1ZSksIEAxKTsKIAkJCQl9CiAJCQl8IE5PVCBMRUFL UFJPT0YKIAkJCQl7Ci0JCQkJCSQkID0gbWFrZURlZkVsZW0oImxlYWtwcm9v ZiIsIChOb2RlICopbWFrZUludGVnZXIoRkFMU0UpLCBAMSk7CisJCQkJCSQk ID0gbWFrZURlZkVsZW0oImxlYWtwcm9vZiIsIChOb2RlICopbWFrZUludGVn ZXIoZmFsc2UpLCBAMSk7CiAJCQkJfQogCQkJfCBDT1NUIE51bWVyaWNPbmx5 CiAJCQkJewpAQCAtNzY3OSw3ICs3Njc5LDcgQEAgY3JlYXRlZnVuY19vcHRf aXRlbToKIAkJCQl9CiAJCQl8IFdJTkRPVwogCQkJCXsKLQkJCQkJJCQgPSBt YWtlRGVmRWxlbSgid2luZG93IiwgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVF KSwgQDEpOworCQkJCQkkJCA9IG1ha2VEZWZFbGVtKCJ3aW5kb3ciLCAoTm9k ZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCBAMSk7CiAJCQkJfQogCQkJfCBjb21t b25fZnVuY19vcHRfaXRlbQogCQkJCXsKQEAgLTc5NjgsOCArNzk2OCw4IEBA IERyb3BDYXN0U3RtdDogRFJPUCBDQVNUIG9wdF9pZl9leGlzdHMgJygnIFR5 cGVuYW1lIEFTIFR5cGVuYW1lICcpJyBvcHRfZHJvcF9iZWhhCiAJCQkJfQog CQk7CiAKLW9wdF9pZl9leGlzdHM6IElGX1AgRVhJU1RTCQkJCQkJeyAkJCA9 IFRSVUU7IH0KLQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBGQUxTRTsg fQorb3B0X2lmX2V4aXN0czogSUZfUCBFWElTVFMJCQkJCQl7ICQkID0gdHJ1 ZTsgfQorCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZhbHNlOyB9CiAJ CTsKIAogCkBAIC04MDk3LDcgKzgwOTcsNyBAQCBBbHRlclRibFNwY1N0bXQ6 CiAJCQkJCQltYWtlTm9kZShBbHRlclRhYmxlU3BhY2VPcHRpb25zU3RtdCk7 CiAJCQkJCW4tPnRhYmxlc3BhY2VuYW1lID0gJDM7CiAJCQkJCW4tPm9wdGlv bnMgPSAkNTsKLQkJCQkJbi0+aXNSZXNldCA9IEZBTFNFOworCQkJCQluLT5p c1Jlc2V0ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0K IAkJCXwgQUxURVIgVEFCTEVTUEFDRSBuYW1lIFJFU0VUIHJlbG9wdGlvbnMK QEAgLTgxMDYsNyArODEwNiw3IEBAIEFsdGVyVGJsU3BjU3RtdDoKIAkJCQkJ CW1ha2VOb2RlKEFsdGVyVGFibGVTcGFjZU9wdGlvbnNTdG10KTsKIAkJCQkJ bi0+dGFibGVzcGFjZW5hbWUgPSAkMzsKIAkJCQkJbi0+b3B0aW9ucyA9ICQ1 OwotCQkJCQluLT5pc1Jlc2V0ID0gVFJVRTsKKwkJCQkJbi0+aXNSZXNldCA9 IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJOwpAQCAt OTEzMyw3ICs5MTMzLDcgQEAgQ3JlYXRlUHVibGljYXRpb25TdG10OgogCQkJ CQkJCW4tPnRhYmxlcyA9IChMaXN0ICopJDQ7CiAJCQkJCQkvKiBGT1IgQUxM IFRBQkxFUyAqLwogCQkJCQkJZWxzZQotCQkJCQkJCW4tPmZvcl9hbGxfdGFi bGVzID0gVFJVRTsKKwkJCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7 CiAJCQkJCX0KIAkJCQkJJCQgPSAoTm9kZSAqKW47CiAJCQkJfQpAQCAtOTE1 MSw3ICs5MTUxLDcgQEAgcHVibGljYXRpb25fZm9yX3RhYmxlczoKIAkJCQl9 CiAJCQl8IEZPUiBBTEwgVEFCTEVTCiAJCQkJewotCQkJCQkkJCA9IChOb2Rl ICopIG1ha2VJbnRlZ2VyKFRSVUUpOworCQkJCQkkJCA9IChOb2RlICopIG1h a2VJbnRlZ2VyKHRydWUpOwogCQkJCX0KIAkJOwogCkBAIC05Mjg2LDcgKzky ODYsNyBAQCBBbHRlclN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJCW4tPmtpbmQg PSBBTFRFUl9TVUJTQ1JJUFRJT05fRU5BQkxFRDsKIAkJCQkJbi0+c3VibmFt ZSA9ICQzOwogCQkJCQluLT5vcHRpb25zID0gbGlzdF9tYWtlMShtYWtlRGVm RWxlbSgiZW5hYmxlZCIsCi0JCQkJCQkJCQkJCShOb2RlICopbWFrZUludGVn ZXIoVFJVRSksIEAxKSk7CisJCQkJCQkJCQkJCShOb2RlICopbWFrZUludGVn ZXIodHJ1ZSksIEAxKSk7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0K IAkJCXwgQUxURVIgU1VCU0NSSVBUSU9OIG5hbWUgRElTQUJMRV9QCkBAIC05 Mjk2LDcgKzkyOTYsNyBAQCBBbHRlclN1YnNjcmlwdGlvblN0bXQ6CiAJCQkJ CW4tPmtpbmQgPSBBTFRFUl9TVUJTQ1JJUFRJT05fRU5BQkxFRDsKIAkJCQkJ bi0+c3VibmFtZSA9ICQzOwogCQkJCQluLT5vcHRpb25zID0gbGlzdF9tYWtl MShtYWtlRGVmRWxlbSgiZW5hYmxlZCIsCi0JCQkJCQkJCQkJCShOb2RlICop bWFrZUludGVnZXIoRkFMU0UpLCBAMSkpOworCQkJCQkJCQkJCQkoTm9kZSAq KW1ha2VJbnRlZ2VyKGZhbHNlKSwgQDEpKTsKIAkJCQkJJCQgPSAoTm9kZSAq KW47CiAJCQkJfQogCQk7CkBAIC05Mzg5LDkgKzkzODksOSBAQCBldmVudDoJ CVNFTEVDVAkJCQkJCQkJCXsgJCQgPSBDTURfU0VMRUNUOyB9CiAJCSA7CiAK IG9wdF9pbnN0ZWFkOgotCQkJSU5TVEVBRAkJCQkJCQkJCXsgJCQgPSBUUlVF OyB9Ci0JCQl8IEFMU08JCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0KLQkJCXwg LypFTVBUWSovCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0KKwkJCUlOU1RFQUQJ CQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCBBTFNPCQkJCQkJCQkJeyAk JCA9IGZhbHNlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IGZh bHNlOyB9CiAJCTsKIAogCkBAIC05NTY3LDE2ICs5NTY3LDE2IEBAIHRyYW5z YWN0aW9uX21vZGVfaXRlbToKIAkJCQkJCQkJCSAgIG1ha2VTdHJpbmdDb25z dCgkMywgQDMpLCBAMSk7IH0KIAkJCXwgUkVBRCBPTkxZCiAJCQkJCXsgJCQg PSBtYWtlRGVmRWxlbSgidHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwKLQkJCQkJ CQkJCSAgIG1ha2VJbnRDb25zdChUUlVFLCBAMSksIEAxKTsgfQorCQkJCQkJ CQkJICAgbWFrZUludENvbnN0KHRydWUsIEAxKSwgQDEpOyB9CiAJCQl8IFJF QUQgV1JJVEUKIAkJCQkJeyAkJCA9IG1ha2VEZWZFbGVtKCJ0cmFuc2FjdGlv bl9yZWFkX29ubHkiLAotCQkJCQkJCQkJICAgbWFrZUludENvbnN0KEZBTFNF LCBAMSksIEAxKTsgfQorCQkJCQkJCQkJICAgbWFrZUludENvbnN0KGZhbHNl LCBAMSksIEAxKTsgfQogCQkJfCBERUZFUlJBQkxFCiAJCQkJCXsgJCQgPSBt YWtlRGVmRWxlbSgidHJhbnNhY3Rpb25fZGVmZXJyYWJsZSIsCi0JCQkJCQkJ CQkgICBtYWtlSW50Q29uc3QoVFJVRSwgQDEpLCBAMSk7IH0KKwkJCQkJCQkJ CSAgIG1ha2VJbnRDb25zdCh0cnVlLCBAMSksIEAxKTsgfQogCQkJfCBOT1Qg REVGRVJSQUJMRQogCQkJCQl7ICQkID0gbWFrZURlZkVsZW0oInRyYW5zYWN0 aW9uX2RlZmVycmFibGUiLAotCQkJCQkJCQkJICAgbWFrZUludENvbnN0KEZB TFNFLCBAMSksIEAxKTsgfQorCQkJCQkJCQkJICAgbWFrZUludENvbnN0KGZh bHNlLCBAMSksIEAxKTsgfQogCQk7CiAKIC8qIFN5bnRheCB3aXRoIGNvbW1h cyBpcyBTUUwtc3BlYywgd2l0aG91dCBjb21tYXMgaXMgUG9zdGdyZXMgaGlz dG9yaWNhbCAqLwpAQCAtOTgxNSwxNCArOTgxNSwxNCBAQCBEcm9wZGJTdG10 OiBEUk9QIERBVEFCQVNFIGRhdGFiYXNlX25hbWUKIAkJCQl7CiAJCQkJCURy b3BkYlN0bXQgKm4gPSBtYWtlTm9kZShEcm9wZGJTdG10KTsKIAkJCQkJbi0+ ZGJuYW1lID0gJDM7Ci0JCQkJCW4tPm1pc3Npbmdfb2sgPSBGQUxTRTsKKwkJ CQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICop bjsKIAkJCQl9CiAJCQl8IERST1AgREFUQUJBU0UgSUZfUCBFWElTVFMgZGF0 YWJhc2VfbmFtZQogCQkJCXsKIAkJCQkJRHJvcGRiU3RtdCAqbiA9IG1ha2VO b2RlKERyb3BkYlN0bXQpOwogCQkJCQluLT5kYm5hbWUgPSAkNTsKLQkJCQkJ bi0+bWlzc2luZ19vayA9IFRSVUU7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0 cnVlOwogCQkJCQkkJCA9IChOb2RlICopbjsKIAkJCQl9CiAJCTsKQEAgLTEw MjI5LDE2ICsxMDIyOSwxNiBAQCBhbmFseXplX2tleXdvcmQ6CiAJCTsKIAog b3B0X3ZlcmJvc2U6Ci0JCQlWRVJCT1NFCQkJCQkJCQkJeyAkJCA9IFRSVUU7 IH0KLQkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0KKwkJ CVZFUkJPU0UJCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZ Ki8JCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKLW9wdF9mdWxsOglG VUxMCQkJCQkJCQkJeyAkJCA9IFRSVUU7IH0KLQkJCXwgLypFTVBUWSovCQkJ CQkJCQl7ICQkID0gRkFMU0U7IH0KK29wdF9mdWxsOglGVUxMCQkJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0g ZmFsc2U7IH0KIAkJOwogCi1vcHRfZnJlZXplOiBGUkVFWkUJCQkJCQkJCQl7 ICQkID0gVFJVRTsgfQotCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBG QUxTRTsgfQorb3B0X2ZyZWV6ZTogRlJFRVpFCQkJCQkJCQkJeyAkJCA9IHRy dWU7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0K IAkJOwogCiBvcHRfbmFtZV9saXN0OgpAQCAtMTA2MzYsOCArMTA2MzYsOCBA QCBsb2NrX3R5cGU6CUFDQ0VTUyBTSEFSRQkJCQkJeyAkJCA9IEFjY2Vzc1No YXJlTG9jazsgfQogCQkJfCBBQ0NFU1MgRVhDTFVTSVZFCQkJCXsgJCQgPSBB Y2Nlc3NFeGNsdXNpdmVMb2NrOyB9CiAJCTsKIAotb3B0X25vd2FpdDoJTk9X QUlUCQkJCQkJCXsgJCQgPSBUUlVFOyB9Ci0JCQl8IC8qRU1QVFkqLwkJCQkJ CXsgJCQgPSBGQUxTRTsgfQorb3B0X25vd2FpdDoJTk9XQUlUCQkJCQkJCXsg JCQgPSB0cnVlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCXsgJCQgPSBmYWxz ZTsgfQogCQk7CiAKIG9wdF9ub3dhaXRfb3Jfc2tpcDoKQEAgLTExMTA0LDkg KzExMTA0LDkgQEAgb3B0X3RhYmxlOglUQUJMRQkJCQkJCQkJCXt9CiAJCTsK IAogYWxsX29yX2Rpc3RpbmN0OgotCQkJQUxMCQkJCQkJCQkJCXsgJCQgPSBU UlVFOyB9Ci0JCQl8IERJU1RJTkNUCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0K LQkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gRkFMU0U7IH0KKwkJCUFM TAkJCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCBESVNUSU5DVAkJCQkJ CQkJeyAkJCA9IGZhbHNlOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAk JCA9IGZhbHNlOyB9CiAJCTsKIAogLyogV2UgdXNlIChOSUwpIGFzIGEgcGxh Y2Vob2xkZXIgdG8gaW5kaWNhdGUgdGhhdCBhbGwgdGFyZ2V0IGV4cHJlc3Np b25zCkBAIC0xMTUzNSw3ICsxMTUzNSw3IEBAIGpvaW5lZF90YWJsZToKIAkJ CQkJLyogQ1JPU1MgSk9JTiBpcyBzYW1lIGFzIHVucXVhbGlmaWVkIGlubmVy IGpvaW4gKi8KIAkJCQkJSm9pbkV4cHIgKm4gPSBtYWtlTm9kZShKb2luRXhw cik7CiAJCQkJCW4tPmpvaW50eXBlID0gSk9JTl9JTk5FUjsKLQkJCQkJbi0+ aXNOYXR1cmFsID0gRkFMU0U7CisJCQkJCW4tPmlzTmF0dXJhbCA9IGZhbHNl OwogCQkJCQluLT5sYXJnID0gJDE7CiAJCQkJCW4tPnJhcmcgPSAkNDsKIAkJ CQkJbi0+dXNpbmdDbGF1c2UgPSBOSUw7CkBAIC0xMTU0Niw3ICsxMTU0Niw3 IEBAIGpvaW5lZF90YWJsZToKIAkJCQl7CiAJCQkJCUpvaW5FeHByICpuID0g bWFrZU5vZGUoSm9pbkV4cHIpOwogCQkJCQluLT5qb2ludHlwZSA9ICQyOwot CQkJCQluLT5pc05hdHVyYWwgPSBGQUxTRTsKKwkJCQkJbi0+aXNOYXR1cmFs ID0gZmFsc2U7CiAJCQkJCW4tPmxhcmcgPSAkMTsKIAkJCQkJbi0+cmFyZyA9 ICQ0OwogCQkJCQlpZiAoJDUgIT0gTlVMTCAmJiBJc0EoJDUsIExpc3QpKQpA QCAtMTE1NjAsNyArMTE1NjAsNyBAQCBqb2luZWRfdGFibGU6CiAJCQkJCS8q IGxldHRpbmcgam9pbl90eXBlIHJlZHVjZSB0byBlbXB0eSBkb2Vzbid0IHdv cmsgKi8KIAkJCQkJSm9pbkV4cHIgKm4gPSBtYWtlTm9kZShKb2luRXhwcik7 CiAJCQkJCW4tPmpvaW50eXBlID0gSk9JTl9JTk5FUjsKLQkJCQkJbi0+aXNO YXR1cmFsID0gRkFMU0U7CisJCQkJCW4tPmlzTmF0dXJhbCA9IGZhbHNlOwog CQkJCQluLT5sYXJnID0gJDE7CiAJCQkJCW4tPnJhcmcgPSAkMzsKIAkJCQkJ aWYgKCQ0ICE9IE5VTEwgJiYgSXNBKCQ0LCBMaXN0KSkKQEAgLTExNTczLDcg KzExNTczLDcgQEAgam9pbmVkX3RhYmxlOgogCQkJCXsKIAkJCQkJSm9pbkV4 cHIgKm4gPSBtYWtlTm9kZShKb2luRXhwcik7CiAJCQkJCW4tPmpvaW50eXBl ID0gJDM7Ci0JCQkJCW4tPmlzTmF0dXJhbCA9IFRSVUU7CisJCQkJCW4tPmlz TmF0dXJhbCA9IHRydWU7CiAJCQkJCW4tPmxhcmcgPSAkMTsKIAkJCQkJbi0+ cmFyZyA9ICQ1OwogCQkJCQluLT51c2luZ0NsYXVzZSA9IE5JTDsgLyogZmln dXJlIG91dCB3aGljaCBjb2x1bW5zIGxhdGVyLi4uICovCkBAIC0xMTU4NSw3 ICsxMTU4NSw3IEBAIGpvaW5lZF90YWJsZToKIAkJCQkJLyogbGV0dGluZyBq b2luX3R5cGUgcmVkdWNlIHRvIGVtcHR5IGRvZXNuJ3Qgd29yayAqLwogCQkJ CQlKb2luRXhwciAqbiA9IG1ha2VOb2RlKEpvaW5FeHByKTsKIAkJCQkJbi0+ am9pbnR5cGUgPSBKT0lOX0lOTkVSOwotCQkJCQluLT5pc05hdHVyYWwgPSBU UlVFOworCQkJCQluLT5pc05hdHVyYWwgPSB0cnVlOwogCQkJCQluLT5sYXJn ID0gJDE7CiAJCQkJCW4tPnJhcmcgPSAkNDsKIAkJCQkJbi0+dXNpbmdDbGF1 c2UgPSBOSUw7IC8qIGZpZ3VyZSBvdXQgd2hpY2ggY29sdW1ucyBsYXRlci4u LiAqLwpAQCAtMTIwNTUsNyArMTIwNTUsNyBAQCBUeXBlbmFtZToJU2ltcGxl VHlwZW5hbWUgb3B0X2FycmF5X2JvdW5kcwogCQkJCXsKIAkJCQkJJCQgPSAk MjsKIAkJCQkJJCQtPmFycmF5Qm91bmRzID0gJDM7Ci0JCQkJCSQkLT5zZXRv ZiA9IFRSVUU7CisJCQkJCSQkLT5zZXRvZiA9IHRydWU7CiAJCQkJfQogCQkJ LyogU1FMIHN0YW5kYXJkIHN5bnRheCwgY3VycmVudGx5IG9ubHkgb25lLWRp bWVuc2lvbmFsICovCiAJCQl8IFNpbXBsZVR5cGVuYW1lIEFSUkFZICdbJyBJ Y29uc3QgJ10nCkBAIC0xMjA2Nyw3ICsxMjA2Nyw3IEBAIFR5cGVuYW1lOglT aW1wbGVUeXBlbmFtZSBvcHRfYXJyYXlfYm91bmRzCiAJCQkJewogCQkJCQkk JCA9ICQyOwogCQkJCQkkJC0+YXJyYXlCb3VuZHMgPSBsaXN0X21ha2UxKG1h a2VJbnRlZ2VyKCQ1KSk7Ci0JCQkJCSQkLT5zZXRvZiA9IFRSVUU7CisJCQkJ CSQkLT5zZXRvZiA9IHRydWU7CiAJCQkJfQogCQkJfCBTaW1wbGVUeXBlbmFt ZSBBUlJBWQogCQkJCXsKQEAgLTEyMDc4LDcgKzEyMDc4LDcgQEAgVHlwZW5h bWU6CVNpbXBsZVR5cGVuYW1lIG9wdF9hcnJheV9ib3VuZHMKIAkJCQl7CiAJ CQkJCSQkID0gJDI7CiAJCQkJCSQkLT5hcnJheUJvdW5kcyA9IGxpc3RfbWFr ZTEobWFrZUludGVnZXIoLTEpKTsKLQkJCQkJJCQtPnNldG9mID0gVFJVRTsK KwkJCQkJJCQtPnNldG9mID0gdHJ1ZTsKIAkJCQl9CiAJCTsKIApAQCAtMTIz NjUsOCArMTIzNjUsOCBAQCBjaGFyYWN0ZXI6CUNIQVJBQ1RFUiBvcHRfdmFy eWluZwogCQk7CiAKIG9wdF92YXJ5aW5nOgotCQkJVkFSWUlORwkJCQkJCQkJ CXsgJCQgPSBUUlVFOyB9Ci0JCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9 IEZBTFNFOyB9CisJCQlWQVJZSU5HCQkJCQkJCQkJeyAkJCA9IHRydWU7IH0K KwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwog CiAvKgpAQCAtMTI0MTgsOSArMTI0MTgsOSBAQCBDb25zdEludGVydmFsOgog CQk7CiAKIG9wdF90aW1lem9uZToKLQkJCVdJVEhfTEEgVElNRSBaT05FCQkJ CQkJeyAkJCA9IFRSVUU7IH0KLQkJCXwgV0lUSE9VVCBUSU1FIFpPTkUJCQkJ CQl7ICQkID0gRkFMU0U7IH0KLQkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQk ID0gRkFMU0U7IH0KKwkJCVdJVEhfTEEgVElNRSBaT05FCQkJCQkJeyAkJCA9 IHRydWU7IH0KKwkJCXwgV0lUSE9VVCBUSU1FIFpPTkUJCQkJCQl7ICQkID0g ZmFsc2U7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7 IH0KIAkJOwogCiBvcHRfaW50ZXJ2YWw6CkBAIC0xMzE4MSwxNCArMTMxODEs MTQgQEAgZnVuY19hcHBsaWNhdGlvbjogZnVuY19uYW1lICcoJyAnKScKIAkJ CXwgZnVuY19uYW1lICcoJyBWQVJJQURJQyBmdW5jX2FyZ19leHByIG9wdF9z b3J0X2NsYXVzZSAnKScKIAkJCQl7CiAJCQkJCUZ1bmNDYWxsICpuID0gbWFr ZUZ1bmNDYWxsKCQxLCBsaXN0X21ha2UxKCQ0KSwgQDEpOwotCQkJCQluLT5m dW5jX3ZhcmlhZGljID0gVFJVRTsKKwkJCQkJbi0+ZnVuY192YXJpYWRpYyA9 IHRydWU7CiAJCQkJCW4tPmFnZ19vcmRlciA9ICQ1OwogCQkJCQkkJCA9IChO b2RlICopbjsKIAkJCQl9CiAJCQl8IGZ1bmNfbmFtZSAnKCcgZnVuY19hcmdf bGlzdCAnLCcgVkFSSUFESUMgZnVuY19hcmdfZXhwciBvcHRfc29ydF9jbGF1 c2UgJyknCiAJCQkJewogCQkJCQlGdW5jQ2FsbCAqbiA9IG1ha2VGdW5jQ2Fs bCgkMSwgbGFwcGVuZCgkMywgJDYpLCBAMSk7Ci0JCQkJCW4tPmZ1bmNfdmFy aWFkaWMgPSBUUlVFOworCQkJCQluLT5mdW5jX3ZhcmlhZGljID0gdHJ1ZTsK IAkJCQkJbi0+YWdnX29yZGVyID0gJDc7CiAJCQkJCSQkID0gKE5vZGUgKilu OwogCQkJCX0KQEAgLTEzMjA2LDcgKzEzMjA2LDcgQEAgZnVuY19hcHBsaWNh dGlvbjogZnVuY19uYW1lICcoJyAnKScKIAkJCQl7CiAJCQkJCUZ1bmNDYWxs ICpuID0gbWFrZUZ1bmNDYWxsKCQxLCAkNCwgQDEpOwogCQkJCQluLT5hZ2df b3JkZXIgPSAkNTsKLQkJCQkJbi0+YWdnX2Rpc3RpbmN0ID0gVFJVRTsKKwkJ CQkJbi0+YWdnX2Rpc3RpbmN0ID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAq KW47CiAJCQkJfQogCQkJfCBmdW5jX25hbWUgJygnICcqJyAnKScKQEAgLTEz MjIyLDcgKzEzMjIyLDcgQEAgZnVuY19hcHBsaWNhdGlvbjogZnVuY19uYW1l ICcoJyAnKScKIAkJCQkJICogcmVhbGx5IHdhcy4KIAkJCQkJICovCiAJCQkJ CUZ1bmNDYWxsICpuID0gbWFrZUZ1bmNDYWxsKCQxLCBOSUwsIEAxKTsKLQkJ CQkJbi0+YWdnX3N0YXIgPSBUUlVFOworCQkJCQluLT5hZ2dfc3RhciA9IHRy dWU7CiAJCQkJCSQkID0gKE5vZGUgKiluOwogCQkJCX0KIAkJOwpAQCAtMTMy NjYsNyArMTMyNjYsNyBAQCBmdW5jX2V4cHI6IGZ1bmNfYXBwbGljYXRpb24g d2l0aGluX2dyb3VwX2NsYXVzZSBmaWx0ZXJfY2xhdXNlIG92ZXJfY2xhdXNl CiAJCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIFZBUklBRElDIHdpdGgg V0lUSElOIEdST1VQIiksCiAJCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KEAyKSkpOwogCQkJCQkJbi0+YWdnX29yZGVyID0gJDI7Ci0JCQkJCQluLT5h Z2dfd2l0aGluX2dyb3VwID0gVFJVRTsKKwkJCQkJCW4tPmFnZ193aXRoaW5f Z3JvdXAgPSB0cnVlOwogCQkJCQl9CiAJCQkJCW4tPmFnZ19maWx0ZXIgPSAk MzsKIAkJCQkJbi0+b3ZlciA9ICQ0OwpAQCAtMTM1NTYsOSArMTM1NTYsOSBA QCBkb2N1bWVudF9vcl9jb250ZW50OiBET0NVTUVOVF9QCQkJCQkJeyAkJCA9 IFhNTE9QVElPTl9ET0NVTUVOVDsgfQogCQkJfCBDT05URU5UX1AJCQkJCQkJ CXsgJCQgPSBYTUxPUFRJT05fQ09OVEVOVDsgfQogCQk7CiAKLXhtbF93aGl0 ZXNwYWNlX29wdGlvbjogUFJFU0VSVkUgV0hJVEVTUEFDRV9QCQl7ICQkID0g VFJVRTsgfQotCQkJfCBTVFJJUF9QIFdISVRFU1BBQ0VfUAkJCQkJeyAkJCA9 IEZBTFNFOyB9Ci0JCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IEZBTFNF OyB9Cit4bWxfd2hpdGVzcGFjZV9vcHRpb246IFBSRVNFUlZFIFdISVRFU1BB Q0VfUAkJeyAkJCA9IHRydWU7IH0KKwkJCXwgU1RSSVBfUCBXSElURVNQQUNF X1AJCQkJCXsgJCQgPSBmYWxzZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJ CXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKIC8qIFdlIGFsbG93IHNldmVyYWwg dmFyaWFudHMgZm9yIFNRTCBhbmQgb3RoZXIgY29tcGF0aWJpbGl0eS4gKi8K QEAgLTE0NDMwLDExICsxNDQzMCwxMSBAQCBBZXhwckNvbnN0OiBJY29uc3QK IAkJCQl9CiAJCQl8IFRSVUVfUAogCQkJCXsKLQkJCQkJJCQgPSBtYWtlQm9v bEFDb25zdChUUlVFLCBAMSk7CisJCQkJCSQkID0gbWFrZUJvb2xBQ29uc3Qo dHJ1ZSwgQDEpOwogCQkJCX0KIAkJCXwgRkFMU0VfUAogCQkJCXsKLQkJCQkJ JCQgPSBtYWtlQm9vbEFDb25zdChGQUxTRSwgQDEpOworCQkJCQkkJCA9IG1h a2VCb29sQUNvbnN0KGZhbHNlLCBAMSk7CiAJCQkJfQogCQkJfCBOVUxMX1AK IAkJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQu YwppbmRleCA0OTViYTNkZmZjLi5hYmMwOGJhOWRkIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTYyNyw3ICs2Mjcs NyBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRDb250 ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCQkJCQkJCQkJY29sdW1u LT5jb2xuYW1lLCBjeHQtPnJlbGF0aW9uLT5yZWxuYW1lKSwKIAkJCQkJCQkg cGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRlLAogCQkJCQkJCQkJCQkJ Y29uc3RyYWludC0+bG9jYXRpb24pKSk7Ci0JCQkJY29sdW1uLT5pc19ub3Rf bnVsbCA9IEZBTFNFOworCQkJCWNvbHVtbi0+aXNfbm90X251bGwgPSBmYWxz ZTsKIAkJCQlzYXdfbnVsbGFibGUgPSB0cnVlOwogCQkJCWJyZWFrOwogCkBA IC02MzksNyArNjM5LDcgQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihD cmVhdGVTdG10Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJ CQkJCQkJCWNvbHVtbi0+Y29sbmFtZSwgY3h0LT5yZWxhdGlvbi0+cmVsbmFt ZSksCiAJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihjeHQtPnBzdGF0ZSwK IAkJCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOwotCQkJCWNv bHVtbi0+aXNfbm90X251bGwgPSBUUlVFOworCQkJCWNvbHVtbi0+aXNfbm90 X251bGwgPSB0cnVlOwogCQkJCXNhd19udWxsYWJsZSA9IHRydWU7CiAJCQkJ YnJlYWs7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCB0cmFuc2Zvcm1Db2x1bW5E ZWZpbml0aW9uKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIENvbHVtbkRlZiAq Y29sdW1uKQogCiAJCQkJCWNvbHVtbi0+aWRlbnRpdHkgPSBjb25zdHJhaW50 LT5nZW5lcmF0ZWRfd2hlbjsKIAkJCQkJc2F3X2lkZW50aXR5ID0gdHJ1ZTsK LQkJCQkJY29sdW1uLT5pc19ub3RfbnVsbCA9IFRSVUU7CisJCQkJCWNvbHVt bi0+aXNfbm90X251bGwgPSB0cnVlOwogCQkJCQlicmVhazsKIAkJCQl9CiAK QEAgLTIwMDcsNyArMjAwNyw3IEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWlu dChDb25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAq Y3h0KQogCQl7CiAJCQkvKiBmb3VuZCBjb2x1bW4gaW4gdGhlIG5ldyB0YWJs ZTsgZm9yY2UgaXQgdG8gYmUgTk9UIE5VTEwgKi8KIAkJCWlmIChjb25zdHJh aW50LT5jb250eXBlID09IENPTlNUUl9QUklNQVJZKQotCQkJCWNvbHVtbi0+ aXNfbm90X251bGwgPSBUUlVFOworCQkJCWNvbHVtbi0+aXNfbm90X251bGwg PSB0cnVlOwogCQl9CiAJCWVsc2UgaWYgKFN5c3RlbUF0dHJpYnV0ZUJ5TmFt ZShrZXksIGN4dC0+aGFzb2lkcykgIT0gTlVMTCkKIAkJewpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcmVwbF9ncmFtLnkgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9yZXBsX2dyYW0ueQppbmRleCBlYzA0N2M4 MjdjLi5jMmU4NDc5ODIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9yZXBsX2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9yZXBsX2dyYW0ueQpAQCAtMTgwLDIyICsxODAsMjIgQEAgYmFzZV9i YWNrdXBfb3B0OgogCQkJfCBLX1BST0dSRVNTCiAJCQkJewogCQkJCSAgJCQg PSBtYWtlRGVmRWxlbSgicHJvZ3Jlc3MiLAotCQkJCQkJCQkgICAoTm9kZSAq KW1ha2VJbnRlZ2VyKFRSVUUpLCAtMSk7CisJCQkJCQkJCSAgIChOb2RlICop bWFrZUludGVnZXIodHJ1ZSksIC0xKTsKIAkJCQl9CiAJCQl8IEtfRkFTVAog CQkJCXsKIAkJCQkgICQkID0gbWFrZURlZkVsZW0oImZhc3QiLAotCQkJCQkJ CQkgICAoTm9kZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCAtMSk7CisJCQkJCQkJ CSAgIChOb2RlICopbWFrZUludGVnZXIodHJ1ZSksIC0xKTsKIAkJCQl9CiAJ CQl8IEtfV0FMCiAJCQkJewogCQkJCSAgJCQgPSBtYWtlRGVmRWxlbSgid2Fs IiwKLQkJCQkJCQkJICAgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVFKSwgLTEp OworCQkJCQkJCQkgICAoTm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCAtMSk7 CiAJCQkJfQogCQkJfCBLX05PV0FJVAogCQkJCXsKIAkJCQkgICQkID0gbWFr ZURlZkVsZW0oIm5vd2FpdCIsCi0JCQkJCQkJCSAgIChOb2RlICopbWFrZUlu dGVnZXIoVFJVRSksIC0xKTsKKwkJCQkJCQkJICAgKE5vZGUgKiltYWtlSW50 ZWdlcih0cnVlKSwgLTEpOwogCQkJCX0KIAkJCXwgS19NQVhfUkFURSBVQ09O U1QKIAkJCQl7CkBAIC0yMDUsNyArMjA1LDcgQEAgYmFzZV9iYWNrdXBfb3B0 OgogCQkJfCBLX1RBQkxFU1BBQ0VfTUFQCiAJCQkJewogCQkJCSAgJCQgPSBt YWtlRGVmRWxlbSgidGFibGVzcGFjZV9tYXAiLAotCQkJCQkJCQkgICAoTm9k ZSAqKW1ha2VJbnRlZ2VyKFRSVUUpLCAtMSk7CisJCQkJCQkJCSAgIChOb2Rl ICopbWFrZUludGVnZXIodHJ1ZSksIC0xKTsKIAkJCQl9CiAJCQk7CiAKQEAg LTI0NiwyMiArMjQ2LDIyIEBAIGNyZWF0ZV9zbG90X29wdDoKIAkJCUtfRVhQ T1JUX1NOQVBTSE9UCiAJCQkJewogCQkJCSAgJCQgPSBtYWtlRGVmRWxlbSgi ZXhwb3J0X3NuYXBzaG90IiwKLQkJCQkJCQkJICAgKE5vZGUgKiltYWtlSW50 ZWdlcihUUlVFKSwgLTEpOworCQkJCQkJCQkgICAoTm9kZSAqKW1ha2VJbnRl Z2VyKHRydWUpLCAtMSk7CiAJCQkJfQogCQkJfCBLX05PRVhQT1JUX1NOQVBT SE9UCiAJCQkJewogCQkJCSAgJCQgPSBtYWtlRGVmRWxlbSgiZXhwb3J0X3Nu YXBzaG90IiwKLQkJCQkJCQkJICAgKE5vZGUgKiltYWtlSW50ZWdlcihGQUxT RSksIC0xKTsKKwkJCQkJCQkJICAgKE5vZGUgKiltYWtlSW50ZWdlcihmYWxz ZSksIC0xKTsKIAkJCQl9CiAJCQl8IEtfVVNFX1NOQVBTSE9UCiAJCQkJewog CQkJCSAgJCQgPSBtYWtlRGVmRWxlbSgidXNlX3NuYXBzaG90IiwKLQkJCQkJ CQkJICAgKE5vZGUgKiltYWtlSW50ZWdlcihUUlVFKSwgLTEpOworCQkJCQkJ CQkgICAoTm9kZSAqKW1ha2VJbnRlZ2VyKHRydWUpLCAtMSk7CiAJCQkJfQog CQkJfCBLX1JFU0VSVkVfV0FMCiAJCQkJewogCQkJCSAgJCQgPSBtYWtlRGVm RWxlbSgicmVzZXJ2ZV93YWwiLAotCQkJCQkJCQkgICAoTm9kZSAqKW1ha2VJ bnRlZ2VyKFRSVUUpLCAtMSk7CisJCQkJCQkJCSAgIChOb2RlICopbWFrZUlu dGVnZXIodHJ1ZSksIC0xKTsKIAkJCQl9CiAJCQk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2J1Zm1nci5jIGIvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMKaW5kZXggMTU3OTViMGM1 YS4uNTcyZjQxM2Q2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFn ZS9idWZmZXIvYnVmbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9i dWZmZXIvYnVmbWdyLmMKQEAgLTk3NSw3ICs5NzUsNyBAQCBSZWFkQnVmZmVy X2NvbW1vbihTTWdyUmVsYXRpb24gc21nciwgY2hhciByZWxwZXJzaXN0ZW5j ZSwgRm9ya051bWJlciBmb3JrTnVtLAogICoKICAqIFRoZSByZXR1cm5lZCBi dWZmZXIgaXMgcGlubmVkIGFuZCBpcyBhbHJlYWR5IG1hcmtlZCBhcyBob2xk aW5nIHRoZQogICogZGVzaXJlZCBwYWdlLiAgSWYgaXQgYWxyZWFkeSBkaWQg aGF2ZSB0aGUgZGVzaXJlZCBwYWdlLCAqZm91bmRQdHIgaXMKLSAqIHNldCBU UlVFLiAgT3RoZXJ3aXNlLCAqZm91bmRQdHIgaXMgc2V0IEZBTFNFIGFuZCB0 aGUgYnVmZmVyIGlzIG1hcmtlZAorICogc2V0IHRydWUuICBPdGhlcndpc2Us ICpmb3VuZFB0ciBpcyBzZXQgZmFsc2UgYW5kIHRoZSBidWZmZXIgaXMgbWFy a2VkCiAgKiBhcyBJT19JTl9QUk9HUkVTUzsgUmVhZEJ1ZmZlciB3aWxsIG5v dyBuZWVkIHRvIGRvIEkvTyB0byBmaWxsIGl0LgogICoKICAqICpmb3VuZFB0 ciBpcyBhY3R1YWxseSByZWR1bmRhbnQgd2l0aCB0aGUgYnVmZmVyJ3MgQk1f VkFMSUQgZmxhZywgYnV0CkBAIC0xMDI1LDcgKzEwMjUsNyBAQCBCdWZmZXJB bGxvYyhTTWdyUmVsYXRpb24gc21nciwgY2hhciByZWxwZXJzaXN0ZW5jZSwg Rm9ya051bWJlciBmb3JrTnVtLAogCQkvKiBDYW4gcmVsZWFzZSB0aGUgbWFw cGluZyBsb2NrIGFzIHNvb24gYXMgd2UndmUgcGlubmVkIGl0ICovCiAJCUxX TG9ja1JlbGVhc2UobmV3UGFydGl0aW9uTG9jayk7CiAKLQkJKmZvdW5kUHRy ID0gVFJVRTsKKwkJKmZvdW5kUHRyID0gdHJ1ZTsKIAogCQlpZiAoIXZhbGlk KQogCQl7CkBAIC0xMDQyLDcgKzEwNDIsNyBAQCBCdWZmZXJBbGxvYyhTTWdy UmVsYXRpb24gc21nciwgY2hhciByZWxwZXJzaXN0ZW5jZSwgRm9ya051bWJl ciBmb3JrTnVtLAogCQkJCSAqIElmIHdlIGdldCBoZXJlLCBwcmV2aW91cyBh dHRlbXB0cyB0byByZWFkIHRoZSBidWZmZXIgbXVzdAogCQkJCSAqIGhhdmUg ZmFpbGVkIC4uLiBidXQgd2Ugc2hhbGwgYnJhdmVseSB0cnkgYWdhaW4uCiAJ CQkJICovCi0JCQkJKmZvdW5kUHRyID0gRkFMU0U7CisJCQkJKmZvdW5kUHRy ID0gZmFsc2U7CiAJCQl9CiAJCX0KIApAQCAtMTIzNyw3ICsxMjM3LDcgQEAg QnVmZmVyQWxsb2MoU01nclJlbGF0aW9uIHNtZ3IsIGNoYXIgcmVscGVyc2lz dGVuY2UsIEZvcmtOdW1iZXIgZm9ya051bSwKIAkJCS8qIENhbiByZWxlYXNl IHRoZSBtYXBwaW5nIGxvY2sgYXMgc29vbiBhcyB3ZSd2ZSBwaW5uZWQgaXQg Ki8KIAkJCUxXTG9ja1JlbGVhc2UobmV3UGFydGl0aW9uTG9jayk7CiAKLQkJ CSpmb3VuZFB0ciA9IFRSVUU7CisJCQkqZm91bmRQdHIgPSB0cnVlOwogCiAJ CQlpZiAoIXZhbGlkKQogCQkJewpAQCAtMTI1NCw3ICsxMjU0LDcgQEAgQnVm ZmVyQWxsb2MoU01nclJlbGF0aW9uIHNtZ3IsIGNoYXIgcmVscGVyc2lzdGVu Y2UsIEZvcmtOdW1iZXIgZm9ya051bSwKIAkJCQkJICogSWYgd2UgZ2V0IGhl cmUsIHByZXZpb3VzIGF0dGVtcHRzIHRvIHJlYWQgdGhlIGJ1ZmZlcgogCQkJ CQkgKiBtdXN0IGhhdmUgZmFpbGVkIC4uLiBidXQgd2Ugc2hhbGwgYnJhdmVs eSB0cnkgYWdhaW4uCiAJCQkJCSAqLwotCQkJCQkqZm91bmRQdHIgPSBGQUxT RTsKKwkJCQkJKmZvdW5kUHRyID0gZmFsc2U7CiAJCQkJfQogCQkJfQogCkBA IC0xMzI0LDkgKzEzMjQsOSBAQCBCdWZmZXJBbGxvYyhTTWdyUmVsYXRpb24g c21nciwgY2hhciByZWxwZXJzaXN0ZW5jZSwgRm9ya051bWJlciBmb3JrTnVt LAogCSAqIHJlYWQgaXQgYmVmb3JlIHdlIGRpZCwgc28gdGhlcmUncyBub3Ro aW5nIGxlZnQgZm9yIEJ1ZmZlckFsbG9jKCkgdG8gZG8uCiAJICovCiAJaWYg KFN0YXJ0QnVmZmVySU8oYnVmLCB0cnVlKSkKLQkJKmZvdW5kUHRyID0gRkFM U0U7CisJCSpmb3VuZFB0ciA9IGZhbHNlOwogCWVsc2UKLQkJKmZvdW5kUHRy ID0gVFJVRTsKKwkJKmZvdW5kUHRyID0gdHJ1ZTsKIAogCXJldHVybiBidWY7 CiB9CkBAIC0xNTY0LDcgKzE1NjQsNyBAQCBSZWxlYXNlQW5kUmVhZEJ1ZmZl cihCdWZmZXIgYnVmZmVyLAogICoKICAqIE5vdGUgdGhhdCBSZXNvdXJjZU93 bmVyRW5sYXJnZUJ1ZmZlcnMgbXVzdCBoYXZlIGJlZW4gZG9uZSBhbHJlYWR5 LgogICoKLSAqIFJldHVybnMgVFJVRSBpZiBidWZmZXIgaXMgQk1fVkFMSUQs IGVsc2UgRkFMU0UuICBUaGlzIHByb3Zpc2lvbiBhbGxvd3MKKyAqIFJldHVy bnMgdHJ1ZSBpZiBidWZmZXIgaXMgQk1fVkFMSUQsIGVsc2UgZmFsc2UuICBU aGlzIHByb3Zpc2lvbiBhbGxvd3MKICAqIHNvbWUgY2FsbGVycyB0byBhdm9p ZCBhbiBleHRyYSBzcGlubG9jayBjeWNsZS4KICAqLwogc3RhdGljIGJvb2wK QEAgLTE2ODgsNyArMTY4OCw3IEBAIFBpbkJ1ZmZlcl9Mb2NrZWQoQnVmZmVy RGVzYyAqYnVmKQogICogVGhpcyBzaG91bGQgYmUgYXBwbGllZCBvbmx5IHRv IHNoYXJlZCBidWZmZXJzLCBuZXZlciBsb2NhbCBvbmVzLgogICoKICAqIE1v c3QgYnV0IG5vdCBhbGwgY2FsbGVycyB3YW50IEN1cnJlbnRSZXNvdXJjZU93 bmVyIHRvIGJlIGFkanVzdGVkLgotICogVGhvc2UgdGhhdCBkb24ndCBzaG91 bGQgcGFzcyBmaXhPd25lciA9IEZBTFNFLgorICogVGhvc2UgdGhhdCBkb24n dCBzaG91bGQgcGFzcyBmaXhPd25lciA9IGZhbHNlLgogICovCiBzdGF0aWMg dm9pZAogVW5waW5CdWZmZXIoQnVmZmVyRGVzYyAqYnVmLCBib29sIGZpeE93 bmVyKQpAQCAtMzcxMiw3ICszNzEyLDcgQEAgSG9sZGluZ0J1ZmZlclBpblRo YXREZWxheXNSZWNvdmVyeSh2b2lkKQogICogQ29uZGl0aW9uYWxMb2NrQnVm ZmVyRm9yQ2xlYW51cCAtIGFzIGFib3ZlLCBidXQgZG9uJ3Qgd2FpdCB0byBn ZXQgdGhlIGxvY2sKICAqCiAgKiBXZSB3b24ndCBsb29wLCBidXQganVzdCBj aGVjayBvbmNlIHRvIHNlZSBpZiB0aGUgcGluIGNvdW50IGlzIE9LLiAgSWYK LSAqIG5vdCwgcmV0dXJuIEZBTFNFIHdpdGggbm8gbG9jayBoZWxkLgorICog bm90LCByZXR1cm4gZmFsc2Ugd2l0aCBubyBsb2NrIGhlbGQuCiAgKi8KIGJv b2wKIENvbmRpdGlvbmFsTG9ja0J1ZmZlckZvckNsZWFudXAoQnVmZmVyIGJ1 ZmZlcikKQEAgLTM4NjgsOCArMzg2OCw4IEBAIFdhaXRJTyhCdWZmZXJEZXNj ICpidWYpCiAgKiBhbmQgb3V0cHV0IG9wZXJhdGlvbnMgb25seSBvbiBidWZm ZXJzIHRoYXQgYXJlIEJNX1ZBTElEIGFuZCBCTV9ESVJUWSwKICAqIHNvIHdl IGNhbiBhbHdheXMgdGVsbCBpZiB0aGUgd29yayBpcyBhbHJlYWR5IGRvbmUu CiAgKgotICogUmV0dXJucyBUUlVFIGlmIHdlIHN1Y2Nlc3NmdWxseSBtYXJr ZWQgdGhlIGJ1ZmZlciBhcyBJL08gYnVzeSwKLSAqIEZBTFNFIGlmIHNvbWVv bmUgZWxzZSBhbHJlYWR5IGRpZCB0aGUgd29yay4KKyAqIFJldHVybnMgdHJ1 ZSBpZiB3ZSBzdWNjZXNzZnVsbHkgbWFya2VkIHRoZSBidWZmZXIgYXMgSS9P IGJ1c3ksCisgKiBmYWxzZSBpZiBzb21lb25lIGVsc2UgYWxyZWFkeSBkaWQg dGhlIHdvcmsuCiAgKi8KIHN0YXRpYyBib29sCiBTdGFydEJ1ZmZlcklPKEJ1 ZmZlckRlc2MgKmJ1ZiwgYm9vbCBmb3JJbnB1dCkKQEAgLTM5MjksNyArMzky OSw3IEBAIFN0YXJ0QnVmZmVySU8oQnVmZmVyRGVzYyAqYnVmLCBib29sIGZv cklucHV0KQogICoJV2UgaG9sZCB0aGUgYnVmZmVyJ3MgaW9faW5fcHJvZ3Jl c3MgbG9jawogICoJVGhlIGJ1ZmZlciBpcyBQaW5uZWQKICAqCi0gKiBJZiBj bGVhcl9kaXJ0eSBpcyBUUlVFIGFuZCBCTV9KVVNUX0RJUlRJRUQgaXMgbm90 IHNldCwgd2UgY2xlYXIgdGhlCisgKiBJZiBjbGVhcl9kaXJ0eSBpcyB0cnVl IGFuZCBCTV9KVVNUX0RJUlRJRUQgaXMgbm90IHNldCwgd2UgY2xlYXIgdGhl CiAgKiBidWZmZXIncyBCTV9ESVJUWSBmbGFnLiAgVGhpcyBpcyBhcHByb3By aWF0ZSB3aGVuIHRlcm1pbmF0aW5nIGEKICAqIHN1Y2Nlc3NmdWwgd3JpdGUu ICBUaGUgY2hlY2sgb24gQk1fSlVTVF9ESVJUSUVEIGlzIG5lY2Vzc2FyeSB0 byBhdm9pZAogICogbWFya2luZyB0aGUgYnVmZmVyIGNsZWFuIGlmIGl0IHdh cyByZS1kaXJ0aWVkIHdoaWxlIHdlIHdlcmUgd3JpdGluZy4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9sb2NhbGJ1Zi5jCmluZGV4IDFk NTQwZTg3ZTguLjE5MzBmMGVlMGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3N0b3JhZ2UvYnVmZmVyL2xvY2FsYnVmLmMKKysrIGIvc3JjL2JhY2tlbmQv c3RvcmFnZS9idWZmZXIvbG9jYWxidWYuYwpAQCAtMTQ1LDExICsxNDUsMTEg QEAgTG9jYWxCdWZmZXJBbGxvYyhTTWdyUmVsYXRpb24gc21nciwgRm9ya051 bWJlciBmb3JrTnVtLCBCbG9ja051bWJlciBibG9ja051bSwKIAkJUmVzb3Vy Y2VPd25lclJlbWVtYmVyQnVmZmVyKEN1cnJlbnRSZXNvdXJjZU93bmVyLAog CQkJCQkJCQkJQnVmZmVyRGVzY3JpcHRvckdldEJ1ZmZlcihidWZIZHIpKTsK IAkJaWYgKGJ1Zl9zdGF0ZSAmIEJNX1ZBTElEKQotCQkJKmZvdW5kUHRyID0g VFJVRTsKKwkJCSpmb3VuZFB0ciA9IHRydWU7CiAJCWVsc2UKIAkJewogCQkJ LyogUHJldmlvdXMgcmVhZCBhdHRlbXB0IG11c3QgaGF2ZSBmYWlsZWQ7IHRy eSBhZ2FpbiAqLwotCQkJKmZvdW5kUHRyID0gRkFMU0U7CisJCQkqZm91bmRQ dHIgPSBmYWxzZTsKIAkJfQogCQlyZXR1cm4gYnVmSGRyOwogCX0KQEAgLTI2 OCw3ICsyNjgsNyBAQCBMb2NhbEJ1ZmZlckFsbG9jKFNNZ3JSZWxhdGlvbiBz bWdyLCBGb3JrTnVtYmVyIGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTnVt LAogCWJ1Zl9zdGF0ZSArPSBCVUZfVVNBR0VDT1VOVF9PTkU7CiAJcGdfYXRv bWljX3VubG9ja2VkX3dyaXRlX3UzMigmYnVmSGRyLT5zdGF0ZSwgYnVmX3N0 YXRlKTsKIAotCSpmb3VuZFB0ciA9IEZBTFNFOworCSpmb3VuZFB0ciA9IGZh bHNlOwogCXJldHVybiBidWZIZHI7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zaG1lbS5jCmluZGV4IDgxYzI5MWY2ZTMuLjIyNTIyNjc2ZjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobWVtLmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htZW0uYwpAQCAtMjU3 LDcgKzI1Nyw3IEBAIFNobWVtQWxsb2NVbmxvY2tlZChTaXplIHNpemUpCiAv KgogICogU2htZW1BZGRySXNWYWxpZCAtLSB0ZXN0IGlmIGFuIGFkZHJlc3Mg cmVmZXJzIHRvIHNoYXJlZCBtZW1vcnkKICAqCi0gKiBSZXR1cm5zIFRSVUUg aWYgdGhlIHBvaW50ZXIgcG9pbnRzIHdpdGhpbiB0aGUgc2hhcmVkIG1lbW9y eSBzZWdtZW50LgorICogUmV0dXJucyB0cnVlIGlmIHRoZSBwb2ludGVyIHBv aW50cyB3aXRoaW4gdGhlIHNoYXJlZCBtZW1vcnkgc2VnbWVudC4KICAqLwog Ym9vbAogU2htZW1BZGRySXNWYWxpZChjb25zdCB2b2lkICphZGRyKQpAQCAt MzYxLDcgKzM2MSw3IEBAIFNobWVtSW5pdEhhc2goY29uc3QgY2hhciAqbmFt ZSwJCS8qIHRhYmxlIHN0cmluZyBuYW1lIGZvciBzaG1lbSBpbmRleCAqLwog ICoJCWZvciBpdC4gIElmIGl0IGV4aXN0cyBhbHJlYWR5LCBhIHBvaW50ZXIg dG8gdGhlIGV4aXN0aW5nCiAgKgkJc3RydWN0dXJlIGlzIHJldHVybmVkLgog ICoKLSAqCVJldHVybnM6IHBvaW50ZXIgdG8gdGhlIG9iamVjdC4gICpmb3Vu ZFB0ciBpcyBzZXQgVFJVRSBpZiB0aGUgb2JqZWN0IHdhcworICoJUmV0dXJu czogcG9pbnRlciB0byB0aGUgb2JqZWN0LiAgKmZvdW5kUHRyIGlzIHNldCB0 cnVlIGlmIHRoZSBvYmplY3Qgd2FzCiAgKgkJYWxyZWFkeSBpbiB0aGUgc2ht ZW0gaW5kZXggKGhlbmNlLCBhbHJlYWR5IGluaXRpYWxpemVkKS4KICAqCiAg KglOb3RlOiBiZWZvcmUgUG9zdGdyZXMgOS4wLCB0aGlzIGZ1bmN0aW9uIHJl dHVybmVkIE5VTEwgZm9yIHNvbWUgZmFpbHVyZQpAQCAtMzg4LDcgKzM4OCw3 IEBAIFNobWVtSW5pdFN0cnVjdChjb25zdCBjaGFyICpuYW1lLCBTaXplIHNp emUsIGJvb2wgKmZvdW5kUHRyKQogCQkJLyogTXVzdCBiZSBpbml0aWFsaXpp bmcgYSAobm9uLXN0YW5kYWxvbmUpIGJhY2tlbmQgKi8KIAkJCUFzc2VydChz aG1lbXNlZ2hkci0+aW5kZXggIT0gTlVMTCk7CiAJCQlzdHJ1Y3RQdHIgPSBz aG1lbXNlZ2hkci0+aW5kZXg7Ci0JCQkqZm91bmRQdHIgPSBUUlVFOworCQkJ KmZvdW5kUHRyID0gdHJ1ZTsKIAkJfQogCQllbHNlCiAJCXsKQEAgLTQwMyw3 ICs0MDMsNyBAQCBTaG1lbUluaXRTdHJ1Y3QoY29uc3QgY2hhciAqbmFtZSwg U2l6ZSBzaXplLCBib29sICpmb3VuZFB0cikKIAkJCUFzc2VydChzaG1lbXNl Z2hkci0+aW5kZXggPT0gTlVMTCk7CiAJCQlzdHJ1Y3RQdHIgPSBTaG1lbUFs bG9jKHNpemUpOwogCQkJc2htZW1zZWdoZHItPmluZGV4ID0gc3RydWN0UHRy OwotCQkJKmZvdW5kUHRyID0gRkFMU0U7CisJCQkqZm91bmRQdHIgPSBmYWxz ZTsKIAkJfQogCQlMV0xvY2tSZWxlYXNlKFNobWVtSW5kZXhMb2NrKTsKIAkJ cmV0dXJuIHN0cnVjdFB0cjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL3NobXF1ZXVlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9zaG1xdWV1ZS5jCmluZGV4IDEwMjZlNjdiOTQuLmRhNjc0OTViMDMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3NobXF1ZXVlLmMK KysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc2htcXVldWUuYwpAQCAt NDAsNyArNDAsNyBAQCBTSE1RdWV1ZUluaXQoU0hNX1FVRVVFICpxdWV1ZSkK IH0KIAogLyoKLSAqIFNITVF1ZXVlSXNEZXRhY2hlZCAtLSBUUlVFIGlmIGVs ZW1lbnQgaXMgbm90IGN1cnJlbnRseQorICogU0hNUXVldWVJc0RldGFjaGVk IC0tIHRydWUgaWYgZWxlbWVudCBpcyBub3QgY3VycmVudGx5CiAgKgkJaW4g YSBxdWV1ZS4KICAqLwogYm9vbApAQCAtMTc0LDcgKzE3NCw3IEBAIFNITVF1 ZXVlUHJldihjb25zdCBTSE1fUVVFVUUgKnF1ZXVlLCBjb25zdCBTSE1fUVVF VUUgKmN1ckVsZW0sIFNpemUgbGlua09mZnNldCkKIH0KIAogLyoKLSAqIFNI TVF1ZXVlRW1wdHkgLS0gVFJVRSBpZiBxdWV1ZSBoZWFkIGlzIG9ubHkgZWxl bWVudCwgRkFMU0Ugb3RoZXJ3aXNlCisgKiBTSE1RdWV1ZUVtcHR5IC0tIHRy dWUgaWYgcXVldWUgaGVhZCBpcyBvbmx5IGVsZW1lbnQsIGZhbHNlIG90aGVy d2lzZQogICovCiBib29sCiBTSE1RdWV1ZUVtcHR5KGNvbnN0IFNITV9RVUVV RSAqcXVldWUpCkBAIC0xODQsNyArMTg0LDcgQEAgU0hNUXVldWVFbXB0eShj b25zdCBTSE1fUVVFVUUgKnF1ZXVlKQogCWlmIChxdWV1ZS0+cHJldiA9PSBx dWV1ZSkKIAl7CiAJCUFzc2VydChxdWV1ZS0+bmV4dCA9PSBxdWV1ZSk7Ci0J CXJldHVybiBUUlVFOworCQlyZXR1cm4gdHJ1ZTsKIAl9Ci0JcmV0dXJuIEZB TFNFOworCXJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2xtZ3IvbG9jay5jCmluZGV4IDJiMjYxNzM5MjQuLjU4MzMwODZjNjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9sb2NrLmMKKysr IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdyL2xvY2suYwpAQCAtNzY4LDcg Kzc2OCw3IEBAIExvY2tBY3F1aXJlRXh0ZW5kZWQoY29uc3QgTE9DS1RBRyAq bG9ja3RhZywKIAkJbG9jYWxsb2NrLT5uTG9ja3MgPSAwOwogCQlsb2NhbGxv Y2stPm51bUxvY2tPd25lcnMgPSAwOwogCQlsb2NhbGxvY2stPm1heExvY2tP d25lcnMgPSA4OwotCQlsb2NhbGxvY2stPmhvbGRzU3Ryb25nTG9ja0NvdW50 ID0gRkFMU0U7CisJCWxvY2FsbG9jay0+aG9sZHNTdHJvbmdMb2NrQ291bnQg PSBmYWxzZTsKIAkJbG9jYWxsb2NrLT5sb2NrT3duZXJzID0gTlVMTDsJLyog aW4gY2FzZSBuZXh0IGxpbmUgZmFpbHMgKi8KIAkJbG9jYWxsb2NrLT5sb2Nr T3duZXJzID0gKExPQ0FMTE9DS09XTkVSICopCiAJCQlNZW1vcnlDb250ZXh0 QWxsb2MoVG9wTWVtb3J5Q29udGV4dCwKQEAgLTEyNjQsNyArMTI2NCw3IEBA IFJlbW92ZUxvY2FsTG9jayhMT0NBTExPQ0sgKmxvY2FsbG9jaykKIAkJU3Bp bkxvY2tBY3F1aXJlKCZGYXN0UGF0aFN0cm9uZ1JlbGF0aW9uTG9ja3MtPm11 dGV4KTsKIAkJQXNzZXJ0KEZhc3RQYXRoU3Ryb25nUmVsYXRpb25Mb2Nrcy0+ Y291bnRbZmFzdGhhc2hjb2RlXSA+IDApOwogCQlGYXN0UGF0aFN0cm9uZ1Jl bGF0aW9uTG9ja3MtPmNvdW50W2Zhc3RoYXNoY29kZV0tLTsKLQkJbG9jYWxs b2NrLT5ob2xkc1N0cm9uZ0xvY2tDb3VudCA9IEZBTFNFOworCQlsb2NhbGxv Y2stPmhvbGRzU3Ryb25nTG9ja0NvdW50ID0gZmFsc2U7CiAJCVNwaW5Mb2Nr UmVsZWFzZSgmRmFzdFBhdGhTdHJvbmdSZWxhdGlvbkxvY2tzLT5tdXRleCk7 CiAJfQogCkBAIC0xNTc4LDcgKzE1NzgsNyBAQCBzdGF0aWMgdm9pZAogQmVn aW5TdHJvbmdMb2NrQWNxdWlyZShMT0NBTExPQ0sgKmxvY2FsbG9jaywgdWlu dDMyIGZhc3RoYXNoY29kZSkKIHsKIAlBc3NlcnQoU3Ryb25nTG9ja0luUHJv Z3Jlc3MgPT0gTlVMTCk7Ci0JQXNzZXJ0KGxvY2FsbG9jay0+aG9sZHNTdHJv bmdMb2NrQ291bnQgPT0gRkFMU0UpOworCUFzc2VydChsb2NhbGxvY2stPmhv bGRzU3Ryb25nTG9ja0NvdW50ID09IGZhbHNlKTsKIAogCS8qCiAJICogQWRk aW5nIHRvIGEgbWVtb3J5IGxvY2F0aW9uIGlzIG5vdCBhdG9taWMsIHNvIHdl IHRha2UgYSBzcGlubG9jayB0bwpAQCAtMTU5MSw3ICsxNTkxLDcgQEAgQmVn aW5TdHJvbmdMb2NrQWNxdWlyZShMT0NBTExPQ0sgKmxvY2FsbG9jaywgdWlu dDMyIGZhc3RoYXNoY29kZSkKIAogCVNwaW5Mb2NrQWNxdWlyZSgmRmFzdFBh dGhTdHJvbmdSZWxhdGlvbkxvY2tzLT5tdXRleCk7CiAJRmFzdFBhdGhTdHJv bmdSZWxhdGlvbkxvY2tzLT5jb3VudFtmYXN0aGFzaGNvZGVdKys7Ci0JbG9j YWxsb2NrLT5ob2xkc1N0cm9uZ0xvY2tDb3VudCA9IFRSVUU7CisJbG9jYWxs b2NrLT5ob2xkc1N0cm9uZ0xvY2tDb3VudCA9IHRydWU7CiAJU3Ryb25nTG9j a0luUHJvZ3Jlc3MgPSBsb2NhbGxvY2s7CiAJU3BpbkxvY2tSZWxlYXNlKCZG YXN0UGF0aFN0cm9uZ1JlbGF0aW9uTG9ja3MtPm11dGV4KTsKIH0KQEAgLTE2 MjAsMTEgKzE2MjAsMTEgQEAgQWJvcnRTdHJvbmdMb2NrQWNxdWlyZSh2b2lk KQogCQlyZXR1cm47CiAKIAlmYXN0aGFzaGNvZGUgPSBGYXN0UGF0aFN0cm9u Z0xvY2tIYXNoUGFydGl0aW9uKGxvY2FsbG9jay0+aGFzaGNvZGUpOwotCUFz c2VydChsb2NhbGxvY2stPmhvbGRzU3Ryb25nTG9ja0NvdW50ID09IFRSVUUp OworCUFzc2VydChsb2NhbGxvY2stPmhvbGRzU3Ryb25nTG9ja0NvdW50ID09 IHRydWUpOwogCVNwaW5Mb2NrQWNxdWlyZSgmRmFzdFBhdGhTdHJvbmdSZWxh dGlvbkxvY2tzLT5tdXRleCk7CiAJQXNzZXJ0KEZhc3RQYXRoU3Ryb25nUmVs YXRpb25Mb2Nrcy0+Y291bnRbZmFzdGhhc2hjb2RlXSA+IDApOwogCUZhc3RQ YXRoU3Ryb25nUmVsYXRpb25Mb2Nrcy0+Y291bnRbZmFzdGhhc2hjb2RlXS0t OwotCWxvY2FsbG9jay0+aG9sZHNTdHJvbmdMb2NrQ291bnQgPSBGQUxTRTsK Kwlsb2NhbGxvY2stPmhvbGRzU3Ryb25nTG9ja0NvdW50ID0gZmFsc2U7CiAJ U3Ryb25nTG9ja0luUHJvZ3Jlc3MgPSBOVUxMOwogCVNwaW5Mb2NrUmVsZWFz ZSgmRmFzdFBhdGhTdHJvbmdSZWxhdGlvbkxvY2tzLT5tdXRleCk7CiB9CkBA IC0xODU3LDcgKzE4NTcsNyBAQCBMb2NrUmVsZWFzZShjb25zdCBMT0NLVEFH ICpsb2NrdGFnLCBMT0NLTU9ERSBsb2NrbW9kZSwgYm9vbCBzZXNzaW9uTG9j aykKIAl7CiAJCWVsb2coV0FSTklORywgInlvdSBkb24ndCBvd24gYSBsb2Nr IG9mIHR5cGUgJXMiLAogCQkJIGxvY2tNZXRob2RUYWJsZS0+bG9ja01vZGVO YW1lc1tsb2NrbW9kZV0pOwotCQlyZXR1cm4gRkFMU0U7CisJCXJldHVybiBm YWxzZTsKIAl9CiAKIAkvKgpAQCAtMTg5Niw3ICsxODk2LDcgQEAgTG9ja1Jl bGVhc2UoY29uc3QgTE9DS1RBRyAqbG9ja3RhZywgTE9DS01PREUgbG9ja21v ZGUsIGJvb2wgc2Vzc2lvbkxvY2spCiAJCQkvKiBkb24ndCByZWxlYXNlIGEg bG9jayBiZWxvbmdpbmcgdG8gYW5vdGhlciBvd25lciAqLwogCQkJZWxvZyhX QVJOSU5HLCAieW91IGRvbid0IG93biBhIGxvY2sgb2YgdHlwZSAlcyIsCiAJ CQkJIGxvY2tNZXRob2RUYWJsZS0+bG9ja01vZGVOYW1lc1tsb2NrbW9kZV0p OwotCQkJcmV0dXJuIEZBTFNFOworCQkJcmV0dXJuIGZhbHNlOwogCQl9CiAJ fQogCkBAIC0xOTA3LDcgKzE5MDcsNyBAQCBMb2NrUmVsZWFzZShjb25zdCBM T0NLVEFHICpsb2NrdGFnLCBMT0NLTU9ERSBsb2NrbW9kZSwgYm9vbCBzZXNz aW9uTG9jaykKIAlsb2NhbGxvY2stPm5Mb2Nrcy0tOwogCiAJaWYgKGxvY2Fs bG9jay0+bkxvY2tzID4gMCkKLQkJcmV0dXJuIFRSVUU7CisJCXJldHVybiB0 cnVlOwogCiAJLyogQXR0ZW1wdCBmYXN0IHJlbGVhc2Ugb2YgYW55IGxvY2sg ZWxpZ2libGUgZm9yIHRoZSBmYXN0IHBhdGguICovCiAJaWYgKEVsaWdpYmxl Rm9yUmVsYXRpb25GYXN0UGF0aChsb2NrdGFnLCBsb2NrbW9kZSkgJiYKQEAg LTE5MjYsNyArMTkyNiw3IEBAIExvY2tSZWxlYXNlKGNvbnN0IExPQ0tUQUcg KmxvY2t0YWcsIExPQ0tNT0RFIGxvY2ttb2RlLCBib29sIHNlc3Npb25Mb2Nr KQogCQlpZiAocmVsZWFzZWQpCiAJCXsKIAkJCVJlbW92ZUxvY2FsTG9jayhs b2NhbGxvY2spOwotCQkJcmV0dXJuIFRSVUU7CisJCQlyZXR1cm4gdHJ1ZTsK IAkJfQogCX0KIApAQCAtMTk4NCw3ICsxOTg0LDcgQEAgTG9ja1JlbGVhc2Uo Y29uc3QgTE9DS1RBRyAqbG9ja3RhZywgTE9DS01PREUgbG9ja21vZGUsIGJv b2wgc2Vzc2lvbkxvY2spCiAJCWVsb2coV0FSTklORywgInlvdSBkb24ndCBv d24gYSBsb2NrIG9mIHR5cGUgJXMiLAogCQkJIGxvY2tNZXRob2RUYWJsZS0+ bG9ja01vZGVOYW1lc1tsb2NrbW9kZV0pOwogCQlSZW1vdmVMb2NhbExvY2so bG9jYWxsb2NrKTsKLQkJcmV0dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7 CiAJfQogCiAJLyoKQEAgLTE5OTksNyArMTk5OSw3IEBAIExvY2tSZWxlYXNl KGNvbnN0IExPQ0tUQUcgKmxvY2t0YWcsIExPQ0tNT0RFIGxvY2ttb2RlLCBi b29sIHNlc3Npb25Mb2NrKQogCUxXTG9ja1JlbGVhc2UocGFydGl0aW9uTG9j ayk7CiAKIAlSZW1vdmVMb2NhbExvY2sobG9jYWxsb2NrKTsKLQlyZXR1cm4g VFJVRTsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogLyoKQEAgLTMxMzcsNyArMzEz Nyw3IEBAIEF0UHJlcGFyZV9Mb2Nrcyh2b2lkKQogCQkgKiBlbnRyeS4gIFdl IG11c3QgcmV0YWluIHRoZSBjb3VudCB1bnRpbCB0aGUgcHJlcGFyZWQgdHJh bnNhY3Rpb24gaXMKIAkJICogY29tbWl0dGVkIG9yIHJvbGxlZCBiYWNrLgog CQkgKi8KLQkJbG9jYWxsb2NrLT5ob2xkc1N0cm9uZ0xvY2tDb3VudCA9IEZB TFNFOworCQlsb2NhbGxvY2stPmhvbGRzU3Ryb25nTG9ja0NvdW50ID0gZmFs c2U7CiAKIAkJLyoKIAkJICogQ3JlYXRlIGEgMlBDIHJlY29yZC4KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRldGltZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGV0aW1lLmMKaW5kZXggYTNkN2RjMzY5 Ny4uZWZhMzc2NDRmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGV0aW1lLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Rh dGV0aW1lLmMKQEAgLTc5MSwxMCArNzkxLDEwIEBAIERlY29kZURhdGVUaW1l KGNoYXIgKipmaWVsZCwgaW50ICpmdHlwZSwgaW50IG5mLAogCWludAkJCXZh bDsKIAlpbnQJCQlkdGVycjsKIAlpbnQJCQltZXIgPSBIUjI0OwotCWJvb2wJ CWhhdmVUZXh0TW9udGggPSBGQUxTRTsKLQlib29sCQlpc2p1bGlhbiA9IEZB TFNFOwotCWJvb2wJCWlzMmRpZ2l0cyA9IEZBTFNFOwotCWJvb2wJCWJjID0g RkFMU0U7CisJYm9vbAkJaGF2ZVRleHRNb250aCA9IGZhbHNlOworCWJvb2wJ CWlzanVsaWFuID0gZmFsc2U7CisJYm9vbAkJaXMyZGlnaXRzID0gZmFsc2U7 CisJYm9vbAkJYmMgPSBmYWxzZTsKIAlwZ190egkgICAqbmFtZWRUeiA9IE5V TEw7CiAJcGdfdHoJICAgKmFiYnJldlR6ID0gTlVMTDsKIAlwZ190egkgICAq dmFsdHo7CkBAIC04NDAsNyArODQwLDcgQEAgRGVjb2RlRGF0ZVRpbWUoY2hh ciAqKmZpZWxkLCBpbnQgKmZ0eXBlLCBpbnQgbmYsCiAJCQkJCQlyZXR1cm4g RFRFUlJfRklFTERfT1ZFUkZMT1c7CiAKIAkJCQkJajJkYXRlKHZhbCwgJnRt LT50bV95ZWFyLCAmdG0tPnRtX21vbiwgJnRtLT50bV9tZGF5KTsKLQkJCQkJ aXNqdWxpYW4gPSBUUlVFOworCQkJCQlpc2p1bGlhbiA9IHRydWU7CiAKIAkJ CQkJLyogR2V0IHRoZSB0aW1lIHpvbmUgZnJvbSB0aGUgZW5kIG9mIHRoZSBz dHJpbmcgKi8KIAkJCQkJZHRlcnIgPSBEZWNvZGVUaW1lem9uZShjcCwgdHpw KTsKQEAgLTEwODcsNyArMTA4Nyw3IEBAIERlY29kZURhdGVUaW1lKGNoYXIg KipmaWVsZCwgaW50ICpmdHlwZSwgaW50IG5mLAogCQkJCQkJCQlyZXR1cm4g RFRFUlJfRklFTERfT1ZFUkZMT1c7CiAJCQkJCQkJdG1hc2sgPSBEVEtfREFU RV9NOwogCQkJCQkJCWoyZGF0ZSh2YWwsICZ0bS0+dG1feWVhciwgJnRtLT50 bV9tb24sICZ0bS0+dG1fbWRheSk7Ci0JCQkJCQkJaXNqdWxpYW4gPSBUUlVF OworCQkJCQkJCWlzanVsaWFuID0gdHJ1ZTsKIAogCQkJCQkJCS8qIGZyYWN0 aW9uYWwgSnVsaWFuIERheT8gKi8KIAkJCQkJCQlpZiAoKmNwID09ICcuJykK QEAgLTEyNzEsNyArMTI3MSw3IEBAIERlY29kZURhdGVUaW1lKGNoYXIgKipm aWVsZCwgaW50ICpmdHlwZSwgaW50IG5mLAogCQkJCQkJCXRtLT50bV9tZGF5 ID0gdG0tPnRtX21vbjsKIAkJCQkJCQl0bWFzayA9IERUS19NKERBWSk7CiAJ CQkJCQl9Ci0JCQkJCQloYXZlVGV4dE1vbnRoID0gVFJVRTsKKwkJCQkJCWhh dmVUZXh0TW9udGggPSB0cnVlOwogCQkJCQkJdG0tPnRtX21vbiA9IHZhbDsK IAkJCQkJCWJyZWFrOwogCkBAIC0xNzUxLDkgKzE3NTEsOSBAQCBEZWNvZGVU aW1lT25seShjaGFyICoqZmllbGQsIGludCAqZnR5cGUsIGludCBuZiwKIAlp bnQJCQlpOwogCWludAkJCXZhbDsKIAlpbnQJCQlkdGVycjsKLQlib29sCQlp c2p1bGlhbiA9IEZBTFNFOwotCWJvb2wJCWlzMmRpZ2l0cyA9IEZBTFNFOwot CWJvb2wJCWJjID0gRkFMU0U7CisJYm9vbAkJaXNqdWxpYW4gPSBmYWxzZTsK Kwlib29sCQlpczJkaWdpdHMgPSBmYWxzZTsKKwlib29sCQliYyA9IGZhbHNl OwogCWludAkJCW1lciA9IEhSMjQ7CiAJcGdfdHoJICAgKm5hbWVkVHogPSBO VUxMOwogCXBnX3R6CSAgICphYmJyZXZUeiA9IE5VTEw7CkBAIC0xOTkxLDcg KzE5OTEsNyBAQCBEZWNvZGVUaW1lT25seShjaGFyICoqZmllbGQsIGludCAq ZnR5cGUsIGludCBuZiwKIAkJCQkJCQkJcmV0dXJuIERURVJSX0ZJRUxEX09W RVJGTE9XOwogCQkJCQkJCXRtYXNrID0gRFRLX0RBVEVfTTsKIAkJCQkJCQlq MmRhdGUodmFsLCAmdG0tPnRtX3llYXIsICZ0bS0+dG1fbW9uLCAmdG0tPnRt X21kYXkpOwotCQkJCQkJCWlzanVsaWFuID0gVFJVRTsKKwkJCQkJCQlpc2p1 bGlhbiA9IHRydWU7CiAKIAkJCQkJCQlpZiAoKmNwID09ICcuJykKIAkJCQkJ CQl7CkBAIC0yMDg2LDcgKzIwODYsNyBAQCBEZWNvZGVUaW1lT25seShjaGFy ICoqZmllbGQsIGludCAqZnR5cGUsIGludCBuZiwKIAkJCQkJZWxzZQogCQkJ CQl7CiAJCQkJCQlkdGVyciA9IERlY29kZU51bWJlcihmbGVuLCBmaWVsZFtp XSwKLQkJCQkJCQkJCQkJIEZBTFNFLAorCQkJCQkJCQkJCQkgZmFsc2UsCiAJ CQkJCQkJCQkJCSAoZm1hc2sgfCBEVEtfREFURV9NKSwKIAkJCQkJCQkJCQkJ ICZ0bWFzaywgdG0sCiAJCQkJCQkJCQkJCSBmc2VjLCAmaXMyZGlnaXRzKTsK QEAgLTIzNjIsNyArMjM2Miw3IEBAIERlY29kZVRpbWVPbmx5KGNoYXIgKipm aWVsZCwgaW50ICpmdHlwZSwgaW50IG5mLAogICoJc3RyOiBmaWVsZCB0byBi ZSBwYXJzZWQKICAqCWZtYXNrOiBiaXRtYXNrIGZvciBmaWVsZCB0eXBlcyBh bHJlYWR5IHNlZW4KICAqCSp0bWFzazogcmVjZWl2ZXMgYml0bWFzayBmb3Ig ZmllbGRzIGZvdW5kIGhlcmUKLSAqCSppczJkaWdpdHM6IHNldCB0byBUUlVF IGlmIHdlIGZpbmQgMi1kaWdpdCB5ZWFyCisgKgkqaXMyZGlnaXRzOiBzZXQg dG8gdHJ1ZSBpZiB3ZSBmaW5kIDItZGlnaXQgeWVhcgogICoJKnRtOiBmaWVs ZCB2YWx1ZXMgYXJlIHN0b3JlZCBpbnRvIGFwcHJvcHJpYXRlIG1lbWJlcnMg b2YgdGhpcyBzdHJ1Y3QKICAqLwogc3RhdGljIGludApAQCAtMjM3NCw3ICsy Mzc0LDcgQEAgRGVjb2RlRGF0ZShjaGFyICpzdHIsIGludCBmbWFzaywgaW50 ICp0bWFzaywgYm9vbCAqaXMyZGlnaXRzLAogCWludAkJCWksCiAJCQkJbGVu OwogCWludAkJCWR0ZXJyOwotCWJvb2wJCWhhdmVUZXh0TW9udGggPSBGQUxT RTsKKwlib29sCQloYXZlVGV4dE1vbnRoID0gZmFsc2U7CiAJaW50CQkJdHlw ZSwKIAkJCQl2YWwsCiAJCQkJZG1hc2sgPSAwOwpAQCAtMjQyNCw3ICsyNDI0 LDcgQEAgRGVjb2RlRGF0ZShjaGFyICpzdHIsIGludCBmbWFzaywgaW50ICp0 bWFzaywgYm9vbCAqaXMyZGlnaXRzLAogCQkJewogCQkJCWNhc2UgTU9OVEg6 CiAJCQkJCXRtLT50bV9tb24gPSB2YWw7Ci0JCQkJCWhhdmVUZXh0TW9udGgg PSBUUlVFOworCQkJCQloYXZlVGV4dE1vbnRoID0gdHJ1ZTsKIAkJCQkJYnJl YWs7CiAKIAkJCQlkZWZhdWx0OgpAQCAtMjc1NSw3ICsyNzU1LDcgQEAgRGVj b2RlTnVtYmVyKGludCBmbGVuLCBjaGFyICpzdHIsIGJvb2wgaGF2ZVRleHRN b250aCwgaW50IGZtYXNrLAogCQkJCQkqdG1hc2sgPSBEVEtfTShEQVkpOwkv KiBZRUFSIGlzIGFscmVhZHkgc2V0ICovCiAJCQkJCXRtLT50bV9tZGF5ID0g dG0tPnRtX3llYXI7CiAJCQkJCXRtLT50bV95ZWFyID0gdmFsOwotCQkJCQkq aXMyZGlnaXRzID0gRkFMU0U7CisJCQkJCSppczJkaWdpdHMgPSBmYWxzZTsK IAkJCQl9CiAJCQkJZWxzZQogCQkJCXsKQEAgLTI4NTksNyArMjg1OSw3IEBA IERlY29kZU51bWJlckZpZWxkKGludCBsZW4sIGNoYXIgKnN0ciwgaW50IGZt YXNrLAogCQkJKihzdHIgKyAobGVuIC0gNCkpID0gJ1wwJzsKIAkJCXRtLT50 bV95ZWFyID0gYXRvaShzdHIpOwogCQkJaWYgKChsZW4gLSA0KSA9PSAyKQot CQkJCSppczJkaWdpdHMgPSBUUlVFOworCQkJCSppczJkaWdpdHMgPSB0cnVl OwogCiAJCQlyZXR1cm4gRFRLX0RBVEU7CiAJCX0KQEAgLTMwOTUsNyArMzA5 NSw3IEBAIGludAogRGVjb2RlSW50ZXJ2YWwoY2hhciAqKmZpZWxkLCBpbnQg KmZ0eXBlLCBpbnQgbmYsIGludCByYW5nZSwKIAkJCSAgIGludCAqZHR5cGUs IHN0cnVjdCBwZ190bSAqdG0sIGZzZWNfdCAqZnNlYykKIHsKLQlib29sCQlp c19iZWZvcmUgPSBGQUxTRTsKKwlib29sCQlpc19iZWZvcmUgPSBmYWxzZTsK IAljaGFyCSAgICpjcDsKIAlpbnQJCQlmbWFzayA9IDAsCiAJCQkJdG1hc2ss CkBAIC0zMzUwLDcgKzMzNTAsNyBAQCBEZWNvZGVJbnRlcnZhbChjaGFyICoq ZmllbGQsIGludCAqZnR5cGUsIGludCBuZiwgaW50IHJhbmdlLAogCQkJCQkJ YnJlYWs7CiAKIAkJCQkJY2FzZSBBR086Ci0JCQkJCQlpc19iZWZvcmUgPSBU UlVFOworCQkJCQkJaXNfYmVmb3JlID0gdHJ1ZTsKIAkJCQkJCXR5cGUgPSB2 YWw7CiAJCQkJCQlicmVhazsKIApAQCAtNDE5Myw3ICs0MTkzLDcgQEAgQWRk UG9zdGdyZXNJbnRQYXJ0KGNoYXIgKmNwLCBpbnQgdmFsdWUsIGNvbnN0IGNo YXIgKnVuaXRzLAogCSAqIHRhZCBiaXphcnJlIGJ1dCBpdCdzIGhvdyBpdCB3 b3JrZWQgYmVmb3JlLi4uCiAJICovCiAJKmlzX2JlZm9yZSA9ICh2YWx1ZSA8 IDApOwotCSppc196ZXJvID0gRkFMU0U7CisJKmlzX3plcm8gPSBmYWxzZTsK IAlyZXR1cm4gY3AgKyBzdHJsZW4oY3ApOwogfQogCkBAIC00MjEzLDcgKzQy MTMsNyBAQCBBZGRWZXJib3NlSW50UGFydChjaGFyICpjcCwgaW50IHZhbHVl LCBjb25zdCBjaGFyICp1bml0cywKIAllbHNlIGlmICgqaXNfYmVmb3JlKQog CQl2YWx1ZSA9IC12YWx1ZTsKIAlzcHJpbnRmKGNwLCAiICVkICVzJXMiLCB2 YWx1ZSwgdW5pdHMsICh2YWx1ZSA9PSAxKSA/ICIiIDogInMiKTsKLQkqaXNf emVybyA9IEZBTFNFOworCSppc196ZXJvID0gZmFsc2U7CiAJcmV0dXJuIGNw ICsgc3RybGVuKGNwKTsKIH0KIApAQCAtNDI0Nyw4ICs0MjQ3LDggQEAgRW5j b2RlSW50ZXJ2YWwoc3RydWN0IHBnX3RtICp0bSwgZnNlY190IGZzZWMsIGlu dCBzdHlsZSwgY2hhciAqc3RyKQogCWludAkJCWhvdXIgPSB0bS0+dG1faG91 cjsKIAlpbnQJCQltaW4gPSB0bS0+dG1fbWluOwogCWludAkJCXNlYyA9IHRt LT50bV9zZWM7Ci0JYm9vbAkJaXNfYmVmb3JlID0gRkFMU0U7Ci0JYm9vbAkJ aXNfemVybyA9IFRSVUU7CisJYm9vbAkJaXNfYmVmb3JlID0gZmFsc2U7CisJ Ym9vbAkJaXNfemVybyA9IHRydWU7CiAKIAkvKgogCSAqIFRoZSBzaWduIG9m IHllYXIgYW5kIG1vbnRoIGFyZSBndWFyYW50ZWVkIHRvIG1hdGNoLCBzaW5j ZSB0aGV5IGFyZQpAQCAtNDQwMyw3ICs0NDAzLDcgQEAgRW5jb2RlSW50ZXJ2 YWwoc3RydWN0IHBnX3RtICp0bSwgZnNlY190IGZzZWMsIGludCBzdHlsZSwg Y2hhciAqc3RyKQogCQkJCWlmIChzZWMgPCAwIHx8IChzZWMgPT0gMCAmJiBm c2VjIDwgMCkpCiAJCQkJewogCQkJCQlpZiAoaXNfemVybykKLQkJCQkJCWlz X2JlZm9yZSA9IFRSVUU7CisJCQkJCQlpc19iZWZvcmUgPSB0cnVlOwogCQkJ CQllbHNlIGlmICghaXNfYmVmb3JlKQogCQkJCQkJKmNwKysgPSAnLSc7CiAJ CQkJfQpAQCAtNDQxMiw3ICs0NDEyLDcgQEAgRW5jb2RlSW50ZXJ2YWwoc3Ry dWN0IHBnX3RtICp0bSwgZnNlY190IGZzZWMsIGludCBzdHlsZSwgY2hhciAq c3RyKQogCQkJCWNwID0gQXBwZW5kU2Vjb25kcyhjcCwgc2VjLCBmc2VjLCBN QVhfSU5URVJWQUxfUFJFQ0lTSU9OLCBmYWxzZSk7CiAJCQkJc3ByaW50Zihj cCwgIiBzZWMlcyIsCiAJCQkJCQkoYWJzKHNlYykgIT0gMSB8fCBmc2VjICE9 IDApID8gInMiIDogIiIpOwotCQkJCWlzX3plcm8gPSBGQUxTRTsKKwkJCQlp c196ZXJvID0gZmFsc2U7CiAJCQl9CiAJCQkvKiBpZGVudGljYWxseSB6ZXJv PyB0aGVuIHB1dCBpbiBhIHVuaXRsZXNzIHplcm8uLi4gKi8KIAkJCWlmIChp c196ZXJvKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zv cm1hdHRpbmcuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mb3JtYXR0aW5n LmMKaW5kZXggNDZmNDVmNjY1NC4uNTY5NTJkMjlhOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zvcm1hdHRpbmcuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZm9ybWF0dGluZy5jCkBAIC03MTgsOTkgKzcx OCw5OSBAQCB0eXBlZGVmIGVudW0KICAqLwogc3RhdGljIGNvbnN0IEtleVdv cmQgRENIX2tleXdvcmRzW10gPSB7CiAvKgluYW1lLCBsZW4sIGlkLCBpc19k aWdpdCwgZGF0ZV9tb2RlICovCi0JeyJBLkQuIiwgNCwgRENIX0FfRCwgRkFM U0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBBICovCi0JeyJBLk0uIiwg NCwgRENIX0FfTSwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsi QUQiLCAyLCBEQ0hfQUQsIEZBTFNFLCBGUk9NX0NIQVJfREFURV9OT05FfSwK LQl7IkFNIiwgMiwgRENIX0FNLCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9O RX0sCi0JeyJCLkMuIiwgNCwgRENIX0JfQywgRkFMU0UsIEZST01fQ0hBUl9E QVRFX05PTkV9LAkvKiBCICovCi0JeyJCQyIsIDIsIERDSF9CQywgRkFMU0Us IEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsiQ0MiLCAyLCBEQ0hfQ0MsIFRS VUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBDICovCi0JeyJEQVkiLCAz LCBEQ0hfREFZLCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIEQg Ki8KLQl7IkRERCIsIDMsIERDSF9EREQsIFRSVUUsIEZST01fQ0hBUl9EQVRF X0dSRUdPUklBTn0sCi0JeyJERCIsIDIsIERDSF9ERCwgVFJVRSwgRlJPTV9D SEFSX0RBVEVfR1JFR09SSUFOfSwKLQl7IkRZIiwgMiwgRENIX0RZLCBGQUxT RSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0JeyJEYXkiLCAzLCBEQ0hfRGF5 LCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0JeyJEeSIsIDIsIERD SF9EeSwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsiRCIsIDEs IERDSF9ELCBUUlVFLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAotCXsi RlgiLCAyLCBEQ0hfRlgsIEZBTFNFLCBGUk9NX0NIQVJfREFURV9OT05FfSwJ LyogRiAqLwotCXsiSEgyNCIsIDQsIERDSF9ISDI0LCBUUlVFLCBGUk9NX0NI QVJfREFURV9OT05FfSwJLyogSCAqLwotCXsiSEgxMiIsIDQsIERDSF9ISDEy LCBUUlVFLCBGUk9NX0NIQVJfREFURV9OT05FfSwKLQl7IkhIIiwgMiwgRENI X0hILCBUUlVFLCBGUk9NX0NIQVJfREFURV9OT05FfSwKLQl7IklEREQiLCA0 LCBEQ0hfSURERCwgVFJVRSwgRlJPTV9DSEFSX0RBVEVfSVNPV0VFS30sCS8q IEkgKi8KLQl7IklEIiwgMiwgRENIX0lELCBUUlVFLCBGUk9NX0NIQVJfREFU RV9JU09XRUVLfSwKLQl7IklXIiwgMiwgRENIX0lXLCBUUlVFLCBGUk9NX0NI QVJfREFURV9JU09XRUVLfSwKLQl7IklZWVkiLCA0LCBEQ0hfSVlZWSwgVFJV RSwgRlJPTV9DSEFSX0RBVEVfSVNPV0VFS30sCi0JeyJJWVkiLCAzLCBEQ0hf SVlZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwKLQl7IklZIiwg MiwgRENIX0lZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwKLQl7 IkkiLCAxLCBEQ0hfSSwgVFJVRSwgRlJPTV9DSEFSX0RBVEVfSVNPV0VFS30s Ci0JeyJKIiwgMSwgRENIX0osIFRSVUUsIEZST01fQ0hBUl9EQVRFX05PTkV9 LCAvKiBKICovCi0JeyJNSSIsIDIsIERDSF9NSSwgVFJVRSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCS8qIE0gKi8KLQl7Ik1NIiwgMiwgRENIX01NLCBUUlVF LCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAotCXsiTU9OVEgiLCA1LCBE Q0hfTU9OVEgsIEZBTFNFLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAot CXsiTU9OIiwgMywgRENIX01PTiwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX0dS RUdPUklBTn0sCi0JeyJNUyIsIDIsIERDSF9NUywgVFJVRSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCi0JeyJNb250aCIsIDUsIERDSF9Nb250aCwgRkFMU0Us IEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJNb24iLCAzLCBEQ0hf TW9uLCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKLQl7Ik9G IiwgMiwgRENIX09GLCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8q IE8gKi8KLQl7IlAuTS4iLCA0LCBEQ0hfUF9NLCBGQUxTRSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCS8qIFAgKi8KLQl7IlBNIiwgMiwgRENIX1BNLCBGQUxT RSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0JeyJRIiwgMSwgRENIX1EsIFRS VUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LCAvKiBRICovCi0JeyJSTSIsIDIs IERDSF9STSwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sIC8q IFIgKi8KLQl7IlNTU1MiLCA0LCBEQ0hfU1NTUywgVFJVRSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCS8qIFMgKi8KLQl7IlNTIiwgMiwgRENIX1NTLCBUUlVF LCBGUk9NX0NIQVJfREFURV9OT05FfSwKLQl7IlRaIiwgMiwgRENIX1RaLCBG QUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIFQgKi8KLQl7IlVTIiwg MiwgRENIX1VTLCBUUlVFLCBGUk9NX0NIQVJfREFURV9OT05FfSwJLyogVSAq LwotCXsiV1ciLCAyLCBEQ0hfV1csIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dS RUdPUklBTn0sCS8qIFcgKi8KLQl7IlciLCAxLCBEQ0hfVywgVFJVRSwgRlJP TV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKLQl7IlksWVlZIiwgNSwgRENIX1lf WVlZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAkvKiBZICov Ci0JeyJZWVlZIiwgNCwgRENIX1lZWVksIFRSVUUsIEZST01fQ0hBUl9EQVRF X0dSRUdPUklBTn0sCi0JeyJZWVkiLCAzLCBEQ0hfWVlZLCBUUlVFLCBGUk9N X0NIQVJfREFURV9HUkVHT1JJQU59LAotCXsiWVkiLCAyLCBEQ0hfWVksIFRS VUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJZIiwgMSwgRENI X1ksIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJhLmQu IiwgNCwgRENIX2FfZCwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkv KiBhICovCi0JeyJhLm0uIiwgNCwgRENIX2FfbSwgRkFMU0UsIEZST01fQ0hB Ul9EQVRFX05PTkV9LAotCXsiYWQiLCAyLCBEQ0hfYWQsIEZBTFNFLCBGUk9N X0NIQVJfREFURV9OT05FfSwKLQl7ImFtIiwgMiwgRENIX2FtLCBGQUxTRSwg RlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0JeyJiLmMuIiwgNCwgRENIX2JfYywg RkFMU0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBiICovCi0JeyJiYyIs IDIsIERDSF9iYywgRkFMU0UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsi Y2MiLCAyLCBEQ0hfQ0MsIFRSVUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkv KiBjICovCi0JeyJkYXkiLCAzLCBEQ0hfZGF5LCBGQUxTRSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCS8qIGQgKi8KLQl7ImRkZCIsIDMsIERDSF9EREQsIFRS VUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJkZCIsIDIsIERD SF9ERCwgVFJVRSwgRlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKLQl7ImR5 IiwgMiwgRENIX2R5LCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0J eyJkIiwgMSwgRENIX0QsIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklB Tn0sCi0JeyJmeCIsIDIsIERDSF9GWCwgRkFMU0UsIEZST01fQ0hBUl9EQVRF X05PTkV9LAkvKiBmICovCi0JeyJoaDI0IiwgNCwgRENIX0hIMjQsIFRSVUUs IEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBoICovCi0JeyJoaDEyIiwgNCwg RENIX0hIMTIsIFRSVUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsiaGgi LCAyLCBEQ0hfSEgsIFRSVUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAotCXsi aWRkZCIsIDQsIERDSF9JRERELCBUUlVFLCBGUk9NX0NIQVJfREFURV9JU09X RUVLfSwJLyogaSAqLwotCXsiaWQiLCAyLCBEQ0hfSUQsIFRSVUUsIEZST01f Q0hBUl9EQVRFX0lTT1dFRUt9LAotCXsiaXciLCAyLCBEQ0hfSVcsIFRSVUUs IEZST01fQ0hBUl9EQVRFX0lTT1dFRUt9LAotCXsiaXl5eSIsIDQsIERDSF9J WVlZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwKLQl7Iml5eSIs IDMsIERDSF9JWVksIFRSVUUsIEZST01fQ0hBUl9EQVRFX0lTT1dFRUt9LAot CXsiaXkiLCAyLCBEQ0hfSVksIFRSVUUsIEZST01fQ0hBUl9EQVRFX0lTT1dF RUt9LAotCXsiaSIsIDEsIERDSF9JLCBUUlVFLCBGUk9NX0NIQVJfREFURV9J U09XRUVLfSwKLQl7ImoiLCAxLCBEQ0hfSiwgVFJVRSwgRlJPTV9DSEFSX0RB VEVfTk9ORX0sIC8qIGogKi8KLQl7Im1pIiwgMiwgRENIX01JLCBUUlVFLCBG Uk9NX0NIQVJfREFURV9OT05FfSwJLyogbSAqLwotCXsibW0iLCAyLCBEQ0hf TU0sIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJtb250 aCIsIDUsIERDSF9tb250aCwgRkFMU0UsIEZST01fQ0hBUl9EQVRFX0dSRUdP UklBTn0sCi0JeyJtb24iLCAzLCBEQ0hfbW9uLCBGQUxTRSwgRlJPTV9DSEFS X0RBVEVfR1JFR09SSUFOfSwKLQl7Im1zIiwgMiwgRENIX01TLCBUUlVFLCBG Uk9NX0NIQVJfREFURV9OT05FfSwKLQl7InAubS4iLCA0LCBEQ0hfcF9tLCBG QUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIHAgKi8KLQl7InBtIiwg MiwgRENIX3BtLCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCi0JeyJx IiwgMSwgRENIX1EsIFRSVUUsIEZST01fQ0hBUl9EQVRFX05PTkV9LCAvKiBx ICovCi0JeyJybSIsIDIsIERDSF9ybSwgRkFMU0UsIEZST01fQ0hBUl9EQVRF X0dSRUdPUklBTn0sIC8qIHIgKi8KLQl7InNzc3MiLCA0LCBEQ0hfU1NTUywg VFJVRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIHMgKi8KLQl7InNzIiwg MiwgRENIX1NTLCBUUlVFLCBGUk9NX0NIQVJfREFURV9OT05FfSwKLQl7InR6 IiwgMiwgRENIX3R6LCBGQUxTRSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8q IHQgKi8KLQl7InVzIiwgMiwgRENIX1VTLCBUUlVFLCBGUk9NX0NIQVJfREFU RV9OT05FfSwJLyogdSAqLwotCXsid3ciLCAyLCBEQ0hfV1csIFRSVUUsIEZS T01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCS8qIHcgKi8KLQl7InciLCAxLCBE Q0hfVywgVFJVRSwgRlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKLQl7Inks eXl5IiwgNSwgRENIX1lfWVlZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9HUkVH T1JJQU59LAkvKiB5ICovCi0JeyJ5eXl5IiwgNCwgRENIX1lZWVksIFRSVUUs IEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCi0JeyJ5eXkiLCAzLCBEQ0hf WVlZLCBUUlVFLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAotCXsieXki LCAyLCBEQ0hfWVksIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0s Ci0JeyJ5IiwgMSwgRENIX1ksIFRSVUUsIEZST01fQ0hBUl9EQVRFX0dSRUdP UklBTn0sCisJeyJBLkQuIiwgNCwgRENIX0FfRCwgZmFsc2UsIEZST01fQ0hB Ul9EQVRFX05PTkV9LAkvKiBBICovCisJeyJBLk0uIiwgNCwgRENIX0FfTSwg ZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAorCXsiQUQiLCAyLCBEQ0hf QUQsIGZhbHNlLCBGUk9NX0NIQVJfREFURV9OT05FfSwKKwl7IkFNIiwgMiwg RENIX0FNLCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCisJeyJCLkMu IiwgNCwgRENIX0JfQywgZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkv KiBCICovCisJeyJCQyIsIDIsIERDSF9CQywgZmFsc2UsIEZST01fQ0hBUl9E QVRFX05PTkV9LAorCXsiQ0MiLCAyLCBEQ0hfQ0MsIHRydWUsIEZST01fQ0hB Ul9EQVRFX05PTkV9LAkvKiBDICovCisJeyJEQVkiLCAzLCBEQ0hfREFZLCBm YWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIEQgKi8KKwl7IkRERCIs IDMsIERDSF9EREQsIHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0s CisJeyJERCIsIDIsIERDSF9ERCwgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfR1JF R09SSUFOfSwKKwl7IkRZIiwgMiwgRENIX0RZLCBmYWxzZSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCisJeyJEYXkiLCAzLCBEQ0hfRGF5LCBmYWxzZSwgRlJP TV9DSEFSX0RBVEVfTk9ORX0sCisJeyJEeSIsIDIsIERDSF9EeSwgZmFsc2Us IEZST01fQ0hBUl9EQVRFX05PTkV9LAorCXsiRCIsIDEsIERDSF9ELCB0cnVl LCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAorCXsiRlgiLCAyLCBEQ0hf RlgsIGZhbHNlLCBGUk9NX0NIQVJfREFURV9OT05FfSwJLyogRiAqLworCXsi SEgyNCIsIDQsIERDSF9ISDI0LCB0cnVlLCBGUk9NX0NIQVJfREFURV9OT05F fSwJLyogSCAqLworCXsiSEgxMiIsIDQsIERDSF9ISDEyLCB0cnVlLCBGUk9N X0NIQVJfREFURV9OT05FfSwKKwl7IkhIIiwgMiwgRENIX0hILCB0cnVlLCBG Uk9NX0NIQVJfREFURV9OT05FfSwKKwl7IklEREQiLCA0LCBEQ0hfSURERCwg dHJ1ZSwgRlJPTV9DSEFSX0RBVEVfSVNPV0VFS30sCS8qIEkgKi8KKwl7IklE IiwgMiwgRENIX0lELCB0cnVlLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwK Kwl7IklXIiwgMiwgRENIX0lXLCB0cnVlLCBGUk9NX0NIQVJfREFURV9JU09X RUVLfSwKKwl7IklZWVkiLCA0LCBEQ0hfSVlZWSwgdHJ1ZSwgRlJPTV9DSEFS X0RBVEVfSVNPV0VFS30sCisJeyJJWVkiLCAzLCBEQ0hfSVlZLCB0cnVlLCBG Uk9NX0NIQVJfREFURV9JU09XRUVLfSwKKwl7IklZIiwgMiwgRENIX0lZLCB0 cnVlLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwKKwl7IkkiLCAxLCBEQ0hf SSwgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfSVNPV0VFS30sCisJeyJKIiwgMSwg RENIX0osIHRydWUsIEZST01fQ0hBUl9EQVRFX05PTkV9LCAvKiBKICovCisJ eyJNSSIsIDIsIERDSF9NSSwgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0s CS8qIE0gKi8KKwl7Ik1NIiwgMiwgRENIX01NLCB0cnVlLCBGUk9NX0NIQVJf REFURV9HUkVHT1JJQU59LAorCXsiTU9OVEgiLCA1LCBEQ0hfTU9OVEgsIGZh bHNlLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAorCXsiTU9OIiwgMywg RENIX01PTiwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJ eyJNUyIsIDIsIERDSF9NUywgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0s CisJeyJNb250aCIsIDUsIERDSF9Nb250aCwgZmFsc2UsIEZST01fQ0hBUl9E QVRFX0dSRUdPUklBTn0sCisJeyJNb24iLCAzLCBEQ0hfTW9uLCBmYWxzZSwg RlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKKwl7Ik9GIiwgMiwgRENIX09G LCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIE8gKi8KKwl7IlAu TS4iLCA0LCBEQ0hfUF9NLCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0s CS8qIFAgKi8KKwl7IlBNIiwgMiwgRENIX1BNLCBmYWxzZSwgRlJPTV9DSEFS X0RBVEVfTk9ORX0sCisJeyJRIiwgMSwgRENIX1EsIHRydWUsIEZST01fQ0hB Ul9EQVRFX05PTkV9LCAvKiBRICovCisJeyJSTSIsIDIsIERDSF9STSwgZmFs c2UsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sIC8qIFIgKi8KKwl7IlNT U1MiLCA0LCBEQ0hfU1NTUywgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0s CS8qIFMgKi8KKwl7IlNTIiwgMiwgRENIX1NTLCB0cnVlLCBGUk9NX0NIQVJf REFURV9OT05FfSwKKwl7IlRaIiwgMiwgRENIX1RaLCBmYWxzZSwgRlJPTV9D SEFSX0RBVEVfTk9ORX0sCS8qIFQgKi8KKwl7IlVTIiwgMiwgRENIX1VTLCB0 cnVlLCBGUk9NX0NIQVJfREFURV9OT05FfSwJLyogVSAqLworCXsiV1ciLCAy LCBEQ0hfV1csIHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCS8q IFcgKi8KKwl7IlciLCAxLCBEQ0hfVywgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVf R1JFR09SSUFOfSwKKwl7IlksWVlZIiwgNSwgRENIX1lfWVlZLCB0cnVlLCBG Uk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAkvKiBZICovCisJeyJZWVlZIiwg NCwgRENIX1lZWVksIHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0s CisJeyJZWVkiLCAzLCBEQ0hfWVlZLCB0cnVlLCBGUk9NX0NIQVJfREFURV9H UkVHT1JJQU59LAorCXsiWVkiLCAyLCBEQ0hfWVksIHRydWUsIEZST01fQ0hB Ul9EQVRFX0dSRUdPUklBTn0sCisJeyJZIiwgMSwgRENIX1ksIHRydWUsIEZS T01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJeyJhLmQuIiwgNCwgRENIX2Ff ZCwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBhICovCisJeyJh Lm0uIiwgNCwgRENIX2FfbSwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9 LAorCXsiYWQiLCAyLCBEQ0hfYWQsIGZhbHNlLCBGUk9NX0NIQVJfREFURV9O T05FfSwKKwl7ImFtIiwgMiwgRENIX2FtLCBmYWxzZSwgRlJPTV9DSEFSX0RB VEVfTk9ORX0sCisJeyJiLmMuIiwgNCwgRENIX2JfYywgZmFsc2UsIEZST01f Q0hBUl9EQVRFX05PTkV9LAkvKiBiICovCisJeyJiYyIsIDIsIERDSF9iYywg ZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAorCXsiY2MiLCAyLCBEQ0hf Q0MsIHRydWUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBjICovCisJeyJk YXkiLCAzLCBEQ0hfZGF5LCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0s CS8qIGQgKi8KKwl7ImRkZCIsIDMsIERDSF9EREQsIHRydWUsIEZST01fQ0hB Ul9EQVRFX0dSRUdPUklBTn0sCisJeyJkZCIsIDIsIERDSF9ERCwgdHJ1ZSwg RlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKKwl7ImR5IiwgMiwgRENIX2R5 LCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCisJeyJkIiwgMSwgRENI X0QsIHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJeyJmeCIs IDIsIERDSF9GWCwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX05PTkV9LAkvKiBm ICovCisJeyJoaDI0IiwgNCwgRENIX0hIMjQsIHRydWUsIEZST01fQ0hBUl9E QVRFX05PTkV9LAkvKiBoICovCisJeyJoaDEyIiwgNCwgRENIX0hIMTIsIHRy dWUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAorCXsiaGgiLCAyLCBEQ0hfSEgs IHRydWUsIEZST01fQ0hBUl9EQVRFX05PTkV9LAorCXsiaWRkZCIsIDQsIERD SF9JRERELCB0cnVlLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwJLyogaSAq LworCXsiaWQiLCAyLCBEQ0hfSUQsIHRydWUsIEZST01fQ0hBUl9EQVRFX0lT T1dFRUt9LAorCXsiaXciLCAyLCBEQ0hfSVcsIHRydWUsIEZST01fQ0hBUl9E QVRFX0lTT1dFRUt9LAorCXsiaXl5eSIsIDQsIERDSF9JWVlZLCB0cnVlLCBG Uk9NX0NIQVJfREFURV9JU09XRUVLfSwKKwl7Iml5eSIsIDMsIERDSF9JWVks IHRydWUsIEZST01fQ0hBUl9EQVRFX0lTT1dFRUt9LAorCXsiaXkiLCAyLCBE Q0hfSVksIHRydWUsIEZST01fQ0hBUl9EQVRFX0lTT1dFRUt9LAorCXsiaSIs IDEsIERDSF9JLCB0cnVlLCBGUk9NX0NIQVJfREFURV9JU09XRUVLfSwKKwl7 ImoiLCAxLCBEQ0hfSiwgdHJ1ZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sIC8q IGogKi8KKwl7Im1pIiwgMiwgRENIX01JLCB0cnVlLCBGUk9NX0NIQVJfREFU RV9OT05FfSwJLyogbSAqLworCXsibW0iLCAyLCBEQ0hfTU0sIHRydWUsIEZS T01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJeyJtb250aCIsIDUsIERDSF9t b250aCwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJeyJt b24iLCAzLCBEQ0hfbW9uLCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfR1JFR09S SUFOfSwKKwl7Im1zIiwgMiwgRENIX01TLCB0cnVlLCBGUk9NX0NIQVJfREFU RV9OT05FfSwKKwl7InAubS4iLCA0LCBEQ0hfcF9tLCBmYWxzZSwgRlJPTV9D SEFSX0RBVEVfTk9ORX0sCS8qIHAgKi8KKwl7InBtIiwgMiwgRENIX3BtLCBm YWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCisJeyJxIiwgMSwgRENIX1Es IHRydWUsIEZST01fQ0hBUl9EQVRFX05PTkV9LCAvKiBxICovCisJeyJybSIs IDIsIERDSF9ybSwgZmFsc2UsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0s IC8qIHIgKi8KKwl7InNzc3MiLCA0LCBEQ0hfU1NTUywgdHJ1ZSwgRlJPTV9D SEFSX0RBVEVfTk9ORX0sCS8qIHMgKi8KKwl7InNzIiwgMiwgRENIX1NTLCB0 cnVlLCBGUk9NX0NIQVJfREFURV9OT05FfSwKKwl7InR6IiwgMiwgRENIX3R6 LCBmYWxzZSwgRlJPTV9DSEFSX0RBVEVfTk9ORX0sCS8qIHQgKi8KKwl7InVz IiwgMiwgRENIX1VTLCB0cnVlLCBGUk9NX0NIQVJfREFURV9OT05FfSwJLyog dSAqLworCXsid3ciLCAyLCBEQ0hfV1csIHRydWUsIEZST01fQ0hBUl9EQVRF X0dSRUdPUklBTn0sCS8qIHcgKi8KKwl7InciLCAxLCBEQ0hfVywgdHJ1ZSwg RlJPTV9DSEFSX0RBVEVfR1JFR09SSUFOfSwKKwl7InkseXl5IiwgNSwgRENI X1lfWVlZLCB0cnVlLCBGUk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAkvKiB5 ICovCisJeyJ5eXl5IiwgNCwgRENIX1lZWVksIHRydWUsIEZST01fQ0hBUl9E QVRFX0dSRUdPUklBTn0sCisJeyJ5eXkiLCAzLCBEQ0hfWVlZLCB0cnVlLCBG Uk9NX0NIQVJfREFURV9HUkVHT1JJQU59LAorCXsieXkiLCAyLCBEQ0hfWVks IHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCisJeyJ5IiwgMSwg RENIX1ksIHRydWUsIEZST01fQ0hBUl9EQVRFX0dSRUdPUklBTn0sCiAKIAkv KiBsYXN0ICovCiAJe05VTEwsIDAsIDAsIDAsIDB9CkBAIC0xMTAyLDcgKzEx MDIsNyBAQCBOVU1EZXNjX3ByZXBhcmUoTlVNRGVzYyAqbnVtLCBGb3JtYXRO b2RlICpuKQogCiAJCWNhc2UgTlVNX0Q6CiAJCQludW0tPmZsYWcgfD0gTlVN X0ZfTERFQ0lNQUw7Ci0JCQludW0tPm5lZWRfbG9jYWxlID0gVFJVRTsKKwkJ CW51bS0+bmVlZF9sb2NhbGUgPSB0cnVlOwogCQkJLyogRkFMTFRIUk9VR0gg Ki8KIAkJY2FzZSBOVU1fREVDOgogCQkJaWYgKElTX0RFQ0lNQUwobnVtKSkK QEAgLTExMzMsMTMgKzExMzMsMTMgQEAgTlVNRGVzY19wcmVwYXJlKE5VTURl c2MgKm51bSwgRm9ybWF0Tm9kZSAqbikKIAkJCXsKIAkJCQludW0tPmxzaWdu ID0gTlVNX0xTSUdOX1BSRTsKIAkJCQludW0tPnByZV9sc2lnbl9udW0gPSBu dW0tPnByZTsKLQkJCQludW0tPm5lZWRfbG9jYWxlID0gVFJVRTsKKwkJCQlu dW0tPm5lZWRfbG9jYWxlID0gdHJ1ZTsKIAkJCQludW0tPmZsYWcgfD0gTlVN X0ZfTFNJR047CiAJCQl9CiAJCQllbHNlIGlmIChudW0tPmxzaWduID09IE5V TV9MU0lHTl9OT05FKQogCQkJewogCQkJCW51bS0+bHNpZ24gPSBOVU1fTFNJ R05fUE9TVDsKLQkJCQludW0tPm5lZWRfbG9jYWxlID0gVFJVRTsKKwkJCQlu dW0tPm5lZWRfbG9jYWxlID0gdHJ1ZTsKIAkJCQludW0tPmZsYWcgfD0gTlVN X0ZfTFNJR047CiAJCQl9CiAJCQlicmVhazsKQEAgLTExODgsNyArMTE4OCw3 IEBAIE5VTURlc2NfcHJlcGFyZShOVU1EZXNjICpudW0sIEZvcm1hdE5vZGUg Km4pCiAKIAkJY2FzZSBOVU1fTDoKIAkJY2FzZSBOVU1fRzoKLQkJCW51bS0+ bmVlZF9sb2NhbGUgPSBUUlVFOworCQkJbnVtLT5uZWVkX2xvY2FsZSA9IHRy dWU7CiAJCQlicmVhazsKIAogCQljYXNlIE5VTV9WOgpAQCAtMjA3MiwxNyAr MjA3MiwxNyBAQCBkdW1wX2luZGV4KGNvbnN0IEtleVdvcmQgKmssIGNvbnN0 IGludCAqaW5kZXgpCiAjZW5kaWYJCQkJCQkJLyogREVCVUcgKi8KIAogLyog LS0tLS0tLS0tLQotICogUmV0dXJuIFRSVUUgaWYgbmV4dCBmb3JtYXQgcGlj dHVyZSBpcyBub3QgZGlnaXQgdmFsdWUKKyAqIFJldHVybiB0cnVlIGlmIG5l eHQgZm9ybWF0IHBpY3R1cmUgaXMgbm90IGRpZ2l0IHZhbHVlCiAgKiAtLS0t LS0tLS0tCiAgKi8KIHN0YXRpYyBib29sCiBpc19uZXh0X3NlcGFyYXRvcihG b3JtYXROb2RlICpuKQogewogCWlmIChuLT50eXBlID09IE5PREVfVFlQRV9F TkQpCi0JCXJldHVybiBGQUxTRTsKKwkJcmV0dXJuIGZhbHNlOwogCiAJaWYg KG4tPnR5cGUgPT0gTk9ERV9UWVBFX0FDVElPTiAmJiBTX1RIdGgobi0+c3Vm Zml4KSkKLQkJcmV0dXJuIFRSVUU7CisJCXJldHVybiB0cnVlOwogCiAJLyoK IAkgKiBOZXh0IG5vZGUKQEAgLTIwOTEsMTkgKzIwOTEsMTkgQEAgaXNfbmV4 dF9zZXBhcmF0b3IoRm9ybWF0Tm9kZSAqbikKIAogCS8qIGVuZCBvZiBmb3Jt YXQgc3RyaW5nIGlzIHRyZWF0ZWQgbGlrZSBhIG5vbi1kaWdpdCBzZXBhcmF0 b3IgKi8KIAlpZiAobi0+dHlwZSA9PSBOT0RFX1RZUEVfRU5EKQotCQlyZXR1 cm4gVFJVRTsKKwkJcmV0dXJuIHRydWU7CiAKIAlpZiAobi0+dHlwZSA9PSBO T0RFX1RZUEVfQUNUSU9OKQogCXsKIAkJaWYgKG4tPmtleS0+aXNfZGlnaXQp Ci0JCQlyZXR1cm4gRkFMU0U7CisJCQlyZXR1cm4gZmFsc2U7CiAKLQkJcmV0 dXJuIFRSVUU7CisJCXJldHVybiB0cnVlOwogCX0KIAllbHNlIGlmIChpc2Rp Z2l0KCh1bnNpZ25lZCBjaGFyKSBuLT5jaGFyYWN0ZXIpKQotCQlyZXR1cm4g RkFMU0U7CisJCXJldHVybiBmYWxzZTsKIAotCXJldHVybiBUUlVFOwkJCQkv KiBzb21lIG5vbi1kaWdpdCBpbnB1dCAoc2VwYXJhdG9yKSAqLworCXJldHVy biB0cnVlOwkJCQkvKiBzb21lIG5vbi1kaWdpdCBpbnB1dCAoc2VwYXJhdG9y KSAqLwogfQogCiAKQEAgLTMzOTcsNyArMzM5Nyw3IEBAIGRhdGV0aW1lX3Rv X2NoYXJfYm9keShUbVRvQ2hhciAqdG10YywgdGV4dCAqZm10LCBib29sIGlz X2ludGVydmFsLCBPaWQgY29sbGlkKQogCQkgKiBBbGxvY2F0ZSBuZXcgbWVt b3J5IGlmIGZvcm1hdCBwaWN0dXJlIGlzIGJpZ2dlciB0aGFuIHN0YXRpYyBj YWNoZQogCQkgKiBhbmQgZG8gbm90IHVzZSBjYWNoZSAoY2FsbCBwYXJzZXIg YWx3YXlzKQogCQkgKi8KLQkJaW5jYWNoZSA9IEZBTFNFOworCQlpbmNhY2hl ID0gZmFsc2U7CiAKIAkJZm9ybWF0ID0gKEZvcm1hdE5vZGUgKikgcGFsbG9j KChmbXRfbGVuICsgMSkgKiBzaXplb2YoRm9ybWF0Tm9kZSkpOwogCkBAIC0z NDExLDcgKzM0MTEsNyBAQCBkYXRldGltZV90b19jaGFyX2JvZHkoVG1Ub0No YXIgKnRtdGMsIHRleHQgKmZtdCwgYm9vbCBpc19pbnRlcnZhbCwgT2lkIGNv bGxpZCkKIAkJICovCiAJCURDSENhY2hlRW50cnkgKmVudCA9IERDSF9jYWNo ZV9mZXRjaChmbXRfc3RyKTsKIAotCQlpbmNhY2hlID0gVFJVRTsKKwkJaW5j YWNoZSA9IHRydWU7CiAJCWZvcm1hdCA9IGVudC0+Zm9ybWF0OwogCX0KIApA QCAtMzY0Miw3ICszNjQyLDcgQEAgZG9fdG9fdGltZXN0YW1wKHRleHQgKmRh dGVfdHh0LCB0ZXh0ICpmbXQsCiAJCQkgKiBBbGxvY2F0ZSBuZXcgbWVtb3J5 IGlmIGZvcm1hdCBwaWN0dXJlIGlzIGJpZ2dlciB0aGFuIHN0YXRpYwogCQkJ ICogY2FjaGUgYW5kIGRvIG5vdCB1c2UgY2FjaGUgKGNhbGwgcGFyc2VyIGFs d2F5cykKIAkJCSAqLwotCQkJaW5jYWNoZSA9IEZBTFNFOworCQkJaW5jYWNo ZSA9IGZhbHNlOwogCiAJCQlmb3JtYXQgPSAoRm9ybWF0Tm9kZSAqKSBwYWxs b2MoKGZtdF9sZW4gKyAxKSAqIHNpemVvZihGb3JtYXROb2RlKSk7CiAKQEAg LTM2NTYsNyArMzY1Niw3IEBAIGRvX3RvX3RpbWVzdGFtcCh0ZXh0ICpkYXRl X3R4dCwgdGV4dCAqZm10LAogCQkJICovCiAJCQlEQ0hDYWNoZUVudHJ5ICpl bnQgPSBEQ0hfY2FjaGVfZmV0Y2goZm10X3N0cik7CiAKLQkJCWluY2FjaGUg PSBUUlVFOworCQkJaW5jYWNoZSA9IHRydWU7CiAJCQlmb3JtYXQgPSBlbnQt PmZvcm1hdDsKIAkJfQogCkBAIC00MjQ1LDcgKzQyNDUsNyBAQCBnZXRfbGFz dF9yZWxldmFudF9kZWNudW0oY2hhciAqbnVtKQogc3RhdGljIHZvaWQKIE5V TV9udW1wYXJ0X2Zyb21fY2hhcihOVU1Qcm9jICpOcCwgaW50IGlkLCBpbnQg aW5wdXRfbGVuKQogewotCWJvb2wJCWlzcmVhZCA9IEZBTFNFOworCWJvb2wJ CWlzcmVhZCA9IGZhbHNlOwogCiAjaWZkZWYgREVCVUdfVE9fRlJPTV9DSEFS CiAJZWxvZyhERUJVR19lbG9nX291dHB1dCwgIiAtLS0gc2NhbiBzdGFydCAt LS0gaWQ9JXMiLApAQCAtNDM0NiwxMyArNDM0NiwxMyBAQCBOVU1fbnVtcGFy dF9mcm9tX2NoYXIoTlVNUHJvYyAqTnAsIGludCBpZCwgaW50IGlucHV0X2xl bikKIAkJZWxzZQogCQkJTnAtPnJlYWRfcHJlKys7CiAKLQkJaXNyZWFkID0g VFJVRTsKKwkJaXNyZWFkID0gdHJ1ZTsKIAogI2lmZGVmIERFQlVHX1RPX0ZS T01fQ0hBUgogCQllbG9nKERFQlVHX2Vsb2dfb3V0cHV0LCAiUmVhZCBkaWdp dCAoJWMpIiwgKk5wLT5pbm91dF9wKTsKICNlbmRpZgogCX0KLQllbHNlIGlm IChJU19ERUNJTUFMKE5wLT5OdW0pICYmIE5wLT5yZWFkX2RlYyA9PSBGQUxT RSkKKwllbHNlIGlmIChJU19ERUNJTUFMKE5wLT5OdW0pICYmIE5wLT5yZWFk X2RlYyA9PSBmYWxzZSkKIAl7CiAJCS8qCiAJCSAqIFdlIG5lZWQgbm90IHRl c3QgSVNfTERFQ0lNQUwoTnAtPk51bSkgZXhwbGljaXRseSBoZXJlLCBiZWNh dXNlCkBAIC00MzcwLDggKzQzNzAsOCBAQCBOVU1fbnVtcGFydF9mcm9tX2No YXIoTlVNUHJvYyAqTnAsIGludCBpZCwgaW50IGlucHV0X2xlbikKIAkJCU5w LT5pbm91dF9wICs9IHggLSAxOwogCQkJKk5wLT5udW1iZXJfcCA9ICcuJzsK IAkJCU5wLT5udW1iZXJfcCsrOwotCQkJTnAtPnJlYWRfZGVjID0gVFJVRTsK LQkJCWlzcmVhZCA9IFRSVUU7CisJCQlOcC0+cmVhZF9kZWMgPSB0cnVlOwor CQkJaXNyZWFkID0gdHJ1ZTsKIAkJfQogCX0KIApAQCAtNDQyOSwxMSArNDQy OSwxMSBAQCBOVU1fbnVtcGFydF9mcm9tX2NoYXIoTlVNUHJvYyAqTnAsIGlu dCBpZCwgaW50IGlucHV0X2xlbikKIAkJICoKIAkJICogRk05Ljk5OTk5OU1J CQkJICAgLT4gNS4wMS0KIAkJICoKLQkJICogaWYgKC4uLi4gJiYgSVNfTFNJ R04oTnAtPk51bSk9PUZBTFNFKSBwcmV2ZW50cyByZWFkIHdyb25nIGZvcm1h dHMKKwkJICogaWYgKC4uLi4gJiYgSVNfTFNJR04oTnAtPk51bSk9PWZhbHNl KSBwcmV2ZW50cyByZWFkIHdyb25nIGZvcm1hdHMKIAkJICogbGlrZSB0b19u dW1iZXIoJzEgLScsICc5UycpIHdoZXJlIHNpZ24gaXMgbm90IGFuY2hvcmVk IHRvIGxhc3QKIAkJICogbnVtYmVyLgogCQkgKi8KLQkJZWxzZSBpZiAoaXNy ZWFkID09IEZBTFNFICYmIElTX0xTSUdOKE5wLT5OdW0pID09IEZBTFNFICYm CisJCWVsc2UgaWYgKGlzcmVhZCA9PSBmYWxzZSAmJiBJU19MU0lHTihOcC0+ TnVtKSA9PSBmYWxzZSAmJgogCQkJCSAoSVNfUExVUyhOcC0+TnVtKSB8fCBJ U19NSU5VUyhOcC0+TnVtKSkpCiAJCXsKICNpZmRlZiBERUJVR19UT19GUk9N X0NIQVIKQEAgLTQ0NTEsNyArNDQ1MSw3IEBAIE5VTV9udW1wYXJ0X2Zyb21f Y2hhcihOVU1Qcm9jICpOcCwgaW50IGlkLCBpbnQgaW5wdXRfbGVuKQogfQog CiAjZGVmaW5lIElTX1BSRURFQ19TUEFDRShfbikgXAotCQkoSVNfWkVSTygo X24pLT5OdW0pPT1GQUxTRSAmJiBcCisJCShJU19aRVJPKChfbiktPk51bSk9 PWZhbHNlICYmIFwKIAkJIChfbiktPm51bWJlciA9PSAoX24pLT5udW1iZXJf cCAmJiBcCiAJCSAqKF9uKS0+bnVtYmVyID09ICcwJyAmJiBcCiAJCQkJIChf biktPk51bS0+cG9zdCAhPSAwKQpAQCAtNDQ4MywxNSArNDQ4MywxNSBAQCBO VU1fbnVtcGFydF90b19jaGFyKE5VTVByb2MgKk5wLCBpbnQgaWQpCiAJCSBO cC0+bnVtYmVyX3AsCiAJCSBOcC0+aW5vdXQpOwogI2VuZGlmCi0JTnAtPm51 bV9pbiA9IEZBTFNFOworCU5wLT5udW1faW4gPSBmYWxzZTsKIAogCS8qCiAJ ICogV3JpdGUgc2lnbiBpZiByZWFsIG51bWJlciB3aWxsIHdyaXRlIHRvIG91 dHB1dCBOb3RlOiBJU19QUkVERUNfU1BBQ0UoKQogCSAqIGhhbmRsZSAiOS45 IiAtLT4gIiAuMSIKIAkgKi8KLQlpZiAoTnAtPnNpZ25fd3JvdGUgPT0gRkFM U0UgJiYKKwlpZiAoTnAtPnNpZ25fd3JvdGUgPT0gZmFsc2UgJiYKIAkJKE5w LT5udW1fY3VyciA+PSBOcC0+b3V0X3ByZV9zcGFjZXMgfHwgKElTX1pFUk8o TnAtPk51bSkgJiYgTnAtPk51bS0+emVyb19zdGFydCA9PSBOcC0+bnVtX2N1 cnIpKSAmJgotCQkoSVNfUFJFREVDX1NQQUNFKE5wKSA9PSBGQUxTRSB8fCAo TnAtPmxhc3RfcmVsZXZhbnQgJiYgKk5wLT5sYXN0X3JlbGV2YW50ID09ICcu JykpKQorCQkoSVNfUFJFREVDX1NQQUNFKE5wKSA9PSBmYWxzZSB8fCAoTnAt Pmxhc3RfcmVsZXZhbnQgJiYgKk5wLT5sYXN0X3JlbGV2YW50ID09ICcuJykp KQogCXsKIAkJaWYgKElTX0xTSUdOKE5wLT5OdW0pKQogCQl7CkBAIC00NTAy LDE0ICs0NTAyLDE0IEBAIE5VTV9udW1wYXJ0X3RvX2NoYXIoTlVNUHJvYyAq TnAsIGludCBpZCkKIAkJCQllbHNlCiAJCQkJCXN0cmNweShOcC0+aW5vdXRf cCwgTnAtPkxfcG9zaXRpdmVfc2lnbik7CiAJCQkJTnAtPmlub3V0X3AgKz0g c3RybGVuKE5wLT5pbm91dF9wKTsKLQkJCQlOcC0+c2lnbl93cm90ZSA9IFRS VUU7CisJCQkJTnAtPnNpZ25fd3JvdGUgPSB0cnVlOwogCQkJfQogCQl9CiAJ CWVsc2UgaWYgKElTX0JSQUNLRVQoTnAtPk51bSkpCiAJCXsKIAkJCSpOcC0+ aW5vdXRfcCA9IE5wLT5zaWduID09ICcrJyA/ICcgJyA6ICc8JzsKIAkJCSsr TnAtPmlub3V0X3A7Ci0JCQlOcC0+c2lnbl93cm90ZSA9IFRSVUU7CisJCQlO cC0+c2lnbl93cm90ZSA9IHRydWU7CiAJCX0KIAkJZWxzZSBpZiAoTnAtPnNp Z24gPT0gJysnKQogCQl7CkBAIC00NTE4LDEzICs0NTE4LDEzIEBAIE5VTV9u dW1wYXJ0X3RvX2NoYXIoTlVNUHJvYyAqTnAsIGludCBpZCkKIAkJCQkqTnAt Pmlub3V0X3AgPSAnICc7IC8qIFdyaXRlICsgKi8KIAkJCQkrK05wLT5pbm91 dF9wOwogCQkJfQotCQkJTnAtPnNpZ25fd3JvdGUgPSBUUlVFOworCQkJTnAt PnNpZ25fd3JvdGUgPSB0cnVlOwogCQl9CiAJCWVsc2UgaWYgKE5wLT5zaWdu ID09ICctJykKIAkJewkJCQkJCS8qIFdyaXRlIC0gKi8KIAkJCSpOcC0+aW5v dXRfcCA9ICctJzsKIAkJCSsrTnAtPmlub3V0X3A7Ci0JCQlOcC0+c2lnbl93 cm90ZSA9IFRSVUU7CisJCQlOcC0+c2lnbl93cm90ZSA9IHRydWU7CiAJCX0K IAl9CiAKQEAgLTQ1NTUsNyArNDU1NSw3IEBAIE5VTV9udW1wYXJ0X3RvX2No YXIoTlVNUHJvYyAqTnAsIGludCBpZCkKIAkJCSAqLwogCQkJKk5wLT5pbm91 dF9wID0gJzAnOyAvKiBXcml0ZSAnMCcgKi8KIAkJCSsrTnAtPmlub3V0X3A7 Ci0JCQlOcC0+bnVtX2luID0gVFJVRTsKKwkJCU5wLT5udW1faW4gPSB0cnVl OwogCQl9CiAJCWVsc2UKIAkJewpAQCAtNDYxMyw3ICs0NjEzLDcgQEAgTlVN X251bXBhcnRfdG9fY2hhcihOVU1Qcm9jICpOcCwgaW50IGlkKQogCQkJCXsK IAkJCQkJKk5wLT5pbm91dF9wID0gKk5wLT5udW1iZXJfcDsJLyogV3JpdGUg RElHSVQgKi8KIAkJCQkJKytOcC0+aW5vdXRfcDsKLQkJCQkJTnAtPm51bV9p biA9IFRSVUU7CisJCQkJCU5wLT5udW1faW4gPSB0cnVlOwogCQkJCX0KIAkJ CX0KIAkJCS8qIGRvIG5vIGV4Y2VlZCBzdHJpbmcgbGVuZ3RoICovCkBAIC00 NjI4LDcgKzQ2MjgsNyBAQCBOVU1fbnVtcGFydF90b19jaGFyKE5VTVByb2Mg Kk5wLCBpbnQgaWQpCiAKIAkJaWYgKE5wLT5udW1fY3VyciArIDEgPT0gZW5k KQogCQl7Ci0JCQlpZiAoTnAtPnNpZ25fd3JvdGUgPT0gVFJVRSAmJiBJU19C UkFDS0VUKE5wLT5OdW0pKQorCQkJaWYgKE5wLT5zaWduX3dyb3RlID09IHRy dWUgJiYgSVNfQlJBQ0tFVChOcC0+TnVtKSkKIAkJCXsKIAkJCQkqTnAtPmlu b3V0X3AgPSBOcC0+c2lnbiA9PSAnKycgPyAnICcgOiAnPic7CiAJCQkJKytO cC0+aW5vdXRfcDsKQEAgLTQ2NjUsNyArNDY2NSw3IEBAIE5VTV9wcm9jZXNz b3IoRm9ybWF0Tm9kZSAqbm9kZSwgTlVNRGVzYyAqTnVtLCBjaGFyICppbm91 dCwKIAlOcC0+bGFzdF9yZWxldmFudCA9IE5VTEw7CiAJTnAtPnJlYWRfcG9z dCA9IDA7CiAJTnAtPnJlYWRfcHJlID0gMDsKLQlOcC0+cmVhZF9kZWMgPSBG QUxTRTsKKwlOcC0+cmVhZF9kZWMgPSBmYWxzZTsKIAogCWlmIChOcC0+TnVt LT56ZXJvX3N0YXJ0KQogCQktLU5wLT5OdW0tPnplcm9fc3RhcnQ7CkBAIC00 NzEyLDEwICs0NzEyLDEwIEBAIE5VTV9wcm9jZXNzb3IoRm9ybWF0Tm9kZSAq bm9kZSwgTlVNRGVzYyAqTnVtLCBjaGFyICppbm91dCwKIAkJLyogTUkvUEwv U0cgLSB3cml0ZSBzaWduIGl0c2VsZiBhbmQgbm90IGluIG51bWJlciAqLwog CQlpZiAoSVNfUExVUyhOcC0+TnVtKSB8fCBJU19NSU5VUyhOcC0+TnVtKSkK IAkJewotCQkJaWYgKElTX1BMVVMoTnAtPk51bSkgJiYgSVNfTUlOVVMoTnAt Pk51bSkgPT0gRkFMU0UpCi0JCQkJTnAtPnNpZ25fd3JvdGUgPSBGQUxTRTsg LyogbmVlZCBzaWduICovCisJCQlpZiAoSVNfUExVUyhOcC0+TnVtKSAmJiBJ U19NSU5VUyhOcC0+TnVtKSA9PSBmYWxzZSkKKwkJCQlOcC0+c2lnbl93cm90 ZSA9IGZhbHNlOyAvKiBuZWVkIHNpZ24gKi8KIAkJCWVsc2UKLQkJCQlOcC0+ c2lnbl93cm90ZSA9IFRSVUU7CS8qIG5lZWRuJ3Qgc2lnbiAqLworCQkJCU5w LT5zaWduX3dyb3RlID0gdHJ1ZTsJLyogbmVlZG4ndCBzaWduICovCiAJCX0K IAkJZWxzZQogCQl7CkBAIC00NzI5LDE3ICs0NzI5LDE3IEBAIE5VTV9wcm9j ZXNzb3IoRm9ybWF0Tm9kZSAqbm9kZSwgTlVNRGVzYyAqTnVtLCBjaGFyICpp bm91dCwKIAkJCWVsc2UgaWYgKE5wLT5zaWduICE9ICcrJyAmJiBJU19QTFVT KE5wLT5OdW0pKQogCQkJCU5wLT5OdW0tPmZsYWcgJj0gfk5VTV9GX1BMVVM7 CiAKLQkJCWlmIChOcC0+c2lnbiA9PSAnKycgJiYgSVNfRklMTE1PREUoTnAt Pk51bSkgJiYgSVNfTFNJR04oTnAtPk51bSkgPT0gRkFMU0UpCi0JCQkJTnAt PnNpZ25fd3JvdGUgPSBUUlVFOwkvKiBuZWVkbid0IHNpZ24gKi8KKwkJCWlm IChOcC0+c2lnbiA9PSAnKycgJiYgSVNfRklMTE1PREUoTnAtPk51bSkgJiYg SVNfTFNJR04oTnAtPk51bSkgPT0gZmFsc2UpCisJCQkJTnAtPnNpZ25fd3Jv dGUgPSB0cnVlOwkvKiBuZWVkbid0IHNpZ24gKi8KIAkJCWVsc2UKLQkJCQlO cC0+c2lnbl93cm90ZSA9IEZBTFNFOyAvKiBuZWVkIHNpZ24gKi8KKwkJCQlO cC0+c2lnbl93cm90ZSA9IGZhbHNlOyAvKiBuZWVkIHNpZ24gKi8KIAogCQkJ aWYgKE5wLT5OdW0tPmxzaWduID09IE5VTV9MU0lHTl9QUkUgJiYgTnAtPk51 bS0+cHJlID09IE5wLT5OdW0tPnByZV9sc2lnbl9udW0pCiAJCQkJTnAtPk51 bS0+bHNpZ24gPSBOVU1fTFNJR05fUE9TVDsKIAkJfQogCX0KIAllbHNlCi0J CU5wLT5zaWduID0gRkFMU0U7CisJCU5wLT5zaWduID0gZmFsc2U7CiAKIAkv KgogCSAqIENvdW50CkBAIC00NzY4LDcgKzQ3NjgsNyBAQCBOVU1fcHJvY2Vz c29yKEZvcm1hdE5vZGUgKm5vZGUsIE5VTURlc2MgKk51bSwgY2hhciAqaW5v dXQsCiAJCQl9CiAJCX0KIAotCQlpZiAoTnAtPnNpZ25fd3JvdGUgPT0gRkFM U0UgJiYgTnAtPm91dF9wcmVfc3BhY2VzID09IDApCisJCWlmIChOcC0+c2ln bl93cm90ZSA9PSBmYWxzZSAmJiBOcC0+b3V0X3ByZV9zcGFjZXMgPT0gMCkK IAkJCSsrTnAtPm51bV9jb3VudDsKIAl9CiAJZWxzZQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggMDM0ODg1NWIxMS4uNzBmM2Qz MTljYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19v cHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBA IC0xNTMwLDcgKzE1MzAsNyBAQCBwYXRoX2Nsb3NlKFBHX0ZVTkNUSU9OX0FS R1MpCiB7CiAJUEFUSAkgICAqcGF0aCA9IFBHX0dFVEFSR19QQVRIX1BfQ09Q WSgwKTsKIAotCXBhdGgtPmNsb3NlZCA9IFRSVUU7CisJcGF0aC0+Y2xvc2Vk ID0gdHJ1ZTsKIAogCVBHX1JFVFVSTl9QQVRIX1AocGF0aCk7CiB9CkBAIC0x NTQwLDcgKzE1NDAsNyBAQCBwYXRoX29wZW4oUEdfRlVOQ1RJT05fQVJHUykK IHsKIAlQQVRICSAgICpwYXRoID0gUEdfR0VUQVJHX1BBVEhfUF9DT1BZKDAp OwogCi0JcGF0aC0+Y2xvc2VkID0gRkFMU0U7CisJcGF0aC0+Y2xvc2VkID0g ZmFsc2U7CiAKIAlQR19SRVRVUk5fUEFUSF9QKHBhdGgpOwogfQpAQCAtNDQ5 OSw3ICs0NDk5LDcgQEAgcG9seV9wYXRoKFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlTRVRfVkFSU0laRShwYXRoLCBzaXplKTsKIAlwYXRoLT5ucHRzID0gcG9s eS0+bnB0czsKLQlwYXRoLT5jbG9zZWQgPSBUUlVFOworCXBhdGgtPmNsb3Nl ZCA9IHRydWU7CiAJLyogcHJldmVudCBpbnN0YWJpbGl0eSBpbiB1bnVzZWQg cGFkIGJ5dGVzICovCiAJcGF0aC0+ZHVtbXkgPSAwOwogCkBAIC01NDAxLDcg KzU0MDEsNyBAQCBwbGlzdF9zYW1lKGludCBucHRzLCBQb2ludCAqcDEsIFBv aW50ICpwMikKIAkJCXByaW50ZigicGxpc3Rfc2FtZS0gaWkgPSAlZC8lZCBh ZnRlciBmb3J3YXJkIG1hdGNoXG4iLCBpaSwgbnB0cyk7CiAjZW5kaWYKIAkJ CWlmIChpaSA9PSBucHRzKQotCQkJCXJldHVybiBUUlVFOworCQkJCXJldHVy biB0cnVlOwogCiAJCQkvKiBtYXRjaCBub3QgZm91bmQgZm9yd2FyZHM/IHRo ZW4gbG9vayBiYWNrd2FyZHMgKi8KIAkJCWZvciAoaWkgPSAxLCBqID0gaSAt IDE7IGlpIDwgbnB0czsgaWkrKywgai0tKQpAQCAtNTQyMSwxMSArNTQyMSwx MSBAQCBwbGlzdF9zYW1lKGludCBucHRzLCBQb2ludCAqcDEsIFBvaW50ICpw MikKIAkJCXByaW50ZigicGxpc3Rfc2FtZS0gaWkgPSAlZC8lZCBhZnRlciBy ZXZlcnNlIG1hdGNoXG4iLCBpaSwgbnB0cyk7CiAjZW5kaWYKIAkJCWlmIChp aSA9PSBucHRzKQotCQkJCXJldHVybiBUUlVFOworCQkJCXJldHVybiB0cnVl OwogCQl9CiAJfQogCi0JcmV0dXJuIEZBTFNFOworCXJldHVybiBmYWxzZTsK IH0KIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0 d29ya19naXN0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29ya19n aXN0LmMKaW5kZXggYTAwOTdkYWU5Yy4uYTE2MDdlODc5MyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmtfZ2lzdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrX2dpc3QuYwpAQCAtNTYx LDEzICs1NjEsMTMgQEAgaW5ldF9naXN0X2NvbXByZXNzKFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAkJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdl dERhdHVtKHIpLAogCQkJCQkJICBlbnRyeS0+cmVsLCBlbnRyeS0+cGFnZSwK LQkJCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJCQkJICBlbnRy eS0+b2Zmc2V0LCBmYWxzZSk7CiAJCX0KIAkJZWxzZQogCQl7CiAJCQlnaXN0 ZW50cnlpbml0KCpyZXR2YWwsIChEYXR1bSkgMCwKIAkJCQkJCSAgZW50cnkt PnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZB TFNFKTsKKwkJCQkJCSAgZW50cnktPm9mZnNldCwgZmFsc2UpOwogCQl9CiAJ fQogCWVsc2UKQEAgLTYxMCw3ICs2MTAsNyBAQCBpbmV0X2dpc3RfZmV0Y2go UEdfRlVOQ1RJT05fQVJHUykKIAogCXJldHZhbCA9IHBhbGxvYyhzaXplb2Yo R0lTVEVOVFJZKSk7CiAJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBJbmV0UEdl dERhdHVtKGRzdCksIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLAotCQkJCSAg ZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJCSAgZW50cnktPm9mZnNldCwg ZmFsc2UpOwogCiAJUEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCmluZGV4IDNlNTYxNGVj ZTMuLjVjOTUzMjAzNDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNTQ0Nyw3ICs1NDQ3LDcgQEAgemVyb192YXIoTnVtZXJp Y1ZhciAqdmFyKQogc3RhdGljIGNvbnN0IGNoYXIgKgogc2V0X3Zhcl9mcm9t X3N0cihjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXIgKmNwLCBOdW1lcmlj VmFyICpkZXN0KQogewotCWJvb2wJCWhhdmVfZHAgPSBGQUxTRTsKKwlib29s CQloYXZlX2RwID0gZmFsc2U7CiAJaW50CQkJaTsKIAl1bnNpZ25lZCBjaGFy ICpkZWNkaWdpdHM7CiAJaW50CQkJc2lnbiA9IE5VTUVSSUNfUE9TOwpAQCAt NTQ3OCw3ICs1NDc4LDcgQEAgc2V0X3Zhcl9mcm9tX3N0cihjb25zdCBjaGFy ICpzdHIsIGNvbnN0IGNoYXIgKmNwLCBOdW1lcmljVmFyICpkZXN0KQogCiAJ aWYgKCpjcCA9PSAnLicpCiAJewotCQloYXZlX2RwID0gVFJVRTsKKwkJaGF2 ZV9kcCA9IHRydWU7CiAJCWNwKys7CiAJfQogCkBAIC01NTExLDcgKzU1MTEs NyBAQCBzZXRfdmFyX2Zyb21fc3RyKGNvbnN0IGNoYXIgKnN0ciwgY29uc3Qg Y2hhciAqY3AsIE51bWVyaWNWYXIgKmRlc3QpCiAJCQkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfVEVYVF9SRVBSRVNFTlRBVElPTiksCiAJCQkJCQkg ZXJybXNnKCJpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSAlczogXCIl c1wiIiwKIAkJCQkJCQkJIm51bWVyaWMiLCBzdHIpKSk7Ci0JCQloYXZlX2Rw ID0gVFJVRTsKKwkJCWhhdmVfZHAgPSB0cnVlOwogCQkJY3ArKzsKIAkJfQog CQllbHNlCkBAIC02MDgwLDcgKzYwODAsNyBAQCBhcHBseV90eXBtb2QoTnVt ZXJpY1ZhciAqdmFyLCBpbnQzMiB0eXBtb2QpCiAvKgogICogQ29udmVydCBu dW1lcmljIHRvIGludDgsIHJvdW5kaW5nIGlmIG5lZWRlZC4KICAqCi0gKiBJ ZiBvdmVyZmxvdywgcmV0dXJuIEZBTFNFIChubyBlcnJvciBpcyByYWlzZWQp LiAgUmV0dXJuIFRSVUUgaWYgb2theS4KKyAqIElmIG92ZXJmbG93LCByZXR1 cm4gZmFsc2UgKG5vIGVycm9yIGlzIHJhaXNlZCkuICBSZXR1cm4gdHJ1ZSBp ZiBva2F5LgogICovCiBzdGF0aWMgYm9vbAogbnVtZXJpY3Zhcl90b19pbnQ2 NChOdW1lcmljVmFyICp2YXIsIGludDY0ICpyZXN1bHQpCkBAIC02MTk5LDcg KzYxOTksNyBAQCBpbnQ2NF90b19udW1lcmljdmFyKGludDY0IHZhbCwgTnVt ZXJpY1ZhciAqdmFyKQogLyoKICAqIENvbnZlcnQgbnVtZXJpYyB0byBpbnQx MjgsIHJvdW5kaW5nIGlmIG5lZWRlZC4KICAqCi0gKiBJZiBvdmVyZmxvdywg cmV0dXJuIEZBTFNFIChubyBlcnJvciBpcyByYWlzZWQpLiAgUmV0dXJuIFRS VUUgaWYgb2theS4KKyAqIElmIG92ZXJmbG93LCByZXR1cm4gZmFsc2UgKG5v IGVycm9yIGlzIHJhaXNlZCkuICBSZXR1cm4gdHJ1ZSBpZiBva2F5LgogICov CiBzdGF0aWMgYm9vbAogbnVtZXJpY3Zhcl90b19pbnQxMjgoTnVtZXJpY1Zh ciAqdmFyLCBpbnQxMjggKnJlc3VsdCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC90c2dpbmlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzZ2luaWR4LmMKaW5kZXggODNhOTM5ZGZkNS4uYWJhNDU2ZWQ4OCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKQEAgLTI5 NSw3ICsyOTUsNyBAQCBnaW5fdHNxdWVyeV9jb25zaXN0ZW50KFBHX0ZVTkNU SU9OX0FSR1MpCiAJLyogaW50MzIJbmtleXMgPSBQR19HRVRBUkdfSU5UMzIo Myk7ICovCiAJUG9pbnRlciAgICAqZXh0cmFfZGF0YSA9IChQb2ludGVyICop IFBHX0dFVEFSR19QT0lOVEVSKDQpOwogCWJvb2wJICAgKnJlY2hlY2sgPSAo Ym9vbCAqKSBQR19HRVRBUkdfUE9JTlRFUig1KTsKLQlib29sCQlyZXMgPSBG QUxTRTsKKwlib29sCQlyZXMgPSBmYWxzZTsKIAogCS8qIEluaXRpYWxseSBh c3N1bWUgcXVlcnkgZG9lc24ndCByZXF1aXJlIHJlY2hlY2sgKi8KIAkqcmVj aGVjayA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RzZ2lzdGlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2lz dGlkeC5jCmluZGV4IDdjZTI2OTliNWMuLjE5NmE5MzgxYmMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dpc3RpZHguYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvdHNnaXN0aWR4LmMKQEAgLTI0MCw3ICsy NDAsNyBAQCBndHN2ZWN0b3JfY29tcHJlc3MoUEdfRlVOQ1RJT05fQVJHUykK IAkJcmV0dmFsID0gKEdJU1RFTlRSWSAqKSBwYWxsb2Moc2l6ZW9mKEdJU1RF TlRSWSkpOwogCQlnaXN0ZW50cnlpbml0KCpyZXR2YWwsIFBvaW50ZXJHZXRE YXR1bShyZXMpLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVudHJ5LT5wYWdlLAot CQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZBTFNFKTsKKwkJCQkJICBlbnRyeS0+ b2Zmc2V0LCBmYWxzZSk7CiAJfQogCWVsc2UgaWYgKElTU0lHTktFWShEYXR1 bUdldFBvaW50ZXIoZW50cnktPmtleSkpICYmCiAJCQkgIUlTQUxMVFJVRShE YXR1bUdldFBvaW50ZXIoZW50cnktPmtleSkpKQpAQCAtMjY0LDcgKzI2NCw3 IEBAIGd0c3ZlY3Rvcl9jb21wcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQly ZXR2YWwgPSAoR0lTVEVOVFJZICopIHBhbGxvYyhzaXplb2YoR0lTVEVOVFJZ KSk7CiAJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwgUG9pbnRlckdldERhdHVt KHJlcyksCiAJCQkJCSAgZW50cnktPnJlbCwgZW50cnktPnBhZ2UsCi0JCQkJ CSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJCQkgIGVudHJ5LT5vZmZz ZXQsIGZhbHNlKTsKIAl9CiAJUEdfUkVUVVJOX1BPSU5URVIocmV0dmFsKTsK IH0KQEAgLTI4MSw3ICsyODEsNyBAQCBndHN2ZWN0b3JfZGVjb21wcmVzcyhQ R19GVU5DVElPTl9BUkdTKQogCiAJCWdpc3RlbnRyeWluaXQoKnJldHZhbCwg UG9pbnRlckdldERhdHVtKGtleSksCiAJCQkJCSAgZW50cnktPnJlbCwgZW50 cnktPnBhZ2UsCi0JCQkJCSAgZW50cnktPm9mZnNldCwgRkFMU0UpOworCQkJ CQkgIGVudHJ5LT5vZmZzZXQsIGZhbHNlKTsKIAogCQlQR19SRVRVUk5fUE9J TlRFUihyZXR2YWwpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90c3F1ZXJ5X2dpc3QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC90c3F1ZXJ5X2dpc3QuYwppbmRleCA4NTUxOGRjN2Q5Li4wZjMxYzRkMjhm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdHNxdWVyeV9n aXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzcXVlcnlfZ2lz dC5jCkBAIC0zNyw3ICszNyw3IEBAIGd0c3F1ZXJ5X2NvbXByZXNzKFBHX0ZV TkNUSU9OX0FSR1MpCiAKIAkJZ2lzdGVudHJ5aW5pdCgqcmV0dmFsLCBUU1F1 ZXJ5U2lnbkdldERhdHVtKHNpZ24pLAogCQkJCQkgIGVudHJ5LT5yZWwsIGVu dHJ5LT5wYWdlLAotCQkJCQkgIGVudHJ5LT5vZmZzZXQsIEZBTFNFKTsKKwkJ CQkJICBlbnRyeS0+b2Zmc2V0LCBmYWxzZSk7CiAJfQogCiAJUEdfUkVUVVJO X1BPSU5URVIocmV0dmFsKTsKQEAgLTgwLDcgKzgwLDcgQEAgZ3RzcXVlcnlf Y29uc2lzdGVudChQR19GVU5DVElPTl9BUkdTKQogCQkJCXJldHZhbCA9IChr ZXkgJiBzcSkgIT0gMDsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJcmV0 dmFsID0gRkFMU0U7CisJCQlyZXR2YWwgPSBmYWxzZTsKIAl9CiAJUEdfUkVU VVJOX0JPT0wocmV0dmFsKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL21pc2MvZ3VjLmMgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Yy5jCmluZGV4IDI0NmZlYTg2OTMuLjhlMTE3ZWIyNjEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWMuYwpAQCAtMzk1Miw5ICszOTUyLDkgQEAgc3Rh dGljIGludAludW1fZ3VjX3ZhcmlhYmxlczsKIHN0YXRpYyBpbnQJc2l6ZV9n dWNfdmFyaWFibGVzOwogCiAKLXN0YXRpYyBib29sIGd1Y19kaXJ0eTsJCQkv KiBUUlVFIGlmIG5lZWQgdG8gZG8gY29tbWl0L2Fib3J0IHdvcmsgKi8KK3N0 YXRpYyBib29sIGd1Y19kaXJ0eTsJCQkvKiB0cnVlIGlmIG5lZWQgdG8gZG8g Y29tbWl0L2Fib3J0IHdvcmsgKi8KIAotc3RhdGljIGJvb2wgcmVwb3J0aW5n X2VuYWJsZWQ7CS8qIFRSVUUgdG8gZW5hYmxlIEdVQ19SRVBPUlQgKi8KK3N0 YXRpYyBib29sIHJlcG9ydGluZ19lbmFibGVkOwkvKiB0cnVlIHRvIGVuYWJs ZSBHVUNfUkVQT1JUICovCiAKIHN0YXRpYyBpbnQJR1VDTmVzdExldmVsID0g MDsJLyogMSB3aGVuIGluIG1haW4gdHJhbnNhY3Rpb24gKi8KIApAQCAtNDM3 Niw3ICs0Mzc2LDcgQEAgYWRkX3BsYWNlaG9sZGVyX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKm5hbWUsIGludCBlbGV2ZWwpCiAKIC8qCiAgKiBMb29rIHVwIG9w dGlvbiBOQU1FLiAgSWYgaXQgZXhpc3RzLCByZXR1cm4gYSBwb2ludGVyIHRv IGl0cyByZWNvcmQsCi0gKiBlbHNlIHJldHVybiBOVUxMLiAgSWYgY3JlYXRl X3BsYWNlaG9sZGVycyBpcyBUUlVFLCB3ZSdsbCBjcmVhdGUgYQorICogZWxz ZSByZXR1cm4gTlVMTC4gIElmIGNyZWF0ZV9wbGFjZWhvbGRlcnMgaXMgdHJ1 ZSwgd2UnbGwgY3JlYXRlIGEKICAqIHBsYWNlaG9sZGVyIHJlY29yZCBmb3Ig YSB2YWxpZC1sb29raW5nIGN1c3RvbSB2YXJpYWJsZSBuYW1lLgogICovCiBz dGF0aWMgc3RydWN0IGNvbmZpZ19nZW5lcmljICoKQEAgLTU2NDUsNyArNTY0 NSw3IEBAIGNvbmZpZ19lbnVtX2xvb2t1cF9ieV92YWx1ZShzdHJ1Y3QgY29u ZmlnX2VudW0gKnJlY29yZCwgaW50IHZhbCkKICAqIExvb2t1cCB0aGUgdmFs dWUgZm9yIGFuIGVudW0gb3B0aW9uIHdpdGggdGhlIHNlbGVjdGVkIG5hbWUK ICAqIChjYXNlLWluc2Vuc2l0aXZlKS4KICAqIElmIHRoZSBlbnVtIG9wdGlv biBpcyBmb3VuZCwgc2V0cyB0aGUgcmV0dmFsIHZhbHVlIGFuZCByZXR1cm5z Ci0gKiB0cnVlLiBJZiBpdCdzIG5vdCBmb3VuZCwgcmV0dXJuIEZBTFNFIGFu ZCByZXR2YWwgaXMgc2V0IHRvIDAuCisgKiB0cnVlLiBJZiBpdCdzIG5vdCBm b3VuZCwgcmV0dXJuIGZhbHNlIGFuZCByZXR2YWwgaXMgc2V0IHRvIDAuCiAg Ki8KIGJvb2wKIGNvbmZpZ19lbnVtX2xvb2t1cF9ieV9uYW1lKHN0cnVjdCBj b25maWdfZW51bSAqcmVjb3JkLCBjb25zdCBjaGFyICp2YWx1ZSwKQEAgLTU2 NTgsMTIgKzU2NTgsMTIgQEAgY29uZmlnX2VudW1fbG9va3VwX2J5X25hbWUo c3RydWN0IGNvbmZpZ19lbnVtICpyZWNvcmQsIGNvbnN0IGNoYXIgKnZhbHVl LAogCQlpZiAocGdfc3RyY2FzZWNtcCh2YWx1ZSwgZW50cnktPm5hbWUpID09 IDApCiAJCXsKIAkJCSpyZXR2YWwgPSBlbnRyeS0+dmFsOwotCQkJcmV0dXJu IFRSVUU7CisJCQlyZXR1cm4gdHJ1ZTsKIAkJfQogCX0KIAogCSpyZXR2YWwg PSAwOwotCXJldHVybiBGQUxTRTsKKwlyZXR1cm4gZmFsc2U7CiB9CiAKIApA QCAtODM3MCw3ICs4MzcwLDcgQEAgc2hvd19jb25maWdfYnlfbmFtZShQR19G VU5DVElPTl9BUkdTKQogLyoKICAqIHNob3dfY29uZmlnX2J5X25hbWVfbWlz c2luZ19vayAtIGVxdWl2IHRvIFNIT1cgWCBjb21tYW5kIGJ1dCBpbXBsZW1l bnRlZCBhcwogICogYSBmdW5jdGlvbi4gIElmIFggZG9lcyBub3QgZXhpc3Qs IHN1cHByZXNzIHRoZSBlcnJvciBhbmQganVzdCByZXR1cm4gTlVMTAotICog aWYgbWlzc2luZ19vayBpcyBUUlVFLgorICogaWYgbWlzc2luZ19vayBpcyB0 cnVlLgogICovCiBEYXR1bQogc2hvd19jb25maWdfYnlfbmFtZV9taXNzaW5n X29rKFBHX0ZVTkNUSU9OX0FSR1MpCkBAIC05Njk5LDcgKzk2OTksNyBAQCBH VUNBcnJheVJlc2V0KEFycmF5VHlwZSAqYXJyYXkpCiAgKiBvciBOVUxMIGZv ciB0aGUgRGVsZXRlL1Jlc2V0IGNhc2VzLiAgSWYgc2tpcElmTm9QZXJtaXNz aW9ucyBpcyB0cnVlLCBpdCdzCiAgKiBub3QgYW4gZXJyb3IgdG8gaGF2ZSBu byBwZXJtaXNzaW9ucyB0byBzZXQgdGhlIG9wdGlvbi4KICAqCi0gKiBSZXR1 cm5zIFRSVUUgaWYgT0ssIEZBTFNFIGlmIHNraXBJZk5vUGVybWlzc2lvbnMg aXMgdHJ1ZSBhbmQgdXNlciBkb2VzIG5vdAorICogUmV0dXJucyB0cnVlIGlm IE9LLCBmYWxzZSBpZiBza2lwSWZOb1Blcm1pc3Npb25zIGlzIHRydWUgYW5k IHVzZXIgZG9lcyBub3QKICAqIGhhdmUgcGVybWlzc2lvbiB0byBjaGFuZ2Ug dGhpcyBvcHRpb24gKGFsbCBvdGhlciBlcnJvciBjYXNlcyByZXN1bHQgaW4g YW4KICAqIGVycm9yIGJlaW5nIHRocm93bikuCiAgKi8KQEAgLTk3MjUsNyAr OTcyNSw3IEBAIHZhbGlkYXRlX29wdGlvbl9hcnJheV9pdGVtKGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlLAogCSAqIGRlZmluZV9jdXN0 b21fdmFyaWFibGUgYXNzdW1lcyB3ZSBjaGVja2VkIHRoYXQuCiAJICoKIAkg KiBuYW1lIGlzIG5vdCBrbm93biBhbmQgY2FuJ3QgYmUgY3JlYXRlZCBhcyBh IHBsYWNlaG9sZGVyLiAgVGhyb3cgZXJyb3IsCi0JICogdW5sZXNzIHNraXBJ Zk5vUGVybWlzc2lvbnMgaXMgdHJ1ZSwgaW4gd2hpY2ggY2FzZSByZXR1cm4g RkFMU0UuCisJICogdW5sZXNzIHNraXBJZk5vUGVybWlzc2lvbnMgaXMgdHJ1 ZSwgaW4gd2hpY2ggY2FzZSByZXR1cm4gZmFsc2UuCiAJICovCiAJZ2NvbmYg PSBmaW5kX29wdGlvbihuYW1lLCB0cnVlLCBXQVJOSU5HKTsKIAlpZiAoIWdj b25mKQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9j L3BnYy5sIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9wcmVwcm9jL3BnYy5sCmlu ZGV4IDM1OThhMjAwZDAuLjA2YjBjYTFhMmUgMTAwNjQ0Ci0tLSBhL3NyYy9p bnRlcmZhY2VzL2VjcGcvcHJlcHJvYy9wZ2MubAorKysgYi9zcmMvaW50ZXJm YWNlcy9lY3BnL3ByZXByb2MvcGdjLmwKQEAgLTk4NywxMiArOTg3LDEyIEBA IGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVphLXpdKnx7aWZ9fHtpZmRl Zn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14qL10qXCorCiAJCQkJCQkg IHJldHVybiAoU19BTllUSElORyk7CiAJCQkJCSAgfQogCQkJCQl9Ci08Qyx4 c2tpcD57ZXhlY19zcWx9e2lmZGVmfXtzcGFjZX0qCXsgaWZjb25kID0gVFJV RTsgQkVHSU4oeGNvbmQpOyB9Cis8Qyx4c2tpcD57ZXhlY19zcWx9e2lmZGVm fXtzcGFjZX0qCXsgaWZjb25kID0gdHJ1ZTsgQkVHSU4oeGNvbmQpOyB9CiA8 Qyx4c2tpcD57aW5mb3JtaXhfc3BlY2lhbH17aWZkZWZ9e3NwYWNlfSogewog CQkJCQkgIC8qIGFyZSB3ZSBzaW11bGF0aW5nIEluZm9ybWl4PyAqLwogCQkJ CQkgIGlmIChJTkZPUk1JWF9NT0RFKQogCQkJCQkgIHsKLQkJCQkJCSAgaWZj b25kID0gVFJVRTsKKwkJCQkJCSAgaWZjb25kID0gdHJ1ZTsKIAkJCQkJCSAg QkVHSU4oeGNvbmQpOwogCQkJCQkgIH0KIAkJCQkJICBlbHNlCkBAIC0xMDAx LDEyICsxMDAxLDEyIEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMoW15pXVtBLVph LXpdKnx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0pKChcL1wqW14q L10qXCorCiAJCQkJCQkgIHJldHVybiAoU19BTllUSElORyk7CiAJCQkJCSAg fQogCQkJCQl9Ci08Qyx4c2tpcD57ZXhlY19zcWx9e2lmbmRlZn17c3BhY2V9 KiB7IGlmY29uZCA9IEZBTFNFOyBCRUdJTih4Y29uZCk7IH0KKzxDLHhza2lw PntleGVjX3NxbH17aWZuZGVmfXtzcGFjZX0qIHsgaWZjb25kID0gZmFsc2U7 IEJFR0lOKHhjb25kKTsgfQogPEMseHNraXA+e2luZm9ybWl4X3NwZWNpYWx9 e2lmbmRlZn17c3BhY2V9KiB7CiAJCQkJCSAgLyogYXJlIHdlIHNpbXVsYXRp bmcgSW5mb3JtaXg/ICovCiAJCQkJCSAgaWYgKElORk9STUlYX01PREUpCiAJ CQkJCSAgewotCQkJCQkJICBpZmNvbmQgPSBGQUxTRTsKKwkJCQkJCSAgaWZj b25kID0gZmFsc2U7CiAJCQkJCQkgIEJFR0lOKHhjb25kKTsKIAkJCQkJICB9 CiAJCQkJCSAgZWxzZQpAQCAtMTAyNCw3ICsxMDI0LDcgQEAgY3BwbGluZQkJ CXtzcGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVm fXx7aW1wb3J0fSkoKFwvXCpbXiovXSpcKisKIAkJCQkJCWVsc2UKIAkJCQkJ CQlwcmVwcm9jX3Rvcy0tOwogCi0JCQkJCQlpZmNvbmQgPSBUUlVFOyBCRUdJ Tih4Y29uZCk7CisJCQkJCQlpZmNvbmQgPSB0cnVlOyBCRUdJTih4Y29uZCk7 CiAJCQkJCX0KIDxDLHhza2lwPntpbmZvcm1peF9zcGVjaWFsfXtlbGlmfXtz cGFjZX0qIHsKIAkJCQkJLyogYXJlIHdlIHNpbXVsYXRpbmcgSW5mb3JtaXg/ ICovCkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBjcHBsaW5lCQkJe3NwYWNlfSoj KFteaV1bQS1aYS16XSp8e2lmfXx7aWZkZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9 KSgoXC9cKlteKi9dKlwqKwogCQkJCQkJZWxzZQogCQkJCQkJCXByZXByb2Nf dG9zLS07CiAKLQkJCQkJCWlmY29uZCA9IFRSVUU7CisJCQkJCQlpZmNvbmQg PSB0cnVlOwogCQkJCQkJQkVHSU4oeGNvbmQpOwogCQkJCQl9CiAJCQkJCWVs c2UKQEAgLTEwNTIsNyArMTA1Miw3IEBAIGNwcGxpbmUJCQl7c3BhY2V9KiMo W15pXVtBLVphLXpdKnx7aWZ9fHtpZmRlZn18e2lmbmRlZn18e2ltcG9ydH0p KChcL1wqW14qL10qXCorCiAJCQkJCQltbWZhdGFsKFBBUlNFX0VSUk9SLCAi bW9yZSB0aGFuIG9uZSBFWEVDIFNRTCBFTFNFIik7CiAJCQkJCWVsc2UKIAkJ CQkJewotCQkJCQkJc3RhY2tlZF9pZl92YWx1ZVtwcmVwcm9jX3Rvc10uZWxz ZV9icmFuY2ggPSBUUlVFOworCQkJCQkJc3RhY2tlZF9pZl92YWx1ZVtwcmVw cm9jX3Rvc10uZWxzZV9icmFuY2ggPSB0cnVlOwogCQkJCQkJc3RhY2tlZF9p Zl92YWx1ZVtwcmVwcm9jX3Rvc10uY29uZGl0aW9uID0KIAkJCQkJCQkoc3Rh Y2tlZF9pZl92YWx1ZVtwcmVwcm9jX3Rvcy0xXS5jb25kaXRpb24gJiYKIAkJ CQkJCQkgIXN0YWNrZWRfaWZfdmFsdWVbcHJlcHJvY190b3NdLmNvbmRpdGlv bik7CkBAIC0xMDcxLDcgKzEwNzEsNyBAQCBjcHBsaW5lCQkJe3NwYWNlfSoj KFteaV1bQS1aYS16XSp8e2lmfXx7aWZkZWZ9fHtpZm5kZWZ9fHtpbXBvcnR9 KSgoXC9cKlteKi9dKlwqKwogCQkJCQkJCW1tZmF0YWwoUEFSU0VfRVJST1Is ICJtb3JlIHRoYW4gb25lIEVYRUMgU1FMIEVMU0UiKTsKIAkJCQkJCWVsc2UK IAkJCQkJCXsKLQkJCQkJCQlzdGFja2VkX2lmX3ZhbHVlW3ByZXByb2NfdG9z XS5lbHNlX2JyYW5jaCA9IFRSVUU7CisJCQkJCQkJc3RhY2tlZF9pZl92YWx1 ZVtwcmVwcm9jX3Rvc10uZWxzZV9icmFuY2ggPSB0cnVlOwogCQkJCQkJCXN0 YWNrZWRfaWZfdmFsdWVbcHJlcHJvY190b3NdLmNvbmRpdGlvbiA9CiAJCQkJ CQkJKHN0YWNrZWRfaWZfdmFsdWVbcHJlcHJvY190b3MtMV0uY29uZGl0aW9u ICYmCiAJCQkJCQkJICFzdGFja2VkX2lmX3ZhbHVlW3ByZXByb2NfdG9zXS5j b25kaXRpb24pOwpAQCAtMTE0NSw3ICsxMTQ1LDcgQEAgY3BwbGluZQkJCXtz cGFjZX0qIyhbXmldW0EtWmEtel0qfHtpZn18e2lmZGVmfXx7aWZuZGVmfXx7 aW1wb3J0fSkoKFwvXCpbXiovXSpcKisKIAkJCQkJCQkgZGVmcHRyID0gZGVm cHRyLT5uZXh0KTsKIAogCQkJCQkJcHJlcHJvY190b3MrKzsKLQkJCQkJCXN0 YWNrZWRfaWZfdmFsdWVbcHJlcHJvY190b3NdLmVsc2VfYnJhbmNoID0gRkFM U0U7CisJCQkJCQlzdGFja2VkX2lmX3ZhbHVlW3ByZXByb2NfdG9zXS5lbHNl X2JyYW5jaCA9IGZhbHNlOwogCQkJCQkJc3RhY2tlZF9pZl92YWx1ZVtwcmVw cm9jX3Rvc10uY29uZGl0aW9uID0KIAkJCQkJCShkZWZwdHIgPyBpZmNvbmQg OiAhaWZjb25kKSAmJiBzdGFja2VkX2lmX3ZhbHVlW3ByZXByb2NfdG9zLTFd LmNvbmRpdGlvbjsKIAkJCQkJfQpAQCAtMTI1OSw5ICsxMjU5LDkgQEAgbGV4 X2luaXQodm9pZCkKIAogCXByZXByb2NfdG9zID0gMDsKIAl5eWxpbmVubyA9 IDE7Ci0JaWZjb25kID0gVFJVRTsKKwlpZmNvbmQgPSB0cnVlOwogCXN0YWNr ZWRfaWZfdmFsdWVbcHJlcHJvY190b3NdLmNvbmRpdGlvbiA9IGlmY29uZDsK LQlzdGFja2VkX2lmX3ZhbHVlW3ByZXByb2NfdG9zXS5lbHNlX2JyYW5jaCA9 IEZBTFNFOworCXN0YWNrZWRfaWZfdmFsdWVbcHJlcHJvY190b3NdLmVsc2Vf YnJhbmNoID0gZmFsc2U7CiAKIAkvKiBpbml0aWFsaXplIGxpdGVyYWwgYnVm ZmVyIHRvIGEgcmVhc29uYWJsZSBidXQgZXhwYW5zaWJsZSBzaXplICovCiAJ aWYgKGxpdGVyYWxidWYgPT0gTlVMTCkKQEAgLTE0MDYsNyArMTQwNiw3IEBA IHBhcnNlX2luY2x1ZGUodm9pZCkKIH0KIAogLyoKLSAqIGVjcGdfaXNzcGFj ZSgpIC0tLSByZXR1cm4gVFJVRSBpZiBmbGV4IHNjYW5uZXIgY29uc2lkZXJz IGNoYXIgd2hpdGVzcGFjZQorICogZWNwZ19pc3NwYWNlKCkgLS0tIHJldHVy biB0cnVlIGlmIGZsZXggc2Nhbm5lciBjb25zaWRlcnMgY2hhciB3aGl0ZXNw YWNlCiAgKi8KIHN0YXRpYyBib29sCiBlY3BnX2lzc3BhY2UoY2hhciBjaCkK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3Qu YyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYwppbmRleCBk MGU5N2VjZGQ0Li4zNTYxZDRkYWZkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1jb25uZWN0LmMKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtY29ubmVjdC5jCkBAIC0zNTg3LDcgKzM1ODcsNyBAQCBjbG9z ZVBHY29ubihQR2Nvbm4gKmNvbm4pCiAJICogRG9uJ3QgY2FsbCBQUXNldG5v bmJsb2NraW5nKCkgYmVjYXVzZSBpdCB3aWxsIGZhaWwgaWYgaXQncyB1bmFi bGUgdG8KIAkgKiBmbHVzaCB0aGUgY29ubmVjdGlvbi4KIAkgKi8KLQljb25u LT5ub25ibG9ja2luZyA9IEZBTFNFOworCWNvbm4tPm5vbmJsb2NraW5nID0g ZmFsc2U7CiAKIAkvKgogCSAqIENsb3NlIHRoZSBjb25uZWN0aW9uLCByZXNl dCBhbGwgdHJhbnNpZW50IHN0YXRlLCBmbHVzaCBJL08gYnVmZmVycy4KQEAg LTM3ODIsOCArMzc4Miw4IEBAIFBRZnJlZUNhbmNlbChQR2NhbmNlbCAqY2Fu Y2VsKQogICogUFFjYW5jZWwgYW5kIFBRcmVxdWVzdENhbmNlbDogYXR0ZW1w dCB0byByZXF1ZXN0IGNhbmNlbGxhdGlvbiBvZiB0aGUKICAqIGN1cnJlbnQg b3BlcmF0aW9uLgogICoKLSAqIFRoZSByZXR1cm4gdmFsdWUgaXMgVFJVRSBp ZiB0aGUgY2FuY2VsIHJlcXVlc3Qgd2FzIHN1Y2Nlc3NmdWxseQotICogZGlz cGF0Y2hlZCwgRkFMU0UgaWYgbm90IChpbiB3aGljaCBjYXNlIGFuIGVycm9y IG1lc3NhZ2UgaXMgYXZhaWxhYmxlKS4KKyAqIFRoZSByZXR1cm4gdmFsdWUg aXMgdHJ1ZSBpZiB0aGUgY2FuY2VsIHJlcXVlc3Qgd2FzIHN1Y2Nlc3NmdWxs eQorICogZGlzcGF0Y2hlZCwgZmFsc2UgaWYgbm90IChpbiB3aGljaCBjYXNl IGFuIGVycm9yIG1lc3NhZ2UgaXMgYXZhaWxhYmxlKS4KICAqIE5vdGU6IHN1 Y2Nlc3NmdWwgZGlzcGF0Y2ggaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlcmUg d2lsbCBiZSBhbnkgZWZmZWN0IGF0CiAgKiB0aGUgYmFja2VuZC4gIFRoZSBh cHBsaWNhdGlvbiBtdXN0IHJlYWQgdGhlIG9wZXJhdGlvbiByZXN1bHQgYXMg dXN1YWwuCiAgKgpAQCAtMzg3Miw3ICszODcyLDcgQEAgaW50ZXJuYWxfY2Fu Y2VsKFNvY2tBZGRyICpyYWRkciwgaW50IGJlX3BpZCwgaW50IGJlX2tleSwK IAkvKiBBbGwgZG9uZSAqLwogCWNsb3Nlc29ja2V0KHRtcHNvY2spOwogCVNP Q0tfRVJSTk9fU0VUKHNhdmVfZXJybm8pOwotCXJldHVybiBUUlVFOworCXJl dHVybiB0cnVlOwogCiBjYW5jZWxfZXJyUmV0dXJuOgogCkBAIC0zODkwLDEz ICszODkwLDEzIEBAIGludGVybmFsX2NhbmNlbChTb2NrQWRkciAqcmFkZHIs IGludCBiZV9waWQsIGludCBiZV9rZXksCiAJaWYgKHRtcHNvY2sgIT0gUEdJ TlZBTElEX1NPQ0tFVCkKIAkJY2xvc2Vzb2NrZXQodG1wc29jayk7CiAJU09D S19FUlJOT19TRVQoc2F2ZV9lcnJubyk7Ci0JcmV0dXJuIEZBTFNFOworCXJl dHVybiBmYWxzZTsKIH0KIAogLyoKICAqIFBRY2FuY2VsOiByZXF1ZXN0IHF1 ZXJ5IGNhbmNlbAogICoKLSAqIFJldHVybnMgVFJVRSBpZiBhYmxlIHRvIHNl bmQgdGhlIGNhbmNlbCByZXF1ZXN0LCBGQUxTRSBpZiBub3QuCisgKiBSZXR1 cm5zIHRydWUgaWYgYWJsZSB0byBzZW5kIHRoZSBjYW5jZWwgcmVxdWVzdCwg ZmFsc2UgaWYgbm90LgogICoKICAqIE9uIGZhaWx1cmUsIGFuIGVycm9yIG1l c3NhZ2UgaXMgc3RvcmVkIGluICplcnJidWYsIHdoaWNoIG11c3QgYmUgb2Yg c2l6ZQogICogZXJyYnVmc2l6ZSAocmVjb21tZW5kZWQgc2l6ZSBpcyAyNTYg Ynl0ZXMpLiAgKmVycmJ1ZiBpcyBub3QgY2hhbmdlZCBvbgpAQCAtMzkwOCw3 ICszOTA4LDcgQEAgUFFjYW5jZWwoUEdjYW5jZWwgKmNhbmNlbCwgY2hhciAq ZXJyYnVmLCBpbnQgZXJyYnVmc2l6ZSkKIAlpZiAoIWNhbmNlbCkKIAl7CiAJ CXN0cmxjcHkoZXJyYnVmLCAiUFFjYW5jZWwoKSAtLSBubyBjYW5jZWwgb2Jq ZWN0IHN1cHBsaWVkIiwgZXJyYnVmc2l6ZSk7Ci0JCXJldHVybiBGQUxTRTsK KwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCXJldHVybiBpbnRlcm5hbF9jYW5j ZWwoJmNhbmNlbC0+cmFkZHIsIGNhbmNlbC0+YmVfcGlkLCBjYW5jZWwtPmJl X2tleSwKQEAgLTM5MTgsNyArMzkxOCw3IEBAIFBRY2FuY2VsKFBHY2FuY2Vs ICpjYW5jZWwsIGNoYXIgKmVycmJ1ZiwgaW50IGVycmJ1ZnNpemUpCiAvKgog ICogUFFyZXF1ZXN0Q2FuY2VsOiBvbGQsIG5vdCB0aHJlYWQtc2FmZSBmdW5j dGlvbiBmb3IgcmVxdWVzdGluZyBxdWVyeSBjYW5jZWwKICAqCi0gKiBSZXR1 cm5zIFRSVUUgaWYgYWJsZSB0byBzZW5kIHRoZSBjYW5jZWwgcmVxdWVzdCwg RkFMU0UgaWYgbm90LgorICogUmV0dXJucyB0cnVlIGlmIGFibGUgdG8gc2Vu ZCB0aGUgY2FuY2VsIHJlcXVlc3QsIGZhbHNlIGlmIG5vdC4KICAqCiAgKiBP biBmYWlsdXJlLCB0aGUgZXJyb3IgbWVzc2FnZSBpcyBzYXZlZCBpbiBjb25u LT5lcnJvck1lc3NhZ2U7IHRoaXMgbWVhbnMKICAqIHRoYXQgdGhpcyBjYW4n dCBiZSB1c2VkIHdoZW4gdGhlcmUgbWlnaHQgYmUgb3RoZXIgYWN0aXZlIG9w ZXJhdGlvbnMgb24KQEAgLTM5MzQsNyArMzkzNCw3IEBAIFBRcmVxdWVzdENh bmNlbChQR2Nvbm4gKmNvbm4pCiAKIAkvKiBDaGVjayB3ZSBoYXZlIGFuIG9w ZW4gY29ubmVjdGlvbiAqLwogCWlmICghY29ubikKLQkJcmV0dXJuIEZBTFNF OworCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoY29ubi0+c29jayA9PSBQR0lO VkFMSURfU09DS0VUKQogCXsKQEAgLTM5NDMsNyArMzk0Myw3IEBAIFBRcmVx dWVzdENhbmNlbChQR2Nvbm4gKmNvbm4pCiAJCQkJY29ubi0+ZXJyb3JNZXNz YWdlLm1heGxlbik7CiAJCWNvbm4tPmVycm9yTWVzc2FnZS5sZW4gPSBzdHJs ZW4oY29ubi0+ZXJyb3JNZXNzYWdlLmRhdGEpOwogCi0JCXJldHVybiBGQUxT RTsKKwkJcmV0dXJuIGZhbHNlOwogCX0KIAogCXIgPSBpbnRlcm5hbF9jYW5j ZWwoJmNvbm4tPnJhZGRyLCBjb25uLT5iZV9waWQsIGNvbm4tPmJlX2tleSwK QEAgLTQ3NzIsNyArNDc3Miw3IEBAIGNvbm5pbmZvX2luaXQoUFFFeHBCdWZm ZXIgZXJyb3JNZXNzYWdlKQogICogUmV0dXJucyBhIG1hbGxvYydkIFBRY29u bmluZm9PcHRpb24gYXJyYXksIGlmIHBhcnNpbmcgaXMgc3VjY2Vzc2Z1bC4K ICAqIE90aGVyd2lzZSwgTlVMTCBpcyByZXR1cm5lZCBhbmQgYW4gZXJyb3Ig bWVzc2FnZSBpcyBsZWZ0IGluIGVycm9yTWVzc2FnZS4KICAqCi0gKiBJZiB1 c2VfZGVmYXVsdHMgaXMgVFJVRSwgZGVmYXVsdCB2YWx1ZXMgYXJlIGZpbGxl ZCBpbiAoZnJvbSBhIHNlcnZpY2UgZmlsZSwKKyAqIElmIHVzZV9kZWZhdWx0 cyBpcyB0cnVlLCBkZWZhdWx0IHZhbHVlcyBhcmUgZmlsbGVkIGluIChmcm9t IGEgc2VydmljZSBmaWxlLAogICogZW52aXJvbm1lbnQgdmFyaWFibGVzLCBl dGMpLgogICovCiBzdGF0aWMgUFFjb25uaW5mb09wdGlvbiAqCkBAIC00OTk1 LDcgKzQ5OTUsNyBAQCBjb25uaW5mb19wYXJzZShjb25zdCBjaGFyICpjb25u aW5mbywgUFFFeHBCdWZmZXIgZXJyb3JNZXNzYWdlLAogICogSWYgbm90IHN1 Y2Nlc3NmdWwsIE5VTEwgaXMgcmV0dXJuZWQgYW5kIGFuIGVycm9yIG1lc3Nh Z2UgaXMKICAqIGxlZnQgaW4gZXJyb3JNZXNzYWdlLgogICogRGVmYXVsdHMg YXJlIHN1cHBsaWVkIChmcm9tIGEgc2VydmljZSBmaWxlLCBlbnZpcm9ubWVu dCB2YXJpYWJsZXMsIGV0YykKLSAqIGZvciB1bnNwZWNpZmllZCBvcHRpb25z LCBidXQgb25seSBpZiB1c2VfZGVmYXVsdHMgaXMgVFJVRS4KKyAqIGZvciB1 bnNwZWNpZmllZCBvcHRpb25zLCBidXQgb25seSBpZiB1c2VfZGVmYXVsdHMg aXMgdHJ1ZS4KICAqCiAgKiBJZiBleHBhbmRfZGJuYW1lIGlzIG5vbi16ZXJv LCBhbmQgdGhlIHZhbHVlIHBhc3NlZCBmb3IgdGhlIGZpcnN0IG9jY3VycmVu Y2UKICAqIG9mICJkYm5hbWUiIGtleXdvcmQgaXMgYSBjb25uZWN0aW9uIHN0 cmluZyAoYXMgaW5kaWNhdGVkIGJ5CkBAIC01MTY2LDcgKzUxNjYsNyBAQCBj b25uaW5mb19hcnJheV9wYXJzZShjb25zdCBjaGFyICpjb25zdCAqa2V5d29y ZHMsIGNvbnN0IGNoYXIgKmNvbnN0ICp2YWx1ZXMsCiAgKgogICogRGVmYXVs dHMgYXJlIG9idGFpbmVkIGZyb20gYSBzZXJ2aWNlIGZpbGUsIGVudmlyb25t ZW50IHZhcmlhYmxlcywgZXRjLgogICoKLSAqIFJldHVybnMgVFJVRSBpZiBz dWNjZXNzZnVsLCBvdGhlcndpc2UgRkFMU0U7IGVycm9yTWVzc2FnZSwgaWYg c3VwcGxpZWQsCisgKiBSZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bCwgb3Ro ZXJ3aXNlIGZhbHNlOyBlcnJvck1lc3NhZ2UsIGlmIHN1cHBsaWVkLAogICog aXMgZmlsbGVkIGluIHVwb24gZmFpbHVyZS4gIE5vdGUgdGhhdCBmYWlsdXJl IHRvIGxvY2F0ZSBhIGRlZmF1bHQgdmFsdWUKICAqIGlzIG5vdCBhbiBlcnJv ciBjb25kaXRpb24gaGVyZSAtLS0gd2UganVzdCBsZWF2ZSB0aGUgb3B0aW9u J3MgdmFsdWUgYXMKICAqIE5VTEwuCkBAIC01ODE3LDcgKzU4MTcsNyBAQCBj b25uaW5mb19nZXR2YWwoUFFjb25uaW5mb09wdGlvbiAqY29ubk9wdGlvbnMs CiAgKgogICogSWYgbm90IHN1Y2Nlc3NmdWwsIHJldHVybnMgTlVMTCBhbmQg ZmlsbHMgZXJyb3JNZXNzYWdlIGFjY29yZGluZ2x5LgogICogSG93ZXZlciwg aWYgdGhlIHJlYXNvbiBvZiBmYWlsdXJlIGlzIGFuIGludmFsaWQga2V5d29y ZCBiZWluZyBwYXNzZWQgYW5kCi0gKiBpZ25vcmVNaXNzaW5nIGlzIFRSVUUs IGVycm9yTWVzc2FnZSB3aWxsIGJlIGxlZnQgdW50b3VjaGVkLgorICogaWdu b3JlTWlzc2luZyBpcyB0cnVlLCBlcnJvck1lc3NhZ2Ugd2lsbCBiZSBsZWZ0 IHVudG91Y2hlZC4KICAqLwogc3RhdGljIFBRY29ubmluZm9PcHRpb24gKgog Y29ubmluZm9fc3RvcmV2YWwoUFFjb25uaW5mb09wdGlvbiAqY29ubk9wdGlv bnMsCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVj LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMKaW5kZXggZTFl MmQxOGUzYS4uMzUxZjhhN2ZlMCAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFj ZXMvbGlicHEvZmUtZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWV4ZWMuYwpAQCAtMjI5LDE3ICsyMjksMTcgQEAgUFFzZXRSZXN1bHRB dHRycyhQR3Jlc3VsdCAqcmVzLCBpbnQgbnVtQXR0cmlidXRlcywgUEdyZXNB dHREZXNjICphdHREZXNjcykKIAogCS8qIElmIGF0dHJzIGFscmVhZHkgZXhp c3QsIHRoZXkgY2Fubm90IGJlIG92ZXJ3cml0dGVuLiAqLwogCWlmICghcmVz IHx8IHJlcy0+bnVtQXR0cmlidXRlcyA+IDApCi0JCXJldHVybiBGQUxTRTsK KwkJcmV0dXJuIGZhbHNlOwogCiAJLyogaWdub3JlIG5vLW9wIHJlcXVlc3Qg Ki8KIAlpZiAobnVtQXR0cmlidXRlcyA8PSAwIHx8ICFhdHREZXNjcykKLQkJ cmV0dXJuIFRSVUU7CisJCXJldHVybiB0cnVlOwogCiAJcmVzLT5hdHREZXNj cyA9IChQR3Jlc0F0dERlc2MgKikKIAkJUFFyZXN1bHRBbGxvYyhyZXMsIG51 bUF0dHJpYnV0ZXMgKiBzaXplb2YoUEdyZXNBdHREZXNjKSk7CiAKIAlpZiAo IXJlcy0+YXR0RGVzY3MpCi0JCXJldHVybiBGQUxTRTsKKwkJcmV0dXJuIGZh bHNlOwogCiAJcmVzLT5udW1BdHRyaWJ1dGVzID0gbnVtQXR0cmlidXRlczsK IAltZW1jcHkocmVzLT5hdHREZXNjcywgYXR0RGVzY3MsIG51bUF0dHJpYnV0 ZXMgKiBzaXplb2YoUEdyZXNBdHREZXNjKSk7CkBAIC0yNTQsMTMgKzI1NCwx MyBAQCBQUXNldFJlc3VsdEF0dHJzKFBHcmVzdWx0ICpyZXMsIGludCBudW1B dHRyaWJ1dGVzLCBQR3Jlc0F0dERlc2MgKmF0dERlc2NzKQogCQkJcmVzLT5h dHREZXNjc1tpXS5uYW1lID0gcmVzLT5udWxsX2ZpZWxkOwogCiAJCWlmICgh cmVzLT5hdHREZXNjc1tpXS5uYW1lKQotCQkJcmV0dXJuIEZBTFNFOworCQkJ cmV0dXJuIGZhbHNlOwogCiAJCWlmIChyZXMtPmF0dERlc2NzW2ldLmZvcm1h dCA9PSAwKQogCQkJcmVzLT5iaW5hcnkgPSAwOwogCX0KIAotCXJldHVybiBU UlVFOworCXJldHVybiB0cnVlOwogfQogCiAvKgpAQCAtMzY2LDcgKzM2Niw3 IEBAIFBRY29weVJlc3VsdChjb25zdCBQR3Jlc3VsdCAqc3JjLCBpbnQgZmxh Z3MpCiAJCQkJUFFjbGVhcihkZXN0KTsKIAkJCQlyZXR1cm4gTlVMTDsKIAkJ CX0KLQkJCWRlc3QtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFsaXplZCA9IFRS VUU7CisJCQlkZXN0LT5ldmVudHNbaV0ucmVzdWx0SW5pdGlhbGl6ZWQgPSB0 cnVlOwogCQl9CiAJfQogCkBAIC0zOTYsNyArMzk2LDcgQEAgZHVwRXZlbnRz KFBHRXZlbnQgKmV2ZW50cywgaW50IGNvdW50KQogCQluZXdFdmVudHNbaV0u cHJvYyA9IGV2ZW50c1tpXS5wcm9jOwogCQluZXdFdmVudHNbaV0ucGFzc1Ro cm91Z2ggPSBldmVudHNbaV0ucGFzc1Rocm91Z2g7CiAJCW5ld0V2ZW50c1tp XS5kYXRhID0gTlVMTDsKLQkJbmV3RXZlbnRzW2ldLnJlc3VsdEluaXRpYWxp emVkID0gRkFMU0U7CisJCW5ld0V2ZW50c1tpXS5yZXN1bHRJbml0aWFsaXpl ZCA9IGZhbHNlOwogCQluZXdFdmVudHNbaV0ubmFtZSA9IHN0cmR1cChldmVu dHNbaV0ubmFtZSk7CiAJCWlmICghbmV3RXZlbnRzW2ldLm5hbWUpCiAJCXsK QEAgLTQyMywxMSArNDIzLDExIEBAIFBRc2V0dmFsdWUoUEdyZXN1bHQgKnJl cywgaW50IHR1cF9udW0sIGludCBmaWVsZF9udW0sIGNoYXIgKnZhbHVlLCBp bnQgbGVuKQogCVBHcmVzQXR0VmFsdWUgKmF0dHZhbDsKIAogCWlmICghY2hl Y2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKLQkJcmV0dXJuIEZB TFNFOworCQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBJbnZhbGlkIHR1cF9udW0s IG11c3QgYmUgPD0gbnR1cHMgKi8KIAlpZiAodHVwX251bSA8IDAgfHwgdHVw X251bSA+IHJlcy0+bnR1cHMpCi0JCXJldHVybiBGQUxTRTsKKwkJcmV0dXJu IGZhbHNlOwogCiAJLyogbmVlZCB0byBhbGxvY2F0ZSBhIG5ldyB0dXBsZT8g Ki8KIAlpZiAodHVwX251bSA9PSByZXMtPm50dXBzKQpAQCAtNDM3LDEwICs0 MzcsMTAgQEAgUFFzZXR2YWx1ZShQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251 bSwgaW50IGZpZWxkX251bSwgY2hhciAqdmFsdWUsIGludCBsZW4pCiAKIAkJ dHVwID0gKFBHcmVzQXR0VmFsdWUgKikKIAkJCXBxUmVzdWx0QWxsb2MocmVz LCByZXMtPm51bUF0dHJpYnV0ZXMgKiBzaXplb2YoUEdyZXNBdHRWYWx1ZSks Ci0JCQkJCQkgIFRSVUUpOworCQkJCQkJICB0cnVlKTsKIAogCQlpZiAoIXR1 cCkKLQkJCXJldHVybiBGQUxTRTsKKwkJCXJldHVybiBmYWxzZTsKIAogCQkv KiBpbml0aWFsaXplIGVhY2ggY29sdW1uIHRvIE5VTEwgKi8KIAkJZm9yIChp ID0gMDsgaSA8IHJlcy0+bnVtQXR0cmlidXRlczsgaSsrKQpAQCAtNDUxLDcg KzQ1MSw3IEBAIFBRc2V0dmFsdWUoUEdyZXN1bHQgKnJlcywgaW50IHR1cF9u dW0sIGludCBmaWVsZF9udW0sIGNoYXIgKnZhbHVlLCBpbnQgbGVuKQogCiAJ CS8qIGFkZCBpdCB0byB0aGUgYXJyYXkgKi8KIAkJaWYgKCFwcUFkZFR1cGxl KHJlcywgdHVwKSkKLQkJCXJldHVybiBGQUxTRTsKKwkJCXJldHVybiBmYWxz ZTsKIAl9CiAKIAlhdHR2YWwgPSAmcmVzLT50dXBsZXNbdHVwX251bV1bZmll bGRfbnVtXTsKQEAgLTQ2OSwxNSArNDY5LDE1IEBAIFBRc2V0dmFsdWUoUEdy ZXN1bHQgKnJlcywgaW50IHR1cF9udW0sIGludCBmaWVsZF9udW0sIGNoYXIg KnZhbHVlLCBpbnQgbGVuKQogCX0KIAllbHNlCiAJewotCQlhdHR2YWwtPnZh bHVlID0gKGNoYXIgKikgcHFSZXN1bHRBbGxvYyhyZXMsIGxlbiArIDEsIFRS VUUpOworCQlhdHR2YWwtPnZhbHVlID0gKGNoYXIgKikgcHFSZXN1bHRBbGxv YyhyZXMsIGxlbiArIDEsIHRydWUpOwogCQlpZiAoIWF0dHZhbC0+dmFsdWUp Ci0JCQlyZXR1cm4gRkFMU0U7CisJCQlyZXR1cm4gZmFsc2U7CiAJCWF0dHZh bC0+bGVuID0gbGVuOwogCQltZW1jcHkoYXR0dmFsLT52YWx1ZSwgdmFsdWUs IGxlbik7CiAJCWF0dHZhbC0+dmFsdWVbbGVuXSA9ICdcMCc7CiAJfQogCi0J cmV0dXJuIFRSVUU7CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qCkBAIC00ODks NyArNDg5LDcgQEAgUFFzZXR2YWx1ZShQR3Jlc3VsdCAqcmVzLCBpbnQgdHVw X251bSwgaW50IGZpZWxkX251bSwgY2hhciAqdmFsdWUsIGludCBsZW4pCiB2 b2lkICoKIFBRcmVzdWx0QWxsb2MoUEdyZXN1bHQgKnJlcywgc2l6ZV90IG5C eXRlcykKIHsKLQlyZXR1cm4gcHFSZXN1bHRBbGxvYyhyZXMsIG5CeXRlcywg VFJVRSk7CisJcmV0dXJuIHBxUmVzdWx0QWxsb2MocmVzLCBuQnl0ZXMsIHRy dWUpOwogfQogCiAvKgpAQCAtNjAxLDcgKzYwMSw3IEBAIHBxUmVzdWx0QWxs b2MoUEdyZXN1bHQgKnJlcywgc2l6ZV90IG5CeXRlcywgYm9vbCBpc0JpbmFy eSkKIGNoYXIgKgogcHFSZXN1bHRTdHJkdXAoUEdyZXN1bHQgKnJlcywgY29u c3QgY2hhciAqc3RyKQogewotCWNoYXIJICAgKnNwYWNlID0gKGNoYXIgKikg cHFSZXN1bHRBbGxvYyhyZXMsIHN0cmxlbihzdHIpICsgMSwgRkFMU0UpOwor CWNoYXIJICAgKnNwYWNlID0gKGNoYXIgKikgcHFSZXN1bHRBbGxvYyhyZXMs IHN0cmxlbihzdHIpICsgMSwgZmFsc2UpOwogCiAJaWYgKHNwYWNlKQogCQlz dHJjcHkoc3BhY2UsIHN0cik7CkBAIC04MzEsNyArODMxLDcgQEAgcHFJbnRl cm5hbE5vdGljZShjb25zdCBQR05vdGljZUhvb2tzICpob29rcywgY29uc3Qg Y2hhciAqZm10LC4uLikKIAkgKiBSZXN1bHQgdGV4dCBpcyBhbHdheXMganVz dCB0aGUgcHJpbWFyeSBtZXNzYWdlICsgbmV3bGluZS4gSWYgd2UgY2FuJ3QK IAkgKiBhbGxvY2F0ZSBpdCwgZG9uJ3QgYm90aGVyIGludm9raW5nIHRoZSBy ZWNlaXZlci4KIAkgKi8KLQlyZXMtPmVyck1zZyA9IChjaGFyICopIHBxUmVz dWx0QWxsb2MocmVzLCBzdHJsZW4obXNnQnVmKSArIDIsIEZBTFNFKTsKKwly ZXMtPmVyck1zZyA9IChjaGFyICopIHBxUmVzdWx0QWxsb2MocmVzLCBzdHJs ZW4obXNnQnVmKSArIDIsIGZhbHNlKTsKIAlpZiAocmVzLT5lcnJNc2cpCiAJ ewogCQlzcHJpbnRmKHJlcy0+ZXJyTXNnLCAiJXNcbiIsIG1zZ0J1Zik7CkBA IC04NDcsNyArODQ3LDcgQEAgcHFJbnRlcm5hbE5vdGljZShjb25zdCBQR05v dGljZUhvb2tzICpob29rcywgY29uc3QgY2hhciAqZm10LC4uLikKIC8qCiAg KiBwcUFkZFR1cGxlCiAgKgkgIGFkZCBhIHJvdyBwb2ludGVyIHRvIHRoZSBQ R3Jlc3VsdCBzdHJ1Y3R1cmUsIGdyb3dpbmcgaXQgaWYgbmVjZXNzYXJ5Ci0g KgkgIFJldHVybnMgVFJVRSBpZiBPSywgRkFMU0UgaWYgbm90IGVub3VnaCBt ZW1vcnkgdG8gYWRkIHRoZSByb3cKKyAqCSAgUmV0dXJucyB0cnVlIGlmIE9L LCBmYWxzZSBpZiBub3QgZW5vdWdoIG1lbW9yeSB0byBhZGQgdGhlIHJvdwog ICovCiBzdGF0aWMgYm9vbAogcHFBZGRUdXBsZShQR3Jlc3VsdCAqcmVzLCBQ R3Jlc0F0dFZhbHVlICp0dXApCkBAIC04NzUsMTMgKzg3NSwxMyBAQCBwcUFk ZFR1cGxlKFBHcmVzdWx0ICpyZXMsIFBHcmVzQXR0VmFsdWUgKnR1cCkKIAkJ CW5ld1R1cGxlcyA9IChQR3Jlc0F0dFZhbHVlICoqKQogCQkJCXJlYWxsb2Mo cmVzLT50dXBsZXMsIG5ld1NpemUgKiBzaXplb2YoUEdyZXNBdHRWYWx1ZSAq KSk7CiAJCWlmICghbmV3VHVwbGVzKQotCQkJcmV0dXJuIEZBTFNFOwkJLyog bWFsbG9jIG9yIHJlYWxsb2MgZmFpbGVkICovCisJCQlyZXR1cm4gZmFsc2U7 CQkvKiBtYWxsb2Mgb3IgcmVhbGxvYyBmYWlsZWQgKi8KIAkJcmVzLT50dXBB cnJTaXplID0gbmV3U2l6ZTsKIAkJcmVzLT50dXBsZXMgPSBuZXdUdXBsZXM7 CiAJfQogCXJlcy0+dHVwbGVzW3Jlcy0+bnR1cHNdID0gdHVwOwogCXJlcy0+ bnR1cHMrKzsKLQlyZXR1cm4gVFJVRTsKKwlyZXR1cm4gdHJ1ZTsKIH0KIAog LyoKQEAgLTg5Niw3ICs4OTYsNyBAQCBwcVNhdmVNZXNzYWdlRmllbGQoUEdy ZXN1bHQgKnJlcywgY2hhciBjb2RlLCBjb25zdCBjaGFyICp2YWx1ZSkKIAkJ cHFSZXN1bHRBbGxvYyhyZXMsCiAJCQkJCSAgb2Zmc2V0b2YoUEdNZXNzYWdl RmllbGQsIGNvbnRlbnRzKSArCiAJCQkJCSAgc3RybGVuKHZhbHVlKSArIDEs Ci0JCQkJCSAgVFJVRSk7CisJCQkJCSAgdHJ1ZSk7CiAJaWYgKCFwZmllbGQp CiAJCXJldHVybjsJCQkJCS8qIG91dCBvZiBtZW1vcnk/ICovCiAJcGZpZWxk LT5jb2RlID0gY29kZTsKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHBxUm93UHJv Y2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJ ICogbWVtb3J5IGZvciBnZXR0ZXh0KCkgdG8gZG8gYW55dGhpbmcuCiAJICov CiAJdHVwID0gKFBHcmVzQXR0VmFsdWUgKikKLQkJcHFSZXN1bHRBbGxvYyhy ZXMsIG5maWVsZHMgKiBzaXplb2YoUEdyZXNBdHRWYWx1ZSksIFRSVUUpOwor CQlwcVJlc3VsdEFsbG9jKHJlcywgbmZpZWxkcyAqIHNpemVvZihQR3Jlc0F0 dFZhbHVlKSwgdHJ1ZSk7CiAJaWYgKHR1cCA9PSBOVUxMKQogCQlnb3RvIGZh aWw7CiAKQEAgLTE2NzQsMTQgKzE2NzQsMTQgQEAgcGFyc2VJbnB1dChQR2Nv bm4gKmNvbm4pCiAKIC8qCiAgKiBQUWlzQnVzeQotICoJIFJldHVybiBUUlVF IGlmIFBRZ2V0UmVzdWx0IHdvdWxkIGJsb2NrIHdhaXRpbmcgZm9yIGlucHV0 LgorICoJIFJldHVybiB0cnVlIGlmIFBRZ2V0UmVzdWx0IHdvdWxkIGJsb2Nr IHdhaXRpbmcgZm9yIGlucHV0LgogICovCiAKIGludAogUFFpc0J1c3koUEdj b25uICpjb25uKQogewogCWlmICghY29ubikKLQkJcmV0dXJuIEZBTFNFOwor CQlyZXR1cm4gZmFsc2U7CiAKIAkvKiBQYXJzZSBhbnkgYXZhaWxhYmxlIGRh dGEsIGlmIG91ciBzdGF0ZSBwZXJtaXRzLiAqLwogCXBhcnNlSW5wdXQoY29u bik7CkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBQUWdldFJlc3VsdChQR2Nvbm4g KmNvbm4pCiAJCSAqLwogCQl3aGlsZSAoKGZsdXNoUmVzdWx0ID0gcHFGbHVz aChjb25uKSkgPiAwKQogCQl7Ci0JCQlpZiAocHFXYWl0KEZBTFNFLCBUUlVF LCBjb25uKSkKKwkJCWlmIChwcVdhaXQoZmFsc2UsIHRydWUsIGNvbm4pKQog CQkJewogCQkJCWZsdXNoUmVzdWx0ID0gLTE7CiAJCQkJYnJlYWs7CkBAIC0x NzI5LDcgKzE3MjksNyBAQCBQUWdldFJlc3VsdChQR2Nvbm4gKmNvbm4pCiAK IAkJLyogV2FpdCBmb3Igc29tZSBtb3JlIGRhdGEsIGFuZCBsb2FkIGl0LiAq LwogCQlpZiAoZmx1c2hSZXN1bHQgfHwKLQkJCXBxV2FpdChUUlVFLCBGQUxT RSwgY29ubikgfHwKKwkJCXBxV2FpdCh0cnVlLCBmYWxzZSwgY29ubikgfHwK IAkJCXBxUmVhZERhdGEoY29ubikgPCAwKQogCQl7CiAJCQkvKgpAQCAtMTc5 Myw3ICsxNzkzLDcgQEAgUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKQogCQkJ CXJlcy0+cmVzdWx0U3RhdHVzID0gUEdSRVNfRkFUQUxfRVJST1I7CiAJCQkJ YnJlYWs7CiAJCQl9Ci0JCQlyZXMtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFs aXplZCA9IFRSVUU7CisJCQlyZXMtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFs aXplZCA9IHRydWU7CiAJCX0KIAl9CiAKQEAgLTI2OTUsMjIgKzI2OTUsMjIg QEAgUFFiaW5hcnlUdXBsZXMoY29uc3QgUEdyZXN1bHQgKnJlcykKIAogLyoK ICAqIEhlbHBlciByb3V0aW5lcyB0byByYW5nZS1jaGVjayBmaWVsZCBudW1i ZXJzIGFuZCB0dXBsZSBudW1iZXJzLgotICogUmV0dXJuIFRSVUUgaWYgT0ss IEZBTFNFIGlmIG5vdAorICogUmV0dXJuIHRydWUgaWYgT0ssIGZhbHNlIGlm IG5vdAogICovCiAKIHN0YXRpYyBpbnQKIGNoZWNrX2ZpZWxkX251bWJlcihj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQogewogCWlmICgh cmVzKQotCQlyZXR1cm4gRkFMU0U7CQkJLyogbm8gd2F5IHRvIGRpc3BsYXkg ZXJyb3IgbWVzc2FnZS4uLiAqLworCQlyZXR1cm4gZmFsc2U7CQkJLyogbm8g d2F5IHRvIGRpc3BsYXkgZXJyb3IgbWVzc2FnZS4uLiAqLwogCWlmIChmaWVs ZF9udW0gPCAwIHx8IGZpZWxkX251bSA+PSByZXMtPm51bUF0dHJpYnV0ZXMp CiAJewogCQlwcUludGVybmFsTm90aWNlKCZyZXMtPm5vdGljZUhvb2tzLAog CQkJCQkJICJjb2x1bW4gbnVtYmVyICVkIGlzIG91dCBvZiByYW5nZSAwLi4l ZCIsCiAJCQkJCQkgZmllbGRfbnVtLCByZXMtPm51bUF0dHJpYnV0ZXMgLSAx KTsKLQkJcmV0dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7CiAJfQotCXJl dHVybiBUUlVFOworCXJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgaW50CkBA IC0yNzE4LDM4ICsyNzE4LDM4IEBAIGNoZWNrX3R1cGxlX2ZpZWxkX251bWJl cihjb25zdCBQR3Jlc3VsdCAqcmVzLAogCQkJCQkJIGludCB0dXBfbnVtLCBp bnQgZmllbGRfbnVtKQogewogCWlmICghcmVzKQotCQlyZXR1cm4gRkFMU0U7 CQkJLyogbm8gd2F5IHRvIGRpc3BsYXkgZXJyb3IgbWVzc2FnZS4uLiAqLwor CQlyZXR1cm4gZmFsc2U7CQkJLyogbm8gd2F5IHRvIGRpc3BsYXkgZXJyb3Ig bWVzc2FnZS4uLiAqLwogCWlmICh0dXBfbnVtIDwgMCB8fCB0dXBfbnVtID49 IHJlcy0+bnR1cHMpCiAJewogCQlwcUludGVybmFsTm90aWNlKCZyZXMtPm5v dGljZUhvb2tzLAogCQkJCQkJICJyb3cgbnVtYmVyICVkIGlzIG91dCBvZiBy YW5nZSAwLi4lZCIsCiAJCQkJCQkgdHVwX251bSwgcmVzLT5udHVwcyAtIDEp OwotCQlyZXR1cm4gRkFMU0U7CisJCXJldHVybiBmYWxzZTsKIAl9CiAJaWYg KGZpZWxkX251bSA8IDAgfHwgZmllbGRfbnVtID49IHJlcy0+bnVtQXR0cmli dXRlcykKIAl7CiAJCXBxSW50ZXJuYWxOb3RpY2UoJnJlcy0+bm90aWNlSG9v a3MsCiAJCQkJCQkgImNvbHVtbiBudW1iZXIgJWQgaXMgb3V0IG9mIHJhbmdl IDAuLiVkIiwKIAkJCQkJCSBmaWVsZF9udW0sIHJlcy0+bnVtQXR0cmlidXRl cyAtIDEpOwotCQlyZXR1cm4gRkFMU0U7CisJCXJldHVybiBmYWxzZTsKIAl9 Ci0JcmV0dXJuIFRSVUU7CisJcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBp bnQKIGNoZWNrX3BhcmFtX251bWJlcihjb25zdCBQR3Jlc3VsdCAqcmVzLCBp bnQgcGFyYW1fbnVtKQogewogCWlmICghcmVzKQotCQlyZXR1cm4gRkFMU0U7 CQkJLyogbm8gd2F5IHRvIGRpc3BsYXkgZXJyb3IgbWVzc2FnZS4uLiAqLwor CQlyZXR1cm4gZmFsc2U7CQkJLyogbm8gd2F5IHRvIGRpc3BsYXkgZXJyb3Ig bWVzc2FnZS4uLiAqLwogCWlmIChwYXJhbV9udW0gPCAwIHx8IHBhcmFtX251 bSA+PSByZXMtPm51bVBhcmFtZXRlcnMpCiAJewogCQlwcUludGVybmFsTm90 aWNlKCZyZXMtPm5vdGljZUhvb2tzLAogCQkJCQkJICJwYXJhbWV0ZXIgbnVt YmVyICVkIGlzIG91dCBvZiByYW5nZSAwLi4lZCIsCiAJCQkJCQkgcGFyYW1f bnVtLCByZXMtPm51bVBhcmFtZXRlcnMgLSAxKTsKLQkJcmV0dXJuIEZBTFNF OworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcmV0dXJuIFRSVUU7CisJcmV0 dXJuIHRydWU7CiB9CiAKIC8qCkBAIC0zMTI2LDggKzMxMjYsOCBAQCBQUXBh cmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKQog CiAKIC8qIFBRc2V0bm9uYmxvY2tpbmc6Ci0gKglzZXRzIHRoZSBQR2Nvbm4n cyBkYXRhYmFzZSBjb25uZWN0aW9uIG5vbi1ibG9ja2luZyBpZiB0aGUgYXJn IGlzIFRSVUUKLSAqCW9yIG1ha2VzIGl0IGJsb2NraW5nIGlmIHRoZSBhcmcg aXMgRkFMU0UsIHRoaXMgd2lsbCBub3QgcHJvdGVjdAorICoJc2V0cyB0aGUg UEdjb25uJ3MgZGF0YWJhc2UgY29ubmVjdGlvbiBub24tYmxvY2tpbmcgaWYg dGhlIGFyZyBpcyB0cnVlCisgKglvciBtYWtlcyBpdCBibG9ja2luZyBpZiB0 aGUgYXJnIGlzIGZhbHNlLCB0aGlzIHdpbGwgbm90IHByb3RlY3QKICAqCXlv dSBmcm9tIFBRZXhlYygpLCB5b3UnbGwgb25seSBiZSBzYWZlIHdoZW4gdXNp bmcgdGhlIG5vbi1ibG9ja2luZyBBUEkuCiAgKglOZWVkcyB0byBiZSBjYWxs ZWQgb25seSBvbiBhIGNvbm5lY3RlZCBkYXRhYmFzZSBjb25uZWN0aW9uLgog ICovCkBAIC0zMTM5LDcgKzMxMzksNyBAQCBQUXNldG5vbmJsb2NraW5nKFBH Y29ubiAqY29ubiwgaW50IGFyZykKIAlpZiAoIWNvbm4gfHwgY29ubi0+c3Rh dHVzID09IENPTk5FQ1RJT05fQkFEKQogCQlyZXR1cm4gLTE7CiAKLQliYXJn ID0gKGFyZyA/IFRSVUUgOiBGQUxTRSk7CisJYmFyZyA9IChhcmcgPyB0cnVl IDogZmFsc2UpOwogCiAJLyogZWFybHkgb3V0IGlmIHRoZSBzb2NrZXQgaXMg YWxyZWFkeSBpbiB0aGUgc3RhdGUgcmVxdWVzdGVkICovCiAJaWYgKGJhcmcg PT0gY29ubi0+bm9uYmxvY2tpbmcpCkBAIC0zMTYyLDcgKzMxNjIsNyBAQCBQ UXNldG5vbmJsb2NraW5nKFBHY29ubiAqY29ubiwgaW50IGFyZykKIAogLyoK ICAqIHJldHVybiB0aGUgYmxvY2tpbmcgc3RhdHVzIG9mIHRoZSBkYXRhYmFz ZSBjb25uZWN0aW9uCi0gKgkJVFJVRSA9PSBub25ibG9ja2luZywgRkFMU0Ug PT0gYmxvY2tpbmcKKyAqCQl0cnVlID09IG5vbmJsb2NraW5nLCBmYWxzZSA9 PSBibG9ja2luZwogICovCiBpbnQKIFBRaXNub25ibG9ja2luZyhjb25zdCBQ R2Nvbm4gKmNvbm4pCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9mZS1taXNjLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1taXNjLmMK aW5kZXggY2FjNjM1OTU4NS4uZjEwYzFmODdmZiAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtbWlzYy5jCisrKyBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLW1pc2MuYwpAQCAtOTM2LDcgKzkzNiw3IEBAIHBxU2Vu ZFNvbWUoUEdjb25uICpjb25uLCBpbnQgbGVuKQogCQkJCWJyZWFrOwogCQkJ fQogCi0JCQlpZiAocHFXYWl0KFRSVUUsIFRSVUUsIGNvbm4pKQorCQkJaWYg KHBxV2FpdCh0cnVlLCB0cnVlLCBjb25uKSkKIAkJCXsKIAkJCQlyZXN1bHQg PSAtMTsKIAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLXByb3RvY29sMi5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEv ZmUtcHJvdG9jb2wyLmMKaW5kZXggYTU4ZjcwMWUxOC4uMmFmNmQ2NWQ4OSAx MDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wy LmMKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wyLmMK QEAgLTU4NCw3ICs1ODQsNyBAQCBwcVBhcnNlSW5wdXQyKFBHY29ubiAqY29u bikKIAkJCQkJaWYgKGNvbm4tPnJlc3VsdCAhPSBOVUxMKQogCQkJCQl7CiAJ CQkJCQkvKiBSZWFkIGFub3RoZXIgdHVwbGUgb2YgYSBub3JtYWwgcXVlcnkg cmVzcG9uc2UgKi8KLQkJCQkJCWlmIChnZXRBbm90aGVyVHVwbGUoY29ubiwg RkFMU0UpKQorCQkJCQkJaWYgKGdldEFub3RoZXJUdXBsZShjb25uLCBmYWxz ZSkpCiAJCQkJCQkJcmV0dXJuOwogCQkJCQkJLyogZ2V0QW5vdGhlclR1cGxl KCkgbW92ZXMgaW5TdGFydCBpdHNlbGYgKi8KIAkJCQkJCWNvbnRpbnVlOwpA QCAtNjAyLDcgKzYwMiw3IEBAIHBxUGFyc2VJbnB1dDIoUEdjb25uICpjb25u KQogCQkJCQlpZiAoY29ubi0+cmVzdWx0ICE9IE5VTEwpCiAJCQkJCXsKIAkJ CQkJCS8qIFJlYWQgYW5vdGhlciB0dXBsZSBvZiBhIG5vcm1hbCBxdWVyeSBy ZXNwb25zZSAqLwotCQkJCQkJaWYgKGdldEFub3RoZXJUdXBsZShjb25uLCBU UlVFKSkKKwkJCQkJCWlmIChnZXRBbm90aGVyVHVwbGUoY29ubiwgdHJ1ZSkp CiAJCQkJCQkJcmV0dXJuOwogCQkJCQkJLyogZ2V0QW5vdGhlclR1cGxlKCkg bW92ZXMgaW5TdGFydCBpdHNlbGYgKi8KIAkJCQkJCWNvbnRpbnVlOwpAQCAt NjgwLDcgKzY4MCw3IEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNv bm4pCiAJaWYgKG5maWVsZHMgPiAwKQogCXsKIAkJcmVzdWx0LT5hdHREZXNj cyA9IChQR3Jlc0F0dERlc2MgKikKLQkJCXBxUmVzdWx0QWxsb2MocmVzdWx0 LCBuZmllbGRzICogc2l6ZW9mKFBHcmVzQXR0RGVzYyksIFRSVUUpOworCQkJ cHFSZXN1bHRBbGxvYyhyZXN1bHQsIG5maWVsZHMgKiBzaXplb2YoUEdyZXNB dHREZXNjKSwgdHJ1ZSk7CiAJCWlmICghcmVzdWx0LT5hdHREZXNjcykKIAkJ ewogCQkJZXJybXNnID0gTlVMTDsJCS8qIG1lYW5zICJvdXQgb2YgbWVtb3J5 Iiwgc2VlIGJlbG93ICovCkBAIC0xMjE5LDcgKzEyMTksNyBAQCBwcUdldENv cHlEYXRhMihQR2Nvbm4gKmNvbm4sIGNoYXIgKipidWZmZXIsIGludCBhc3lu YykKIAkJaWYgKGFzeW5jKQogCQkJcmV0dXJuIDA7CiAJCS8qIE5lZWQgdG8g bG9hZCBtb3JlIGRhdGEgKi8KLQkJaWYgKHBxV2FpdChUUlVFLCBGQUxTRSwg Y29ubikgfHwKKwkJaWYgKHBxV2FpdCh0cnVlLCBmYWxzZSwgY29ubikgfHwK IAkJCXBxUmVhZERhdGEoY29ubikgPCAwKQogCQkJcmV0dXJuIC0yOwogCX0K QEAgLTEyNjQsNyArMTI2NCw3IEBAIHBxR2V0bGluZTIoUEdjb25uICpjb25u LCBjaGFyICpzLCBpbnQgbWF4bGVuKQogCQllbHNlCiAJCXsKIAkJCS8qIG5l ZWQgdG8gbG9hZCBtb3JlIGRhdGEgKi8KLQkJCWlmIChwcVdhaXQoVFJVRSwg RkFMU0UsIGNvbm4pIHx8CisJCQlpZiAocHFXYWl0KHRydWUsIGZhbHNlLCBj b25uKSB8fAogCQkJCXBxUmVhZERhdGEoY29ubikgPCAwKQogCQkJewogCQkJ CXJlc3VsdCA9IEVPRjsKQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHBxRnVuY3Rp b25DYWxsMihQR2Nvbm4gKmNvbm4sIE9pZCBmbmlkLAogCQlpZiAobmVlZElu cHV0KQogCQl7CiAJCQkvKiBXYWl0IGZvciBzb21lIGRhdGEgdG8gYXJyaXZl IChvciBmb3IgdGhlIGNoYW5uZWwgdG8gY2xvc2UpICovCi0JCQlpZiAocHFX YWl0KFRSVUUsIEZBTFNFLCBjb25uKSB8fAorCQkJaWYgKHBxV2FpdCh0cnVl LCBmYWxzZSwgY29ubikgfHwKIAkJCQlwcVJlYWREYXRhKGNvbm4pIDwgMCkK IAkJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtcHJvdG9jb2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYwppbmRleCBhNDg0ZmU4MGExLi5jZTcyZWFlMjNhIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYwpA QCAtNTExLDcgKzUxMSw3IEBAIGdldFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4g KmNvbm4sIGludCBtc2dMZW5ndGgpCiAJaWYgKG5maWVsZHMgPiAwKQogCXsK IAkJcmVzdWx0LT5hdHREZXNjcyA9IChQR3Jlc0F0dERlc2MgKikKLQkJCXBx UmVzdWx0QWxsb2MocmVzdWx0LCBuZmllbGRzICogc2l6ZW9mKFBHcmVzQXR0 RGVzYyksIFRSVUUpOworCQkJcHFSZXN1bHRBbGxvYyhyZXN1bHQsIG5maWVs ZHMgKiBzaXplb2YoUEdyZXNBdHREZXNjKSwgdHJ1ZSk7CiAJCWlmICghcmVz dWx0LT5hdHREZXNjcykKIAkJewogCQkJZXJybXNnID0gTlVMTDsJCS8qIG1l YW5zICJvdXQgb2YgbWVtb3J5Iiwgc2VlIGJlbG93ICovCkBAIC02NjksNyAr NjY5LDcgQEAgZ2V0UGFyYW1EZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBp bnQgbXNnTGVuZ3RoKQogCWlmIChucGFyYW1zID4gMCkKIAl7CiAJCXJlc3Vs dC0+cGFyYW1EZXNjcyA9IChQR3Jlc1BhcmFtRGVzYyAqKQotCQkJcHFSZXN1 bHRBbGxvYyhyZXN1bHQsIG5wYXJhbXMgKiBzaXplb2YoUEdyZXNQYXJhbURl c2MpLCBUUlVFKTsKKwkJCXBxUmVzdWx0QWxsb2MocmVzdWx0LCBucGFyYW1z ICogc2l6ZW9mKFBHcmVzUGFyYW1EZXNjKSwgdHJ1ZSk7CiAJCWlmICghcmVz dWx0LT5wYXJhbURlc2NzKQogCQkJZ290byBhZHZhbmNlX2FuZF9lcnJvcjsK IAkJTWVtU2V0KHJlc3VsdC0+cGFyYW1EZXNjcywgMCwgbnBhcmFtcyAqIHNp emVvZihQR3Jlc1BhcmFtRGVzYykpOwpAQCAtMTQ2Nyw3ICsxNDY3LDcgQEAg Z2V0Q29weVN0YXJ0KFBHY29ubiAqY29ubiwgRXhlY1N0YXR1c1R5cGUgY29w eXR5cGUpCiAJaWYgKG5maWVsZHMgPiAwKQogCXsKIAkJcmVzdWx0LT5hdHRE ZXNjcyA9IChQR3Jlc0F0dERlc2MgKikKLQkJCXBxUmVzdWx0QWxsb2MocmVz dWx0LCBuZmllbGRzICogc2l6ZW9mKFBHcmVzQXR0RGVzYyksIFRSVUUpOwor CQkJcHFSZXN1bHRBbGxvYyhyZXN1bHQsIG5maWVsZHMgKiBzaXplb2YoUEdy ZXNBdHREZXNjKSwgdHJ1ZSk7CiAJCWlmICghcmVzdWx0LT5hdHREZXNjcykK IAkJCWdvdG8gZmFpbHVyZTsKIAkJTWVtU2V0KHJlc3VsdC0+YXR0RGVzY3Ms IDAsIG5maWVsZHMgKiBzaXplb2YoUEdyZXNBdHREZXNjKSk7CkBAIC0xNjU4 LDcgKzE2NTgsNyBAQCBwcUdldENvcHlEYXRhMyhQR2Nvbm4gKmNvbm4sIGNo YXIgKipidWZmZXIsIGludCBhc3luYykKIAkJCWlmIChhc3luYykKIAkJCQly ZXR1cm4gMDsKIAkJCS8qIE5lZWQgdG8gbG9hZCBtb3JlIGRhdGEgKi8KLQkJ CWlmIChwcVdhaXQoVFJVRSwgRkFMU0UsIGNvbm4pIHx8CisJCQlpZiAocHFX YWl0KHRydWUsIGZhbHNlLCBjb25uKSB8fAogCQkJCXBxUmVhZERhdGEoY29u bikgPCAwKQogCQkJCXJldHVybiAtMjsKIAkJCWNvbnRpbnVlOwpAQCAtMTcx Niw3ICsxNzE2LDcgQEAgcHFHZXRsaW5lMyhQR2Nvbm4gKmNvbm4sIGNoYXIg KnMsIGludCBtYXhsZW4pCiAJd2hpbGUgKChzdGF0dXMgPSBQUWdldGxpbmVB c3luYyhjb25uLCBzLCBtYXhsZW4gLSAxKSkgPT0gMCkKIAl7CiAJCS8qIG5l ZWQgdG8gbG9hZCBtb3JlIGRhdGEgKi8KLQkJaWYgKHBxV2FpdChUUlVFLCBG QUxTRSwgY29ubikgfHwKKwkJaWYgKHBxV2FpdCh0cnVlLCBmYWxzZSwgY29u bikgfHwKIAkJCXBxUmVhZERhdGEoY29ubikgPCAwKQogCQl7CiAJCQkqcyA9 ICdcMCc7CkBAIC0xOTY5LDcgKzE5NjksNyBAQCBwcUZ1bmN0aW9uQ2FsbDMo UEdjb25uICpjb25uLCBPaWQgZm5pZCwKIAkJaWYgKG5lZWRJbnB1dCkKIAkJ ewogCQkJLyogV2FpdCBmb3Igc29tZSBkYXRhIHRvIGFycml2ZSAob3IgZm9y IHRoZSBjaGFubmVsIHRvIGNsb3NlKSAqLwotCQkJaWYgKHBxV2FpdChUUlVF LCBGQUxTRSwgY29ubikgfHwKKwkJCWlmIChwcVdhaXQodHJ1ZSwgZmFsc2Us IGNvbm4pIHx8CiAJCQkJcHFSZWFkRGF0YShjb25uKSA8IDApCiAJCQkJYnJl YWs7CiAJCX0KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWV2ZW50cy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZl bnRzLmMKaW5kZXggZTUzMzAxN2EwMy4uODgzZTJhZjhmNCAxMDA2NDQKLS0t IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZlbnRzLmMKKysrIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZlbnRzLmMKQEAgLTQ0LDEy ICs0NCwxMiBAQCBQUXJlZ2lzdGVyRXZlbnRQcm9jKFBHY29ubiAqY29ubiwg UEdFdmVudFByb2MgcHJvYywKIAlQR0V2ZW50UmVnaXN0ZXIgcmVnZXZ0Owog CiAJaWYgKCFwcm9jIHx8ICFjb25uIHx8ICFuYW1lIHx8ICEqbmFtZSkKLQkJ cmV0dXJuIEZBTFNFOwkJCS8qIGJhZCBhcmd1bWVudHMgKi8KKwkJcmV0dXJu IGZhbHNlOwkJCS8qIGJhZCBhcmd1bWVudHMgKi8KIAogCWZvciAoaSA9IDA7 IGkgPCBjb25uLT5uRXZlbnRzOyBpKyspCiAJewogCQlpZiAoY29ubi0+ZXZl bnRzW2ldLnByb2MgPT0gcHJvYykKLQkJCXJldHVybiBGQUxTRTsJCS8qIGFs cmVhZHkgcmVnaXN0ZXJlZCAqLworCQkJcmV0dXJuIGZhbHNlOwkJLyogYWxy ZWFkeSByZWdpc3RlcmVkICovCiAJfQogCiAJaWYgKGNvbm4tPm5FdmVudHMg Pj0gY29ubi0+ZXZlbnRBcnJheVNpemUpCkBAIC02NCw3ICs2NCw3IEBAIFBR cmVnaXN0ZXJFdmVudFByb2MoUEdjb25uICpjb25uLCBQR0V2ZW50UHJvYyBw cm9jLAogCQkJZSA9IChQR0V2ZW50ICopIG1hbGxvYyhuZXdTaXplICogc2l6 ZW9mKFBHRXZlbnQpKTsKIAogCQlpZiAoIWUpCi0JCQlyZXR1cm4gRkFMU0U7 CisJCQlyZXR1cm4gZmFsc2U7CiAKIAkJY29ubi0+ZXZlbnRBcnJheVNpemUg PSBuZXdTaXplOwogCQljb25uLT5ldmVudHMgPSBlOwpAQCAtNzMsMTAgKzcz LDEwIEBAIFBRcmVnaXN0ZXJFdmVudFByb2MoUEdjb25uICpjb25uLCBQR0V2 ZW50UHJvYyBwcm9jLAogCWNvbm4tPmV2ZW50c1tjb25uLT5uRXZlbnRzXS5w cm9jID0gcHJvYzsKIAljb25uLT5ldmVudHNbY29ubi0+bkV2ZW50c10ubmFt ZSA9IHN0cmR1cChuYW1lKTsKIAlpZiAoIWNvbm4tPmV2ZW50c1tjb25uLT5u RXZlbnRzXS5uYW1lKQotCQlyZXR1cm4gRkFMU0U7CisJCXJldHVybiBmYWxz ZTsKIAljb25uLT5ldmVudHNbY29ubi0+bkV2ZW50c10ucGFzc1Rocm91Z2gg PSBwYXNzVGhyb3VnaDsKIAljb25uLT5ldmVudHNbY29ubi0+bkV2ZW50c10u ZGF0YSA9IE5VTEw7Ci0JY29ubi0+ZXZlbnRzW2Nvbm4tPm5FdmVudHNdLnJl c3VsdEluaXRpYWxpemVkID0gRkFMU0U7CisJY29ubi0+ZXZlbnRzW2Nvbm4t Pm5FdmVudHNdLnJlc3VsdEluaXRpYWxpemVkID0gZmFsc2U7CiAJY29ubi0+ bkV2ZW50cysrOwogCiAJcmVnZXZ0LmNvbm4gPSBjb25uOwpAQCAtODQsMTAg Kzg0LDEwIEBAIFBRcmVnaXN0ZXJFdmVudFByb2MoUEdjb25uICpjb25uLCBQ R0V2ZW50UHJvYyBwcm9jLAogCXsKIAkJY29ubi0+bkV2ZW50cy0tOwogCQlm cmVlKGNvbm4tPmV2ZW50c1tjb25uLT5uRXZlbnRzXS5uYW1lKTsKLQkJcmV0 dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7CiAJfQogCi0JcmV0dXJuIFRS VUU7CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qCkBAIC0xMDAsMTggKzEwMCwx OCBAQCBQUXNldEluc3RhbmNlRGF0YShQR2Nvbm4gKmNvbm4sIFBHRXZlbnRQ cm9jIHByb2MsIHZvaWQgKmRhdGEpCiAJaW50CQkJaTsKIAogCWlmICghY29u biB8fCAhcHJvYykKLQkJcmV0dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7 CiAKIAlmb3IgKGkgPSAwOyBpIDwgY29ubi0+bkV2ZW50czsgaSsrKQogCXsK IAkJaWYgKGNvbm4tPmV2ZW50c1tpXS5wcm9jID09IHByb2MpCiAJCXsKIAkJ CWNvbm4tPmV2ZW50c1tpXS5kYXRhID0gZGF0YTsKLQkJCXJldHVybiBUUlVF OworCQkJcmV0dXJuIHRydWU7CiAJCX0KIAl9CiAKLQlyZXR1cm4gRkFMU0U7 CisJcmV0dXJuIGZhbHNlOwogfQogCiAvKgpAQCAtMTQ0LDE4ICsxNDQsMTgg QEAgUFFyZXN1bHRTZXRJbnN0YW5jZURhdGEoUEdyZXN1bHQgKnJlc3VsdCwg UEdFdmVudFByb2MgcHJvYywgdm9pZCAqZGF0YSkKIAlpbnQJCQlpOwogCiAJ aWYgKCFyZXN1bHQgfHwgIXByb2MpCi0JCXJldHVybiBGQUxTRTsKKwkJcmV0 dXJuIGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IHJlc3VsdC0+bkV2ZW50 czsgaSsrKQogCXsKIAkJaWYgKHJlc3VsdC0+ZXZlbnRzW2ldLnByb2MgPT0g cHJvYykKIAkJewogCQkJcmVzdWx0LT5ldmVudHNbaV0uZGF0YSA9IGRhdGE7 Ci0JCQlyZXR1cm4gVFJVRTsKKwkJCXJldHVybiB0cnVlOwogCQl9CiAJfQog Ci0JcmV0dXJuIEZBTFNFOworCXJldHVybiBmYWxzZTsKIH0KIAogLyoKQEAg LTE4Nyw3ICsxODcsNyBAQCBQUWZpcmVSZXN1bHRDcmVhdGVFdmVudHMoUEdj b25uICpjb25uLCBQR3Jlc3VsdCAqcmVzKQogCWludAkJCWk7CiAKIAlpZiAo IXJlcykKLQkJcmV0dXJuIEZBTFNFOworCQlyZXR1cm4gZmFsc2U7CiAKIAlm b3IgKGkgPSAwOyBpIDwgcmVzLT5uRXZlbnRzOyBpKyspCiAJewpAQCAtMTk5 LDExICsxOTksMTEgQEAgUFFmaXJlUmVzdWx0Q3JlYXRlRXZlbnRzKFBHY29u biAqY29ubiwgUEdyZXN1bHQgKnJlcykKIAkJCWV2dC5yZXN1bHQgPSByZXM7 CiAJCQlpZiAoIXJlcy0+ZXZlbnRzW2ldLnByb2MoUEdFVlRfUkVTVUxUQ1JF QVRFLCAmZXZ0LAogCQkJCQkJCQkJIHJlcy0+ZXZlbnRzW2ldLnBhc3NUaHJv dWdoKSkKLQkJCQlyZXR1cm4gRkFMU0U7CisJCQkJcmV0dXJuIGZhbHNlOwog Ci0JCQlyZXMtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFsaXplZCA9IFRSVUU7 CisJCQlyZXMtPmV2ZW50c1tpXS5yZXN1bHRJbml0aWFsaXplZCA9IHRydWU7 CiAJCX0KIAl9CiAKLQlyZXR1cm4gVFJVRTsKKwlyZXR1cm4gdHJ1ZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDYxNmY1ZTMwZjgu LmM5NTU2MDRjOWIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpA QCAtNTQ3NCwxMiArNTQ3NCwxMiBAQCBleGVjX2Zvcl9xdWVyeShQTHBnU1FM X2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfZm9ycSAqc3RtdCwK ICAqCQkJCQkJCQlhIERhdHVtIGJ5IGRpcmVjdGx5IGNhbGxpbmcgRXhlY0V2 YWxFeHByKCkuCiAgKgogICogSWYgc3VjY2Vzc2Z1bCwgc3RvcmUgcmVzdWx0 cyBpbnRvICpyZXN1bHQsICppc051bGwsICpyZXR0eXBlLCAqcmV0dHlwbW9k Ci0gKiBhbmQgcmV0dXJuIFRSVUUuICBJZiB0aGUgZXhwcmVzc2lvbiBjYW5u b3QgYmUgaGFuZGxlZCBieSBzaW1wbGUgZXZhbHVhdGlvbiwKLSAqIHJldHVy biBGQUxTRS4KKyAqIGFuZCByZXR1cm4gdHJ1ZS4gIElmIHRoZSBleHByZXNz aW9uIGNhbm5vdCBiZSBoYW5kbGVkIGJ5IHNpbXBsZSBldmFsdWF0aW9uLAor ICogcmV0dXJuIGZhbHNlLgogICoKICAqIEJlY2F1c2Ugd2Ugb25seSBzdG9y ZSBvbmUgZXhlY3V0aW9uIHRyZWUgZm9yIGEgc2ltcGxlIGV4cHJlc3Npb24s IHdlCiAgKiBjYW4ndCBoYW5kbGUgcmVjdXJzaW9uIGNhc2VzLiAgU28sIGlm IHdlIHNlZSB0aGUgdHJlZSBpcyBhbHJlYWR5IGJ1c3kKLSAqIHdpdGggYW4g ZXZhbHVhdGlvbiBpbiB0aGUgY3VycmVudCB4YWN0LCB3ZSBqdXN0IHJldHVy biBGQUxTRSBhbmQgbGV0IHRoZQorICogd2l0aCBhbiBldmFsdWF0aW9uIGlu IHRoZSBjdXJyZW50IHhhY3QsIHdlIGp1c3QgcmV0dXJuIGZhbHNlIGFuZCBs ZXQgdGhlCiAgKiBjYWxsZXIgcnVuIHRoZSBleHByZXNzaW9uIHRoZSBoYXJk IHdheS4gIChPdGhlciBhbHRlcm5hdGl2ZXMgc3VjaCBhcwogICogY3JlYXRp bmcgYSBuZXcgdHJlZSBmb3IgYSByZWN1cnNpdmUgY2FsbCBlaXRoZXIgaW50 cm9kdWNlIG1lbW9yeSBsZWFrcywKICAqIG9yIGFkZCBlbm91Z2ggYm9va2tl ZXBpbmcgdG8gYmUgZG91YnRmdWwgd2lucyBhbnl3YXkuKSAgQW5vdGhlciBj YXNlIHRoYXQKQEAgLTYyOTEsNyArNjI5MSw3IEBAIGV4ZWNfY2FzdF92YWx1 ZShQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogICogb3IgTlVMTCBpZiB0 aGUgY2FzdCBpcyBhIG1lcmUgbm8tb3AgcmVsYWJlbGluZy4gIElmIHRoZXJl J3Mgd29yayB0byBiZQogICogZG9uZSwgdGhlIGNhc3RfZXhwcnN0YXRlIGZp ZWxkIGNvbnRhaW5zIGFuIGV4cHJlc3Npb24gZXZhbHVhdGlvbiB0cmVlCiAg KiBiYXNlZCBvbiBhIENhc2VUZXN0RXhwciBpbnB1dCwgYW5kIHRoZSBjYXN0 X2luX3VzZSBmaWVsZCBzaG91bGQgYmUgc2V0Ci0gKiBUUlVFIHdoaWxlIGV4 ZWN1dGluZyBpdC4KKyAqIHRydWUgd2hpbGUgZXhlY3V0aW5nIGl0LgogICog LS0tLS0tLS0tLQogICovCiBzdGF0aWMgcGxwZ3NxbF9DYXN0SGFzaEVudHJ5 ICoKLS0gCjIuMTQuMQoK --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0003-Remove-TRUE-and-FALSE.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0003-Remove-TRUE-and-FALSE.patch" RnJvbSBkZDg5M2NiMmI2NDZmZDlkMzcyYThlZjg4Y2E0ZTZmN2M4N2MzNzZk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDMvOF0gUmVtb3ZlIFRS VUUgYW5kIEZBTFNFCgpDb2RlIHNob3VsZCBiZSB1c2luZyB0cnVlIGFuZCBm YWxzZS4gIEV4aXN0aW5nIGNvZGUgY2FuIGJlIGNoYW5nZWQgdG8KdGhvc2Ug aW4gYSBiYWNrd2FyZCBjb21wYXRpYmxlIHdheS4KLS0tCiBzcmMvaW5jbHVk ZS9jLmggfCAxMiArKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGlu c2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaAppbmRleCA5MDY2ZTNj NTc4Li45NDcyYWZkOGI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jLmgK KysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC0yNyw3ICsyNyw3IEBACiAgKgkg IC0tLS0tLS0JLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKgkJMCkJCXBnX2NvbmZpZy5oIGFuZCBzdGFuZGFy ZCBzeXN0ZW0gaGVhZGVycwogICoJCTEpCQloYWNrcyB0byBjb3BlIHdpdGgg bm9uLUFOU0kgQyBjb21waWxlcnMKLSAqCQkyKQkJYm9vbCwgdHJ1ZSwgZmFs c2UsIFRSVUUsIEZBTFNFLCBOVUxMCisgKgkJMikJCWJvb2wsIHRydWUsIGZh bHNlLCBOVUxMCiAgKgkJMykJCXN0YW5kYXJkIHN5c3RlbSB0eXBlcwogICoJ CTQpCQlJc1ZhbGlkIG1hY3JvcyBmb3Igc3lzdGVtIHR5cGVzCiAgKgkJNSkJ CW9mZnNldG9mLCBsZW5ndGhvZiwgZW5kb2YsIGFsaWdubWVudApAQCAtMTg0 LDcgKzE4NCw3IEBACiAjZW5kaWYKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotICoJCQkJU2VjdGlvbiAyOglib29sLCB0cnVlLCBmYWxzZSwgVFJVRSwg RkFMU0UsIE5VTEwKKyAqCQkJCVNlY3Rpb24gMjoJYm9vbCwgdHJ1ZSwgZmFs c2UsIE5VTEwKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwogCkBAIC0y MTMsMTQgKzIxMyw2IEBAIHR5cGVkZWYgY2hhciBib29sOwogCiB0eXBlZGVm IGJvb2wgKkJvb2xQdHI7CiAKLSNpZm5kZWYgVFJVRQotI2RlZmluZSBUUlVF CTEKLSNlbmRpZgotCi0jaWZuZGVmIEZBTFNFCi0jZGVmaW5lIEZBTFNFCTAK LSNlbmRpZgotCiAvKgogICogTlVMTAogICoJCU51bGwgcG9pbnRlci4KLS0g CjIuMTQuMQoK --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0004-Remove-BoolPtr-type.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0004-Remove-BoolPtr-type.patch" RnJvbSAzNDEyOGZhMGZhNTBiZTE2MWJmOGRiNzgzYzlkZDU5N2IxNzE2MTRm IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDQvOF0gUmVtb3ZlIEJv b2xQdHIgdHlwZQoKTm90IHVzZWQgYW5kIGRvZXNuJ3Qgc2VlbSB1c2VmdWwu Ci0tLQogc3JjL2luY2x1ZGUvYy5oIHwgMiAtLQogMSBmaWxlIGNoYW5nZWQs IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYy5o IGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IDk0NzJhZmQ4YjkuLjBmMDc4ZWE1 ZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysgYi9zcmMvaW5j bHVkZS9jLmgKQEAgLTIxMSw4ICsyMTEsNiBAQCB0eXBlZGVmIGNoYXIgYm9v bDsKICNlbmRpZgogI2VuZGlmCQkJCQkJCS8qIG5vdCBDKysgKi8KIAotdHlw ZWRlZiBib29sICpCb29sUHRyOwotCiAvKgogICogTlVMTAogICoJCU51bGwg cG9pbnRlci4KLS0gCjIuMTQuMQoK --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0005-Make-casting-between-bool-and-GinTernaryValue-more-r.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0005-Make-casting-between-bool-and-GinTernaryValue-more-r.pa"; filename*1="tch" RnJvbSBhZjgyMTAxNjIxYTVlYmMxOGNmNWZmZDQ3ZjY4ZDRiMWM3ZWM5Nzlh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDUvOF0gTWFrZSBjYXN0 aW5nIGJldHdlZW4gYm9vbCBhbmQgR2luVGVybmFyeVZhbHVlIG1vcmUgcm9i dXN0CgpUaGVzZSB0d28gdHlwZXMgYXJlIGJvdGggZGVmaW5lZCBhcyBjaGFy IGFuZCBhcmUgc3VwcG9zZWQgdG8gYmUgY2FzdGFibGUKdG8gZWFjaCBvdGhl ci4gIEJ1dCB3aGVuIHN0ZGJvb2wuaCBpcyB1c2VkLCB0aGlzIGlzIG5vdCBn dWFyYW50ZWVkLiAgU28KYWRkIHByb3Zpc2lvbnMgZm9yIGRpZmZlcmVudCBz aXplcyBvZiBib29sIGFuZCBkZWZpbmUgR2luVGVybmFyeVZhbHVlCmFjY29y ZGluZ2x5LgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90c2dpbmlkeC5j IHwgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naW4uaCAgICAgICAgIHwg MTQgKysrKysrKysrKy0tLS0KIHNyYy9pbmNsdWRlL2MuaCAgICAgICAgICAg ICAgICAgIHwgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC90c2dpbmlkeC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RzZ2luaWR4LmMKaW5kZXggYWJhNDU2ZWQ4OC4uZmE3OTJiODRkYyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RzZ2luaWR4LmMKQEAgLTMwOSw3 ICszMDksNyBAQCBnaW5fdHNxdWVyeV9jb25zaXN0ZW50KFBHX0ZVTkNUSU9O X0FSR1MpCiAJCSAqIHF1ZXJ5LgogCQkgKi8KIAkJZ2N2LmZpcnN0X2l0ZW0g PSBHRVRRVUVSWShxdWVyeSk7Ci0JCWdjdi5jaGVjayA9IGNoZWNrOworCQln Y3YuY2hlY2sgPSAoR2luVGVybmFyeVZhbHVlICopIGNoZWNrOwogCQlnY3Yu bWFwX2l0ZW1fb3BlcmFuZCA9IChpbnQgKikgKGV4dHJhX2RhdGFbMF0pOwog CQlnY3YubmVlZF9yZWNoZWNrID0gcmVjaGVjazsKIApkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvYWNjZXNzL2dpbi5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L2dpbi5oCmluZGV4IGVjODMwNTgwOTUuLmQ1OGFmMWQ2YTEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naW4uaAorKysgYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvZ2luLmgKQEAgLTUxLDE0ICs1MSwyMCBAQCB0eXBlZGVmIHN0 cnVjdCBHaW5TdGF0c0RhdGEKIC8qCiAgKiBBIHRlcm5hcnkgdmFsdWUgdXNl ZCBieSB0cmktY29uc2lzdGVudCBmdW5jdGlvbnMuCiAgKgotICogRm9yIGNv bnZlbmllbmNlLCB0aGlzIGlzIGNvbXBhdGlibGUgd2l0aCBib29sZWFucy4g QSBib29sZWFuIGNhbiBiZQorICogRm9yIGNvbnZlbmllbmNlLCB0aGlzIGlz IGNvbXBhdGlibGUgd2l0aCBib29scy4gQSBib29sIGNhbiBiZQogICogc2Fm ZWx5IGNhc3QgdG8gYSBHaW5UZXJuYXJ5VmFsdWUuCiAgKi8KKyNpZiBTSVpF T0ZfQk9PTCA9PSAxCiB0eXBlZGVmIGNoYXIgR2luVGVybmFyeVZhbHVlOwor I2VsaWYgU0laRU9GX0JPT0wgPT0gNAordHlwZWRlZiBpbnQgR2luVGVybmFy eVZhbHVlOworI2Vsc2UKKyNlcnJvciB1bnN1cHBvcnRlZCBTSVpFT0ZfQk9P TAorI2VuZGlmCiAKLSNkZWZpbmUgR0lOX0ZBTFNFCQkwCQkvKiBpdGVtIGlz IG5vdCBwcmVzZW50IC8gZG9lcyBub3QgbWF0Y2ggKi8KLSNkZWZpbmUgR0lO X1RSVUUJCTEJCS8qIGl0ZW0gaXMgcHJlc2VudCAvIG1hdGNoZXMgKi8KLSNk ZWZpbmUgR0lOX01BWUJFCQkyCQkvKiBkb24ndCBrbm93IGlmIGl0ZW0gaXMg cHJlc2VudCAvIGRvbid0IGtub3cKKyNkZWZpbmUgR0lOX0ZBTFNFCQkoKEdp blRlcm5hcnlWYWx1ZSkgMCkJCS8qIGl0ZW0gaXMgbm90IHByZXNlbnQgLyBk b2VzIG5vdCBtYXRjaCAqLworI2RlZmluZSBHSU5fVFJVRQkJKChHaW5UZXJu YXJ5VmFsdWUpIDEpCQkvKiBpdGVtIGlzIHByZXNlbnQgLyBtYXRjaGVzICov CisjZGVmaW5lIEdJTl9NQVlCRQkJKChHaW5UZXJuYXJ5VmFsdWUpIDIpCQkv KiBkb24ndCBrbm93IGlmIGl0ZW0gaXMgcHJlc2VudCAvIGRvbid0IGtub3cK IAkJCQkJCQkJICogaWYgbWF0Y2hlcyAqLwogCiAjZGVmaW5lIERhdHVtR2V0 R2luVGVybmFyeVZhbHVlKFgpICgoR2luVGVybmFyeVZhbHVlKShYKSkKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2MuaCBiL3NyYy9pbmNsdWRlL2MuaApp bmRleCAwZjA3OGVhNWYwLi5jYmYxMGRhNjZjIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jLmgKKysrIGIvc3JjL2luY2x1ZGUvYy5oCkBAIC0yMDAsNiAr MjAwLDcgQEAKIAogI2lmbmRlZiBib29sCiB0eXBlZGVmIGNoYXIgYm9vbDsK KyNkZWZpbmUgU0laRU9GX0JPT0wgMQogI2VuZGlmCiAKICNpZm5kZWYgdHJ1 ZQotLSAKMi4xNC4xCgo= --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0006-Add-bool8-typedef-for-system-catalog-structs.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0006-Add-bool8-typedef-for-system-catalog-structs.patch" RnJvbSAyN2Y2ZDQzZGE2MmFlYjJiMDM0OTI4MjZkYmE2MGU1ZjY1OTkzMTMw IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDYvOF0gQWRkIGJvb2w4 IHR5cGVkZWYgZm9yIHN5c3RlbSBjYXRhbG9nIHN0cnVjdHMKCkZvciBzeXN0 ZW0gY2F0YWxvZyBzdHJ1Y3RzLCB3ZSByZXF1aXJlIHRoYXQgdGhlIEMgYm9v bCB0eXBlIGlzIDEgYnl0ZSBpbgpzaXplLCB0aGUgc2FtZSBhcyB0aGUgU1FM IHR5cGUuICBCdXQgaWYgc3RkYm9vbC5oIGlzIHVzZWQsIHRoZW4gdGhpcyBp cwpub3QgZ3VhcmFudGVlZC4gIFRvIGFkZHJlc3MgdGhhdCwgZGVmaW5lIGEg c2VwYXJhdGUgdHlwZSBib29sOCB0aGF0IGlzCmd1YXJhbnRlZWQgdG8gYmUg MSBieXRlLCBhbmQgdXNlIHRoYXQgaW4gdGhlIHN5c3RlbSBjYXRhbG9nIHN0 cnVjdHMuClNvbWUgdHdlYWtpbmcgaW4gQ2F0YWxvZy5wbSBlbnN1cmVzIHRo YXQgYm9vbCBpcyBub3QgYWNjaWRlbnRhbGx5IHVzZWQKd2hlcmUgYm9vbDgg c2hvdWxkIGJlIHVzZWQuCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9DYXRh bG9nLnBtICAgICAgICB8ICAyICsrCiBzcmMvaW5jbHVkZS9jLmggICAgICAg ICAgICAgICAgICAgICAgIHwgIDkgKysrKysrKysrCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oICAgIHwgIDQgKystLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCAgICB8IDEwICsrKysrLS0tLS0K IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmggfCAgMiAr LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuaCAgICAgICB8IDE0 ICsrKysrKystLS0tLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNz LmggICAgICAgIHwgMjIgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmggICB8IDEwICsrKysrLS0t LS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29udmVyc2lvbi5oICAgfCAg MiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kYXRhYmFzZS5oICAgICB8 ICA0ICsrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmgg ICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oICAg ICAgICB8IDIwICsrKysrKysrKystLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2xhbmd1YWdlLmggICAgIHwgIDQgKystLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmggICAgICB8ICAyICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmggICAgIHwgIDQgKystLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wbHRlbXBsYXRlLmggICB8ICA0ICsrLS0K IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcG9saWN5LmggICAgICAgfCAgMiAr LQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmggICAgICAgICB8IDEy ICsrKysrKy0tLS0tLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oICB8ICA4ICsrKystLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Jld3JpdGUuaCAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfc2VxdWVuY2UuaCAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdGF0aXN0aWMuaCAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3N1YnNjcmlwdGlvbi5oIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdHJpZ2dlci5oICAgICAgfCAgNiArKystLS0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdHlwZS5oICAgICAgICAgfCAgOCArKysrLS0tLQog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVuY2UuaCAgICAgICB8ICAyICst CiAyNiBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25zKCspLCA3NSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL0Nh dGFsb2cucG0gYi9zcmMvYmFja2VuZC9jYXRhbG9nL0NhdGFsb2cucG0KaW5k ZXggN2FiZmRhM2QzYS4uYjExZjg3MWI2MyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9DYXRhbG9nLnBtCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvQ2F0YWxvZy5wbQpAQCAtMzEsNiArMzEsOCBAQCBzdWIgQ2F0YWxv Z3MKIAkjIFRoZXJlIGFyZSBhIGZldyB0eXBlcyB3aGljaCBhcmUgZ2l2ZW4g b25lIG5hbWUgaW4gdGhlIEMgc291cmNlLCBidXQgYQogCSMgZGlmZmVyZW50 IG5hbWUgYXQgdGhlIFNRTCBsZXZlbC4gIFRoZXNlIGFyZSBlbnVtZXJhdGVk IGhlcmUuCiAJbXkgJVJFTkFNRV9BVFRUWVBFID0gKAorCQknYm9vbCcgICAg ICAgICAgPT4gJ0lOVkFMSUQnLCAgIyB1c2UgYm9vbDggaW5zdGVhZAorCQkn Ym9vbDgnICAgICAgICAgPT4gJ2Jvb2wnLAogCQknaW50MTYnICAgICAgICAg PT4gJ2ludDInLAogCQknaW50MzInICAgICAgICAgPT4gJ2ludDQnLAogCQkn aW50NjQnICAgICAgICAgPT4gJ2ludDgnLApkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvYy5oIGIvc3JjL2luY2x1ZGUvYy5oCmluZGV4IGNiZjEwZGE2NmMu LjI4ZjhkMmJmNzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2MuaAorKysg Yi9zcmMvaW5jbHVkZS9jLmgKQEAgLTIxMiw2ICsyMTIsMTUgQEAgdHlwZWRl ZiBjaGFyIGJvb2w7CiAjZW5kaWYKICNlbmRpZgkJCQkJCQkvKiBub3QgQysr ICovCiAKKy8qCisgKiBib29sOAorICoKKyAqIEEgYm9vbCB0eXBlIHRoYXQg aXMgZ3VhcmFudGVlZCB0byBiZSA4IGJpdHMvMSBieXRlLCBtYWlubHkgZm9y IHVzZSBpbgorICogc3lzdGVtIGNhdGFsb2cgZGVmaW5pdGlvbnMuICAoc3Rk Ym9vbC5oJ3MgYm9vbCBpcyBub3QgMSBieXRlIG9uIGFsbAorICogcGxhdGZv cm1zLikKKyAqLwordHlwZWRlZiBjaGFyIGJvb2w4OworCiAvKgogICogTlVM TAogICoJCU51bGwgcG9pbnRlci4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYWdncmVnYXRlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2FnZ3JlZ2F0ZS5oCmluZGV4IDRkNWI5YmI5YTYuLjk4YmFmNWNhZjUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYWdncmVnYXRl LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaApA QCAtNjUsOCArNjUsOCBAQCBDQVRBTE9HKHBnX2FnZ3JlZ2F0ZSwyNjAwKSBC S0lfV0lUSE9VVF9PSURTCiAJcmVncHJvYwkJYWdnbXRyYW5zZm47CiAJcmVn cHJvYwkJYWdnbWludnRyYW5zZm47CiAJcmVncHJvYwkJYWdnbWZpbmFsZm47 Ci0JYm9vbAkJYWdnZmluYWxleHRyYTsKLQlib29sCQlhZ2dtZmluYWxleHRy YTsKKwlib29sOAkJYWdnZmluYWxleHRyYTsKKwlib29sOAkJYWdnbWZpbmFs ZXh0cmE7CiAJT2lkCQkJYWdnc29ydG9wOwogCU9pZAkJCWFnZ3RyYW5zdHlw ZTsKIAlpbnQzMgkJYWdndHJhbnNzcGFjZTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2F0dHJpYnV0ZS5oCmluZGV4IGJjZjI4ZThmMDQuLmEyMDA3 NTYwYWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0 cmlidXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1 dGUuaApAQCAtMTA0LDcgKzEwNCw3IEBAIENBVEFMT0cocGdfYXR0cmlidXRl LDEyNDkpIEJLSV9CT09UU1RSQVAgQktJX1dJVEhPVVRfT0lEUyBCS0lfUk9X VFlQRV9PSUQoNzUpIEJLCiAJICogYXR0Ynl2YWwgaXMgYSBjb3B5IG9mIHRo ZSB0eXBieXZhbCBmaWVsZCBmcm9tIHBnX3R5cGUgZm9yIHRoaXMKIAkgKiBh dHRyaWJ1dGUuICBTZWUgYXR0dHlwaWQgY29tbWVudHMgYWJvdmUuCiAJICov Ci0JYm9vbAkJYXR0Ynl2YWw7CisJYm9vbDgJCWF0dGJ5dmFsOwogCiAJLyot LS0tLS0tLS0tCiAJICogYXR0c3RvcmFnZSB0ZWxscyBmb3IgVkFSTEVOQSBh dHRyaWJ1dGVzLCB3aGF0IHRoZSBoZWFwIGFjY2VzcwpAQCAtMTI4LDE2ICsx MjgsMTYgQEAgQ0FUQUxPRyhwZ19hdHRyaWJ1dGUsMTI0OSkgQktJX0JPT1RT VFJBUCBCS0lfV0lUSE9VVF9PSURTIEJLSV9ST1dUWVBFX09JRCg3NSkgQksK IAljaGFyCQlhdHRhbGlnbjsKIAogCS8qIFRoaXMgZmxhZyByZXByZXNlbnRz IHRoZSAiTk9UIE5VTEwiIGNvbnN0cmFpbnQgKi8KLQlib29sCQlhdHRub3Ru dWxsOworCWJvb2w4CQlhdHRub3RudWxsOwogCiAJLyogSGFzIERFRkFVTFQg dmFsdWUgb3Igbm90ICovCi0JYm9vbAkJYXR0aGFzZGVmOworCWJvb2w4CQlh dHRoYXNkZWY7CiAKIAkvKiBPbmUgb2YgdGhlIEFUVFJJQlVURV9JREVOVElU WV8qIGNvbnN0YW50cyBiZWxvdywgb3IgJ1wwJyAqLwogCWNoYXIJCWF0dGlk ZW50aXR5OwogCiAJLyogSXMgZHJvcHBlZCAoaWUsIGxvZ2ljYWxseSBpbnZp c2libGUpIG9yIG5vdCAqLwotCWJvb2wJCWF0dGlzZHJvcHBlZDsKKwlib29s OAkJYXR0aXNkcm9wcGVkOwogCiAJLyoKIAkgKiBUaGlzIGZsYWcgc3BlY2lm aWVzIHdoZXRoZXIgdGhpcyBjb2x1bW4gaGFzIGV2ZXIgaGFkIGEgbG9jYWwK QEAgLTE0OCw3ICsxNDgsNyBAQCBDQVRBTE9HKHBnX2F0dHJpYnV0ZSwxMjQ5 KSBCS0lfQk9PVFNUUkFQIEJLSV9XSVRIT1VUX09JRFMgQktJX1JPV1RZUEVf T0lEKDc1KSBCSwogCSAqIG5vdCBkcm9wcGVkIGJ5IGEgcGFyZW50J3MgRFJP UCBDT0xVTU4gZXZlbiBpZiB0aGlzIGNhdXNlcyB0aGUgY29sdW1uJ3MKIAkg KiBhdHRpbmhjb3VudCB0byBiZWNvbWUgemVyby4KIAkgKi8KLQlib29sCQlh dHRpc2xvY2FsOworCWJvb2w4CQlhdHRpc2xvY2FsOwogCiAJLyogTnVtYmVy IG9mIHRpbWVzIGluaGVyaXRlZCBmcm9tIGRpcmVjdCBwYXJlbnQgcmVsYXRp b24ocykgKi8KIAlpbnQzMgkJYXR0aW5oY291bnQ7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19hdXRoX21lbWJlcnMuaAppbmRleCA2YTk1NGZm Zjk3Li40M2E4NTQ5NjU5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2F1dGhfbWVtYmVycy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYXV0aF9tZW1iZXJzLmgKQEAgLTM0LDcgKzM0LDcgQEAgQ0FUQUxP RyhwZ19hdXRoX21lbWJlcnMsMTI2MSkgQktJX1NIQVJFRF9SRUxBVElPTiBC S0lfV0lUSE9VVF9PSURTIEJLSV9ST1dUWVBFX08KIAlPaWQJCQlyb2xlaWQ7 CQkJLyogSUQgb2YgYSByb2xlICovCiAJT2lkCQkJbWVtYmVyOwkJCS8qIElE IG9mIGEgbWVtYmVyIG9mIHRoYXQgcm9sZSAqLwogCU9pZAkJCWdyYW50b3I7 CQkvKiB3aG8gZ3JhbnRlZCB0aGUgbWVtYmVyc2hpcCAqLwotCWJvb2wJCWFk bWluX29wdGlvbjsJLyogZ3JhbnRlZCB3aXRoIGFkbWluIG9wdGlvbj8gKi8K Kwlib29sOAkJYWRtaW5fb3B0aW9uOwkvKiBncmFudGVkIHdpdGggYWRtaW4g b3B0aW9uPyAqLwogfSBGb3JtRGF0YV9wZ19hdXRoX21lbWJlcnM7CiAKIC8q IC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYXV0aGlkLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F1 dGhpZC5oCmluZGV4IDliNmI1MmM5ZjkuLmI0NDMyOGZlMzggMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXV0aGlkLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19hdXRoaWQuaApAQCAtNDUsMTMgKzQ1LDEz IEBACiBDQVRBTE9HKHBnX2F1dGhpZCwxMjYwKSBCS0lfU0hBUkVEX1JFTEFU SU9OIEJLSV9ST1dUWVBFX09JRCgyODQyKSBCS0lfU0NIRU1BX01BQ1JPCiB7 CiAJTmFtZURhdGEJcm9sbmFtZTsJCS8qIG5hbWUgb2Ygcm9sZSAqLwotCWJv b2wJCXJvbHN1cGVyOwkJLyogcmVhZCB0aGlzIGZpZWxkIHZpYSBzdXBlcnVz ZXIoKSBvbmx5ISAqLwotCWJvb2wJCXJvbGluaGVyaXQ7CQkvKiBpbmhlcml0 IHByaXZpbGVnZXMgZnJvbSBvdGhlciByb2xlcz8gKi8KLQlib29sCQlyb2xj cmVhdGVyb2xlOwkvKiBhbGxvd2VkIHRvIGNyZWF0ZSBtb3JlIHJvbGVzPyAq LwotCWJvb2wJCXJvbGNyZWF0ZWRiOwkvKiBhbGxvd2VkIHRvIGNyZWF0ZSBk YXRhYmFzZXM/ICovCi0JYm9vbAkJcm9sY2FubG9naW47CS8qIGFsbG93ZWQg dG8gbG9nIGluIGFzIHNlc3Npb24gdXNlcj8gKi8KLQlib29sCQlyb2xyZXBs aWNhdGlvbjsgLyogcm9sZSB1c2VkIGZvciBzdHJlYW1pbmcgcmVwbGljYXRp b24gKi8KLQlib29sCQlyb2xieXBhc3NybHM7CS8qIGJ5cGFzc2VzIHJvdyBs ZXZlbCBzZWN1cml0eT8gKi8KKwlib29sOAkJcm9sc3VwZXI7CQkvKiByZWFk IHRoaXMgZmllbGQgdmlhIHN1cGVydXNlcigpIG9ubHkhICovCisJYm9vbDgJ CXJvbGluaGVyaXQ7CQkvKiBpbmhlcml0IHByaXZpbGVnZXMgZnJvbSBvdGhl ciByb2xlcz8gKi8KKwlib29sOAkJcm9sY3JlYXRlcm9sZTsJLyogYWxsb3dl ZCB0byBjcmVhdGUgbW9yZSByb2xlcz8gKi8KKwlib29sOAkJcm9sY3JlYXRl ZGI7CS8qIGFsbG93ZWQgdG8gY3JlYXRlIGRhdGFiYXNlcz8gKi8KKwlib29s OAkJcm9sY2FubG9naW47CS8qIGFsbG93ZWQgdG8gbG9nIGluIGFzIHNlc3Np b24gdXNlcj8gKi8KKwlib29sOAkJcm9scmVwbGljYXRpb247IC8qIHJvbGUg dXNlZCBmb3Igc3RyZWFtaW5nIHJlcGxpY2F0aW9uICovCisJYm9vbDgJCXJv bGJ5cGFzc3JsczsJLyogYnlwYXNzZXMgcm93IGxldmVsIHNlY3VyaXR5PyAq LwogCWludDMyCQlyb2xjb25ubGltaXQ7CS8qIG1heCBjb25uZWN0aW9ucyBh bGxvd2VkICgtMT1ubyBsaW1pdCkgKi8KIAogCS8qIHJlbWFpbmluZyBmaWVs ZHMgbWF5IGJlIG51bGw7IHVzZSBoZWFwX2dldGF0dHIgdG8gcmVhZCB0aGVt ISAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFz cy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jbGFzcy5oCmluZGV4IGIy NTY2NTdiZGEuLjhlOThjMzE3NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY2xhc3MuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NsYXNzLmgKQEAgLTQ4LDggKzQ4LDggQEAgQ0FUQUxPRyhwZ19jbGFz cywxMjU5KSBCS0lfQk9PVFNUUkFQIEJLSV9ST1dUWVBFX09JRCg4MykgQktJ X1NDSEVNQV9NQUNSTwogCWludDMyCQlyZWxhbGx2aXNpYmxlOwkvKiAjIG9m IGFsbC12aXNpYmxlIGJsb2NrcyAobm90IGFsd2F5cwogCQkJCQkJCQkgKiB1 cC10by1kYXRlKSAqLwogCU9pZAkJCXJlbHRvYXN0cmVsaWQ7CS8qIE9JRCBv ZiB0b2FzdCB0YWJsZTsgMCBpZiBub25lICovCi0JYm9vbAkJcmVsaGFzaW5k ZXg7CS8qIFQgaWYgaGFzIChvciBoYXMgaGFkKSBhbnkgaW5kZXhlcyAqLwot CWJvb2wJCXJlbGlzc2hhcmVkOwkvKiBUIGlmIHNoYXJlZCBhY3Jvc3MgZGF0 YWJhc2VzICovCisJYm9vbDgJCXJlbGhhc2luZGV4OwkvKiBUIGlmIGhhcyAo b3IgaGFzIGhhZCkgYW55IGluZGV4ZXMgKi8KKwlib29sOAkJcmVsaXNzaGFy ZWQ7CS8qIFQgaWYgc2hhcmVkIGFjcm9zcyBkYXRhYmFzZXMgKi8KIAljaGFy CQlyZWxwZXJzaXN0ZW5jZTsgLyogc2VlIFJFTFBFUlNJU1RFTkNFX3h4eCBj b25zdGFudHMgYmVsb3cgKi8KIAljaGFyCQlyZWxraW5kOwkJLyogc2VlIFJF TEtJTkRfeHh4IGNvbnN0YW50cyBiZWxvdyAqLwogCWludDE2CQlyZWxuYXR0 czsJCS8qIG51bWJlciBvZiB1c2VyIGF0dHJpYnV0ZXMgKi8KQEAgLTYwLDE3 ICs2MCwxNyBAQCBDQVRBTE9HKHBnX2NsYXNzLDEyNTkpIEJLSV9CT09UU1RS QVAgQktJX1JPV1RZUEVfT0lEKDgzKSBCS0lfU0NIRU1BX01BQ1JPCiAJICog Y29udGFpbiBlbnRyaWVzIHdpdGggbmVnYXRpdmUgYXR0bnVtcyBmb3Igc3lz dGVtIGF0dHJpYnV0ZXMuCiAJICovCiAJaW50MTYJCXJlbGNoZWNrczsJCS8q ICMgb2YgQ0hFQ0sgY29uc3RyYWludHMgZm9yIGNsYXNzICovCi0JYm9vbAkJ cmVsaGFzb2lkczsJCS8qIFQgaWYgd2UgZ2VuZXJhdGUgT0lEcyBmb3Igcm93 cyBvZiByZWwgKi8KLQlib29sCQlyZWxoYXNwa2V5OwkJLyogaGFzIChvciBo YXMgaGFkKSBQUklNQVJZIEtFWSBpbmRleCAqLwotCWJvb2wJCXJlbGhhc3J1 bGVzOwkvKiBoYXMgKG9yIGhhcyBoYWQpIGFueSBydWxlcyAqLwotCWJvb2wJ CXJlbGhhc3RyaWdnZXJzOyAvKiBoYXMgKG9yIGhhcyBoYWQpIGFueSBUUklH R0VScyAqLwotCWJvb2wJCXJlbGhhc3N1YmNsYXNzOyAvKiBoYXMgKG9yIGhh cyBoYWQpIGRlcml2ZWQgY2xhc3NlcyAqLwotCWJvb2wJCXJlbHJvd3NlY3Vy aXR5OyAvKiByb3cgc2VjdXJpdHkgaXMgZW5hYmxlZCBvciBub3QgKi8KLQli b29sCQlyZWxmb3JjZXJvd3NlY3VyaXR5OwkvKiByb3cgc2VjdXJpdHkgZm9y Y2VkIGZvciBvd25lcnMgb3IKKwlib29sOAkJcmVsaGFzb2lkczsJCS8qIFQg aWYgd2UgZ2VuZXJhdGUgT0lEcyBmb3Igcm93cyBvZiByZWwgKi8KKwlib29s OAkJcmVsaGFzcGtleTsJCS8qIGhhcyAob3IgaGFzIGhhZCkgUFJJTUFSWSBL RVkgaW5kZXggKi8KKwlib29sOAkJcmVsaGFzcnVsZXM7CS8qIGhhcyAob3Ig aGFzIGhhZCkgYW55IHJ1bGVzICovCisJYm9vbDgJCXJlbGhhc3RyaWdnZXJz OyAvKiBoYXMgKG9yIGhhcyBoYWQpIGFueSBUUklHR0VScyAqLworCWJvb2w4 CQlyZWxoYXNzdWJjbGFzczsgLyogaGFzIChvciBoYXMgaGFkKSBkZXJpdmVk IGNsYXNzZXMgKi8KKwlib29sOAkJcmVscm93c2VjdXJpdHk7IC8qIHJvdyBz ZWN1cml0eSBpcyBlbmFibGVkIG9yIG5vdCAqLworCWJvb2w4CQlyZWxmb3Jj ZXJvd3NlY3VyaXR5OwkvKiByb3cgc2VjdXJpdHkgZm9yY2VkIGZvciBvd25l cnMgb3IKIAkJCQkJCQkJCQkgKiBub3QgKi8KLQlib29sCQlyZWxpc3BvcHVs YXRlZDsgLyogbWF0dmlldyBjdXJyZW50bHkgaG9sZHMgcXVlcnkgcmVzdWx0 cyAqLworCWJvb2w4CQlyZWxpc3BvcHVsYXRlZDsgLyogbWF0dmlldyBjdXJy ZW50bHkgaG9sZHMgcXVlcnkgcmVzdWx0cyAqLwogCWNoYXIJCXJlbHJlcGxp ZGVudDsJLyogc2VlIFJFUExJQ0FfSURFTlRJVFlfeHh4IGNvbnN0YW50cyAg Ki8KLQlib29sCQlyZWxpc3BhcnRpdGlvbjsgLyogaXMgcmVsYXRpb24gYSBw YXJ0aXRpb24/ICovCisJYm9vbDgJCXJlbGlzcGFydGl0aW9uOyAvKiBpcyBy ZWxhdGlvbiBhIHBhcnRpdGlvbj8gKi8KIAlUcmFuc2FjdGlvbklkIHJlbGZy b3plbnhpZDsgLyogYWxsIFhpZHMgPCB0aGlzIGFyZSBmcm96ZW4gaW4gdGhp cyByZWwgKi8KIAlUcmFuc2FjdGlvbklkIHJlbG1pbm14aWQ7CS8qIGFsbCBt dWx0aXhhY3RzIGluIHRoaXMgcmVsIGFyZSA+PSB0aGlzLgogCQkJCQkJCQkg KiB0aGlzIGlzIHJlYWxseSBhIE11bHRpWGFjdElkICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IGVjMDM1ZDg0 MzQuLjIxNjM0NGUyNTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfY29uc3RyYWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29uc3RyYWludC5oCkBAIC00Miw5ICs0Miw5IEBAIENBVEFMT0cocGdf Y29uc3RyYWludCwyNjA2KQogCU5hbWVEYXRhCWNvbm5hbWU7CQkvKiBuYW1l IG9mIHRoaXMgY29uc3RyYWludCAqLwogCU9pZAkJCWNvbm5hbWVzcGFjZTsJ LyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIGNvbnN0cmFpbnQgKi8K IAljaGFyCQljb250eXBlOwkJLyogY29uc3RyYWludCB0eXBlOyBzZWUgY29k ZXMgYmVsb3cgKi8KLQlib29sCQljb25kZWZlcnJhYmxlOwkvKiBkZWZlcnJh YmxlIGNvbnN0cmFpbnQ/ICovCi0JYm9vbAkJY29uZGVmZXJyZWQ7CS8qIGRl ZmVycmVkIGJ5IGRlZmF1bHQ/ICovCi0JYm9vbAkJY29udmFsaWRhdGVkOwkv KiBjb25zdHJhaW50IGhhcyBiZWVuIHZhbGlkYXRlZD8gKi8KKwlib29sOAkJ Y29uZGVmZXJyYWJsZTsJLyogZGVmZXJyYWJsZSBjb25zdHJhaW50PyAqLwor CWJvb2w4CQljb25kZWZlcnJlZDsJLyogZGVmZXJyZWQgYnkgZGVmYXVsdD8g Ki8KKwlib29sOAkJY29udmFsaWRhdGVkOwkvKiBjb25zdHJhaW50IGhhcyBi ZWVuIHZhbGlkYXRlZD8gKi8KIAogCS8qCiAJICogY29ucmVsaWQgYW5kIGNv bmtleSBhcmUgb25seSBtZWFuaW5nZnVsIGlmIHRoZSBjb25zdHJhaW50IGFw cGxpZXMgdG8gYQpAQCAtODIsMTMgKzgyLDEzIEBAIENBVEFMT0cocGdfY29u c3RyYWludCwyNjA2KQogCWNoYXIJCWNvbmZtYXRjaHR5cGU7CS8qIGZvcmVp Z24ga2V5J3MgbWF0Y2ggdHlwZSAqLwogCiAJLyogSGFzIGEgbG9jYWwgZGVm aW5pdGlvbiAoaGVuY2UsIGRvIG5vdCBkcm9wIHdoZW4gY29uaW5oY291bnQg aXMgMCkgKi8KLQlib29sCQljb25pc2xvY2FsOworCWJvb2w4CQljb25pc2xv Y2FsOwogCiAJLyogTnVtYmVyIG9mIHRpbWVzIGluaGVyaXRlZCBmcm9tIGRp cmVjdCBwYXJlbnQgcmVsYXRpb24ocykgKi8KIAlpbnQzMgkJY29uaW5oY291 bnQ7CiAKIAkvKiBIYXMgYSBsb2NhbCBkZWZpbml0aW9uIGFuZCBjYW5ub3Qg YmUgaW5oZXJpdGVkICovCi0JYm9vbAkJY29ubm9pbmhlcml0OworCWJvb2w4 CQljb25ub2luaGVyaXQ7CiAKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8q IHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnZlcnNpb24uaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29udmVyc2lvbi5oCmluZGV4IDA2 ODJkN2ViMjIuLjcwYTY5MWY4ZjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY29udmVyc2lvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29udmVyc2lvbi5oCkBAIC00NSw3ICs0NSw3IEBAIENBVEFM T0cocGdfY29udmVyc2lvbiwyNjA3KQogCWludDMyCQljb25mb3JlbmNvZGlu ZzsKIAlpbnQzMgkJY29udG9lbmNvZGluZzsKIAlyZWdwcm9jCQljb25wcm9j OwotCWJvb2wJCWNvbmRlZmF1bHQ7CisJYm9vbDgJCWNvbmRlZmF1bHQ7CiB9 IEZvcm1EYXRhX3BnX2NvbnZlcnNpb247CiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGF0YWJh c2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGF0YWJhc2UuaAppbmRl eCBlN2NiY2E0OWNmLi5lNDcwYWJmODhhIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2RhdGFiYXNlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19kYXRhYmFzZS5oCkBAIC0zNiw4ICszNiw4IEBAIENBVEFM T0cocGdfZGF0YWJhc2UsMTI2MikgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lf Uk9XVFlQRV9PSUQoMTI0OCkgQktJX1NDSEVNQV9NCiAJaW50MzIJCWVuY29k aW5nOwkJLyogY2hhcmFjdGVyIGVuY29kaW5nICovCiAJTmFtZURhdGEJZGF0 Y29sbGF0ZTsJCS8qIExDX0NPTExBVEUgc2V0dGluZyAqLwogCU5hbWVEYXRh CWRhdGN0eXBlOwkJLyogTENfQ1RZUEUgc2V0dGluZyAqLwotCWJvb2wJCWRh dGlzdGVtcGxhdGU7CS8qIGFsbG93ZWQgYXMgQ1JFQVRFIERBVEFCQVNFIHRl bXBsYXRlPyAqLwotCWJvb2wJCWRhdGFsbG93Y29ubjsJLyogbmV3IGNvbm5l Y3Rpb25zIGFsbG93ZWQ/ICovCisJYm9vbDgJCWRhdGlzdGVtcGxhdGU7CS8q IGFsbG93ZWQgYXMgQ1JFQVRFIERBVEFCQVNFIHRlbXBsYXRlPyAqLworCWJv b2w4CQlkYXRhbGxvd2Nvbm47CS8qIG5ldyBjb25uZWN0aW9ucyBhbGxvd2Vk PyAqLwogCWludDMyCQlkYXRjb25ubGltaXQ7CS8qIG1heCBjb25uZWN0aW9u cyBhbGxvd2VkICgtMT1ubyBsaW1pdCkgKi8KIAlPaWQJCQlkYXRsYXN0c3lz b2lkOwkvKiBoaWdoZXN0IE9JRCB0byBjb25zaWRlciBhIHN5c3RlbSBPSUQg Ki8KIAlUcmFuc2FjdGlvbklkIGRhdGZyb3plbnhpZDsgLyogYWxsIFhpZHMg PCB0aGlzIGFyZSBmcm96ZW4gaW4gdGhpcyBEQiAqLwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19leHRlbnNpb24uaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfZXh0ZW5zaW9uLmgKaW5kZXggMmNlNTc1ZDE3ZS4u MjFlNjE1M2QyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19leHRlbnNpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2V4 dGVuc2lvbi5oCkBAIC0zMyw3ICszMyw3IEBAIENBVEFMT0cocGdfZXh0ZW5z aW9uLDMwNzkpCiAJTmFtZURhdGEJZXh0bmFtZTsJCS8qIGV4dGVuc2lvbiBu YW1lICovCiAJT2lkCQkJZXh0b3duZXI7CQkvKiBleHRlbnNpb24gb3duZXIg Ki8KIAlPaWQJCQlleHRuYW1lc3BhY2U7CS8qIG5hbWVzcGFjZSBvZiBjb250 YWluZWQgb2JqZWN0cyAqLwotCWJvb2wJCWV4dHJlbG9jYXRhYmxlOyAvKiBp ZiB0cnVlLCBhbGxvdyBBTFRFUiBFWFRFTlNJT04gU0VUIFNDSEVNQSAqLwor CWJvb2w4CQlleHRyZWxvY2F0YWJsZTsgLyogaWYgdHJ1ZSwgYWxsb3cgQUxU RVIgRVhURU5TSU9OIFNFVCBTQ0hFTUEgKi8KIAogI2lmZGVmIENBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJl ICovCiAJLyogZXh0dmVyc2lvbiBtYXkgbmV2ZXIgYmUgbnVsbCwgYnV0IHRo ZSBvdGhlcnMgY2FuIGJlLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19p bmRleC5oCmluZGV4IDg1MDVjM2JlNWYuLjFkMjFlOTgwMGMgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKQEAgLTMzLDE2ICszMywxNiBA QCBDQVRBTE9HKHBnX2luZGV4LDI2MTApIEJLSV9XSVRIT1VUX09JRFMgQktJ X1NDSEVNQV9NQUNSTwogCU9pZAkJCWluZGV4cmVsaWQ7CQkvKiBPSUQgb2Yg dGhlIGluZGV4ICovCiAJT2lkCQkJaW5kcmVsaWQ7CQkvKiBPSUQgb2YgdGhl IHJlbGF0aW9uIGl0IGluZGV4ZXMgKi8KIAlpbnQxNgkJaW5kbmF0dHM7CQkv KiBudW1iZXIgb2YgY29sdW1ucyBpbiBpbmRleCAqLwotCWJvb2wJCWluZGlz dW5pcXVlOwkvKiBpcyB0aGlzIGEgdW5pcXVlIGluZGV4PyAqLwotCWJvb2wJ CWluZGlzcHJpbWFyeTsJLyogaXMgdGhpcyBpbmRleCBmb3IgcHJpbWFyeSBr ZXk/ICovCi0JYm9vbAkJaW5kaXNleGNsdXNpb247IC8qIGlzIHRoaXMgaW5k ZXggZm9yIGV4Y2x1c2lvbiBjb25zdHJhaW50PyAqLwotCWJvb2wJCWluZGlt bWVkaWF0ZTsJLyogaXMgdW5pcXVlbmVzcyBlbmZvcmNlZCBpbW1lZGlhdGVs eT8gKi8KLQlib29sCQlpbmRpc2NsdXN0ZXJlZDsgLyogaXMgdGhpcyB0aGUg aW5kZXggbGFzdCBjbHVzdGVyZWQgYnk/ICovCi0JYm9vbAkJaW5kaXN2YWxp ZDsJCS8qIGlzIHRoaXMgaW5kZXggdmFsaWQgZm9yIHVzZSBieSBxdWVyaWVz PyAqLwotCWJvb2wJCWluZGNoZWNreG1pbjsJLyogbXVzdCB3ZSB3YWl0IGZv ciB4bWluIHRvIGJlIG9sZD8gKi8KLQlib29sCQlpbmRpc3JlYWR5OwkJLyog aXMgdGhpcyBpbmRleCByZWFkeSBmb3IgaW5zZXJ0cz8gKi8KLQlib29sCQlp bmRpc2xpdmU7CQkvKiBpcyB0aGlzIGluZGV4IGFsaXZlIGF0IGFsbD8gKi8K LQlib29sCQlpbmRpc3JlcGxpZGVudDsgLyogaXMgdGhpcyBpbmRleCB0aGUg aWRlbnRpdHkgZm9yIHJlcGxpY2F0aW9uPyAqLworCWJvb2w4CQlpbmRpc3Vu aXF1ZTsJLyogaXMgdGhpcyBhIHVuaXF1ZSBpbmRleD8gKi8KKwlib29sOAkJ aW5kaXNwcmltYXJ5OwkvKiBpcyB0aGlzIGluZGV4IGZvciBwcmltYXJ5IGtl eT8gKi8KKwlib29sOAkJaW5kaXNleGNsdXNpb247IC8qIGlzIHRoaXMgaW5k ZXggZm9yIGV4Y2x1c2lvbiBjb25zdHJhaW50PyAqLworCWJvb2w4CQlpbmRp bW1lZGlhdGU7CS8qIGlzIHVuaXF1ZW5lc3MgZW5mb3JjZWQgaW1tZWRpYXRl bHk/ICovCisJYm9vbDgJCWluZGlzY2x1c3RlcmVkOyAvKiBpcyB0aGlzIHRo ZSBpbmRleCBsYXN0IGNsdXN0ZXJlZCBieT8gKi8KKwlib29sOAkJaW5kaXN2 YWxpZDsJCS8qIGlzIHRoaXMgaW5kZXggdmFsaWQgZm9yIHVzZSBieSBxdWVy aWVzPyAqLworCWJvb2w4CQlpbmRjaGVja3htaW47CS8qIG11c3Qgd2Ugd2Fp dCBmb3IgeG1pbiB0byBiZSBvbGQ/ICovCisJYm9vbDgJCWluZGlzcmVhZHk7 CQkvKiBpcyB0aGlzIGluZGV4IHJlYWR5IGZvciBpbnNlcnRzPyAqLworCWJv b2w4CQlpbmRpc2xpdmU7CQkvKiBpcyB0aGlzIGluZGV4IGFsaXZlIGF0IGFs bD8gKi8KKwlib29sOAkJaW5kaXNyZXBsaWRlbnQ7IC8qIGlzIHRoaXMgaW5k ZXggdGhlIGlkZW50aXR5IGZvciByZXBsaWNhdGlvbj8gKi8KIAogCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSwgYnV0IHdlIGFsbG93 IGRpcmVjdCBhY2Nlc3MgdG8gaW5ka2V5ICovCiAJaW50MnZlY3RvcglpbmRr ZXk7CQkJLyogY29sdW1uIG51bWJlcnMgb2YgaW5kZXhlZCBjb2xzLCBvciAw ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2xhbmd1 YWdlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2xhbmd1YWdlLmgKaW5k ZXggYWQyNDRlODM5Yi4uNGMyMGU2NmE2YyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19sYW5ndWFnZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfbGFuZ3VhZ2UuaApAQCAtMzIsOCArMzIsOCBAQCBDQVRB TE9HKHBnX2xhbmd1YWdlLDI2MTIpCiB7CiAJTmFtZURhdGEJbGFubmFtZTsJ CS8qIExhbmd1YWdlIG5hbWUgKi8KIAlPaWQJCQlsYW5vd25lcjsJCS8qIExh bmd1YWdlJ3Mgb3duZXIgKi8KLQlib29sCQlsYW5pc3BsOwkJLyogSXMgYSBw cm9jZWR1cmFsIGxhbmd1YWdlICovCi0JYm9vbAkJbGFucGx0cnVzdGVkOwkv KiBQTCBpcyB0cnVzdGVkICovCisJYm9vbDgJCWxhbmlzcGw7CQkvKiBJcyBh IHByb2NlZHVyYWwgbGFuZ3VhZ2UgKi8KKwlib29sOAkJbGFucGx0cnVzdGVk OwkvKiBQTCBpcyB0cnVzdGVkICovCiAJT2lkCQkJbGFucGxjYWxsZm9pZDsJ LyogQ2FsbCBoYW5kbGVyIGZvciBQTCAqLwogCU9pZAkJCWxhbmlubGluZTsJ CS8qIE9wdGlvbmFsIGFub255bW91cy1ibG9jayBoYW5kbGVyIGZ1bmN0aW9u ICovCiAJT2lkCQkJbGFudmFsaWRhdG9yOwkvKiBPcHRpb25hbCB2YWxpZGF0 aW9uIGZ1bmN0aW9uICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wY2xhc3MuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3Bj bGFzcy5oCmluZGV4IDI4ZGJjNzQ3ZDUuLjJlZWIzMDRkZDIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5oCkBAIC01Niw3ICs1Niw3 IEBAIENBVEFMT0cocGdfb3BjbGFzcywyNjE2KQogCU9pZAkJCW9wY293bmVy OwkJLyogb3BjbGFzcyBvd25lciAqLwogCU9pZAkJCW9wY2ZhbWlseTsJCS8q IGNvbnRhaW5pbmcgb3BlcmF0b3IgZmFtaWx5ICovCiAJT2lkCQkJb3BjaW50 eXBlOwkJLyogdHlwZSBvZiBkYXRhIGluZGV4ZWQgYnkgb3BjbGFzcyAqLwot CWJvb2wJCW9wY2RlZmF1bHQ7CQkvKiBUIGlmIG9wY2xhc3MgaXMgZGVmYXVs dCBmb3Igb3BjaW50eXBlICovCisJYm9vbDgJCW9wY2RlZmF1bHQ7CQkvKiBU IGlmIG9wY2xhc3MgaXMgZGVmYXVsdCBmb3Igb3BjaW50eXBlICovCiAJT2lk CQkJb3Bja2V5dHlwZTsJCS8qIHR5cGUgb2YgZGF0YSBpbiBpbmRleCwgb3Ig SW52YWxpZE9pZCAqLwogfSBGb3JtRGF0YV9wZ19vcGNsYXNzOwogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmgKaW5kZXggZmZhYmMy MDAzYi4uMjMxMTliNjQyZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGVyYXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfb3BlcmF0b3IuaApAQCAtMzcsOCArMzcsOCBAQCBDQVRBTE9HKHBnX29w ZXJhdG9yLDI2MTcpCiAJT2lkCQkJb3BybmFtZXNwYWNlOwkvKiBPSUQgb2Yg bmFtZXNwYWNlIGNvbnRhaW5pbmcgdGhpcyBvcGVyICovCiAJT2lkCQkJb3By b3duZXI7CQkvKiBvcGVyYXRvciBvd25lciAqLwogCWNoYXIJCW9wcmtpbmQ7 CQkvKiAnbCcsICdyJywgb3IgJ2InICovCi0JYm9vbAkJb3ByY2FubWVyZ2U7 CS8qIGNhbiBiZSB1c2VkIGluIG1lcmdlIGpvaW4/ICovCi0JYm9vbAkJb3By Y2FuaGFzaDsJCS8qIGNhbiBiZSB1c2VkIGluIGhhc2ggam9pbj8gKi8KKwli b29sOAkJb3ByY2FubWVyZ2U7CS8qIGNhbiBiZSB1c2VkIGluIG1lcmdlIGpv aW4/ICovCisJYm9vbDgJCW9wcmNhbmhhc2g7CQkvKiBjYW4gYmUgdXNlZCBp biBoYXNoIGpvaW4/ICovCiAJT2lkCQkJb3BybGVmdDsJCS8qIGxlZnQgYXJn IHR5cGUsIG9yIDAgaWYgJ2wnIG9wcmtpbmQgKi8KIAlPaWQJCQlvcHJyaWdo dDsJCS8qIHJpZ2h0IGFyZyB0eXBlLCBvciAwIGlmICdyJyBvcHJraW5kICov CiAJT2lkCQkJb3BycmVzdWx0OwkJLyogcmVzdWx0IGRhdGF0eXBlICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BsdGVtcGxhdGUu aCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGx0ZW1wbGF0ZS5oCmluZGV4 IGZiZTcxYmQwYzMuLmM0ZDQxNmM2ODYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcGx0ZW1wbGF0ZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcGx0ZW1wbGF0ZS5oCkBAIC0zMSw4ICszMSw4IEBACiBD QVRBTE9HKHBnX3BsdGVtcGxhdGUsMTEzNikgQktJX1NIQVJFRF9SRUxBVElP TiBCS0lfV0lUSE9VVF9PSURTCiB7CiAJTmFtZURhdGEJdG1wbG5hbWU7CQkv KiBuYW1lIG9mIFBMICovCi0JYm9vbAkJdG1wbHRydXN0ZWQ7CS8qIFBMIGlz IHRydXN0ZWQ/ICovCi0JYm9vbAkJdG1wbGRiYWNyZWF0ZTsJLyogUEwgaXMg aW5zdGFsbGFibGUgYnkgZGIgb3duZXI/ICovCisJYm9vbDgJCXRtcGx0cnVz dGVkOwkvKiBQTCBpcyB0cnVzdGVkPyAqLworCWJvb2w4CQl0bXBsZGJhY3Jl YXRlOwkvKiBQTCBpcyBpbnN0YWxsYWJsZSBieSBkYiBvd25lcj8gKi8KIAog I2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZp ZWxkcyBzdGFydCBoZXJlICovCiAJdGV4dAkJdG1wbGhhbmRsZXIgQktJX0ZP UkNFX05PVF9OVUxMOyAvKiBuYW1lIG9mIGNhbGwgaGFuZGxlcgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wb2xpY3kuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcG9saWN5LmgKaW5kZXggODYwMDA3MzdmYS4u OGFhMWYyYTRkOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wb2xpY3kuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3BvbGlj eS5oCkBAIC0yMyw3ICsyMyw3IEBAIENBVEFMT0cocGdfcG9saWN5LDMyNTYp CiAJTmFtZURhdGEJcG9sbmFtZTsJCS8qIFBvbGljeSBuYW1lLiAqLwogCU9p ZAkJCXBvbHJlbGlkOwkJLyogT2lkIG9mIHRoZSByZWxhdGlvbiB3aXRoIHBv bGljeS4gKi8KIAljaGFyCQlwb2xjbWQ7CQkJLyogT25lIG9mIEFDTF8qX0NI Uiwgb3IgJyonIGZvciBhbGwgKi8KLQlib29sCQlwb2xwZXJtaXNzaXZlOwkv KiByZXN0cmljdGl2ZSBvciBwZXJtaXNzaXZlIHBvbGljeSAqLworCWJvb2w4 CQlwb2xwZXJtaXNzaXZlOwkvKiByZXN0cmljdGl2ZSBvciBwZXJtaXNzaXZl IHBvbGljeSAqLwogCiAjaWZkZWYgQ0FUQUxPR19WQVJMRU4KIAlPaWQJCQlw b2xyb2xlc1sxXTsJLyogUm9sZXMgYXNzb2NpYXRlZCB3aXRoIHBvbGljeSwg bm90LU5VTEwgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmgKaW5k ZXggOGIzM2I0ZTBlYS4uNDQ5OGViNjNlOCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmgKQEAgLTQzLDEyICs0MywxMiBAQCBDQVRBTE9HKHBn X3Byb2MsMTI1NSkgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoODEp IEJLSV9TQ0hFTUFfTUFDUk8KIAlmbG9hdDQJCXByb3Jvd3M7CQkvKiBlc3Rp bWF0ZWQgIyBvZiByb3dzIG91dCAoaWYgcHJvcmV0c2V0KSAqLwogCU9pZAkJ CXByb3ZhcmlhZGljOwkvKiBlbGVtZW50IHR5cGUgb2YgdmFyaWFkaWMgYXJy YXksIG9yIDAgKi8KIAlyZWdwcm9jCQlwcm90cmFuc2Zvcm07CS8qIHRyYW5z Zm9ybXMgY2FsbHMgdG8gaXQgZHVyaW5nIHBsYW5uaW5nICovCi0JYm9vbAkJ cHJvaXNhZ2c7CQkvKiBpcyBpdCBhbiBhZ2dyZWdhdGU/ICovCi0JYm9vbAkJ cHJvaXN3aW5kb3c7CS8qIGlzIGl0IGEgd2luZG93IGZ1bmN0aW9uPyAqLwot CWJvb2wJCXByb3NlY2RlZjsJCS8qIHNlY3VyaXR5IGRlZmluZXIgKi8KLQli b29sCQlwcm9sZWFrcHJvb2Y7CS8qIGlzIGl0IGEgbGVhay1wcm9vZiBmdW5j dGlvbj8gKi8KLQlib29sCQlwcm9pc3N0cmljdDsJLyogc3RyaWN0IHdpdGgg cmVzcGVjdCB0byBOVUxMcz8gKi8KLQlib29sCQlwcm9yZXRzZXQ7CQkvKiBy ZXR1cm5zIGEgc2V0PyAqLworCWJvb2w4CQlwcm9pc2FnZzsJCS8qIGlzIGl0 IGFuIGFnZ3JlZ2F0ZT8gKi8KKwlib29sOAkJcHJvaXN3aW5kb3c7CS8qIGlz IGl0IGEgd2luZG93IGZ1bmN0aW9uPyAqLworCWJvb2w4CQlwcm9zZWNkZWY7 CQkvKiBzZWN1cml0eSBkZWZpbmVyICovCisJYm9vbDgJCXByb2xlYWtwcm9v ZjsJLyogaXMgaXQgYSBsZWFrLXByb29mIGZ1bmN0aW9uPyAqLworCWJvb2w4 CQlwcm9pc3N0cmljdDsJLyogc3RyaWN0IHdpdGggcmVzcGVjdCB0byBOVUxM cz8gKi8KKwlib29sOAkJcHJvcmV0c2V0OwkJLyogcmV0dXJucyBhIHNldD8g Ki8KIAljaGFyCQlwcm92b2xhdGlsZTsJLyogc2VlIFBST1ZPTEFUSUxFXyBj YXRlZ29yaWVzIGJlbG93ICovCiAJY2hhcgkJcHJvcGFyYWxsZWw7CS8qIHNl ZSBQUk9QQVJBTExFTF8gY2F0ZWdvcmllcyBiZWxvdyAqLwogCWludDE2CQlw cm9uYXJnczsJCS8qIG51bWJlciBvZiBhcmd1bWVudHMgKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRleCBhYTE0 ODk2MGNkLi4xOTI4M2VjZDJlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5oCkBAIC0zOCwxNiArMzgsMTYgQEAgQ0FU QUxPRyhwZ19wdWJsaWNhdGlvbiw2MTA0KQogCSAqIGluZGljYXRlcyB0aGF0 IHRoaXMgaXMgc3BlY2lhbCBwdWJsaWNhdGlvbiB3aGljaCBzaG91bGQgZW5j b21wYXNzIGFsbAogCSAqIHRhYmxlcyBpbiB0aGUgZGF0YWJhc2UgKGV4Y2Vw dCBmb3IgdGhlIHVubG9nZ2VkIGFuZCB0ZW1wIG9uZXMpCiAJICovCi0JYm9v bAkJcHViYWxsdGFibGVzOworCWJvb2w4CQlwdWJhbGx0YWJsZXM7CiAKIAkv KiB0cnVlIGlmIGluc2VydHMgYXJlIHB1Ymxpc2hlZCAqLwotCWJvb2wJCXB1 Ymluc2VydDsKKwlib29sOAkJcHViaW5zZXJ0OwogCiAJLyogdHJ1ZSBpZiB1 cGRhdGVzIGFyZSBwdWJsaXNoZWQgKi8KLQlib29sCQlwdWJ1cGRhdGU7CisJ Ym9vbDgJCXB1YnVwZGF0ZTsKIAogCS8qIHRydWUgaWYgZGVsZXRlcyBhcmUg cHVibGlzaGVkICovCi0JYm9vbAkJcHViZGVsZXRlOworCWJvb2w4CQlwdWJk ZWxldGU7CiAKIH0gRm9ybURhdGFfcGdfcHVibGljYXRpb247CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmV3cml0ZS5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19yZXdyaXRlLmgKaW5kZXggNDhiOTMzM2E5 ZC4uM2M3MWU4ZTY0MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19yZXdyaXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19y ZXdyaXRlLmgKQEAgLTM3LDcgKzM3LDcgQEAgQ0FUQUxPRyhwZ19yZXdyaXRl LDI2MTgpCiAJT2lkCQkJZXZfY2xhc3M7CiAJY2hhcgkJZXZfdHlwZTsKIAlj aGFyCQlldl9lbmFibGVkOwotCWJvb2wJCWlzX2luc3RlYWQ7CisJYm9vbDgJ CWlzX2luc3RlYWQ7CiAKICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZh cmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCXBnX25vZGVf dHJlZSBldl9xdWFsOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zZXF1ZW5jZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zZXF1 ZW5jZS5oCmluZGV4IDhhZTZiNzE0M2QuLjc1M2IyZDBlNjcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc2VxdWVuY2UuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3NlcXVlbmNlLmgKQEAgLTE0LDcgKzE0 LDcgQEAgQ0FUQUxPRyhwZ19zZXF1ZW5jZSwyMjI0KSBCS0lfV0lUSE9VVF9P SURTCiAJaW50NjQJCXNlcW1heDsKIAlpbnQ2NAkJc2VxbWluOwogCWludDY0 CQlzZXFjYWNoZTsKLQlib29sCQlzZXFjeWNsZTsKKwlib29sOAkJc2VxY3lj bGU7CiB9IEZvcm1EYXRhX3BnX3NlcXVlbmNlOwogCiB0eXBlZGVmIEZvcm1E YXRhX3BnX3NlcXVlbmNlICpGb3JtX3BnX3NlcXVlbmNlOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdGF0aXN0aWMuaCBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfc3RhdGlzdGljLmgKaW5kZXggMzcxM2E1NmJi ZC4uNTVmMDcyYzU2YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19zdGF0aXN0aWMuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3N0YXRpc3RpYy5oCkBAIC0zMyw3ICszMyw3IEBAIENBVEFMT0cocGdfc3Rh dGlzdGljLDI2MTkpIEJLSV9XSVRIT1VUX09JRFMKIAkvKiBUaGVzZSBmaWVs ZHMgZm9ybSB0aGUgdW5pcXVlIGtleSBmb3IgdGhlIGVudHJ5OiAqLwogCU9p ZAkJCXN0YXJlbGlkOwkJLyogcmVsYXRpb24gY29udGFpbmluZyBhdHRyaWJ1 dGUgKi8KIAlpbnQxNgkJc3RhYXR0bnVtOwkJLyogYXR0cmlidXRlIChjb2x1 bW4pIHN0YXRzIGFyZSBmb3IgKi8KLQlib29sCQlzdGFpbmhlcml0OwkJLyog dHJ1ZSBpZiBpbmhlcml0YW5jZSBjaGlsZHJlbiBhcmUgaW5jbHVkZWQgKi8K Kwlib29sOAkJc3RhaW5oZXJpdDsJCS8qIHRydWUgaWYgaW5oZXJpdGFuY2Ug Y2hpbGRyZW4gYXJlIGluY2x1ZGVkICovCiAKIAkvKiB0aGUgZnJhY3Rpb24g b2YgdGhlIGNvbHVtbidzIGVudHJpZXMgdGhhdCBhcmUgTlVMTDogKi8KIAlm bG9hdDQJCXN0YW51bGxmcmFjOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmgKaW5kZXggMjc0ZmY2YmM0Mi4uMDMyYjAy ZTRmYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJz Y3JpcHRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oCkBAIC0zNyw3ICszNyw3IEBAIENBVEFMT0cocGdfc3Vic2Ny aXB0aW9uLDYxMDApIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPV1RZUEVf T0lEKDYxMDEpIEJLSV9TQ0hFCiAKIAlPaWQJCQlzdWJvd25lcjsJCS8qIE93 bmVyIG9mIHRoZSBzdWJzY3JpcHRpb24gKi8KIAotCWJvb2wJCXN1YmVuYWJs ZWQ7CQkvKiBUcnVlIGlmIHRoZSBzdWJzY3JpcHRpb24gaXMgZW5hYmxlZCAo dGhlCisJYm9vbDgJCXN1YmVuYWJsZWQ7CQkvKiBUcnVlIGlmIHRoZSBzdWJz Y3JpcHRpb24gaXMgZW5hYmxlZCAodGhlCiAJCQkJCQkJCSAqIHdvcmtlciBz aG91bGQgYmUgcnVubmluZykgKi8KIAogI2lmZGVmIENBVEFMT0dfVkFSTEVO CQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3RyaWdnZXIuaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHJpZ2dlci5oCmluZGV4IGY0MTNj YWYzNGYuLjBmYWExODEyYWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdHJpZ2dlci5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdHJpZ2dlci5oCkBAIC00MiwxMiArNDIsMTIgQEAgQ0FUQUxPRyhwZ190 cmlnZ2VyLDI2MjApCiAJCQkJCQkJCSAqIFJPVy9TVEFURU1FTlQ7IHNlZSBi ZWxvdyAqLwogCWNoYXIJCXRnZW5hYmxlZDsJCS8qIHRyaWdnZXIncyBmaXJp bmcgY29uZmlndXJhdGlvbiBXUlQKIAkJCQkJCQkJICogc2Vzc2lvbl9yZXBs aWNhdGlvbl9yb2xlICovCi0JYm9vbAkJdGdpc2ludGVybmFsOwkvKiB0cmln Z2VyIGlzIHN5c3RlbS1nZW5lcmF0ZWQgKi8KKwlib29sOAkJdGdpc2ludGVy bmFsOwkvKiB0cmlnZ2VyIGlzIHN5c3RlbS1nZW5lcmF0ZWQgKi8KIAlPaWQJ CQl0Z2NvbnN0cnJlbGlkOwkvKiBjb25zdHJhaW50J3MgRlJPTSB0YWJsZSwg aWYgYW55ICovCiAJT2lkCQkJdGdjb25zdHJpbmRpZDsJLyogY29uc3RyYWlu dCdzIHN1cHBvcnRpbmcgaW5kZXgsIGlmIGFueSAqLwogCU9pZAkJCXRnY29u c3RyYWludDsJLyogYXNzb2NpYXRlZCBwZ19jb25zdHJhaW50IGVudHJ5LCBp ZiBhbnkgKi8KLQlib29sCQl0Z2RlZmVycmFibGU7CS8qIGNvbnN0cmFpbnQg dHJpZ2dlciBpcyBkZWZlcnJhYmxlICovCi0JYm9vbAkJdGdpbml0ZGVmZXJy ZWQ7IC8qIGNvbnN0cmFpbnQgdHJpZ2dlciBpcyBkZWZlcnJlZCBpbml0aWFs bHkgKi8KKwlib29sOAkJdGdkZWZlcnJhYmxlOwkvKiBjb25zdHJhaW50IHRy aWdnZXIgaXMgZGVmZXJyYWJsZSAqLworCWJvb2w4CQl0Z2luaXRkZWZlcnJl ZDsgLyogY29uc3RyYWludCB0cmlnZ2VyIGlzIGRlZmVycmVkIGluaXRpYWxs eSAqLwogCWludDE2CQl0Z25hcmdzOwkJLyogIyBvZiBleHRyYSBhcmd1bWVu dHMgaW4gdGdhcmdzICovCiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ190eXBlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3R5cGUuaAppbmRleCBmZmRiNDUyYjAyLi5iYTRiNDhjNjc5IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaApAQCAtNTcsNyArNTcsNyBAQCBD QVRBTE9HKHBnX3R5cGUsMTI0NykgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQ RV9PSUQoNzEpIEJLSV9TQ0hFTUFfTUFDUk8KIAkgKiB0eXBieXZhbCBjYW4g YmUgZmFsc2UgZXZlbiBpZiB0aGUgbGVuZ3RoIHdvdWxkIGFsbG93IHBhc3Mt YnktdmFsdWU7CiAJICogdGhpcyBpcyBjdXJyZW50bHkgdHJ1ZSBmb3IgdHlw ZSBmbG9hdDQsIGZvciBleGFtcGxlLgogCSAqLwotCWJvb2wJCXR5cGJ5dmFs OworCWJvb2w4CQl0eXBieXZhbDsKIAogCS8qCiAJICogdHlwdHlwZSBpcyAn YicgZm9yIGEgYmFzZSB0eXBlLCAnYycgZm9yIGEgY29tcG9zaXRlIHR5cGUg KGUuZy4sIGEKQEAgLTc2LDEzICs3NiwxMyBAQCBDQVRBTE9HKHBnX3R5cGUs MTI0NykgQktJX0JPT1RTVFJBUCBCS0lfUk9XVFlQRV9PSUQoNzEpIEJLSV9T Q0hFTUFfTUFDUk8KIAkgKi8KIAljaGFyCQl0eXBjYXRlZ29yeTsJLyogYXJi aXRyYXJ5IHR5cGUgY2xhc3NpZmljYXRpb24gKi8KIAotCWJvb2wJCXR5cGlz cHJlZmVycmVkOyAvKiBpcyB0eXBlICJwcmVmZXJyZWQiIHdpdGhpbiBpdHMg Y2F0ZWdvcnk/ICovCisJYm9vbDgJCXR5cGlzcHJlZmVycmVkOyAvKiBpcyB0 eXBlICJwcmVmZXJyZWQiIHdpdGhpbiBpdHMgY2F0ZWdvcnk/ICovCiAKIAkv KgogCSAqIElmIHR5cGlzZGVmaW5lZCBpcyBmYWxzZSwgdGhlIGVudHJ5IGlz IG9ubHkgYSBwbGFjZWhvbGRlciAoZm9yd2FyZAogCSAqIHJlZmVyZW5jZSku ICBXZSBrbm93IHRoZSB0eXBlIG5hbWUsIGJ1dCBub3QgeWV0IGFueXRoaW5n IGVsc2UgYWJvdXQgaXQuCiAJICovCi0JYm9vbAkJdHlwaXNkZWZpbmVkOwor CWJvb2w4CQl0eXBpc2RlZmluZWQ7CiAKIAljaGFyCQl0eXBkZWxpbTsJCS8q IGRlbGltaXRlciBmb3IgYXJyYXlzIG9mIHRoaXMgdHlwZSAqLwogCkBAIC0x NzIsNyArMTcyLDcgQEAgQ0FUQUxPRyhwZ190eXBlLDEyNDcpIEJLSV9CT09U U1RSQVAgQktJX1JPV1RZUEVfT0lEKDcxKSBCS0lfU0NIRU1BX01BQ1JPCiAJ ICoKIAkgKiBVc2VkIHByaW1hcmlseSBmb3IgZG9tYWluIHR5cGVzLgogCSAq LwotCWJvb2wJCXR5cG5vdG51bGw7CisJYm9vbDgJCXR5cG5vdG51bGw7CiAK IAkvKgogCSAqIERvbWFpbnMgdXNlIHR5cGJhc2V0eXBlIHRvIHNob3cgdGhl IGJhc2UgKG9yIGRvbWFpbikgdHlwZSB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVuY2UuaCBiL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3NlcXVlbmNlLmgKaW5kZXggY2FhYjE5NTEzMC4uMDlhZDQ5 ZTIxNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2VxdWVu Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXF1ZW5jZS5oCkBA IC0yNiw3ICsyNiw3IEBAIHR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Nl cXVlbmNlX2RhdGEKIHsKIAlpbnQ2NAkJbGFzdF92YWx1ZTsKIAlpbnQ2NAkJ bG9nX2NudDsKLQlib29sCQlpc19jYWxsZWQ7CisJYm9vbDgJCWlzX2NhbGxl ZDsKIH0gRm9ybURhdGFfcGdfc2VxdWVuY2VfZGF0YTsKIAogdHlwZWRlZiBG b3JtRGF0YV9wZ19zZXF1ZW5jZV9kYXRhICpGb3JtX3BnX3NlcXVlbmNlX2Rh dGE7Ci0tIAoyLjE0LjEKCg== --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0007-Avoid-use-of-bool-in-thread_test.c.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0007-Avoid-use-of-bool-in-thread_test.c.patch" RnJvbSA2NWY3Y2ZhNjEzMTExOTQ5ZmZiZjBkY2ZmNGY0YWFiMWZkNGYxY2I4 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDcvOF0gQXZvaWQgdXNl IG9mIGJvb2wgaW4gdGhyZWFkX3Rlc3QuYwoKSXQncyBub3QgbmVjZXNzYXJ5 IGZvciBzdWNoIGEgc21hbGwgcHJvZ3JhbSwgYW5kIGl0IGNhdXNlcyB1bm5l Y2Vzc2FyeQpleHRyYSB3b3JrIHRvIGdldCB0aGUgY29ycmVjdCBkZWZpbml0 aW9uIG9mIGJvb2wuCi0tLQogc3JjL3Rlc3QvdGhyZWFkL3RocmVhZF90ZXN0 LmMgfCAzMyArKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvdGVzdC90aHJlYWQvdGhyZWFkX3Rlc3Qu YyBiL3NyYy90ZXN0L3RocmVhZC90aHJlYWRfdGVzdC5jCmluZGV4IDMyY2U4 MGU1N2YuLjI4MmE5NTg3MmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3RocmVh ZC90aHJlYWRfdGVzdC5jCisrKyBiL3NyYy90ZXN0L3RocmVhZC90aHJlYWRf dGVzdC5jCkBAIC0yMiwxOSArMjIsNiBAQAogCiAjaWYgIWRlZmluZWQoSU5f Q09ORklHVVJFKSAmJiAhZGVmaW5lZChXSU4zMikKICNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgotI2Vsc2UKLS8qIEZyb20gc3JjL2luY2x1ZGUvYy5oIiAqLwot I2lmbmRlZiBib29sCi10eXBlZGVmIGNoYXIgYm9vbDsKLSNlbmRpZgotCi0j aWZuZGVmIHRydWUKLSNkZWZpbmUgdHJ1ZQkoKGJvb2wpIDEpCi0jZW5kaWYK LQotI2lmbmRlZiBmYWxzZQotI2RlZmluZSBmYWxzZQkoKGJvb2wpIDApCi0j ZW5kaWYKICNlbmRpZgogCiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTkzLDIz ICs4MCwyMyBAQCBzdGF0aWMgdm9sYXRpbGUgaW50IGVycm5vMl9zZXQgPSAw OwogI2lmbmRlZiBIQVZFX1NUUkVSUk9SX1IKIHN0YXRpYyBjaGFyICpzdHJl cnJvcl9wMTsKIHN0YXRpYyBjaGFyICpzdHJlcnJvcl9wMjsKLXN0YXRpYyBi b29sIHN0cmVycm9yX3RocmVhZHNhZmUgPSBmYWxzZTsKK3N0YXRpYyBpbnQg c3RyZXJyb3JfdGhyZWFkc2FmZSA9IDA7CiAjZW5kaWYKIAogI2lmICFkZWZp bmVkKFdJTjMyKSAmJiAhZGVmaW5lZChIQVZFX0dFVFBXVUlEX1IpCiBzdGF0 aWMgc3RydWN0IHBhc3N3ZCAqcGFzc3dkX3AxOwogc3RhdGljIHN0cnVjdCBw YXNzd2QgKnBhc3N3ZF9wMjsKLXN0YXRpYyBib29sIGdldHB3dWlkX3RocmVh ZHNhZmUgPSBmYWxzZTsKK3N0YXRpYyBpbnQgZ2V0cHd1aWRfdGhyZWFkc2Fm ZSA9IDA7CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEhBVkVfR0VUQUREUklO Rk8pICYmICFkZWZpbmVkKEhBVkVfR0VUSE9TVEJZTkFNRV9SKQogc3RhdGlj IHN0cnVjdCBob3N0ZW50ICpob3N0ZW50X3AxOwogc3RhdGljIHN0cnVjdCBo b3N0ZW50ICpob3N0ZW50X3AyOwogc3RhdGljIGNoYXIgbXlob3N0bmFtZVtN QVhIT1NUTkFNRUxFTl07Ci1zdGF0aWMgYm9vbCBnZXRob3N0YnluYW1lX3Ro cmVhZHNhZmUgPSBmYWxzZTsKK3N0YXRpYyBpbnQgZ2V0aG9zdGJ5bmFtZV90 aHJlYWRzYWZlID0gMDsKICNlbmRpZgogCi1zdGF0aWMgYm9vbCBwbGF0Zm9y bV9pc190aHJlYWRzYWZlID0gdHJ1ZTsKK3N0YXRpYyBpbnQgcGxhdGZvcm1f aXNfdGhyZWFkc2FmZSA9IDE7CiAKIGludAogbWFpbihpbnQgYXJnYywgY2hh ciAqYXJndltdKQpAQCAtMTg3LDE3ICsxNzQsMTcgQEAgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKQogCiAjaWZuZGVmIEhBVkVfU1RSRVJST1JfUgog CWlmIChzdHJlcnJvcl9wMSAhPSBzdHJlcnJvcl9wMikKLQkJc3RyZXJyb3Jf dGhyZWFkc2FmZSA9IHRydWU7CisJCXN0cmVycm9yX3RocmVhZHNhZmUgPSAx OwogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChXSU4zMikgJiYgIWRlZmluZWQo SEFWRV9HRVRQV1VJRF9SKQogCWlmIChwYXNzd2RfcDEgIT0gcGFzc3dkX3Ay KQotCQlnZXRwd3VpZF90aHJlYWRzYWZlID0gdHJ1ZTsKKwkJZ2V0cHd1aWRf dGhyZWFkc2FmZSA9IDE7CiAjZW5kaWYKIAogI2lmICFkZWZpbmVkKEhBVkVf R0VUQUREUklORk8pICYmICFkZWZpbmVkKEhBVkVfR0VUSE9TVEJZTkFNRV9S KQogCWlmIChob3N0ZW50X3AxICE9IGhvc3RlbnRfcDIpCi0JCWdldGhvc3Ri eW5hbWVfdGhyZWFkc2FmZSA9IHRydWU7CisJCWdldGhvc3RieW5hbWVfdGhy ZWFkc2FmZSA9IDE7CiAjZW5kaWYKIAogCS8qIGNsb3NlIGRvd24gdGhyZWFk cyAqLwpAQCAtMjE4LDcgKzIwNSw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKIAllbHNlCiAJewogCQlwcmludGYoIm5vdCB0aHJlYWQtc2Fm ZS4gKipcbiIpOwotCQlwbGF0Zm9ybV9pc190aHJlYWRzYWZlID0gZmFsc2U7 CisJCXBsYXRmb3JtX2lzX3RocmVhZHNhZmUgPSAwOwogCX0KICNlbmRpZgog CkBAIC0yMzMsNyArMjIwLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCWVsc2UKIAl7CiAJCXByaW50Zigibm90IHRocmVhZC1zYWZlLiAq KlxuIik7Ci0JCXBsYXRmb3JtX2lzX3RocmVhZHNhZmUgPSBmYWxzZTsKKwkJ cGxhdGZvcm1faXNfdGhyZWFkc2FmZSA9IDA7CiAJfQogI2VuZGlmCiAKQEAg LTI0OSw3ICsyMzYsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10p CiAJZWxzZQogCXsKIAkJcHJpbnRmKCJub3QgdGhyZWFkLXNhZmUuICoqXG4i KTsKLQkJcGxhdGZvcm1faXNfdGhyZWFkc2FmZSA9IGZhbHNlOworCQlwbGF0 Zm9ybV9pc190aHJlYWRzYWZlID0gMDsKIAl9CiAjZW5kaWYKIAotLSAKMi4x NC4xCgo= --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0008-Use-stdbool.h-if-available.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0008-Use-stdbool.h-if-available.patch" RnJvbSBhYzc3MDZiODBjODIyNWIwNGE3ZWIzYzdmY2Q3YTliNDA0NTc4Zjll IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRy YXV0IDxwZXRlcl9lQGdteC5uZXQ+CkRhdGU6IFdlZCwgMTYgQXVnIDIwMTcg MDA6MjI6MzIgLTA0MDAKU3ViamVjdDogW1BBVENIIDgvOF0gVXNlIHN0ZGJv b2wuaCBpZiBhdmFpbGFibGUKCldoaWxlIHdlIGNvdWxkIGRvIHdpdGhvdXQg dGhpcywgZXh0ZW5zaW9uIGNvZGUgYW5kIHRoaXJkLXBhcnR5IGhlYWRlcnMK YXJlIGluY3JlYXNpbmdseSBwdWxsaW5nIHRoaXMgaW4sIGNyZWF0aW5nIHBv c3NpYmxlIGNvbXBsaWNhdGlvbnMuICBPbmUsCmJvb2wgZGVmaW5lZCBpbiBz dGRib29sLmggaXMgbm90IG5lY2Vzc2FyaWx5IG9uZSBieXRlIGluIHNpemUu ICBUd28sIGl0CmNhbiBvbmx5IGNvbnRhaW4gdmFsdWVzIDAgb3IgMSBvbiBv dXRwdXQuICBTbyBoYXZpbmcgbXVsdGlwbGUKZGVmaW5pdGlvbnMgb2YgYm9v bCBpbiBwbGF5IGRlcGVuZGluZyBvbiBpbmNsdWRlIGZpbGUgb3JkZXIgY291 bGQgY3JlYXRlCmEgbWVzcy4KClNvIHdlIGp1c3QgZ2V0IG9uIGJvYXJkIHdp dGggdGhpcyBhbmQgdXNlIHN0ZGJvb2wuaCBhbHdheXMgaWYgYXZhaWxhYmxl LgoKQXMgYSBiZW5lZml0LCBzb21lIHJlY2VudCBjb21waWxlcnMgY2FuIGdp dmUgc29tZSBiZXR0ZXIgd2FybmluZ3MgaWYgdGhlCm9mZmljaWFsIGJvb2wg dHlwZSBpcyB1c2VkLgotLS0KIGNvbmZpZ3VyZSAgICAgICAgICAgICAgICAg IHwgMjEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLQogY29uZmlndXJlLmluICAgICAgICAgICAgICAgfCAgIDQgKwog c3JjL2luY2x1ZGUvYy5oICAgICAgICAgICAgfCAgMjMgKystLS0KIHNyYy9p bmNsdWRlL3BnX2NvbmZpZy5oLmluIHwgICA5ICsrCiBzcmMvcGwvcGxwZXJs L3BscGVybC5oICAgICB8ICAxMCArLS0KIDUgZmlsZXMgY2hhbmdlZCwgMjAw IGluc2VydGlvbnMoKyksIDU2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRleCBhMmY5YTI1NmI0Li5lN2I3 NGFkYjEzIDEwMDc1NQotLS0gYS9jb25maWd1cmUKKysrIGIvY29uZmlndXJl CkBAIC0yMDAxLDExNiArMjAwMSwxMTYgQEAgJGFzX2VjaG8gIiRhY19yZXMi ID4mNjsgfQogCiB9ICMgYWNfZm5fY19jaGVja19mdW5jCiAKLSMgYWNfZm5f Y19jaGVja19tZW1iZXIgTElORU5PIEFHR1IgTUVNQkVSIFZBUiBJTkNMVURF UwotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0jIFRyaWVzIHRvIGZpbmQgaWYgdGhlIGZpZWxkIE1F TUJFUiBleGlzdHMgaW4gdHlwZSBBR0dSLCBhZnRlciBpbmNsdWRpbmcKLSMg SU5DTFVERVMsIHNldHRpbmcgY2FjaGUgdmFyaWFibGUgVkFSIGFjY29yZGlu Z2x5LgotYWNfZm5fY19jaGVja19tZW1iZXIgKCkKKyMgYWNfZm5fY19jaGVj a190eXBlIExJTkVOTyBUWVBFIFZBUiBJTkNMVURFUworIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFRlc3RzIHdo ZXRoZXIgVFlQRSBleGlzdHMgYWZ0ZXIgaGF2aW5nIGluY2x1ZGVkIElOQ0xV REVTLCBzZXR0aW5nIGNhY2hlCisjIHZhcmlhYmxlIFZBUiBhY2NvcmRpbmds eS4KK2FjX2ZuX2NfY2hlY2tfdHlwZSAoKQogewogICBhc19saW5lbm89JHth c19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFj az0kYXNfbGluZW5vX3N0YWNrCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyLiQzIiA+JjUKLSRh c19lY2hvX24gImNoZWNraW5nIGZvciAkMi4kMy4uLiAiID4mNjsgfQotaWYg ZXZhbCBcJHskNCs6fSBmYWxzZTsgdGhlbiA6CisgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+ JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQor aWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2CiBlbHNlCisgIGV2YWwgIiQzPW5vIgogICBjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiAvKiBl bmQgY29uZmRlZnMuaC4gICovCi0kNQorJDQKIGludAogbWFpbiAoKQogewot c3RhdGljICQyIGFjX2FnZ3I7Ci1pZiAoYWNfYWdnci4kMykKLXJldHVybiAw OworaWYgKHNpemVvZiAoJDIpKQorCSByZXR1cm4gMDsKICAgOwogICByZXR1 cm4gMDsKIH0KIF9BQ0VPRgogaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJ TkVOTyI7IHRoZW4gOgotICBldmFsICIkND15ZXMiCi1lbHNlCiAgIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKIC8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSQ1CiskNAogaW50CiBtYWluICgpCiB7Ci1z dGF0aWMgJDIgYWNfYWdncjsKLWlmIChzaXplb2YgYWNfYWdnci4kMykKLXJl dHVybiAwOworaWYgKHNpemVvZiAoKCQyKSkpCisJICAgIHJldHVybiAwOwog ICA7CiAgIHJldHVybiAwOwogfQogX0FDRU9GCiBpZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0gIGV2YWwgIiQ0PXllcyIKKwog ZWxzZQotICBldmFsICIkND1ubyIKKyAgZXZhbCAiJDM9eWVzIgogZmkKIHJt IC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAogZmkKIHJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWV2YWwg YWNfcmVzPVwkJDQKK2V2YWwgYWNfcmVzPVwkJDMKIAkgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRh Y19yZXMiID4mNQogJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQogICBldmFs ICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNl dCBhc19saW5lbm8KIAotfSAjIGFjX2ZuX2NfY2hlY2tfbWVtYmVyCit9ICMg YWNfZm5fY19jaGVja190eXBlCiAKLSMgYWNfZm5fY19jaGVja190eXBlIExJ TkVOTyBUWVBFIFZBUiBJTkNMVURFUwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIFRlc3RzIHdoZXRoZXIgVFlQ RSBleGlzdHMgYWZ0ZXIgaGF2aW5nIGluY2x1ZGVkIElOQ0xVREVTLCBzZXR0 aW5nIGNhY2hlCi0jIHZhcmlhYmxlIFZBUiBhY2NvcmRpbmdseS4KLWFjX2Zu X2NfY2hlY2tfdHlwZSAoKQorIyBhY19mbl9jX2NoZWNrX21lbWJlciBMSU5F Tk8gQUdHUiBNRU1CRVIgVkFSIElOQ0xVREVTCisjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVHJp ZXMgdG8gZmluZCBpZiB0aGUgZmllbGQgTUVNQkVSIGV4aXN0cyBpbiB0eXBl IEFHR1IsIGFmdGVyIGluY2x1ZGluZworIyBJTkNMVURFUywgc2V0dGluZyBj YWNoZSB2YXJpYWJsZSBWQVIgYWNjb3JkaW5nbHkuCithY19mbl9jX2NoZWNr X21lbWJlciAoKQogewogICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0g YXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0 YWNrCi0gIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yICQyIiA+JjUKLSRhc19lY2hvX24gImNoZWNraW5n IGZvciAkMi4uLiAiID4mNjsgfQotaWYgZXZhbCBcJHskMys6fSBmYWxzZTsg dGhlbiA6CisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgZm9yICQyLiQzIiA+JjUKKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciAkMi4kMy4uLiAiID4mNjsgfQoraWYgZXZhbCBcJHskNCs6 fSBmYWxzZTsgdGhlbiA6CiAgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 CiBlbHNlCi0gIGV2YWwgIiQzPW5vIgogICBjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CiAvKiBlbmQgY29uZmRlZnMuaC4g ICovCi0kNAorJDUKIGludAogbWFpbiAoKQogewotaWYgKHNpemVvZiAoJDIp KQotCSByZXR1cm4gMDsKK3N0YXRpYyAkMiBhY19hZ2dyOworaWYgKGFjX2Fn Z3IuJDMpCityZXR1cm4gMDsKICAgOwogICByZXR1cm4gMDsKIH0KIF9BQ0VP RgogaWYgYWNfZm5fY190cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgor ICBldmFsICIkND15ZXMiCitlbHNlCiAgIGNhdCBjb25mZGVmcy5oIC0gPDxf QUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKIC8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSQ0CiskNQogaW50CiBtYWluICgpCiB7Ci1pZiAoc2l6ZW9mICgoJDIp KSkKLQkgICAgcmV0dXJuIDA7CitzdGF0aWMgJDIgYWNfYWdncjsKK2lmIChz aXplb2YgYWNfYWdnci4kMykKK3JldHVybiAwOwogICA7CiAgIHJldHVybiAw OwogfQogX0FDRU9GCiBpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5P IjsgdGhlbiA6Ci0KKyAgZXZhbCAiJDQ9eWVzIgogZWxzZQotICBldmFsICIk Mz15ZXMiCisgIGV2YWwgIiQ0PW5vIgogZmkKIHJtIC1mIGNvcmUgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAog ZmkKIHJtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAogZmkKLWV2YWwgYWNfcmVzPVwkJDMKK2V2 YWwgYWNfcmVzPVwkJDQKIAkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQogJGFz X2VjaG8gIiRhY19yZXMiID4mNjsgfQogICBldmFsICRhc19saW5lbm9fc3Rh Y2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KIAot fSAjIGFjX2ZuX2NfY2hlY2tfdHlwZQorfSAjIGFjX2ZuX2NfY2hlY2tfbWVt YmVyCiAKICMgYWNfZm5fY19jb21wdXRlX2ludCBMSU5FTk8gRVhQUiBWQVIg SU5DTFVERVMKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTEwNzMyLDYgKzEwNzMyLDEwMCBAQCBmaQogIyMg SGVhZGVyIGZpbGVzCiAjIwogCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBzdGRib29sLmggdGhhdCBj b25mb3JtcyB0byBDOTkiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y IHN0ZGJvb2wuaCB0aGF0IGNvbmZvcm1zIHRvIEM5OS4uLiAiID4mNjsgfQor aWYgJHthY19jdl9oZWFkZXJfc3RkYm9vbF9oKzp9IGZhbHNlOyB0aGVuIDoK KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5k IGNvbmZkZWZzLmguICAqLworCisgICAgICAgICAgICAgI2luY2x1ZGUgPHN0 ZGJvb2wuaD4KKyAgICAgICAgICAgICAjaWZuZGVmIGJvb2wKKyAgICAgICAg ICAgICAgImVycm9yOiBib29sIGlzIG5vdCBkZWZpbmVkIgorICAgICAgICAg ICAgICNlbmRpZgorICAgICAgICAgICAgICNpZm5kZWYgZmFsc2UKKyAgICAg ICAgICAgICAgImVycm9yOiBmYWxzZSBpcyBub3QgZGVmaW5lZCIKKyAgICAg ICAgICAgICAjZW5kaWYKKyAgICAgICAgICAgICAjaWYgZmFsc2UKKyAgICAg ICAgICAgICAgImVycm9yOiBmYWxzZSBpcyBub3QgMCIKKyAgICAgICAgICAg ICAjZW5kaWYKKyAgICAgICAgICAgICAjaWZuZGVmIHRydWUKKyAgICAgICAg ICAgICAgImVycm9yOiB0cnVlIGlzIG5vdCBkZWZpbmVkIgorICAgICAgICAg ICAgICNlbmRpZgorICAgICAgICAgICAgICNpZiB0cnVlICE9IDEKKyAgICAg ICAgICAgICAgImVycm9yOiB0cnVlIGlzIG5vdCAxIgorICAgICAgICAgICAg ICNlbmRpZgorICAgICAgICAgICAgICNpZm5kZWYgX19ib29sX3RydWVfZmFs c2VfYXJlX2RlZmluZWQKKyAgICAgICAgICAgICAgImVycm9yOiBfX2Jvb2xf dHJ1ZV9mYWxzZV9hcmVfZGVmaW5lZCBpcyBub3QgZGVmaW5lZCIKKyAgICAg ICAgICAgICAjZW5kaWYKKworICAgICAgICAgICAgIHN0cnVjdCBzIHsgX0Jv b2wgczogMTsgX0Jvb2wgdDsgfSBzOworCisgICAgICAgICAgICAgY2hhciBh W3RydWUgPT0gMSA/IDEgOiAtMV07CisgICAgICAgICAgICAgY2hhciBiW2Zh bHNlID09IDAgPyAxIDogLTFdOworICAgICAgICAgICAgIGNoYXIgY1tfX2Jv b2xfdHJ1ZV9mYWxzZV9hcmVfZGVmaW5lZCA9PSAxID8gMSA6IC0xXTsKKyAg ICAgICAgICAgICBjaGFyIGRbKGJvb2wpIDAuNSA9PSB0cnVlID8gMSA6IC0x XTsKKyAgICAgICAgICAgICAvKiBTZWUgYm9keSBvZiBtYWluIHByb2dyYW0g Zm9yICdlJy4gICovCisgICAgICAgICAgICAgY2hhciBmWyhfQm9vbCkgMC4w ID09IGZhbHNlID8gMSA6IC0xXTsKKyAgICAgICAgICAgICBjaGFyIGdbdHJ1 ZV07CisgICAgICAgICAgICAgY2hhciBoW3NpemVvZiAoX0Jvb2wpXTsKKyAg ICAgICAgICAgICBjaGFyIGlbc2l6ZW9mIHMudF07CisgICAgICAgICAgICAg ZW51bSB7IGogPSBmYWxzZSwgayA9IHRydWUsIGwgPSBmYWxzZSAqIHRydWUs IG0gPSB0cnVlICogMjU2IH07CisgICAgICAgICAgICAgLyogVGhlIGZvbGxv d2luZyBmYWlscyBmb3IKKyAgICAgICAgICAgICAgICBIUCBhQysrL0FOU0kg QyBCMzkxMEIgQS4wNS41NSBbRGVjIDA0IDIwMDNdLiAqLworICAgICAgICAg ICAgIF9Cb29sIG5bbV07CisgICAgICAgICAgICAgY2hhciBvW3NpemVvZiBu ID09IG0gKiBzaXplb2YgblswXSA/IDEgOiAtMV07CisgICAgICAgICAgICAg Y2hhciBwWy0xIC0gKF9Cb29sKSAwIDwgMCAmJiAtMSAtIChib29sKSAwIDwg MCA/IDEgOiAtMV07CisgICAgICAgICAgICAgLyogQ2F0Y2ggYSBidWcgaW4g YW4gSFAtVVggQyBjb21waWxlci4gIFNlZQorICAgICAgICAgICAgICAgIGh0 dHA6Ly9nY2MuZ251Lm9yZy9tbC9nY2MtcGF0Y2hlcy8yMDAzLTEyL21zZzAy MzAzLmh0bWwKKyAgICAgICAgICAgICAgICBodHRwOi8vbGlzdHMuZ251Lm9y Zy9hcmNoaXZlL2h0bWwvYnVnLWNvcmV1dGlscy8yMDA1LTExL21zZzAwMTYx Lmh0bWwKKyAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICBfQm9vbCBx ID0gdHJ1ZTsKKyAgICAgICAgICAgICBfQm9vbCAqcHEgPSAmcTsKKworaW50 CittYWluICgpCit7CisKKyAgICAgICAgICAgICBib29sIGUgPSAmczsKKyAg ICAgICAgICAgICAqcHEgfD0gcTsKKyAgICAgICAgICAgICAqcHEgfD0gISBx OworICAgICAgICAgICAgIC8qIFJlZmVyIHRvIGV2ZXJ5IGRlY2xhcmVkIHZh bHVlLCB0byBhdm9pZCBjb21waWxlciBvcHRpbWl6YXRpb25zLiAgKi8KKyAg ICAgICAgICAgICByZXR1cm4gKCFhICsgIWIgKyAhYyArICFkICsgIWUgKyAh ZiArICFnICsgIWggKyAhaSArICEhaiArICFrICsgISFsCisgICAgICAgICAg ICAgICAgICAgICArICFtICsgIW4gKyAhbyArICFwICsgIXEgKyAhcHEpOwor CisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YKK2lmIGFjX2ZuX2NfdHJ5 X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgYWNfY3ZfaGVhZGVyX3N0 ZGJvb2xfaD15ZXMKK2Vsc2UKKyAgYWNfY3ZfaGVhZGVyX3N0ZGJvb2xfaD1u bworZmkKK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAorZmkKK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVy X3N0ZGJvb2xfaCIgPiY1CiskYXNfZWNobyAiJGFjX2N2X2hlYWRlcl9zdGRi b29sX2giID4mNjsgfQorICAgYWNfZm5fY19jaGVja190eXBlICIkTElORU5P IiAiX0Jvb2wiICJhY19jdl90eXBlX19Cb29sIiAiJGFjX2luY2x1ZGVzX2Rl ZmF1bHQiCitpZiB0ZXN0ICJ4JGFjX2N2X3R5cGVfX0Jvb2wiID0geHllczsg dGhlbiA6CisKK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKKyNkZWZpbmUg SEFWRV9fQk9PTCAxCitfQUNFT0YKKworCitmaQorCisKK2lmIHRlc3QgJGFj X2N2X2hlYWRlcl9zdGRib29sX2ggPSB5ZXM7IHRoZW4KKworJGFzX2VjaG8g IiNkZWZpbmUgSEFWRV9TVERCT09MX0ggMSIgPj5jb25mZGVmcy5oCisKK2Zp CisKKwogZm9yIGFjX2hlYWRlciBpbiBhdG9taWMuaCBjcnlwdC5oIGRsZC5o IGZwX2NsYXNzLmggZ2V0b3B0LmggaWVlZWZwLmggaWZhZGRycy5oIGxhbmdp bmZvLmggbWJhcnJpZXIuaCBwb2xsLmggc3lzL2Vwb2xsLmggc3lzL2lwYy5o IHN5cy9wc3RhdC5oIHN5cy9yZXNvdXJjZS5oIHN5cy9zZWxlY3QuaCBzeXMv c2VtLmggc3lzL3NobS5oIHN5cy9zb2NraW8uaCBzeXMvdGFzLmggc3lzL3Vu LmggdGVybWlvcy5oIHVjcmVkLmggdXRpbWUuaCB3Y2hhci5oIHdjdHlwZS5o CiBkbyA6CiAgIGFzX2FjX0hlYWRlcj1gJGFzX2VjaG8gImFjX2N2X2hlYWRl cl8kYWNfaGVhZGVyIiB8ICRhc190cl9zaGAKQEAgLTEyODE4LDYgKzEyOTEy LDQwIEBAIGlmIHRlc3QgIiRhY19jdl9zaXplb2Zfb2ZmX3QiIC1sdCA4IC1h ICIkc2Vnc2l6ZSIgIT0gIjEiOyB0aGVuCiAgICBhc19mbl9lcnJvciAkPyAi TGFyZ2UgZmlsZSBzdXBwb3J0IGlzIG5vdCBlbmFibGVkLiBTZWdtZW50IHNp emUgY2Fubm90IGJlIGxhcmdlciB0aGFuIDFHQi4iICIkTElORU5PIiA1CiBm aQogCisjIFRoZSBjYXN0IHRvIGxvbmcgaW50IHdvcmtzIGFyb3VuZCBhIGJ1 ZyBpbiB0aGUgSFAgQyBDb21waWxlcgorIyB2ZXJzaW9uIEhQOTI0NTMtMDEg Qi4xMS4xMS4yMzcwOS5HUCwgd2hpY2ggaW5jb3JyZWN0bHkgcmVqZWN0cwor IyBkZWNsYXJhdGlvbnMgbGlrZSBgaW50IGEzW1soc2l6ZW9mICh1bnNpZ25l ZCBjaGFyKSkgPj0gMF1dOycuCisjIFRoaXMgYnVnIGlzIEhQIFNSIG51bWJl ciA4NjA2MjIzMzY0LgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBzaXplIG9mIF9Cb29sIiA+JjUKKyRhc19l Y2hvX24gImNoZWNraW5nIHNpemUgb2YgX0Jvb2wuLi4gIiA+JjY7IH0KK2lm ICR7YWNfY3Zfc2l6ZW9mX19Cb29sKzp9IGZhbHNlOyB0aGVuIDoKKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgaWYgYWNfZm5fY19j b21wdXRlX2ludCAiJExJTkVOTyIgIihsb25nIGludCkgKHNpemVvZiAoX0Jv b2wpKSIgImFjX2N2X3NpemVvZl9fQm9vbCIgICAgICAgICIkYWNfaW5jbHVk ZXNfZGVmYXVsdCI7IHRoZW4gOgorCitlbHNlCisgIGlmIHRlc3QgIiRhY19j dl90eXBlX19Cb29sIiA9IHllczsgdGhlbgorICAgICB7IHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFj X3B3ZCc6IiA+JjUKKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRh Y19wd2QnOiIgPiYyO30KK2FzX2ZuX2Vycm9yIDc3ICJjYW5ub3QgY29tcHV0 ZSBzaXplb2YgKF9Cb29sKQorU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUg ZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KKyAgIGVsc2UKKyAgICAgYWNfY3Zf c2l6ZW9mX19Cb29sPTAKKyAgIGZpCitmaQorCitmaQoreyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9z aXplb2ZfX0Jvb2wiID4mNQorJGFzX2VjaG8gIiRhY19jdl9zaXplb2ZfX0Jv b2wiID4mNjsgfQorCisKKworY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgor I2RlZmluZSBTSVpFT0ZfX0JPT0wgJGFjX2N2X3NpemVvZl9fQm9vbAorX0FD RU9GCisKKworCiAKICMjCiAjIyBGdW5jdGlvbnMsIGdsb2JhbCB2YXJpYWJs ZXMKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5pbiBiL2NvbmZpZ3VyZS5pbgpp bmRleCBlOTRmYmE1MjM1Li4wNzAwZWM4ZmIzIDEwMDY0NAotLS0gYS9jb25m aWd1cmUuaW4KKysrIGIvY29uZmlndXJlLmluCkBAIC0xMTgwLDYgKzExODAs OCBAQCBBQ19TVUJTVChVVUlEX0xJQlMpCiAjIyBIZWFkZXIgZmlsZXMKICMj CiAKK0FDX0hFQURFUl9TVERCT09MCisKIEFDX0NIRUNLX0hFQURFUlMoW2F0 b21pYy5oIGNyeXB0LmggZGxkLmggZnBfY2xhc3MuaCBnZXRvcHQuaCBpZWVl ZnAuaCBpZmFkZHJzLmggbGFuZ2luZm8uaCBtYmFycmllci5oIHBvbGwuaCBz eXMvZXBvbGwuaCBzeXMvaXBjLmggc3lzL3BzdGF0Lmggc3lzL3Jlc291cmNl Lmggc3lzL3NlbGVjdC5oIHN5cy9zZW0uaCBzeXMvc2htLmggc3lzL3NvY2tp by5oIHN5cy90YXMuaCBzeXMvdW4uaCB0ZXJtaW9zLmggdWNyZWQuaCB1dGlt ZS5oIHdjaGFyLmggd2N0eXBlLmhdKQogCiAjIE9uIEJTRCwgdGVzdCBmb3Ig bmV0L2lmLmggd2lsbCBmYWlsIHVubGVzcyBzeXMvc29ja2V0LmgKQEAgLTE0 MTMsNiArMTQxNSw4IEBAIGlmIHRlc3QgIiRhY19jdl9zaXplb2Zfb2ZmX3Qi IC1sdCA4IC1hICIkc2Vnc2l6ZSIgIT0gIjEiOyB0aGVuCiAgICBBQ19NU0df RVJST1IoW0xhcmdlIGZpbGUgc3VwcG9ydCBpcyBub3QgZW5hYmxlZC4gU2Vn bWVudCBzaXplIGNhbm5vdCBiZSBsYXJnZXIgdGhhbiAxR0IuXSkKIGZpCiAK K0FDX0NIRUNLX1NJWkVPRihfQm9vbCkKKwogCiAjIwogIyMgRnVuY3Rpb25z LCBnbG9iYWwgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j LmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggMjhmOGQyYmY3NS4uNzMyMGM5 ZDc5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9p bmNsdWRlL2MuaApAQCAtMTkyLDI0ICsxOTIsMjcgQEAKICAqIGJvb2wKICAq CQlCb29sZWFuIHZhbHVlLCBlaXRoZXIgdHJ1ZSBvciBmYWxzZS4KICAqCi0g KiBYWFggZm9yIEMrKyBjb21waWxlcnMsIHdlIGFzc3VtZSB0aGUgY29tcGls ZXIgaGFzIGEgY29tcGF0aWJsZQorICogVXNlIHN0ZGJvb2wuaCBpZiBhdmFp bGFibGUsIHRvIGVuc3VyZSBiZXN0IGNvbXBhdGliaWxpdHkgd2l0aCB0aGly ZC1wYXJ0eQorICogbGlicmFyaWVzLiAgRm9yIEMrKyBjb21waWxlcnMsIHdl IGFzc3VtZSB0aGUgY29tcGlsZXIgaGFzIGEgY29tcGF0aWJsZQogICogYnVp bHQtaW4gZGVmaW5pdGlvbiBvZiBib29sLgogICovCiAKICNpZm5kZWYgX19j cGx1c3BsdXMKIAotI2lmbmRlZiBib29sCi10eXBlZGVmIGNoYXIgYm9vbDsK LSNkZWZpbmUgU0laRU9GX0JPT0wgMQorI2lmZGVmIEhBVkVfU1REQk9PTF9I CisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2Vsc2UKKyNpZm5kZWYgSEFWRV9f Qk9PTAorI2RlZmluZSBfQm9vbCBzaWduZWQgY2hhcgorI2RlZmluZSBTSVpF T0ZfX0JPT0wgMQogI2VuZGlmCi0KLSNpZm5kZWYgdHJ1ZQotI2RlZmluZSB0 cnVlCSgoYm9vbCkgMSkKKyNkZWZpbmUgYm9vbCBfQm9vbAorI2RlZmluZSBm YWxzZSAwCisjZGVmaW5lIHRydWUgMQogI2VuZGlmCiAKLSNpZm5kZWYgZmFs c2UKLSNkZWZpbmUgZmFsc2UJKChib29sKSAwKQotI2VuZGlmCisjZGVmaW5l IFNJWkVPRl9CT09MIFNJWkVPRl9fQk9PTAorCiAjZW5kaWYJCQkJCQkJLyog bm90IEMrKyAqLwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdf Y29uZmlnLmguaW4gYi9zcmMvaW5jbHVkZS9wZ19jb25maWcuaC5pbgppbmRl eCBkY2I3YTFhMzIwLi4yZDM5ODEyZWEyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9wZ19jb25maWcuaC5pbgorKysgYi9zcmMvaW5jbHVkZS9wZ19jb25m aWcuaC5pbgpAQCAtNDczLDYgKzQ3Myw5IEBACiAvKiBEZWZpbmUgdG8gMSBp ZiB5b3UgaGF2ZSB0aGUgYFNTTF9nZXRfY3VycmVudF9jb21wcmVzc2lvbicg ZnVuY3Rpb24uICovCiAjdW5kZWYgSEFWRV9TU0xfR0VUX0NVUlJFTlRfQ09N UFJFU1NJT04KIAorLyogRGVmaW5lIHRvIDEgaWYgc3RkYm9vbC5oIGNvbmZv cm1zIHRvIEM5OS4gKi8KKyN1bmRlZiBIQVZFX1NUREJPT0xfSAorCiAvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHN0ZGludC5oPiBoZWFkZXIg ZmlsZS4gKi8KICN1bmRlZiBIQVZFX1NURElOVF9ICiAKQEAgLTY3NSw2ICs2 NzgsOSBAQAogLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDx3aW5s ZGFwLmg+IGhlYWRlciBmaWxlLiAqLwogI3VuZGVmIEhBVkVfV0lOTERBUF9I CiAKKy8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBl IGBfQm9vbCcuICovCisjdW5kZWYgSEFWRV9fQk9PTAorCiAvKiBEZWZpbmUg dG8gMSBpZiB5b3VyIGNvbXBpbGVyIHVuZGVyc3RhbmRzIF9fYnVpbHRpbl9i c3dhcDMyLiAqLwogI3VuZGVmIEhBVkVfX0JVSUxUSU5fQlNXQVAzMgogCkBA IC03OTAsNiArNzk2LDkgQEAKIC8qIFRoZSBzaXplIG9mIGB2b2lkIConLCBh cyBjb21wdXRlZCBieSBzaXplb2YuICovCiAjdW5kZWYgU0laRU9GX1ZPSURf UAogCisvKiBUaGUgc2l6ZSBvZiBgX0Jvb2wnLCBhcyBjb21wdXRlZCBieSBz aXplb2YuICovCisjdW5kZWYgU0laRU9GX19CT09MCisKIC8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVzLiAqLwog I3VuZGVmIFNURENfSEVBREVSUwogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw ZXJsL3BscGVybC5oIGIvc3JjL3BsL3BscGVybC9wbHBlcmwuaAppbmRleCBj NGUwNmQwODlmLi5mMTQ0ODEzZTk0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxw ZXJsL3BscGVybC5oCisrKyBiL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmgKQEAg LTQyLDYgKzQyLDExIEBACiAjdW5kZWYgdnNucHJpbnRmCiAjZW5kaWYKIAor LyoKKyAqIFByZXZlbnQgcGVybCBmcm9tIHJlZGVmaW5pbmcgImJvb2wiLgor ICovCisjZGVmaW5lIEhBU19CT09MIDEKKwogCiAvKgogICogR2V0IHRoZSBi YXNpYyBQZXJsIEFQSS4gIFdlIHVzZSBQRVJMX05PX0dFVF9DT05URVhUIG1v ZGUgc28gdGhhdCBvdXIgY29kZQpAQCAtODMsMTEgKzg4LDYgQEAKICNkZWZp bmUgTkVFRF9zdl8ycHZfZmxhZ3MKICNpbmNsdWRlICJwcHBvcnQuaCIKIAot LyogcGVybCBtYXkgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aCBvZiAiYm9vbCIs IGRvbid0IGJ1eSBpdCAqLwotI2lmZGVmIGJvb2wKLSN1bmRlZiBib29sCi0j ZW5kaWYKLQogLyogc3VwcGx5IEhlVVRGOCBpZiBpdCdzIG1pc3NpbmcgLSBw cHBvcnQuaCBkb2Vzbid0IHN1cHBseSBpdCwgdW5mb3J0dW5hdGVseSAqLwog I2lmbmRlZiBIZVVURjgKICNkZWZpbmUgSGVVVEY4KGhlKQkJCSAgICgoSGVL TEVOKGhlKSA9PSBIRWZfU1ZLRVkpID8JCQkgICBcCi0tIAoyLjE0LjEKCg== --------------2E2F0D77CFDFB22F535375ED Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers --------------2E2F0D77CFDFB22F535375ED--