Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1th1o8-00FqAU-Do for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Feb 2025 07:32:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1th1o6-00Bvbv-Me for pgsql-hackers@arkaria.postgresql.org; Sun, 09 Feb 2025 07:32:46 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1th1o5-00BvaC-8s for pgsql-hackers@lists.postgresql.org; Sun, 09 Feb 2025 07:32:46 +0000 Received: from fout-a2-smtp.messagingengine.com ([103.168.172.145]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1th1o0-004g1m-1m for pgsql-hackers@postgresql.org; Sun, 09 Feb 2025 07:32:44 +0000 Received: from phl-compute-06.internal (phl-compute-06.phl.internal [10.202.2.46]) by mailfout.phl.internal (Postfix) with ESMTP id A14CC1380894; Sun, 9 Feb 2025 02:32:38 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-06.internal (MEProxy); Sun, 09 Feb 2025 02:32:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm2; t=1739086358; x= 1739172758; bh=0ZU1bh/GVNg3ujdeeodcJDd58UXzAv47gPTJVgH5IPI=; b=3 FdrT8BY29p4H9soWChKKyzp0HEVcAXWqZPdalJO1L/Eo2cWs8CbZumiYmPo6cgTV zsljwBxolAam5urUMWZAcB2InJOX3xTS6FuFboUsOdClHIM97J87tiFHjz7Hz59B LuYJGhOcy0g0YZt8ODnFjNAXV6r1KBaUCXuAk/hb6LigCREP03FFN0qrwOuuRCdX 38tLtO38RCbo26xYQhthBqg6wNvnIlPBZ2dKVlIENuR0LMuIW7dZHH7okx2E7CFp 6H7Cr5QwibhI9NJd8LGhQGLszZPzVkf6pImJgwqaPPUWpN4ja5es9JxwYBFLOeYk jRLaAqOyWTDWIdtUvXRNA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t= 1739086358; x=1739172758; bh=0ZU1bh/GVNg3ujdeeodcJDd58UXzAv47gPT JVgH5IPI=; b=VuCfSkooPeCaBTnGrs9aoiRKSd9TktpkmkM30Lfy95ord3W+Dfp OmwglbWZ0VWTd+gSQIu46n+gWaOD1eIL8oRTqeOI3GYx1hm/2IU1U9PQYQOPD6TU XtxQyobZsTAUBs5OO0IGg9Rl4ImbkbKVDXS+eviqKqdSuRGlxL5djY2DStdm/DYF LIkEq76Lb6U91P03Aat8v3MgK0AaQg1iyQUtH10ns/5nTJKJmXLn/Oae2prq9Tq+ RfdHSw9NHPyxV5BZTz2cuXZEdBleEUMfyaLt5TI93mRUe/MfdBiqrDui3neFxbJW oCwuE9ftI2vsqaBjFWCNmtrt+QsJdYHrFuQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefvddrtddtgdefgeehgecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggftfghnshhusghstghrihgsvgdp uffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivg hnthhsucdlqddutddtmdenucfjughrpegtkfffgggfuffvvehfhfgjsehmtderredtvdej necuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrsegvihhsvg hnthhrrghuthdrohhrgheqnecuggftrfgrthhtvghrnhepkedtuedthfdvhfeviefgffet gedvjedvhffhveefvefgtdfgleegheeivefhgfeinecuvehluhhsthgvrhfuihiivgeptd enucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhesvghishgvnhhtrhgruhhtrdho rhhgpdhnsggprhgtphhtthhopeeipdhmohguvgepshhmthhpohhuthdprhgtphhtthhope hthhhomhgrshdrmhhunhhrohesghhmrghilhdrtghomhdprhgtphhtthhopehmihgthhgr vghlsehprghquhhivghrrdighiiipdhrtghpthhtoheprghnughrvgifseguuhhnshhlrg hnvgdrnhgvthdprhgtphhtthhopehtrhhishhtrghnsehnvghonhdrthgvtghhpdhrtghp thhtohepthhglhesshhsshdrphhghhdrphgrrdhushdprhgtphhtthhopehpghhsqhhlqd hhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 9 Feb 2025 02:32:36 -0500 (EST) Content-Type: multipart/mixed; boundary="------------0gnobXL7yQMt6OmATS0NB0oE" Message-ID: Date: Sun, 9 Feb 2025 08:32:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: On non-Windows, hard depend on uselocale(3) To: Thomas Munro Cc: Michael Paquier , Andrew Dunstan , Tristan Partin , Tom Lane , pgsql-hackers References: <423491f5-2eaa-454e-8dc9-037d69c1a8f9@eisentraut.org> <2652c576-29b3-4b4a-b61b-10275cacadcb@eisentraut.org> <679e8c35-0429-478e-8805-607d15b82e53@eisentraut.org> Content-Language: en-US From: Peter Eisentraut In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------0gnobXL7yQMt6OmATS0NB0oE Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Checking the status of this thread ... The patches that removed the configure checks for _configthreadlocale(), and related cleanup, have been committed. The original patch to "Tidy up locale thread safety in ECPG library" is still outstanding. Attached is a rebased version, based on the posted v6, with a couple of small fixups from me. I haven't re-reviewed it yet, but from scanning the discussion, it looks close to done. --------------0gnobXL7yQMt6OmATS0NB0oE Content-Type: text/plain; charset=UTF-8; name="v7-0001-Tidy-up-locale-thread-safety-in-ECPG-library.patch" Content-Disposition: attachment; filename*0="v7-0001-Tidy-up-locale-thread-safety-in-ECPG-library.patch" Content-Transfer-Encoding: base64 RnJvbSA4NDJhNTgzNzg5OGE0YTQ3YzhjNzlkMDdhMmQxNGYzYTgyNTE0YTM2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPHRob21hcy5tdW5yb0BnbWFp bC5jb20+CkRhdGU6IFNhdCwgMTAgQXVnIDIwMjQgMTE6MDE6MjEgKzEyMDAKU3ViamVjdDog W1BBVENIIHY3IDEvM10gVGlkeSB1cCBsb2NhbGUgdGhyZWFkIHNhZmV0eSBpbiBFQ1BHIGxp YnJhcnkuCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpSZW1vdmUgc2V0 bG9jYWxlKCkgYW5kIF9jb25maWd0aHJlYWRsb2NhbCgpIGFzIGZhbGxiYWNrIHN0cmF0ZWd5 IG9uCnN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIHVzZWxvY2FsZSgpLCB3aGVyZSBFQ1BHIHRy aWVzIHRvIGNvbnRyb2wKTENfTlVNRVJJQyBmb3JtYXR0aW5nIG9uIGlucHV0IGFuZCBvdXRw dXQgb2YgZmxvYXRpbmcgcG9pbnQgbnVtYmVycy4gIEl0CndhcyBwcm9iYWJseSBicm9rZW4g b24gc29tZSBzeXN0ZW1zIChOZXRCU0QpLCBhbmQgdGhlIGNvZGUgd2FzIGFsc28KcXVpdGUg bWVzc3kgYW5kIGNvbXBsaWNhdGVkLCB3aXRoIG9ic29sZXRlIGNvbmZpZ3VyZSB0ZXN0cyAo V2luZG93cykuCkl0IHdhcyBhbHNvIGFyZ3VhYmx5IGJyb2tlbiwgb3IgYXQgbGVhc3QgaGFk IHVuc3RhdGVkIGVudmlyb25tZW50YWwKcmVxdWlyZW1lbnRzLCBpZiBwZ3R5cGVzbGliIGNv ZGUgd2FzIGNhbGxlZCBkaXJlY3RseS4KCkluc3RlYWQsIGludHJvZHVjZSBQR19DX0xPQ0FM RSB0byByZWZlciB0byB0aGUgIkMiIGxvY2FsZSBhcyBhIGxvY2FsZV90CnZhbHVlLiAgSXQg bWFwcyB0byB0aGUgc3BlY2lhbCBjb25zdGFudCBMQ19DX0xPQ0FMRSB3aGVuIGRlZmluZWQg YnkgbGliYwoobWFjT1MsIE5ldEJTRCksIG9yIG90aGVyd2lzZSB1c2VzIGEgcHJvY2Vzcy1s aWZldGltZSBsb2NhbGVfdCB0aGF0IGlzCmFsbG9jYXRlZCBvbiBmaXJzdCB1c2UsIGp1c3Qg YXMgRUNQRyBwcmV2aW91c2x5IGRpZCBpdHNlbGYuICBUaGUgbmV3CnJlcGxhY2VtZW50IG1p Z2h0IGJlIG1vcmUgd2lkZWx5IHVzZWZ1bC4gIFRoZW4gY2hhbmdlIHRoZSBmbG9hdCBwYXJz aW5nCmFuZCBwcmludGluZyBjb2RlIHRvIHBhc3MgdGhhdCB0byBfbCgpIGZ1bmN0aW9ucyB3 aGVyZSBhcHByb3ByaWF0ZS4KClVuZm9ydHVuYXRlbHkgdGhlIHBvcnRhYmlsaXR5IG9mIHRo b3NlIGZ1bmN0aW9ucyBpcyBhIGJpdCBjb21wbGljYXRlZC4KRmlyc3QsIG1hbnkgb2J2aW91 cyBhbmQgdXNlZnVsIF9sKCkgZnVuY3Rpb25zIGFyZSBtaXNzaW5nIGZyb20gUE9TSVgsCnRo b3VnaCBtb3N0IHN0YW5kYXJkIGxpYnJhcmllcyBkZWZpbmUgc29tZSBvZiB0aGVtIGFueXdh eS4gIFNlY29uZCwKYWx0aG91Z2ggdGhlIHRocmVhZC1zYWZlIHNhdmUvcmVzdG9yZSB0ZWNo bmlxdWUgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZQp0aGUgbWlzc2luZyBvbmVzLCBXaW5kb3dz IGFuZCBOZXRCU0QgcmVmdXNlZCB0byBpbXBsZW1lbnQgc3RhbmRhcmQKdXNlbG9jYWxlKCku ICBUaGV5IG1pZ2h0IGhhdmUgYSBwb2ludDogIndpZGUgc2NvcGUiIHVzZWxvY2FsZSgpIGlz IGhhcmQKdG8gY29tYmluZSB3aXRoIG90aGVyIGNvZGUgYW5kIGVycm9yLXByb25lLCBlc3Bl Y2lhbGx5IGluIGxpYnJhcnkgY29kZS4KTHVja2lseSB0aGV5IGhhdmUgdGhlICBfbCgpIGZ1 bmN0aW9ucyB3ZSB3YW50IHNvIGZhciBhbnl3YXkuICBTbyB3ZSBoYXZlCnRvIGJlIHByZXBh cmVkIGZvciBib3RoIHdheXMgb2YgZG9pbmcgdGhpbmdzOgoKMS4gIEluIEVDUEcsIHVzZSBz dHJ0b2RfbCgpIGZvciBwYXJzaW5nLCBhbmQgc3VwcGx5IGEgcG9ydC5oIHJlcGxhY2VtZW50 CnVzaW5nIHVzZWxvY2FsZSgpIG92ZXIgYSBsaW1pdGVkIHNjb3BlIGlmIG1pc3NpbmcuCgoy LiAgSW5zaWRlIG91ciBvd24gc25wcmludGYuYywgdXNlIHRocmVlIGRpZmZlcmVudCBhcHBy b2FjaGVzIHRvIGZvcm1hdApmbG9hdHMuICBGb3IgZnJvbnRlbmQgY29kZSwgY2FsbCBsaWJj J3Mgc25wcmludGZfbCgpLCBvciB3cmFwIGxpYmMncwpzbnByaW50ZigpIGluIHVzZWxvY2Fs ZSgpIGlmIGl0J3MgbWlzc2luZy4gIEZvciBiYWNrZW5kIGNvZGUsIHNucHJpbnRmLmMKY2Fu IGtlZXAgYXNzdW1pbmcgdGhhdCB0aGUgZ2xvYmFsIGxvY2FsZSdzIExDX05VTUVSSUMgaXMg IkMiIGFuZCBjYWxsCmxpYmMncyBzbnByaW50ZigpIHdpdGhvdXQgY2hhbmdlLCBmb3Igbm93 LgoKKEl0IG1pZ2h0IGV2ZW50dWFsbHkgYmUgcG9zc2libGUgdG8gY2FsbCBvdXIgaW4tdHJl ZSBSecWrIHJvdXRpbmVzIHRvCmRpc3BsYXkgZmxvYXRzIGluIHNucHJpbnRmLmMsIGdpdmVu IHRoZSBDLWxvY2FsZS1hbHdheXMgcmVtaXQgb2Ygb3VyCmluLXRyZWUgc25wcmludGYoKSwg YnV0IHRoaXMgcGF0Y2ggZG9lc24ndCByaXNrIGNoYW5naW5nIGFueXRoaW5nIHRoYXQKY29t cGxpY2F0ZWQuKQoKUmV2aWV3ZWQtYnk6IFBldGVyIEVpc2VudHJhdXQgPHBldGVyQGVpc2Vu dHJhdXQub3JnPgpSZXZpZXdlZC1ieTogVHJpc3RhbiBQYXJ0aW4gPHRyaXN0YW5AcGFydGlu LmlvPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NXWkJCUlI2WUE4RC44RUhN RFJHTENLQ0QlNDBuZW9uLnRlY2gKLS0tCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBjb25maWd1cmUuYWMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICsKIG1lc29uLmJ1aWxkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4gICAg ICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2luY2x1ZGUvcG9ydC5oICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAzMSArKysrKysrKwogc3JjL2luY2x1ZGUvcG9ydC93aW4zMl9w b3J0LmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGds aWIvY29ubmVjdC5jICAgICAgICB8IDM5ICstLS0tLS0tLS0KIHNyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9kYXRhLmMgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMgICAgIHwgMzcgLS0tLS0tLS0tCiBzcmMvaW50ZXJm YWNlcy9lY3BnL2VjcGdsaWIvZWNwZ2xpYl9leHRlcm4uaCB8IDEyIC0tLQogc3JjL2ludGVy ZmFjZXMvZWNwZy9lY3BnbGliL2V4ZWN1dGUuYyAgICAgICAgfCA1MyAtLS0tLS0tLS0tLS0t CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvZHRfY29tbW9uLmMgICB8ICA2ICst CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvaW50ZXJ2YWwuYyAgICB8ICA0ICst CiBzcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvbnVtZXJpYy5jICAgICB8ICAyICst CiBzcmMvcG9ydC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsK IHNyYy9wb3J0L2xvY2FsZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgODAgKysr KysrKysrKysrKysrKysrKysKIHNyYy9wb3J0L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDEgKwogc3JjL3BvcnQvc25wcmludGYuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA1NSArKysrKysrKysrKysrKwogMTggZmlsZXMgY2hhbmdlZCwgMTg4IGlu c2VydGlvbnMoKyksIDE0OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv cG9ydC9sb2NhbGUuYwoKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZSBiL2NvbmZpZ3VyZQppbmRl eCAwZmZjYWViNDM2Ny4uMDE3ZTYzNTk4YzEgMTAwNzU1Ci0tLSBhL2NvbmZpZ3VyZQorKysg Yi9jb25maWd1cmUKQEAgLTE0OTM0LDcgKzE0OTM0LDcgQEAgZmkKIExJQlNfaW5jbHVkaW5n X3JlYWRsaW5lPSIkTElCUyIKIExJQlM9YGVjaG8gIiRMSUJTIiB8IHNlZCAtZSAncy8tbGVk aXQvL2cnIC1lICdzLy1scmVhZGxpbmUvL2cnYAogCi1mb3IgYWNfZnVuYyBpbiBiYWNrdHJh Y2Vfc3ltYm9scyBjb3B5ZmlsZSBjb3B5X2ZpbGVfcmFuZ2UgZWxmX2F1eF9pbmZvIGdldGF1 eHZhbCBnZXRpZmFkZHJzIGdldHBlZXJ1Y3JlZCBpbmV0X3B0b24ga3F1ZXVlIG1ic3Rvd2Nz X2wgbWVtc2V0X3MgcG9zaXhfZmFsbG9jYXRlIHBwb2xsIHB0aHJlYWRfaXNfdGhyZWFkZWRf bnAgc2V0cHJvY3RpdGxlIHNldHByb2N0aXRsZV9mYXN0IHN0cmNocm51bCBzdHJzaWduYWwg c3luY2ZzIHN5bmNfZmlsZV9yYW5nZSB1c2Vsb2NhbGUgd2NzdG9tYnNfbAorZm9yIGFjX2Z1 bmMgaW4gYmFja3RyYWNlX3N5bWJvbHMgY29weWZpbGUgY29weV9maWxlX3JhbmdlIGVsZl9h dXhfaW5mbyBnZXRhdXh2YWwgZ2V0aWZhZGRycyBnZXRwZWVydWNyZWQgaW5ldF9wdG9uIGtx dWV1ZSBtYnN0b3djc19sIG1lbXNldF9zIHBvc2l4X2ZhbGxvY2F0ZSBwcG9sbCBwdGhyZWFk X2lzX3RocmVhZGVkX25wIHNldHByb2N0aXRsZSBzZXRwcm9jdGl0bGVfZmFzdCBzbnByaW50 Zl9sIHN0cnRvZF9sIHN0cmNocm51bCBzdHJzaWduYWwgc3luY2ZzIHN5bmNfZmlsZV9yYW5n ZSB1c2Vsb2NhbGUgd2NzdG9tYnNfbAogZG8gOgogICBhc19hY192YXI9YCRhc19lY2hvICJh Y19jdl9mdW5jXyRhY19mdW5jIiB8ICRhc190cl9zaGAKIGFjX2ZuX2NfY2hlY2tfZnVuYyAi JExJTkVOTyIgIiRhY19mdW5jIiAiJGFzX2FjX3ZhciIKZGlmZiAtLWdpdCBhL2NvbmZpZ3Vy ZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCBmNTY2ODFlMGQ5MS4uYjA2YTljZDEwODAgMTAw NjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTE3MTgsNiAr MTcxOCw4IEBAIEFDX0NIRUNLX0ZVTkNTKG00X25vcm1hbGl6ZShbCiAJcHRocmVhZF9pc190 aHJlYWRlZF9ucAogCXNldHByb2N0aXRsZQogCXNldHByb2N0aXRsZV9mYXN0CisJc25wcmlu dGZfbAorCXN0cnRvZF9sCiAJc3RyY2hybnVsCiAJc3Ryc2lnbmFsCiAJc3luY2ZzCmRpZmYg LS1naXQgYS9tZXNvbi5idWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDFjZWFkYjlhODMwLi5l MDNiNTA4M2YyNyAxMDA2NDQKLS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQK QEAgLTI2NDgsNiArMjY0OCw4IEBAIGZ1bmNfY2hlY2tzID0gWwogICBbJ3NobV9vcGVuJywg eydkZXBlbmRlbmNpZXMnOiBbcnRfZGVwXSwgJ2RlZmluZSc6IGZhbHNlfV0sCiAgIFsnc2ht X3VubGluaycsIHsnZGVwZW5kZW5jaWVzJzogW3J0X2RlcF0sICdkZWZpbmUnOiBmYWxzZX1d LAogICBbJ3NobWdldCcsIHsnZGVwZW5kZW5jaWVzJzogW2N5Z2lwY19kZXBdLCAnZGVmaW5l JzogZmFsc2V9XSwKKyAgWydzbnByaW50Zl9sJ10sCisgIFsnc3RydG9kX2wnXSwKICAgWydz b2NrZXQnLCB7J2RlcGVuZGVuY2llcyc6IFtzb2NrZXRfZGVwXSwgJ2RlZmluZSc6IGZhbHNl fV0sCiAgIFsnc3RyY2hybnVsJ10sCiAgIFsnc3RyZXJyb3JfcicsIHsnZGVwZW5kZW5jaWVz JzogW3RocmVhZF9kZXBdfV0sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wZ19jb25maWcu aC5pbiBiL3NyYy9pbmNsdWRlL3BnX2NvbmZpZy5oLmluCmluZGV4IDA3YjJmNzk4YWJkLi5h ZTUzMDUwNjE5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KKysr IGIvc3JjL2luY2x1ZGUvcGdfY29uZmlnLmguaW4KQEAgLTM0OSw2ICszNDksOSBAQAogLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBzZXRwcm9jdGl0bGVfZmFzdCcgZnVuY3Rp b24uICovCiAjdW5kZWYgSEFWRV9TRVRQUk9DVElUTEVfRkFTVAogCisvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgYHNucHJpbnRmX2wnIGZ1bmN0aW9uLiAqLworI3VuZGVmIEhB VkVfU05QUklOVEZfTAorCiAvKiBEZWZpbmUgdG8gMSBpZiB0aGUgc3lzdGVtIGhhcyB0aGUg dHlwZSBgc29ja2xlbl90Jy4gKi8KICN1bmRlZiBIQVZFX1NPQ0tMRU5fVAogCkBAIC0zOTQs NiArMzk3LDkgQEAKIC8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBgc3Ryc2lnbmFs JyBmdW5jdGlvbi4gKi8KICN1bmRlZiBIQVZFX1NUUlNJR05BTAogCisvKiBEZWZpbmUgdG8g MSBpZiB5b3UgaGF2ZSB0aGUgYHN0cnRvZF9sJyBmdW5jdGlvbi4gKi8KKyN1bmRlZiBIQVZF X1NUUlRPRF9MCisKIC8qIERlZmluZSB0byAxIGlmIHRoZSBzeXN0ZW0gaGFzIHRoZSB0eXBl IGBzdHJ1Y3Qgb3B0aW9uJy4gKi8KICN1bmRlZiBIQVZFX1NUUlVDVF9PUFRJT04KIApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC5oIGIvc3JjL2luY2x1ZGUvcG9ydC5oCmluZGV4 IDcwM2NhZDg2OGJhLi4zMDEwOWJmYmM5NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcG9y dC5oCisrKyBiL3NyYy9pbmNsdWRlL3BvcnQuaApAQCAtMjE4LDYgKzIxOCwzNyBAQCBleHRl cm4gaW50CXBnX2ZwcmludGYoRklMRSAqc3RyZWFtLCBjb25zdCBjaGFyICpmbXQsLi4uKSBw Z19hdHRyaWJ1dGVfcHJpbnRmKDIsCiBleHRlcm4gaW50CXBnX3ZwcmludGYoY29uc3QgY2hh ciAqZm10LCB2YV9saXN0IGFyZ3MpIHBnX2F0dHJpYnV0ZV9wcmludGYoMSwgMCk7CiBleHRl cm4gaW50CXBnX3ByaW50Zihjb25zdCBjaGFyICpmbXQsLi4uKSBwZ19hdHRyaWJ1dGVfcHJp bnRmKDEsIDIpOwogCisvKgorICogQSBjb3VwbGUgb2Ygc3lzdGVtcyBvZmZlciBhIGZhc3Qg Y29uc3RhbnQgbG9jYWxlX3QgdmFsdWUgcmVwcmVzZW50aW5nIHRoZQorICogIkMiIGxvY2Fs ZS4gIFdlIHVzZSB0aGF0IGlmIHBvc3NpYmxlLCBidXQgZmFsbCBiYWNrIHRvIGNyZWF0aW5n IGEgc2luZ2xldG9uCisgKiBvYmplY3Qgb3RoZXJ3aXNlLiAgVG8gY2hlY2sgdGhhdCBpdCBp cyBhdmFpbGFibGUsIGNhbGwgcGdfZW5zdXJlX2NfbG9jYWxlKCkKKyAqIGFuZCBhc3N1bWUg b3V0IG9mIG1lbW9yeSBpZiBpdCByZXR1cm5zIGZhbHNlLgorICovCisjaWZkZWYgTENfQ19M T0NBTEUKKyNkZWZpbmUgUEdfQ19MT0NBTEUgTENfQ19MT0NBTEUKKyNkZWZpbmUgcGdfZW5z dXJlX2NfbG9jYWxlKCkgdHJ1ZQorI2Vsc2UKK2V4dGVybiBsb2NhbGVfdCBwZ19nZXRfY19s b2NhbGUodm9pZCk7CisjZGVmaW5lIFBHX0NfTE9DQUxFIHBnX2dldF9jX2xvY2FsZSgpCisj ZGVmaW5lIHBnX2Vuc3VyZV9jX2xvY2FsZSgpIChQR19DX0xPQ0FMRSAhPSAwKQorI2VuZGlm CisKKyNpZiAhZGVmaW5lZChIQVZFX1NUUlRPRF9MKSAmJiAhZGVmaW5lZChXSU4zMikKKy8q CisgKiBQT1NJWCBkb2Vzbid0IGRlZmluZSB0aGlzIGZ1bmN0aW9uLCBidXQgd2UgY2FuIGlt cGxlbWVudCBpdCB3aXRoIHRocmVhZC1zYWZlCisgKiBzYXZlLWFuZC1yZXN0b3JlLgorICov CitzdGF0aWMgaW5saW5lIGRvdWJsZQorc3RydG9kX2woY29uc3QgY2hhciAqbnB0ciwgY2hh ciAqKmVuZHB0ciwgbG9jYWxlX3QgbG9jKQoreworCWxvY2FsZV90CXNhdmUgPSB1c2Vsb2Nh bGUobG9jKTsKKwlkb3VibGUJCXJlc3VsdCA9IHN0cnRvZChucHRyLCBlbmRwdHIpOworCisJ dXNlbG9jYWxlKHNhdmUpOworCXJldHVybiByZXN1bHQ7Cit9CisjZW5kaWYKKwogI2lmbmRl ZiBXSU4zMgogLyoKICAqIFdlIGFkZCBhIHBnXyBwcmVmaXggYXMgYSB3YXJuaW5nIHRoYXQg dGhlIFdpbmRvd3MgaW1wbGVtZW50YXRpb25zIGhhdmUgdGhlCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wb3J0L3dpbjMyX3BvcnQuaCBiL3NyYy9pbmNsdWRlL3BvcnQvd2luMzJfcG9y dC5oCmluZGV4IGZmNzAyOGJkYzgxLi5mZjBiN2EwZGUxOCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvcG9ydC93aW4zMl9wb3J0LmgKKysrIGIvc3JjL2luY2x1ZGUvcG9ydC93aW4zMl9w b3J0LmgKQEAgLTQ1Myw2ICs0NTMsNyBAQCBleHRlcm4gaW50CV9wZ2xzdGF0NjQoY29uc3Qg Y2hhciAqbmFtZSwgc3RydWN0IHN0YXQgKmJ1Zik7CiAjZGVmaW5lIGlzc3BhY2VfbCBfaXNz cGFjZV9sCiAjZGVmaW5lIGlzd3NwYWNlX2wgX2lzd3NwYWNlX2wKICNkZWZpbmUgc3RyY29s bF9sIF9zdHJjb2xsX2wKKyNkZWZpbmUgc3RydG9kX2wgX3N0cnRvZF9sCiAjZGVmaW5lIHN0 cnhmcm1fbCBfc3RyeGZybV9sCiAjZGVmaW5lIHdjc2NvbGxfbCBfd2NzY29sbF9sCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9jb25uZWN0LmMgYi9zcmMv aW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvY29ubmVjdC5jCmluZGV4IDJiYmI3MDMzM2RjLi40 NzVmMDIxNTYwMyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Nv bm5lY3QuYworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvY29ubmVjdC5jCkBA IC0xMCwxMCArMTAsNiBAQAogI2luY2x1ZGUgImVjcGd0eXBlLmgiCiAjaW5jbHVkZSAic3Fs Y2EuaCIKIAotI2lmZGVmIEhBVkVfVVNFTE9DQUxFCi1sb2NhbGVfdAllY3BnX2Nsb2NhbGUg PSAobG9jYWxlX3QpIDA7Ci0jZW5kaWYKLQogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBjb25u ZWN0aW9uc19tdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7CiBzdGF0aWMgcHRo cmVhZF9rZXlfdCBhY3R1YWxfY29ubmVjdGlvbl9rZXk7CiBzdGF0aWMgcHRocmVhZF9vbmNl X3QgYWN0dWFsX2Nvbm5lY3Rpb25fa2V5X29uY2UgPSBQVEhSRUFEX09OQ0VfSU5JVDsKQEAg LTI2OCw3ICsyNjQsNyBAQCBFQ1BHY29ubmVjdChpbnQgbGluZW5vLCBpbnQgYywgY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdXNlciwgY29uc3QgY2hhciAqcAogCWNvbnN0IGNo YXIgKipjb25uX2tleXdvcmRzOwogCWNvbnN0IGNoYXIgKipjb25uX3ZhbHVlczsKIAotCWlm IChzcWxjYSA9PSBOVUxMKQorCWlmIChzcWxjYSA9PSBOVUxMIHx8ICFwZ19lbnN1cmVfY19s b2NhbGUoKSkKIAl7CiAJCWVjcGdfcmFpc2UobGluZW5vLCBFQ1BHX09VVF9PRl9NRU1PUlks CiAJCQkJICAgRUNQR19TUUxTVEFURV9FQ1BHX09VVF9PRl9NRU1PUlksIE5VTEwpOwpAQCAt NDgzLDM5ICs0NzksNiBAQCBFQ1BHY29ubmVjdChpbnQgbGluZW5vLCBpbnQgYywgY29uc3Qg Y2hhciAqbmFtZSwgY29uc3QgY2hhciAqdXNlciwgY29uc3QgY2hhciAqcAogCS8qIGFkZCBj b25uZWN0aW9uIHRvIG91ciBsaXN0ICovCiAJcHRocmVhZF9tdXRleF9sb2NrKCZjb25uZWN0 aW9uc19tdXRleCk7CiAKLQkvKgotCSAqIC4uLiBidXQgZmlyc3QsIG1ha2UgY2VydGFpbiB3 ZSBoYXZlIGNyZWF0ZWQgZWNwZ19jbG9jYWxlLiAgUmVseSBvbgotCSAqIGhvbGRpbmcgY29u bmVjdGlvbnNfbXV0ZXggdG8gZW5zdXJlIHRoaXMgaXMgZG9uZSBieSBvbmx5IG9uZSB0aHJl YWQuCi0JICovCi0jaWZkZWYgSEFWRV9VU0VMT0NBTEUKLQlpZiAoIWVjcGdfY2xvY2FsZSkK LQl7Ci0JCWVjcGdfY2xvY2FsZSA9IG5ld2xvY2FsZShMQ19OVU1FUklDX01BU0ssICJDIiwg KGxvY2FsZV90KSAwKTsKLQkJaWYgKCFlY3BnX2Nsb2NhbGUpCi0JCXsKLQkJCXB0aHJlYWRf bXV0ZXhfdW5sb2NrKCZjb25uZWN0aW9uc19tdXRleCk7Ci0JCQllY3BnX3JhaXNlKGxpbmVu bywgRUNQR19PVVRfT0ZfTUVNT1JZLAotCQkJCQkgICBFQ1BHX1NRTFNUQVRFX0VDUEdfT1VU X09GX01FTU9SWSwgTlVMTCk7Ci0JCQlpZiAoaG9zdCkKLQkJCQllY3BnX2ZyZWUoaG9zdCk7 Ci0JCQlpZiAocG9ydCkKLQkJCQllY3BnX2ZyZWUocG9ydCk7Ci0JCQlpZiAob3B0aW9ucykK LQkJCQllY3BnX2ZyZWUob3B0aW9ucyk7Ci0JCQlpZiAocmVhbG5hbWUpCi0JCQkJZWNwZ19m cmVlKHJlYWxuYW1lKTsKLQkJCWlmIChkYm5hbWUpCi0JCQkJZWNwZ19mcmVlKGRibmFtZSk7 Ci0JCQlpZiAoY29ubl9rZXl3b3JkcykKLQkJCQllY3BnX2ZyZWUoY29ubl9rZXl3b3Jkcyk7 Ci0JCQlpZiAoY29ubl92YWx1ZXMpCi0JCQkJZWNwZ19mcmVlKGNvbm5fdmFsdWVzKTsKLQkJ CWZyZWUodGhpcyk7Ci0JCQlyZXR1cm4gZmFsc2U7Ci0JCX0KLQl9Ci0jZW5kaWYKLQogCWlm IChjb25uZWN0aW9uX25hbWUgIT0gTlVMTCkKIAkJdGhpcy0+bmFtZSA9IGVjcGdfc3RyZHVw KGNvbm5lY3Rpb25fbmFtZSwgbGluZW5vKTsKIAllbHNlCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGF0YS5jIGIvc3JjL2ludGVyZmFjZXMvZWNwZy9lY3Bn bGliL2RhdGEuYwppbmRleCBmYTU2Mjc2NzU4NS4uODU2ZjRjOTQ3MmQgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kYXRhLmMKKysrIGIvc3JjL2ludGVyZmFj ZXMvZWNwZy9lY3BnbGliL2RhdGEuYwpAQCAtNDY2LDcgKzQ2Niw3IEBAIGVjcGdfZ2V0X2Rh dGEoY29uc3QgUEdyZXN1bHQgKnJlc3VsdHMsIGludCBhY3RfdHVwbGUsIGludCBhY3RfZmll bGQsIGludCBsaW5lbm8sCiAJCQkJCQlwdmFsKys7CiAKIAkJCQkJaWYgKCFjaGVja19zcGVj aWFsX3ZhbHVlKHB2YWwsICZkcmVzLCAmc2Nhbl9sZW5ndGgpKQotCQkJCQkJZHJlcyA9IHN0 cnRvZChwdmFsLCAmc2Nhbl9sZW5ndGgpOworCQkJCQkJZHJlcyA9IHN0cnRvZF9sKHB2YWws ICZzY2FuX2xlbmd0aCwgUEdfQ19MT0NBTEUpOwogCiAJCQkJCWlmIChpc2FycmF5ICYmICpz Y2FuX2xlbmd0aCA9PSAnIicpCiAJCQkJCQlzY2FuX2xlbmd0aCsrOwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2Rlc2NyaXB0b3IuYyBiL3NyYy9pbnRlcmZh Y2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMKaW5kZXggODUyNWE2ODEyZjIuLmZjNWUx YzlkZDg5IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZGVzY3Jp cHRvci5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9kZXNjcmlwdG9yLmMK QEAgLTQ3NSw0NiArNDc1LDkgQEAgRUNQR2dldF9kZXNjKGludCBsaW5lbm8sIGNvbnN0IGNo YXIgKmRlc2NfbmFtZSwgaW50IGluZGV4LC4uLikKIAkJbWVtc2V0KCZzdG10LCAwLCBzaXpl b2Ygc3RtdCk7CiAJCXN0bXQubGluZW5vID0gbGluZW5vOwogCi0JCS8qIE1ha2Ugc3VyZSB3 ZSBkbyBOT1QgaG9ub3IgdGhlIGxvY2FsZSBmb3IgbnVtZXJpYyBpbnB1dCAqLwotCQkvKiBz aW5jZSB0aGUgZGF0YWJhc2UgZ2l2ZXMgdGhlIHN0YW5kYXJkIGRlY2ltYWwgcG9pbnQgKi8K LQkJLyogKHNlZSBjb21tZW50cyBpbiBleGVjdXRlLmMpICovCi0jaWZkZWYgSEFWRV9VU0VM T0NBTEUKLQotCQkvKgotCQkgKiBUbyBnZXQgaGVyZSwgdGhlIGFib3ZlIFBRbmZpZWxkcygp IHRlc3QgbXVzdCBoYXZlIGZvdW5kIG5vbnplcm8KLQkJICogZmllbGRzLiAgT25lIG5lZWRz IGEgY29ubmVjdGlvbiB0byBjcmVhdGUgc3VjaCBhIGRlc2NyaXB0b3IuICAoRVhFQwotCQkg KiBTUUwgU0VUIERFU0NSSVBUT1IgY2FuIHBvcHVsYXRlIHRoZSBkZXNjcmlwdG9yJ3MgIml0 ZW1zIiwgYnV0IGl0Ci0JCSAqIGNhbid0IGNoYW5nZSB0aGUgZGVzY3JpcHRvcidzIFBRbmZp ZWxkcygpLikgIEFueSBzdWNjZXNzZnVsCi0JCSAqIGNvbm5lY3Rpb24gaW5pdGlhbGl6ZXMg ZWNwZ19jbG9jYWxlLgotCQkgKi8KLQkJQXNzZXJ0KGVjcGdfY2xvY2FsZSk7Ci0JCXN0bXQu b2xkbG9jYWxlID0gdXNlbG9jYWxlKGVjcGdfY2xvY2FsZSk7Ci0jZWxzZQotI2lmZGVmIFdJ TjMyCi0JCXN0bXQub2xkdGhyZWFkbG9jYWxlID0gX2NvbmZpZ3RocmVhZGxvY2FsZShfRU5B QkxFX1BFUl9USFJFQURfTE9DQUxFKTsKLSNlbmRpZgotCQlzdG10Lm9sZGxvY2FsZSA9IGVj cGdfc3RyZHVwKHNldGxvY2FsZShMQ19OVU1FUklDLCBOVUxMKSwgbGluZW5vKTsKLQkJc2V0 bG9jYWxlKExDX05VTUVSSUMsICJDIik7Ci0jZW5kaWYKLQogCQkvKiBkZXNwZXJhdGUgdHJ5 IHRvIGd1ZXNzIHNvbWV0aGluZyBzZW5zaWJsZSAqLwogCQlzdG10LmNvbm5lY3Rpb24gPSBl Y3BnX2dldF9jb25uZWN0aW9uKE5VTEwpOwogCQllY3BnX3N0b3JlX3Jlc3VsdChFQ1BHcmVz dWx0LCBpbmRleCwgJnN0bXQsICZkYXRhX3Zhcik7Ci0KLSNpZmRlZiBIQVZFX1VTRUxPQ0FM RQotCQlpZiAoc3RtdC5vbGRsb2NhbGUgIT0gKGxvY2FsZV90KSAwKQotCQkJdXNlbG9jYWxl KHN0bXQub2xkbG9jYWxlKTsKLSNlbHNlCi0JCWlmIChzdG10Lm9sZGxvY2FsZSkKLQkJewot CQkJc2V0bG9jYWxlKExDX05VTUVSSUMsIHN0bXQub2xkbG9jYWxlKTsKLQkJCWVjcGdfZnJl ZShzdG10Lm9sZGxvY2FsZSk7Ci0JCX0KLSNpZmRlZiBXSU4zMgotCQlpZiAoc3RtdC5vbGR0 aHJlYWRsb2NhbGUgIT0gLTEpCi0JCQlfY29uZmlndGhyZWFkbG9jYWxlKHN0bXQub2xkdGhy ZWFkbG9jYWxlKTsKLSNlbmRpZgotI2VuZGlmCiAJfQogCWVsc2UgaWYgKGRhdGFfdmFyLmlu ZF90eXBlICE9IEVDUEd0X05PX0lORElDQVRPUiAmJiBkYXRhX3Zhci5pbmRfcG9pbnRlciAh PSBOVUxMKQogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZWNw Z2xpYl9leHRlcm4uaCBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9lY3BnbGliX2V4 dGVybi5oCmluZGV4IDc1Y2M2ODI3NWJkLi40MDk4OGQ1MzU3NSAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKKysrIGIvc3JjL2lu dGVyZmFjZXMvZWNwZy9lY3BnbGliL2VjcGdsaWJfZXh0ZXJuLmgKQEAgLTU2LDEwICs1Niw2 IEBAIHN0cnVjdCBFQ1BHdHlwZV9pbmZvcm1hdGlvbl9jYWNoZQogCWVudW0gQVJSQVlfVFlQ RSBpc2FycmF5OwogfTsKIAotI2lmZGVmIEhBVkVfVVNFTE9DQUxFCi1leHRlcm4gbG9jYWxl X3QgZWNwZ19jbG9jYWxlOwkvKiBMQ19OVU1FUklDPUMgKi8KLSNlbmRpZgotCiAvKiBzdHJ1 Y3R1cmUgdG8gc3RvcmUgb25lIHN0YXRlbWVudCAqLwogc3RydWN0IHN0YXRlbWVudAogewpA QCAtNzMsMTQgKzY5LDYgQEAgc3RydWN0IHN0YXRlbWVudAogCWJvb2wJCXF1ZXN0aW9ubWFy a3M7CiAJc3RydWN0IHZhcmlhYmxlICppbmxpc3Q7CiAJc3RydWN0IHZhcmlhYmxlICpvdXRs aXN0OwotI2lmZGVmIEhBVkVfVVNFTE9DQUxFCi0JbG9jYWxlX3QJb2xkbG9jYWxlOwotI2Vs c2UKLQljaGFyCSAgICpvbGRsb2NhbGU7Ci0jaWZkZWYgV0lOMzIKLQlpbnQJCQlvbGR0aHJl YWRsb2NhbGU7Ci0jZW5kaWYKLSNlbmRpZgogCWludAkJCW5wYXJhbXM7CiAJY2hhcgkgICoq cGFyYW12YWx1ZXM7CiAJaW50CQkgICAqcGFyYW1sZW5ndGhzOwpkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9lY3BnbGliL2V4ZWN1dGUuYyBiL3NyYy9pbnRlcmZhY2VzL2Vj cGcvZWNwZ2xpYi9leGVjdXRlLmMKaW5kZXggYjUwODllYWM3ODcuLmVjOTM5ZDBmNjNhIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL2VjcGdsaWIvZXhlY3V0ZS5jCisrKyBi L3NyYy9pbnRlcmZhY2VzL2VjcGcvZWNwZ2xpYi9leGVjdXRlLmMKQEAgLTEwMSw5ICsxMDEs NiBAQCBmcmVlX3N0YXRlbWVudChzdHJ1Y3Qgc3RhdGVtZW50ICpzdG10KQogCWZyZWVfdmFy aWFibGUoc3RtdC0+b3V0bGlzdCk7CiAJZWNwZ19mcmVlKHN0bXQtPmNvbW1hbmQpOwogCWVj cGdfZnJlZShzdG10LT5uYW1lKTsKLSNpZm5kZWYgSEFWRV9VU0VMT0NBTEUKLQllY3BnX2Zy ZWUoc3RtdC0+b2xkbG9jYWxlKTsKLSNlbmRpZgogCWVjcGdfZnJlZShzdG10KTsKIH0KIApA QCAtMTk3Myw0MyArMTk3MCw2IEBAIGVjcGdfZG9fcHJvbG9ndWUoaW50IGxpbmVubywgY29u c3QgaW50IGNvbXBhdCwgY29uc3QgaW50IGZvcmNlX2luZGljYXRvciwKIAlpZiAoc3RtdCA9 PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CiAKLQkvKgotCSAqIE1ha2Ugc3VyZSB3ZSBkbyBO T1QgaG9ub3IgdGhlIGxvY2FsZSBmb3IgbnVtZXJpYyBpbnB1dC9vdXRwdXQgc2luY2UgdGhl Ci0JICogZGF0YWJhc2Ugd2FudHMgdGhlIHN0YW5kYXJkIGRlY2ltYWwgcG9pbnQuICBJZiBh dmFpbGFibGUsIHVzZQotCSAqIHVzZWxvY2FsZSgpIGZvciB0aGlzIGJlY2F1c2UgaXQncyB0 aHJlYWQtc2FmZS4gIFdpbmRvd3MgZG9lc24ndCBoYXZlCi0JICogdGhhdCwgYnV0IGl0IGRv ZXMgaGF2ZSBfY29uZmlndGhyZWFkbG9jYWxlKCkuCi0JICovCi0jaWZkZWYgSEFWRV9VU0VM T0NBTEUKLQotCS8qCi0JICogU2luY2UgZWNwZ19pbml0KCkgc3VjY2VlZGVkLCB3ZSBoYXZl IGEgY29ubmVjdGlvbi4gIEFueSBzdWNjZXNzZnVsCi0JICogY29ubmVjdGlvbiBpbml0aWFs aXplcyBlY3BnX2Nsb2NhbGUuCi0JICovCi0JQXNzZXJ0KGVjcGdfY2xvY2FsZSk7Ci0Jc3Rt dC0+b2xkbG9jYWxlID0gdXNlbG9jYWxlKGVjcGdfY2xvY2FsZSk7Ci0JaWYgKHN0bXQtPm9s ZGxvY2FsZSA9PSAobG9jYWxlX3QpIDApCi0JewotCQllY3BnX2RvX2VwaWxvZ3VlKHN0bXQp OwotCQlyZXR1cm4gZmFsc2U7Ci0JfQotI2Vsc2UKLSNpZmRlZiBXSU4zMgotCXN0bXQtPm9s ZHRocmVhZGxvY2FsZSA9IF9jb25maWd0aHJlYWRsb2NhbGUoX0VOQUJMRV9QRVJfVEhSRUFE X0xPQ0FMRSk7Ci0JaWYgKHN0bXQtPm9sZHRocmVhZGxvY2FsZSA9PSAtMSkKLQl7Ci0JCWVj cGdfZG9fZXBpbG9ndWUoc3RtdCk7Ci0JCXJldHVybiBmYWxzZTsKLQl9Ci0jZW5kaWYKLQlz dG10LT5vbGRsb2NhbGUgPSBlY3BnX3N0cmR1cChzZXRsb2NhbGUoTENfTlVNRVJJQywgTlVM TCksIGxpbmVubyk7Ci0JaWYgKHN0bXQtPm9sZGxvY2FsZSA9PSBOVUxMKQotCXsKLQkJZWNw Z19kb19lcGlsb2d1ZShzdG10KTsKLQkJcmV0dXJuIGZhbHNlOwotCX0KLQlzZXRsb2NhbGUo TENfTlVNRVJJQywgIkMiKTsKLSNlbmRpZgotCiAJLyoKIAkgKiBJZiBzdGF0ZW1lbnQgdHlw ZSBpcyBFQ1BHc3RfcHJlcG5vcm1hbCB3ZSBhcmUgc3VwcG9zZWQgdG8gcHJlcGFyZSB0aGUK IAkgKiBzdGF0ZW1lbnQgYmVmb3JlIGV4ZWN1dGluZyB0aGVtCkBAIC0yMjE2LDE5ICsyMTc2 LDYgQEAgZWNwZ19kb19lcGlsb2d1ZShzdHJ1Y3Qgc3RhdGVtZW50ICpzdG10KQogCWlmIChz dG10ID09IE5VTEwpCiAJCXJldHVybjsKIAotI2lmZGVmIEhBVkVfVVNFTE9DQUxFCi0JaWYg KHN0bXQtPm9sZGxvY2FsZSAhPSAobG9jYWxlX3QpIDApCi0JCXVzZWxvY2FsZShzdG10LT5v bGRsb2NhbGUpOwotI2Vsc2UKLQlpZiAoc3RtdC0+b2xkbG9jYWxlKQotCXsKLQkJc2V0bG9j YWxlKExDX05VTUVSSUMsIHN0bXQtPm9sZGxvY2FsZSk7Ci0jaWZkZWYgV0lOMzIKLQkJX2Nv bmZpZ3RocmVhZGxvY2FsZShzdG10LT5vbGR0aHJlYWRsb2NhbGUpOwotI2VuZGlmCi0JfQot I2VuZGlmCi0KIAlmcmVlX3N0YXRlbWVudChzdG10KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3Jj L2ludGVyZmFjZXMvZWNwZy9wZ3R5cGVzbGliL2R0X2NvbW1vbi5jIGIvc3JjL2ludGVyZmFj ZXMvZWNwZy9wZ3R5cGVzbGliL2R0X2NvbW1vbi5jCmluZGV4IGM0MTE5YWI3OTMyLi5mODM0 OWI2NmNlOSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvZWNwZy9wZ3R5cGVzbGliL2R0 X2NvbW1vbi5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9kdF9jb21t b24uYwpAQCAtMTIxOCw3ICsxMjE4LDcgQEAgRGVjb2RlTnVtYmVyKGludCBmbGVuLCBjaGFy ICpzdHIsIGludCBmbWFzaywKIAkJCXJldHVybiBEZWNvZGVOdW1iZXJGaWVsZChmbGVuLCBz dHIsIChmbWFzayB8IERUS19EQVRFX00pLAogCQkJCQkJCQkJIHRtYXNrLCB0bSwgZnNlYywg aXMyZGlnaXRzKTsKIAotCQkqZnNlYyA9IHN0cnRvZChjcCwgJmNwKTsKKwkJKmZzZWMgPSBz dHJ0b2RfbChjcCwgJmNwLCBQR19DX0xPQ0FMRSk7CiAJCWlmICgqY3AgIT0gJ1wwJykKIAkJ CXJldHVybiAtMTsKIAl9CkBAIC0yMDMwLDcgKzIwMzAsNyBAQCBEZWNvZGVEYXRlVGltZShj aGFyICoqZmllbGQsIGludCAqZnR5cGUsIGludCBuZiwKIAkJCQkJCQl7CiAJCQkJCQkJCWRv dWJsZQkJZnJhYzsKIAotCQkJCQkJCQlmcmFjID0gc3RydG9kKGNwLCAmY3ApOworCQkJCQkJ CQlmcmFjID0gc3RydG9kX2woY3AsICZjcCwgUEdfQ19MT0NBTEUpOwogCQkJCQkJCQlpZiAo KmNwICE9ICdcMCcpCiAJCQkJCQkJCQlyZXR1cm4gLTE7CiAJCQkJCQkJCSpmc2VjID0gZnJh YyAqIDEwMDAwMDA7CkBAIC0yMDU0LDcgKzIwNTQsNyBAQCBEZWNvZGVEYXRlVGltZShjaGFy ICoqZmllbGQsIGludCAqZnR5cGUsIGludCBuZiwKIAkJCQkJCQl7CiAJCQkJCQkJCWRvdWJs ZQkJdGltZTsKIAotCQkJCQkJCQl0aW1lID0gc3RydG9kKGNwLCAmY3ApOworCQkJCQkJCQl0 aW1lID0gc3RydG9kX2woY3AsICZjcCwgUEdfQ19MT0NBTEUpOwogCQkJCQkJCQlpZiAoKmNw ICE9ICdcMCcpCiAJCQkJCQkJCQlyZXR1cm4gLTE7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9pbnRlcnZhbC5jIGIvc3JjL2ludGVyZmFjZXMvZWNw Zy9wZ3R5cGVzbGliL2ludGVydmFsLmMKaW5kZXggOTM2YTY4ODM4MTYuLjE1NWM2Y2M3Nzcw IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvaW50ZXJ2YWwu YworKysgYi9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvaW50ZXJ2YWwuYwpAQCAt NjAsNyArNjAsNyBAQCBQYXJzZUlTTzg2MDFOdW1iZXIoY29uc3QgY2hhciAqc3RyLCBjaGFy ICoqZW5kcHRyLCBpbnQgKmlwYXJ0LCBkb3VibGUgKmZwYXJ0KQogCWlmICghKGlzZGlnaXQo KHVuc2lnbmVkIGNoYXIpICpzdHIpIHx8ICpzdHIgPT0gJy0nIHx8ICpzdHIgPT0gJy4nKSkK IAkJcmV0dXJuIERURVJSX0JBRF9GT1JNQVQ7CiAJZXJybm8gPSAwOwotCXZhbCA9IHN0cnRv ZChzdHIsIGVuZHB0cik7CisJdmFsID0gc3RydG9kX2woc3RyLCBlbmRwdHIsIFBHX0NfTE9D QUxFKTsKIAkvKiBkaWQgd2Ugbm90IHNlZSBhbnl0aGluZyB0aGF0IGxvb2tzIGxpa2UgYSBk b3VibGU/ICovCiAJaWYgKCplbmRwdHIgPT0gc3RyIHx8IGVycm5vICE9IDApCiAJCXJldHVy biBEVEVSUl9CQURfRk9STUFUOwpAQCAtNDU1LDcgKzQ1NSw3IEBAIERlY29kZUludGVydmFs KGNoYXIgKipmaWVsZCwgaW50ICpmdHlwZSwgaW50IG5mLAkvKiBpbnQgcmFuZ2UsICovCiAJ CQkJZWxzZSBpZiAoKmNwID09ICcuJykKIAkJCQl7CiAJCQkJCWVycm5vID0gMDsKLQkJCQkJ ZnZhbCA9IHN0cnRvZChjcCwgJmNwKTsKKwkJCQkJZnZhbCA9IHN0cnRvZF9sKGNwLCAmY3As IFBHX0NfTE9DQUxFKTsKIAkJCQkJaWYgKCpjcCAhPSAnXDAnIHx8IGVycm5vICE9IDApCiAJ CQkJCQlyZXR1cm4gRFRFUlJfQkFEX0ZPUk1BVDsKIApkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvZWNwZy9wZ3R5cGVzbGliL251bWVyaWMuYyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcv cGd0eXBlc2xpYi9udW1lcmljLmMKaW5kZXggMzVlN2I5MmRhNDAuLjQ5OTM4NTQzZDAzIDEw MDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9lY3BnL3BndHlwZXNsaWIvbnVtZXJpYy5jCisr KyBiL3NyYy9pbnRlcmZhY2VzL2VjcGcvcGd0eXBlc2xpYi9udW1lcmljLmMKQEAgLTE0NTUs NyArMTQ1NSw3IEBAIG51bWVyaWN2YXJfdG9fZG91YmxlKG51bWVyaWMgKnZhciwgZG91Ymxl ICpkcCkKIAkgKiBzdHJ0b2QgZG9lcyBub3QgcmVzZXQgZXJybm8gdG8gMCBpbiBjYXNlIG9m IHN1Y2Nlc3MuCiAJICovCiAJZXJybm8gPSAwOwotCXZhbCA9IHN0cnRvZCh0bXAsICZlbmRw dHIpOworCXZhbCA9IHN0cnRvZF9sKHRtcCwgJmVuZHB0ciwgUEdfQ19MT0NBTEUpOwogCWlm IChlcnJubyA9PSBFUkFOR0UpCiAJewogCQlmcmVlKHRtcCk7CmRpZmYgLS1naXQgYS9zcmMv cG9ydC9NYWtlZmlsZSBiL3NyYy9wb3J0L01ha2VmaWxlCmluZGV4IDRjMjI0MzE5NTEyLi44 Yjg2NGNjY2NlMyAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvTWFrZWZpbGUKKysrIGIvc3JjL3Bv cnQvTWFrZWZpbGUKQEAgLTQxLDYgKzQxLDcgQEAgT0JKUyA9IFwKIAlic2VhcmNoX2FyZy5v IFwKIAljaGtsb2NhbGUubyBcCiAJaW5ldF9uZXRfbnRvcC5vIFwKKwlsb2NhbGUubyBcCiAJ bm9ibG9jay5vIFwKIAlwYXRoLm8gXAogCXBnX2JpdHV0aWxzLm8gXApkaWZmIC0tZ2l0IGEv c3JjL3BvcnQvbG9jYWxlLmMgYi9zcmMvcG9ydC9sb2NhbGUuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzg3ZmI0YTEwN2EKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvcG9ydC9sb2NhbGUuYwpAQCAtMCwwICsxLDgwIEBACisvKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCisgKiBsb2NhbGUuYworICoJCUhlbHBlciByb3V0aW5lcyBmb3IgdGhyZWFk LXNhZmUgc3lzdGVtIGxvY2FsZSB1c2FnZS4KKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZl cnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBz cmMvcG9ydC9sb2NhbGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNp bmNsdWRlICJjLmgiCisKKyNpZm5kZWYgV0lOMzIKKyNpbmNsdWRlIDxwdGhyZWFkLmg+Cisj ZWxzZQorI2luY2x1ZGUgPHN5bmNoYXBpLmg+CisjZW5kaWYKKworLyogQSBwcm9jZXNzLWxp ZmV0aW1lIHNpbmdsZXRvbiwgYWxsb2NhdGVkIG9uIGZpcnN0IG5lZWQuICovCitzdGF0aWMg bG9jYWxlX3QgY19sb2NhbGU7CisKKyNpZm5kZWYgV0lOMzIKK3N0YXRpYyB2b2lkCitpbml0 X2NfbG9jYWxlX29uY2Uodm9pZCkKK3sKKwljX2xvY2FsZSA9IG5ld2xvY2FsZShMQ19BTEws ICJDIiwgTlVMTCk7Cit9CisjZWxzZQorc3RhdGljIEJPT0wKK2luaXRfY19sb2NhbGVfb25j ZShQSU5JVF9PTkNFIG9uY2UsIFBWT0lEIHBhcmFtZXRlciwgUFZPSUQgKmNvbnRleHQpCit7 CisJY19sb2NhbGUgPSBfY3JlYXRlX2xvY2FsZShMQ19BTEwsICJDIik7CisJcmV0dXJuIHRy dWU7Cit9CisjZW5kaWYKKworLyoKKyAqIEFjY2VzcyBhIHByb2Nlc3MtbGlmZXRpbWUgc2lu Z2xldG9uIGxvY2FsZV90IG9iamVjdC4gIFVzZSB0aGUgbWFjcm8KKyAqIFBHX0NfTE9DQUxF IGluc3RlYWQgb2YgY2FsbGluZyB0aGlzIGRpcmVjdGx5LCBhcyBpdCBjYW4gc2tpcCB0aGUg ZnVuY3Rpb24KKyAqIGNhbGwgb24gc29tZSBzeXN0ZW1zLgorICovCitsb2NhbGVfdAorcGdf Z2V0X2NfbG9jYWxlKHZvaWQpCit7CisJLyoKKwkgKiBGYXN0IHBhdGggaWYgYWxyZWFkeSBp bml0aWFsaXplZC4gIFRoaXMgYXNzdW1lcyB0aGF0IHdlIGNhbiByZWFkIGEKKwkgKiBsb2Nh bGVfdCAoaW4gcHJhY3RpY2UsIGEgcG9pbnRlcikgd2l0aG91dCB0ZWFyaW5nIGluIGEgbXVs dGktdGhyZWFkZWQKKwkgKiBwcm9ncmFtLgorCSAqLworCWlmIChjX2xvY2FsZSAhPSAobG9j YWxlX3QpIDApCisJCXJldHVybiBjX2xvY2FsZTsKKworCS8qIE1ha2UgYSBsb2NhbGVfdC4g IEl0IHdpbGwgbGl2ZSB1bnRpbCBwcm9jZXNzIGV4aXQuICovCisJeworI2lmbmRlZiBXSU4z MgorCQlzdGF0aWMgcHRocmVhZF9vbmNlX3Qgb25jZSA9IFBUSFJFQURfT05DRV9JTklUOwor CisJCXB0aHJlYWRfb25jZSgmb25jZSwgaW5pdF9jX2xvY2FsZV9vbmNlKTsKKyNlbHNlCisJ CXN0YXRpYyBJTklUX09OQ0Ugb25jZTsKKwkJSW5pdE9uY2VFeGVjdXRlT25jZSgmb25jZSwg aW5pdF9jX2xvY2FsZV9vbmNlLCBOVUxMLCBOVUxMKTsKKyNlbmRpZgorCX0KKworCS8qCisJ ICogSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBhbGxvY2F0aW9uIG9mIHRoZSBsb2NhbGUgZmFp bGVkIGR1ZSB0byBsb3cKKwkgKiBtZW1vcnksIGFuZCB0aGVuIChsb2NhbGVfdCkgMCB3aWxs IGJlIHJldHVybmVkLiAgVXNlcnMgb2YgUEdfQ19MT0NBTEUKKwkgKiBzaG91bGQgZGVmZW5k IGFnYWluc3QgdGhhdCBieSBjaGVja2luZyBwZ19lbnN1cmVfY19sb2NhbGUoKSBhdCBhCisJ ICogY29udmVuaWVudCB0aW1lLCBzbyB0aGF0IHRoZXkgY2FuIHRyZWF0IGl0IGFzIGEgc2lt cGxlIGNvbnN0YW50IGFmdGVyCisJICogdGhhdC4KKwkgKi8KKworCXJldHVybiBjX2xvY2Fs ZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9wb3J0L21lc29uLmJ1aWxkIGIvc3JjL3BvcnQvbWVz b24uYnVpbGQKaW5kZXggN2ZjZmE3MjhkNDMuLjRiYThmNjMzMjNlIDEwMDY0NAotLS0gYS9z cmMvcG9ydC9tZXNvbi5idWlsZAorKysgYi9zcmMvcG9ydC9tZXNvbi5idWlsZApAQCAtNSw2 ICs1LDcgQEAgcGdwb3J0X3NvdXJjZXMgPSBbCiAgICdjaGtsb2NhbGUuYycsCiAgICdpbmV0 X25ldF9udG9wLmMnLAogICAnbm9ibG9jay5jJywKKyAgJ2xvY2FsZS5jJywKICAgJ3BhdGgu YycsCiAgICdwZ19iaXR1dGlscy5jJywKICAgJ3BnX3BvcGNvdW50X2F2eDUxMi5jJywKZGlm ZiAtLWdpdCBhL3NyYy9wb3J0L3NucHJpbnRmLmMgYi9zcmMvcG9ydC9zbnByaW50Zi5jCmlu ZGV4IGY4ZjIwMThlYTBjLi4zNzZkNWM5MDZhMCAxMDA2NDQKLS0tIGEvc3JjL3BvcnQvc25w cmludGYuYworKysgYi9zcmMvcG9ydC9zbnByaW50Zi5jCkBAIC0xMDksNiArMTA5LDM2IEBA CiAjdW5kZWYJdnByaW50ZgogI3VuZGVmCXByaW50ZgogCisjaWYgZGVmaW5lZChGUk9OVEVO RCkKKy8qCisgKiBGcm9udGVuZCBjb2RlIG1pZ2h0IGJlIG11bHRpLXRocmVhZGVkLiAgV2hl biBjYWxsaW5nIHRoZSBzeXN0ZW0gc25wcmludGYoKQorICogZm9yIGZsb2F0cywgd2UgaGF2 ZSB0byB1c2UgZWl0aGVyIHRoZSBub24tc3RhbmRhcmQgc25wcmludGZfbCgpIHZhcmlhbnQs IG9yCisgKiBzYXZlLWFuZC1yZXN0b3JlIHRoZSBjYWxsaW5nIHRocmVhZCdzIGxvY2FsZSB1 c2luZyB1c2Vsb2NhbGUoKSwgZGVwZW5kaW5nIG9uCisgKiBhdmFpbGFiaWxpdHkuCisgKi8K KyNpZiBkZWZpbmVkKEhBVkVfU05QUklOVEZfTCkKKy8qIEF0IGxlYXN0IG1hY09TIGFuZCB0 aGUgQlNEcyBoYXZlIHRoZSBzbnByaW50Zl9sKCkgZXh0ZW5zaW9uLiAqLworI2RlZmluZSBV U0VfU05QUklOVEZfTAorI2VsaWYgZGVmaW5lZChXSU4zMikKKy8qIFdpbmRvd3MgaGFzIGEg dmVyc2lvbiB3aXRoIGEgZGlmZmVyZW50IG5hbWUgYW5kIGFyZ3VtZW50IG9yZGVyLiAqLwor I2RlZmluZSBzbnByaW50Zl9sKHN0ciwgc2l6ZSwgbG9jLCBmb3JtYXQsIC4uLikgX3NucHJp bnRmX2woc3RyLCBzaXplLCBmb3JtYXQsIGxvYywgX19WQV9BUkdTX18pCisjZGVmaW5lIFVT RV9TTlBSSU5URl9MCisjZWxzZQorLyogV2UgaGF2ZSB0byBkbyBhIHRocmVhZC1zYWZlIHNh dmUtYW5kLXJlc3RvcmUgYXJvdW5kIHNucHJpbnRmKCkuICovCisjZGVmaW5lIE5FRURfVVNF X0xPQ0FMRQorI2VuZGlmCisjZWxzZQorLyoKKyAqIEJhY2tlbmQgY29kZSBkb2Vzbid0IG5l ZWQgdG8gd29ycnkgYWJvdXQgbG9jYWxlcyBoZXJlLCBiZWNhdXNlIExDX05VTUVSSUMgaXMK KyAqIHNldCB0byAiQyIgaW4gbWFpbigpIGFuZCBkb2Vzbid0IGNoYW5nZS4gIFBsYWluIG9s ZCBzbnByaW50ZigpIGlzIGFsd2F5cyBPSworICogd2l0aG91dCB1c2Vsb2NhbGUoKS4KKyAq CisgKiBYWFggSWYgdGhlIGJhY2tlbmQgd2VyZSBtdWx0aXRocmVhZGVkLCB3ZSB3b3VsZCBo YXZlIHRvIGJlIDEwMCUgY2VydGFpbiB0aGF0CisgKiBubyBvbmUgaXMgY2FsbGluZyBzZXRs b2NhbGUoKSBjb25jdXJyZW50bHksIGV2ZW4gdHJhbnNpZW50bHksIHRvIGJlIGFibGUgdG8K KyAqIGtlZXAgdGhpcyBzbWFsbCBvcHRpbWl6YXRpb24uCisgKi8KKyNlbmRpZgorCiAvKgog ICogSW5mbyBhYm91dCB3aGVyZSB0aGUgZm9ybWF0dGVkIG91dHB1dCBpcyBnb2luZy4KICAq CkBAIC0xMjIwLDYgKzEyNTAsOSBAQCBmbXRmbG9hdChkb3VibGUgdmFsdWUsIGNoYXIgdHlw ZSwgaW50IGZvcmNlc2lnbiwgaW50IGxlZnRqdXN0LAogCQkgKiBhY2NvcmRpbmcgdG8gPT0g YnV0IG5vdCBhY2NvcmRpbmcgdG8gbWVtY21wLgogCQkgKi8KIAkJc3RhdGljIGNvbnN0IGRv dWJsZSBkemVybyA9IDAuMDsKKyNpZmRlZiBORUVEX1VTRV9MT0NBTEUKKwkJbG9jYWxlX3QJ c2F2ZV9sb2NhbGUgPSB1c2Vsb2NhbGUoUEdfQ19MT0NBTEUpOworI2VuZGlmCiAKIAkJaWYg KGFkanVzdF9zaWduKCh2YWx1ZSA8IDAuMCB8fAogCQkJCQkJICh2YWx1ZSA9PSAwLjAgJiYK QEAgLTEyNDEsNyArMTI3NCwxMSBAQCBmbXRmbG9hdChkb3VibGUgdmFsdWUsIGNoYXIgdHlw ZSwgaW50IGZvcmNlc2lnbiwgaW50IGxlZnRqdXN0LAogCQkJZm10WzJdID0gJyonOwogCQkJ Zm10WzNdID0gdHlwZTsKIAkJCWZtdFs0XSA9ICdcMCc7CisjaWZkZWYgVVNFX1NOUFJJTlRG X0wKKwkJCXZhbGxlbiA9IHNucHJpbnRmX2woY29udmVydCwgc2l6ZW9mKGNvbnZlcnQpLCBQ R19DX0xPQ0FMRSwgZm10LCBwcmVjLCB2YWx1ZSk7CisjZWxzZQogCQkJdmFsbGVuID0gc25w cmludGYoY29udmVydCwgc2l6ZW9mKGNvbnZlcnQpLCBmbXQsIHByZWMsIHZhbHVlKTsKKyNl bmRpZgogCQl9CiAJCWVsc2UKIAkJewpAQCAtMTI1MCw2ICsxMjg3LDExIEBAIGZtdGZsb2F0 KGRvdWJsZSB2YWx1ZSwgY2hhciB0eXBlLCBpbnQgZm9yY2VzaWduLCBpbnQgbGVmdGp1c3Qs CiAJCQlmbXRbMl0gPSAnXDAnOwogCQkJdmFsbGVuID0gc25wcmludGYoY29udmVydCwgc2l6 ZW9mKGNvbnZlcnQpLCBmbXQsIHZhbHVlKTsKIAkJfQorCisjaWZkZWYgTkVFRF9VU0VfTE9D QUxFCisJCXVzZWxvY2FsZShzYXZlX2xvY2FsZSk7CisjZW5kaWYKKwogCQlpZiAodmFsbGVu IDwgMCkKIAkJCWdvdG8gZmFpbDsKIApAQCAtMTM3MiwxMiArMTQxNCwyNSBAQCBwZ19zdHJm cm9tZChjaGFyICpzdHIsIHNpemVfdCBjb3VudCwgaW50IHByZWNpc2lvbiwgZG91YmxlIHZh bHVlKQogCQl9CiAJCWVsc2UKIAkJeworI2lmZGVmIE5FRURfVVNFX0xPQ0FMRQorCQkJbG9j YWxlX3QJc2F2ZV9sb2NhbGUgPSB1c2Vsb2NhbGUoUEdfQ19MT0NBTEUpOworI2VuZGlmCisK IAkJCWZtdFswXSA9ICclJzsKIAkJCWZtdFsxXSA9ICcuJzsKIAkJCWZtdFsyXSA9ICcqJzsK IAkJCWZtdFszXSA9ICdnJzsKIAkJCWZtdFs0XSA9ICdcMCc7CisjaWZkZWYgVVNFX1NOUFJJ TlRGX0wKKwkJCXZhbGxlbiA9IHNucHJpbnRmX2woY29udmVydCwgc2l6ZW9mKGNvbnZlcnQp LCBQR19DX0xPQ0FMRSwgZm10LCBwcmVjaXNpb24sIHZhbHVlKTsKKyNlbHNlCiAJCQl2YWxs ZW4gPSBzbnByaW50Zihjb252ZXJ0LCBzaXplb2YoY29udmVydCksIGZtdCwgcHJlY2lzaW9u LCB2YWx1ZSk7CisjZW5kaWYKKworI2lmZGVmIE5FRURfVVNFX0xPQ0FMRQorCQkJdXNlbG9j YWxlKHNhdmVfbG9jYWxlKTsKKyNlbmRpZgorCiAJCQlpZiAodmFsbGVuIDwgMCkKIAkJCXsK IAkJCQl0YXJnZXQuZmFpbGVkID0gdHJ1ZTsKCmJhc2UtY29tbWl0OiBiOTJjMDMzNDJkY2Q2 OWQyNTkyNjJiMDZiNWMyOTBlMjcyNDljYjExCi0tIAoyLjQ4LjEKCg== --------------0gnobXL7yQMt6OmATS0NB0oE Content-Type: text/plain; charset=UTF-8; name="v7-0002-Fixup-fix-compiler-warnings-if-LC_C_LOCALE-exists.patch" Content-Disposition: attachment; filename*0="v7-0002-Fixup-fix-compiler-warnings-if-LC_C_LOCALE-exists.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBkNjFkMzU4OTk3Y2U2YzE1YTg5MTU4ODk1M2I3NmUxNzRlMzA0MWFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU3VuLCA5IEZlYiAyMDI1IDA3OjQ5OjAwICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2NyAyLzNdIEZpeHVwOiBmaXggY29tcGlsZXIgd2FybmluZ3MgaWYgTENfQ19M T0NBTEUgZXhpc3RzCgotLS0KIHNyYy9wb3J0L2xvY2FsZS5jIHwgNCArKysrCiAxIGZpbGUg Y2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3BvcnQvbG9jYWxl LmMgYi9zcmMvcG9ydC9sb2NhbGUuYwppbmRleCAzODdmYjRhMTA3YS4uYjNkNDg2Mjg5MTUg MTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L2xvY2FsZS5jCisrKyBiL3NyYy9wb3J0L2xvY2FsZS5j CkBAIC0xNiw2ICsxNiw4IEBACiAKICNpbmNsdWRlICJjLmgiCiAKKyNpZm5kZWYgTENfQ19M T0NBTEUKKwogI2lmbmRlZiBXSU4zMgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNlbHNlCkBA IC03OCwzICs4MCw1IEBAIHBnX2dldF9jX2xvY2FsZSh2b2lkKQogCiAJcmV0dXJuIGNfbG9j YWxlOwogfQorCisjZW5kaWYJCQkJCQkJLyogbm90IExDX0NfTE9DQUxFICovCi0tIAoyLjQ4 LjEKCg== --------------0gnobXL7yQMt6OmATS0NB0oE Content-Type: text/plain; charset=UTF-8; name="v7-0003-Fixup-sort-some-lists-better.patch" Content-Disposition: attachment; filename="v7-0003-Fixup-sort-some-lists-better.patch" Content-Transfer-Encoding: base64 RnJvbSBlZGY5ZTUyN2U4MmYxOTk3Mzk2Y2QzZmRlODczZTgyYzI1YWFkZTM3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU3VuLCA5IEZlYiAyMDI1IDA3OjUyOjQ1ICswMTAwClN1YmplY3Q6 IFtQQVRDSCB2NyAzLzNdIEZpeHVwOiBzb3J0IHNvbWUgbGlzdHMgYmV0dGVyCgotLS0KIGNv bmZpZ3VyZSAgICAgICAgICAgIHwgMiArLQogY29uZmlndXJlLmFjICAgICAgICAgfCAyICst CiBtZXNvbi5idWlsZCAgICAgICAgICB8IDIgKy0KIHNyYy9wb3J0L21lc29uLmJ1aWxkIHwg MiArLQogNCBmaWxlcyBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDAxN2U2MzU5OGMx Li5iYmU0NzMxYmNmNSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZpZ3VyZQpA QCAtMTQ5MzQsNyArMTQ5MzQsNyBAQCBmaQogTElCU19pbmNsdWRpbmdfcmVhZGxpbmU9IiRM SUJTIgogTElCUz1gZWNobyAiJExJQlMiIHwgc2VkIC1lICdzLy1sZWRpdC8vZycgLWUgJ3Mv LWxyZWFkbGluZS8vZydgCiAKLWZvciBhY19mdW5jIGluIGJhY2t0cmFjZV9zeW1ib2xzIGNv cHlmaWxlIGNvcHlfZmlsZV9yYW5nZSBlbGZfYXV4X2luZm8gZ2V0YXV4dmFsIGdldGlmYWRk cnMgZ2V0cGVlcnVjcmVkIGluZXRfcHRvbiBrcXVldWUgbWJzdG93Y3NfbCBtZW1zZXRfcyBw b3NpeF9mYWxsb2NhdGUgcHBvbGwgcHRocmVhZF9pc190aHJlYWRlZF9ucCBzZXRwcm9jdGl0 bGUgc2V0cHJvY3RpdGxlX2Zhc3Qgc25wcmludGZfbCBzdHJ0b2RfbCBzdHJjaHJudWwgc3Ry c2lnbmFsIHN5bmNmcyBzeW5jX2ZpbGVfcmFuZ2UgdXNlbG9jYWxlIHdjc3RvbWJzX2wKK2Zv ciBhY19mdW5jIGluIGJhY2t0cmFjZV9zeW1ib2xzIGNvcHlmaWxlIGNvcHlfZmlsZV9yYW5n ZSBlbGZfYXV4X2luZm8gZ2V0YXV4dmFsIGdldGlmYWRkcnMgZ2V0cGVlcnVjcmVkIGluZXRf cHRvbiBrcXVldWUgbWJzdG93Y3NfbCBtZW1zZXRfcyBwb3NpeF9mYWxsb2NhdGUgcHBvbGwg cHRocmVhZF9pc190aHJlYWRlZF9ucCBzZXRwcm9jdGl0bGUgc2V0cHJvY3RpdGxlX2Zhc3Qg c25wcmludGZfbCBzdHJjaHJudWwgc3Ryc2lnbmFsIHN0cnRvZF9sIHN5bmNmcyBzeW5jX2Zp bGVfcmFuZ2UgdXNlbG9jYWxlIHdjc3RvbWJzX2wKIGRvIDoKICAgYXNfYWNfdmFyPWAkYXNf ZWNobyAiYWNfY3ZfZnVuY18kYWNfZnVuYyIgfCAkYXNfdHJfc2hgCiBhY19mbl9jX2NoZWNr X2Z1bmMgIiRMSU5FTk8iICIkYWNfZnVuYyIgIiRhc19hY192YXIiCmRpZmYgLS1naXQgYS9j b25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggYjA2YTljZDEwODAuLmQ2MzZkNDY3 OGI3IDEwMDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0x NzE5LDkgKzE3MTksOSBAQCBBQ19DSEVDS19GVU5DUyhtNF9ub3JtYWxpemUoWwogCXNldHBy b2N0aXRsZQogCXNldHByb2N0aXRsZV9mYXN0CiAJc25wcmludGZfbAotCXN0cnRvZF9sCiAJ c3RyY2hybnVsCiAJc3Ryc2lnbmFsCisJc3RydG9kX2wKIAlzeW5jZnMKIAlzeW5jX2ZpbGVf cmFuZ2UKIAl1c2Vsb2NhbGUKZGlmZiAtLWdpdCBhL21lc29uLmJ1aWxkIGIvbWVzb24uYnVp bGQKaW5kZXggZTAzYjUwODNmMjcuLjczY2NiZDRjZWUyIDEwMDY0NAotLS0gYS9tZXNvbi5i dWlsZAorKysgYi9tZXNvbi5idWlsZApAQCAtMjY0OSw3ICsyNjQ5LDYgQEAgZnVuY19jaGVj a3MgPSBbCiAgIFsnc2htX3VubGluaycsIHsnZGVwZW5kZW5jaWVzJzogW3J0X2RlcF0sICdk ZWZpbmUnOiBmYWxzZX1dLAogICBbJ3NobWdldCcsIHsnZGVwZW5kZW5jaWVzJzogW2N5Z2lw Y19kZXBdLCAnZGVmaW5lJzogZmFsc2V9XSwKICAgWydzbnByaW50Zl9sJ10sCi0gIFsnc3Ry dG9kX2wnXSwKICAgWydzb2NrZXQnLCB7J2RlcGVuZGVuY2llcyc6IFtzb2NrZXRfZGVwXSwg J2RlZmluZSc6IGZhbHNlfV0sCiAgIFsnc3RyY2hybnVsJ10sCiAgIFsnc3RyZXJyb3Jfcics IHsnZGVwZW5kZW5jaWVzJzogW3RocmVhZF9kZXBdfV0sCkBAIC0yNjU4LDYgKzI2NTcsNyBA QCBmdW5jX2NoZWNrcyA9IFsKICAgWydzdHJubGVuJ10sCiAgIFsnc3Ryc2VwJ10sCiAgIFsn c3Ryc2lnbmFsJ10sCisgIFsnc3RydG9kX2wnXSwKICAgWydzeW5jX2ZpbGVfcmFuZ2UnXSwK ICAgWydzeW5jZnMnXSwKICAgWyd1c2Vsb2NhbGUnXSwKZGlmZiAtLWdpdCBhL3NyYy9wb3J0 L21lc29uLmJ1aWxkIGIvc3JjL3BvcnQvbWVzb24uYnVpbGQKaW5kZXggNGJhOGY2MzMyM2Uu LjE2NTYzMjhmMjEwIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9tZXNvbi5idWlsZAorKysgYi9z cmMvcG9ydC9tZXNvbi5idWlsZApAQCAtNCw4ICs0LDggQEAgcGdwb3J0X3NvdXJjZXMgPSBb CiAgICdic2VhcmNoX2FyZy5jJywKICAgJ2Noa2xvY2FsZS5jJywKICAgJ2luZXRfbmV0X250 b3AuYycsCi0gICdub2Jsb2NrLmMnLAogICAnbG9jYWxlLmMnLAorICAnbm9ibG9jay5jJywK ICAgJ3BhdGguYycsCiAgICdwZ19iaXR1dGlscy5jJywKICAgJ3BnX3BvcGNvdW50X2F2eDUx Mi5jJywKLS0gCjIuNDguMQoK --------------0gnobXL7yQMt6OmATS0NB0oE--