Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p13v4-0005Xa-Tk for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Dec 2022 11:09:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p13v3-0005Xi-3a for pgsql-hackers@arkaria.postgresql.org; Fri, 02 Dec 2022 11:09:25 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p13v2-0005XX-OQ for pgsql-hackers@lists.postgresql.org; Fri, 02 Dec 2022 11:09:24 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p13uy-0007jr-GV for pgsql-hackers@lists.postgresql.org; Fri, 02 Dec 2022 11:09:24 +0000 Received: by mail-wm1-x32f.google.com with SMTP id o7-20020a05600c510700b003cffc0b3374so4020010wms.0 for ; Fri, 02 Dec 2022 03:09:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=AnT2nEnEb3WXpWBaU4iEk7npn0l8arlwtSiMpE0sjKE=; b=PqzUxEFkFxN6pjbfSZpUjtYKyMZ7RM15J/WJY453OhUMBHR1fLFYbfFsceDa22FXLK jQbnBqZkrKWwbLkKwUhSW9NWSYsvUSMZZ/znB2U53Qvpl8fQ4rRb7Pg/InZng8tyrUVK 8quk9rXqqy4WlqNma5n2RU8hmZJd0DUeC0Kd62odnaueDuIxVnKqaCXJh2pLNrpC+DOr gN+0mkXJjVRgDS2JAHw//r5zx/EHu8UEuJ4E2UwTjbtHuF9NvbCLR6GpwiuhyxnxEsOC pLUuxRw0kQCxfrCxmE3139kudcdu4sA39uVWDytggwoZz6hjELoLUYGzdscuS2wRUZrm sjNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:references:cc:to:from:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AnT2nEnEb3WXpWBaU4iEk7npn0l8arlwtSiMpE0sjKE=; b=iLg7LXYXjsE3WS+ZhjomBmUdQK9/j3DHKyI2vJ4IrhEXFGoe27e8WgE8lF1/YlldFl Pf5f/yAB9kyzJj5Oy2asca4PYWUwfVfTtZNy6uiK8LkaACETqKYoL2zBDC06urBXZ0cL GEmAA+jcLlL+b8aCr3219CXViHKddhJj6N9m5XGXQTfi52AGE3T8b7EvezhgUH6SYfFC h0ACpScE+hWQVUW0KdLhbN5jGEqBLz+BXFMEq+3F5PcqiRBgzZkJSfZ8np1dmLW/D1a4 2cVtIPieb1IeH1mU8AnppzrRFd4eypH4DyeZgmxYg2hAtlqPQTXW8WVZ/8cVVz9V254g Q10Q== X-Gm-Message-State: ANoB5pnjfKov4L196KDHW3TzTUGN2At6CKrfJvNbO2pRWO7fv22cFk8l gc2oiAgkYO39qyWI7uvzmOMJ3Q== X-Google-Smtp-Source: AA0mqf4nVxlMXtfsFTmZC7ddm62Rsxpo91VzKkJcGU6JIGfGbGauNnXPfdnb96c4r3wY8WVPkxiOuw== X-Received: by 2002:a05:600c:1e85:b0:3cf:84be:aaf9 with SMTP id be5-20020a05600c1e8500b003cf84beaaf9mr38042436wmb.111.1669979358409; Fri, 02 Dec 2022 03:09:18 -0800 (PST) Received: from [192.168.1.166] ([212.228.7.114]) by smtp.gmail.com with ESMTPSA id f21-20020a1c6a15000000b003cf4d99fd2asm7955924wmc.6.2022.12.02.03.09.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 02 Dec 2022 03:09:17 -0800 (PST) Content-Type: multipart/mixed; boundary="------------ATzS10WvJqtDCD0R93wjvHSO" Message-ID: <8d46c46d-66d3-758b-b686-de371e0ba8ca@linaro.org> Date: Fri, 2 Dec 2022 11:09:15 +0000 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: [PATCH] Add native windows on arm64 support Content-Language: en-US From: Niyas Sait To: Michael Paquier , Andres Freund Cc: Ian Lawrence Barwick , Tom Lane , Thomas Munro , Julien Rouhaud , PostgreSQL Hackers References: <3886822.1661905738@sss.pgh.pa.us> <20476.1661967233@sss.pgh.pa.us> <271611.1661998926@sss.pgh.pa.us> <20221105183136.hfxyl5dclxdcoyih@awork3.anarazel.de> <7ff7c416-fdfe-517f-a65c-9e5bd8ff8cec@linaro.org> 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. --------------ATzS10WvJqtDCD0R93wjvHSO Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, I've attached a new revision of the patch (v5) and includes following changes, 1. Add support for meson build system 2. Extend MSVC scripts to handle ARM64 platform. 3. Add arm64 definition of spin_delay function. 4. Exclude arm_acle.h import with MSVC compiler. V4->V5: * Added reference to Microsoft arm64 intrinsic documentation * Conditionally enable USE_ARMV8_CRC32C_WITH_RUNTIME_CHECK * Fixed styling issue spotted by Ian Lawerence Barwick V3->V4: Add support for meson build system V2->V3: Removed ASLR enablement and rebased on master. V1->V2: Rebased on top of master -- Niyas --------------ATzS10WvJqtDCD0R93wjvHSO Content-Type: text/plain; charset=UTF-8; name="v5-0001-Enable-postgres-native-build-for-windows-arm64-pl.patch" Content-Disposition: attachment; filename*0="v5-0001-Enable-postgres-native-build-for-windows-arm64-pl.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1OGI4MjEwNzA4ODQ1NmZjNzFkMjM5ZjRlMWI5OTVkOTFhOTRiNGVmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBOaXlhcyBTYWl0IDxuaXlhcy5zYWl0QGxpbmFyby5v cmc+CkRhdGU6IFR1ZSwgMjIgRmViIDIwMjIgMTM6MDc6MjQgKzAwMDAKU3ViamVjdDogW1BB VENIIHY1XSBFbmFibGUgcG9zdGdyZXMgbmF0aXZlIGJ1aWxkIGZvciB3aW5kb3dzLWFybTY0 IHBsYXRmb3JtCgpGb2xsb3dpbmcgY2hhbmdlcyBhcmUgaW5jbHVkZWQKCi0gRXh0ZW5kIE1T VkMgc2NyaXB0cyB0byBoYW5kbGUgQVJNNjQgcGxhdGZvcm0KLSBBZGQgYXJtNjQgZGVmaW5p dGlvbiBvZiBzcGluX2RlbGF5IGZ1bmN0aW9uCi0gRXhjbHVkZSBhcm1fYWNsZS5oIGltcG9y dCBmb3IgTVNWQwotIEFkZCBzdXBwb3J0IGZvciBtZXNvbiBidWlsZAotLS0KIG1lc29uLmJ1 aWxkICAgICAgICAgICAgICAgICAgICAgIHwgMzMgKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLS0tLS0KIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmggICAgIHwgMTAgKysrKysr KysrLQogc3JjL3BvcnQvcGdfY3JjMzJjX2FybXY4LmMgICAgICAgfCAgMiArKwogc3JjL3Rv b2xzL21zdmMvTVNCdWlsZFByb2plY3QucG0gfCAxNiArKysrKysrKysrKystLS0tCiBzcmMv dG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0gICAgICB8ICA5ICsrKysrKystLQogc3JjL3Rvb2xz L21zdmMvU29sdXRpb24ucG0gICAgICAgfCAxMSArKysrKysrKy0tLQogc3JjL3Rvb2xzL21z dmMvZ2VuZGVmLnBsICAgICAgICAgfCAgOCArKysrLS0tLQogNyBmaWxlcyBjaGFuZ2VkLCA2 MiBpbnNlcnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9tZXNvbi5i dWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDcyNWUxMGQ4MTUuLmUzNTRhZDc2NTAgMTAwNjQ0 Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBAIC0xOTQ0LDcgKzE5NDQs MTMgQEAgaW50IG1haW4odm9pZCkKIAogZWxpZiBob3N0X2NwdSA9PSAnYXJtJyBvciBob3N0 X2NwdSA9PSAnYWFyY2g2NCcKIAotICBwcm9nID0gJycnCisgIGlmIGNjLmdldF9pZCgpID09 ICdtc3ZjJworICAgIGNkYXRhLnNldCgnVVNFX0FSTVY4X0NSQzMyQycsIGZhbHNlKQorICAg IGNkYXRhLnNldCgnVVNFX0FSTVY4X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0snLCAxKQor ICAgIGhhdmVfb3B0aW1pemVkX2NyYyA9IHRydWUKKyAgZWxzZQorCisgICAgcHJvZyA9ICcn JwogI2luY2x1ZGUgPGFybV9hY2xlLmg+CiAKIGludCBtYWluKHZvaWQpCkBAIC0xOTYwLDE4 ICsxOTY2LDE5IEBAIGludCBtYWluKHZvaWQpCiB9CiAnJycKIAotICBpZiBjYy5saW5rcyhw cm9nLCBuYW1lOiAnX19jcmMzMmNiLCBfX2NyYzMyY2gsIF9fY3JjMzJjdywgYW5kIF9fY3Jj MzJjZCB3aXRob3V0IC1tYXJjaD1hcm12OC1hK2NyYycsCi0gICAgICBhcmdzOiB0ZXN0X2Nf YXJncykKLSAgICAjIFVzZSBBUk0gQ1JDIEV4dGVuc2lvbiB1bmNvbmRpdGlvbmFsbHkKLSAg ICBjZGF0YS5zZXQoJ1VTRV9BUk1WOF9DUkMzMkMnLCAxKQotICAgIGhhdmVfb3B0aW1pemVk X2NyYyA9IHRydWUKLSAgZWxpZiBjYy5saW5rcyhwcm9nLCBuYW1lOiAnX19jcmMzMmNiLCBf X2NyYzMyY2gsIF9fY3JjMzJjdywgYW5kIF9fY3JjMzJjZCB3aXRoIC1tYXJjaD1hcm12OC1h K2NyYycsCi0gICAgICBhcmdzOiB0ZXN0X2NfYXJncyArIFsnLW1hcmNoPWFybXY4LWErY3Jj J10pCi0gICAgIyBVc2UgQVJNIENSQyBFeHRlbnNpb24sIHdpdGggcnVudGltZSBjaGVjawot ICAgIGNmbGFnc19jcmMgKz0gJy1tYXJjaD1hcm12OC1hK2NyYycKLSAgICBjZGF0YS5zZXQo J1VTRV9BUk1WOF9DUkMzMkMnLCBmYWxzZSkKLSAgICBjZGF0YS5zZXQoJ1VTRV9BUk1WOF9D UkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLJywgMSkKLSAgICBoYXZlX29wdGltaXplZF9jcmMg PSB0cnVlCisgICAgaWYgY2MubGlua3MocHJvZywgbmFtZTogJ19fY3JjMzJjYiwgX19jcmMz MmNoLCBfX2NyYzMyY3csIGFuZCBfX2NyYzMyY2Qgd2l0aG91dCAtbWFyY2g9YXJtdjgtYStj cmMnLAorICAgICAgICBhcmdzOiB0ZXN0X2NfYXJncykKKyAgICAgICMgVXNlIEFSTSBDUkMg RXh0ZW5zaW9uIHVuY29uZGl0aW9uYWxseQorICAgICAgY2RhdGEuc2V0KCdVU0VfQVJNVjhf Q1JDMzJDJywgMSkKKyAgICAgIGhhdmVfb3B0aW1pemVkX2NyYyA9IHRydWUKKyAgICBlbGlm IGNjLmxpbmtzKHByb2csIG5hbWU6ICdfX2NyYzMyY2IsIF9fY3JjMzJjaCwgX19jcmMzMmN3 LCBhbmQgX19jcmMzMmNkIHdpdGggLW1hcmNoPWFybXY4LWErY3JjJywKKyAgICAgICAgYXJn czogdGVzdF9jX2FyZ3MgKyBbJy1tYXJjaD1hcm12OC1hK2NyYyddKQorICAgICAgIyBVc2Ug QVJNIENSQyBFeHRlbnNpb24sIHdpdGggcnVudGltZSBjaGVjaworICAgICAgY2ZsYWdzX2Ny YyArPSAnLW1hcmNoPWFybXY4LWErY3JjJworICAgICAgY2RhdGEuc2V0KCdVU0VfQVJNVjhf Q1JDMzJDJywgZmFsc2UpCisgICAgICBjZGF0YS5zZXQoJ1VTRV9BUk1WOF9DUkMzMkNfV0lU SF9SVU5USU1FX0NIRUNLJywgMSkKKyAgICAgIGhhdmVfb3B0aW1pemVkX2NyYyA9IHRydWUK KyAgICBlbmRpZgogICBlbmRpZgogZW5kaWYKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv c3RvcmFnZS9zX2xvY2suaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc19sb2NrLmgKaW5kZXgg OGIxOWFiMTYwZi4uYWI2YTZlMDI4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFn ZS9zX2xvY2suaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCkBAIC03MDgs MTMgKzcwOCwyMSBAQCB0eXBlZGVmIExPTkcgc2xvY2tfdDsKICNkZWZpbmUgU1BJTl9ERUxB WSgpIHNwaW5fZGVsYXkoKQogCiAvKiBJZiB1c2luZyBWaXN1YWwgQysrIG9uIFdpbjY0LCBp bmxpbmUgYXNzZW1ibHkgaXMgdW5hdmFpbGFibGUuCi0gKiBVc2UgYSBfbW1fcGF1c2UgaW50 cmluc2ljIGluc3RlYWQgb2YgcmVwIG5vcC4KKyAqIFVzZSBfbW1fcGF1c2UgKHg2NCkgb3Ig X19pc2IgKGFybTY0KSBpbnRyaW5zaWMgaW5zdGVhZCBvZiByZXAgbm9wLgogICovCiAjaWYg ZGVmaW5lZChfV0lONjQpCiBzdGF0aWMgX19mb3JjZWlubGluZSB2b2lkCiBzcGluX2RlbGF5 KHZvaWQpCiB7CisjaWZkZWYgX01fQVJNNjQKKwkvKgorCSAqIFNlZSBzcGluX2RlbGF5IGFh cmNoNjQgaW5saW5lIGFzc2VtYmx5IGRlZmluaXRpb24gYWJvdmUgZm9yIGRldGFpbHMKKwkg KiByZWY6IGh0dHBzOi8vbGVhcm4ubWljcm9zb2Z0LmNvbS9lbi11cy9jcHAvaW50cmluc2lj cy9hcm02NC1pbnRyaW5zaWNzI0JhcnJpZXJSZXN0cmljdGlvbnMKKwkqLworCV9faXNiKF9B Uk02NF9CQVJSSUVSX1NZKTsKKyNlbHNlCiAJX21tX3BhdXNlKCk7CisjZW5kaWYKIH0KICNl bHNlCiBzdGF0aWMgX19mb3JjZWlubGluZSB2b2lkCmRpZmYgLS1naXQgYS9zcmMvcG9ydC9w Z19jcmMzMmNfYXJtdjguYyBiL3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OC5jCmluZGV4IDll MzAxZjk2ZjYuLjk4MTcxODc1MmYgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3BnX2NyYzMyY19h cm12OC5jCisrKyBiL3NyYy9wb3J0L3BnX2NyYzMyY19hcm12OC5jCkBAIC0xNCw3ICsxNCw5 IEBACiAgKi8KICNpbmNsdWRlICJjLmgiCiAKKyNpZm5kZWYgX01TQ19WRVIKICNpbmNsdWRl IDxhcm1fYWNsZS5oPgorI2VuZGlmCiAKICNpbmNsdWRlICJwb3J0L3BnX2NyYzMyYy5oIgog CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9NU0J1aWxkUHJvamVjdC5wbSBiL3NyYy90 b29scy9tc3ZjL01TQnVpbGRQcm9qZWN0LnBtCmluZGV4IDU4NTkwZmRhYzIuLjI3NGRkYzg4 NjAgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL01TQnVpbGRQcm9qZWN0LnBtCisrKyBi L3NyYy90b29scy9tc3ZjL01TQnVpbGRQcm9qZWN0LnBtCkBAIC0zMTAsMTAgKzMxMCwxOCBA QCBzdWIgV3JpdGVJdGVtRGVmaW5pdGlvbkdyb3VwCiAJICA6ICgkc2VsZi0+e3R5cGV9IGVx ICJkbGwiID8gJ0R5bmFtaWNMaWJyYXJ5JyA6ICdTdGF0aWNMaWJyYXJ5Jyk7CiAJbXkgJGxp YnMgPSAkc2VsZi0+R2V0QWRkaXRpb25hbExpbmtlckRlcGVuZGVuY2llcygkY2ZnbmFtZSwg JzsnKTsKIAotCW15ICR0YXJnZXRtYWNoaW5lID0KLQkgICRzZWxmLT57cGxhdGZvcm19IGVx ICdXaW4zMicgPyAnTWFjaGluZVg4NicgOiAnTWFjaGluZVg2NCc7Ci0JbXkgJGFyY2ggPQot CSAgJHNlbGYtPntwbGF0Zm9ybX0gZXEgJ1dpbjMyJyA/ICd4ODYnIDogJ3g4Nl82NCc7CisJ bXkgJHRhcmdldG1hY2hpbmU7CisJbXkgJGFyY2g7CisJaWYgKCRzZWxmLT57cGxhdGZvcm19 IGVxICdXaW4zMicpIHsKKwkJJHRhcmdldG1hY2hpbmUgPSAnTWFjaGluZVg4Nic7CisJCSRh cmNoID0gJ3g4Nic7CisJfSBlbHNpZiAoJHNlbGYtPntwbGF0Zm9ybX0gZXEgJ0FSTTY0Jyl7 CisJCSR0YXJnZXRtYWNoaW5lID0gJ01hY2hpbmVBUk02NCc7CisJCSRhcmNoID0gJ2FhcmNo NjQnOworCX0gZWxzZSB7CisJCSR0YXJnZXRtYWNoaW5lID0gJ01hY2hpbmVYNjQnOworCQkk YXJjaCA9ICd4ODZfNjQnOworCX0KIAogCW15ICRpbmNsdWRlcyA9IGpvaW4gJzsnLCBAeyAk c2VsZi0+e2luY2x1ZGVzfSB9LCAiIjsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL21zdmMv TWt2Y2J1aWxkLnBtIGIvc3JjL3Rvb2xzL21zdmMvTWt2Y2J1aWxkLnBtCmluZGV4IDdlNTJl OWFkMGEuLmM2ZThlOTFmNWYgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9tc3ZjL01rdmNidWls ZC5wbQorKysgYi9zcmMvdG9vbHMvbXN2Yy9Na3ZjYnVpbGQucG0KQEAgLTEyMyw4ICsxMjMs MTMgQEAgc3ViIG1rdmNidWlsZAogCiAJaWYgKCR2c1ZlcnNpb24gPj0gJzkuMDAnKQogCXsK LQkJcHVzaChAcGdwb3J0ZmlsZXMsICdwZ19jcmMzMmNfc3NlNDJfY2hvb3NlLmMnKTsKLQkJ cHVzaChAcGdwb3J0ZmlsZXMsICdwZ19jcmMzMmNfc3NlNDIuYycpOworCQlpZiAoJHNvbHV0 aW9uLT57cGxhdGZvcm19IGVxICdBUk02NCcpIHsKKwkJCXB1c2goQHBncG9ydGZpbGVzLCAn cGdfY3JjMzJjX2FybXY4X2Nob29zZS5jJyk7CisJCQlwdXNoKEBwZ3BvcnRmaWxlcywgJ3Bn X2NyYzMyY19hcm12OC5jJyk7CisJCX0gZWxzZSB7CisJCQlwdXNoKEBwZ3BvcnRmaWxlcywg J3BnX2NyYzMyY19zc2U0Ml9jaG9vc2UuYycpOworCQkJcHVzaChAcGdwb3J0ZmlsZXMsICdw Z19jcmMzMmNfc3NlNDIuYycpOworCQl9CiAJCXB1c2goQHBncG9ydGZpbGVzLCAncGdfY3Jj MzJjX3NiOC5jJyk7CiAJfQogCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy90b29scy9tc3ZjL1Nv bHV0aW9uLnBtIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KaW5kZXggYzJhY2I1OGRm MC4uNWViNGNjYjhmZiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0K KysrIGIvc3JjL3Rvb2xzL21zdmMvU29sdXRpb24ucG0KQEAgLTY3LDggKzY3LDEzIEBAIHN1 YiBEZXRlcm1pbmVQbGF0Zm9ybQogCQkjIEV4YW1pbmUgQ0wgaGVscCBvdXRwdXQgdG8gZGV0 ZXJtaW5lIGlmIHdlIGFyZSBpbiAzMiBvciA2NC1iaXQgbW9kZS4KIAkJbXkgJG91dHB1dCA9 IGBjbCAvaGVscCAyPiYxYDsKIAkJJD8gPj4gOCA9PSAwIG9yIGRpZSAiY2wgY29tbWFuZCBu b3QgZm91bmQiOwotCQkkc2VsZi0+e3BsYXRmb3JtfSA9Ci0JCSAgKCRvdXRwdXQgPX4gL15c L2Zhdm9yOjwuK0FNRDY0L20pID8gJ3g2NCcgOiAnV2luMzInOworCQlpZiAoJG91dHB1dCA9 fiAvXlwvZmF2b3I6PC4rQU1ENjQvbSkgeworCQkJJHNlbGYtPntwbGF0Zm9ybX0gPSAneDY0 JzsKKwkJfSBlbHNpZigkb3V0cHV0ID1+IC9mb3IgQVJNNjQkL20pIHsKKwkJCSRzZWxmLT57 cGxhdGZvcm19ID0gJ0FSTTY0JzsKKwkJfSBlbHNlIHsKKwkJCSRzZWxmLT57cGxhdGZvcm19 ID0gJ1dpbjMyJzsKKwkJfQogCX0KIAllbHNlCiAJewpAQCAtNDIzLDcgKzQyOCw3IEBAIHN1 YiBHZW5lcmF0ZUZpbGVzCiAJCVNURENfSEVBREVSUyAgICAgICAgICAgICAgICAgICAgICAg ID0+IDEsCiAJCVNUUkVSUk9SX1JfSU5UICAgICAgICAgICAgICAgICAgICAgID0+IHVuZGVm LAogCQlVU0VfQVJNVjhfQ1JDMzJDICAgICAgICAgICAgICAgICAgICA9PiB1bmRlZiwKLQkJ VVNFX0FSTVY4X0NSQzMyQ19XSVRIX1JVTlRJTUVfQ0hFQ0sgPT4gdW5kZWYsCisJCVVTRV9B Uk1WOF9DUkMzMkNfV0lUSF9SVU5USU1FX0NIRUNLID0+ICRzZWxmLT57cGxhdGZvcm19IGVx ICJBUk02NCIgPyA6IDEgOiB1bmRlZiwKIAkJVVNFX0FTU0VSVF9DSEVDS0lORyA9PiAkc2Vs Zi0+e29wdGlvbnN9LT57YXNzZXJ0c30gPyAxIDogdW5kZWYsCiAJCVVTRV9CT05KT1VSICAg ICAgICAgPT4gdW5kZWYsCiAJCVVTRV9CU0RfQVVUSCAgICAgICAgPT4gdW5kZWYsCmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvbXN2Yy9nZW5kZWYucGwgYi9zcmMvdG9vbHMvbXN2Yy9nZW5k ZWYucGwKaW5kZXggZDZiZWQxY2UxNS4uYWQxY2Y4NmViZCAxMDA2NDQKLS0tIGEvc3JjL3Rv b2xzL21zdmMvZ2VuZGVmLnBsCisrKyBiL3NyYy90b29scy9tc3ZjL2dlbmRlZi5wbApAQCAt MTIwLDkgKzEyMCw5IEBAIHN1YiB3cml0ZWRlZgogCXsKIAkJbXkgJGlzZGF0YSA9ICRkZWYt PnskZn0gZXEgJ2RhdGEnOwogCi0JCSMgU3RyaXAgdGhlIGxlYWRpbmcgdW5kZXJzY29yZSBm b3Igd2luMzIsIGJ1dCBub3QgeDY0CisJCSMgU3RyaXAgdGhlIGxlYWRpbmcgdW5kZXJzY29y ZSBmb3Igd2luMzIsIGJ1dCBub3QgeDY0IGFuZCBhYXJjaDY0CiAJCSRmID1+IHMvXl8vLwot CQkgIHVubGVzcyAoJGFyY2ggZXEgIng4Nl82NCIpOworCQkgIHVubGVzcyAoJGFyY2ggbmUg Ing4NiIpOwogCiAJCSMgRW1pdCBqdXN0IHRoZSBuYW1lIGlmIGl0J3MgYSBmdW5jdGlvbiBz eW1ib2wsIG9yIGVtaXQgdGhlIG5hbWUKIAkJIyBkZWNvcmF0ZWQgd2l0aCB0aGUgREFUQSBv cHRpb24gZm9yIHZhcmlhYmxlcy4KQEAgLTE0Myw3ICsxNDMsNyBAQCBzdWIgd3JpdGVkZWYK IHN1YiB1c2FnZQogewogCWRpZSgiVXNhZ2U6IGdlbmRlZi5wbCAtLWFyY2ggPGFyY2g+IC0t ZGVmZmlsZSA8ZGVmZmlsZT4gLS10ZW1wZGlyIDx0ZW1wZGlyPiBmaWxlcy1vci1kaXJlY3Rv cmllc1xuIgotCQkgIC4gIiAgICBhcmNoOiB4ODYgfCB4ODZfNjRcbiIKKwkJICAuICIgICAg YXJjaDogeDg2IHwgeDg2XzY0IHwgYWFyY2g2NCBcbiIKIAkJICAuICIgICAgZGVmZmlsZTog cGF0aCBvZiB0aGUgZ2VuZXJhdGVkIGZpbGVcbiIKIAkJICAuICIgICAgdGVtcGRpcjogZGly ZWN0b3J5IGZvciB0ZW1wb3JhcnkgZmlsZXNcbiIKIAkJICAuICIgICAgZmlsZXMgb3IgZGly ZWN0b3JpZXM6IG9iamVjdCBmaWxlcyBvciBkaXJlY3RvcnkgY29udGFpbmluZyBvYmplY3Qg ZmlsZXNcbiIKQEAgLTE2MCw3ICsxNjAsNyBAQCBHZXRPcHRpb25zKAogCSd0ZW1wZGlyOnMn ID0+IFwkdGVtcGRpciwpIG9yIHVzYWdlKCk7CiAKIHVzYWdlKCJhcmNoOiAkYXJjaCIpCi0g IHVubGVzcyAoJGFyY2ggZXEgJ3g4NicgfHwgJGFyY2ggZXEgJ3g4Nl82NCcpOworICB1bmxl c3MgKCRhcmNoIGVxICd4ODYnIHx8ICRhcmNoIGVxICd4ODZfNjQnIHx8ICRhcmNoIGVxICdh YXJjaDY0Jyk7CiAKIG15IEBmaWxlczsKIAotLSAKMi4zOC4xLndpbmRvd3MuMQoK --------------ATzS10WvJqtDCD0R93wjvHSO--