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 1q7Q7l-0006h6-28 for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Jun 2023 00:37:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q7Q7i-00055N-9o for pgsql-hackers@arkaria.postgresql.org; Fri, 09 Jun 2023 00:37:02 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q7Q7h-00054a-AT for pgsql-hackers@lists.postgresql.org; Fri, 09 Jun 2023 00:37:01 +0000 Received: from mail-pf1-x42e.google.com ([2607:f8b0:4864:20::42e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1q7Q7Z-000z6t-Re for pgsql-hackers@lists.postgresql.org; Fri, 09 Jun 2023 00:36:59 +0000 Received: by mail-pf1-x42e.google.com with SMTP id d2e1a72fcca58-6549df4321aso1212148b3a.2 for ; Thu, 08 Jun 2023 17:36:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1686271013; x=1688863013; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=ZAB5aOd/EHQut4Frz0MzRPgbPgD7Mbb9w/LfEOwroes=; b=OBp/WxZ9666iv9NH7BDdFTkWDdwno4aabgq1hoGk9aM38hwdoJNig3hp5k/i2ZnP5Z qZwcxnZzNJ9MmmZ3E3reMFxlrasW/ZiME7fyaSaHX0lCLU/FY4be+T0ETULN8AE8TKwL 1G6SWEGGKsjcpsn5VYPWV7aEdzLosUakrPEq9edgzOtft5pbYHT0gkZBzJYNPEnX7u4q +8SlPUz1GuPv0iDZKa26JqzbQqAYZGyliSCyPyq6DAURSZ5rs+Srnfx8goyY/Ltp5nH6 fb94wUZBz26+sGq9uWiuS58ucsUX0GQppaKAZkRKmJurnpLflC7e6fIaiSuKPKLmHIaF rQ7w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686271013; x=1688863013; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=ZAB5aOd/EHQut4Frz0MzRPgbPgD7Mbb9w/LfEOwroes=; b=RHaR784fREB90i04UmRViXiVsgA0USF95aXVjr7dd+9k5ebFej08p9rbCZJrbM8y7J BIICXw54s0gZvEj14v20rfrf4i+HVCxptF3whTQlu+0Hell18kCh1huUV62xfnLhekRy E+/3n3BPKUXBcZH40oMAylX2MHmFI6MiRZ6XFyXImPdv2uzmx8fSbaY+zWEy12fBy85r 4CIsoOFAPnC2Jr7hm2EfDB4hAGo9TtWUUycD+44fQxUHo1nrOLkBt0kInb/IFv509cNx /MbAun8MnUS9lD2btsy5nVmclZTAp01mLfDZqLSWEMfP2cxfbaIk9TiKvVZOX9sdnpYQ eueg== X-Gm-Message-State: AC+VfDzBpJVw91jQk3789Oi7ciRcsPE4q/gwr7T2LgB3y13HdgL0kIr4 i2IQysqCRlAXfmB7hOdmc1rVeA== X-Google-Smtp-Source: ACHHUZ5zSwy2hmBNQU8d+6ltdhkwyix+PZ86KtStzhD8VnaCiDB4jVFRSZFgVWlCLoPM+5ApBQzpvA== X-Received: by 2002:a05:6a00:194d:b0:656:e7a2:5322 with SMTP id s13-20020a056a00194d00b00656e7a25322mr12653707pfk.26.1686271012652; Thu, 08 Jun 2023 17:36:52 -0700 (PDT) Received: from [172.18.7.14] ([12.126.244.130]) by smtp.gmail.com with ESMTPSA id v3-20020aa78503000000b00639fc7124c2sm1634816pfn.148.2023.06.08.17.36.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 17:36:51 -0700 (PDT) Message-ID: <73f97db9a37fd281bd5077ce16383cd8006b1f59.camel@j-davis.com> Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Andrew Gierth , Joe Conway Cc: Tom Lane , Robert Haas , Daniel Verite , Peter Eisentraut , pgsql-hackers@lists.postgresql.org Date: Thu, 08 Jun 2023 17:36:50 -0700 In-Reply-To: <87sfb4gwgv.fsf@news-spur.riddles.org.uk> References: <45f0cd77-9c85-4c5e-9396-adbccdb635e2@manitou-mail.org> <221408.1686079526@sss.pgh.pa.us> <225170.1686081345@sss.pgh.pa.us> <531936a9-31cb-9734-5a66-7c210133cc1b@joeconway.com> <87sfb4gwgv.fsf@news-spur.riddles.org.uk> Content-Type: multipart/mixed; boundary="=-MrjU+V4I1ffFIWdKrBIv" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-MrjU+V4I1ffFIWdKrBIv Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2023-06-06 at 21:37 +0100, Andrew Gierth wrote: > > > > >=20 > I like either "internal" or "builtin" because they correctly identify > that no external resources are used. I'm not keen on "postgresql". "builtin" seems to be the winner. New patch series attached with doc and test updates. This has been a long discussion (it's a messy problem), but I think I've addressed the most important concerns raised. If you disagree with something, please indicate whether it's an objection, or a more minor difference of opinion that I can weigh against other opinions. Also please indicate if you think something is out of scope for 16. Patches 0001, 0002: These patches implement the built-in provider and automatically change provider=3Dicu to provider=3Dbuiltin when the locale is C. Other approaches were considered: * Pretend that ICU can support the C locale, and use similar checks throughout the code like the libc provider does: This was somewhat of a hack, and had potential issues with upgraded clusters, and several people seemed to reject it. * Switch to the libc provider for the C locale: would make the libc provider even more complicated and had some potential for confusion, and also has catalog representation problems when --locale is specified along with --lc-ctype. Ultimately we need to choose one approach, and the built-in provider seems the nicest (though most invasive). It reflects the reality that we don't actually use libc or icu for the C locale, and it's nicer to document. The builtin provider seemed to get the most support. Patch 0003: Makes LOCALE apply to all providers. The overall feel after this patch is that "locale" now means the collation locale, and LC_COLLATE/LC_CTYPE are for the server environment. When using libc, LC_COLLATE and LC_CTYPE still work as they did before, but their relationship to database collation feels more like a special case of the libc provider. I believe most people favor this patch and I haven't seen recent objections. I didn't find any surprising behaviors, but there are a few that I'd like to draw attention to: 0. If you initdb with --locale-provider=3Dlibc, and don't specify ICU at any later point, then none of these changes should affect you and you'll remain on libc. If someone notices otherwise, please let me know. 1. If you specify --locale-provider=3Dbuiltin at initdb time, you *must* specify --locale=3DC/POSIX, otherwise you get an error. 2. Patch 0004 is possibly out of scope for 16, but it felt consistent with the other UI changes and low risk. Please try with/without before objecting. 3. Daniel Verite felt that we should only change the provider from ICU to "builtin" for the C locale if the provider is defaulting to ICU; not if it's specified as ICU. I did not differentiate between specifying ICU and defaulting to ICU because: a. "libc" unconditionally uses the built-in memcmp() logic for C, it never actually uses libc b. If a user really wants the root locale or the en-US-u-va-posix locale, they can specify those directly c. I don't see any plausible case where it helps a user to keep provider=3Dicu when locale=3DC. 4. Joe Conway and Peter Eisentraut both felt that C.UTF-8 with provider=3Dicu should not be changed to use the builtin provider, and instead passed on to ICU. I implemented a compromise where initdb will change C.UTF-8 to the built-in provider; but CREATE DATABASE/COLLATION will pass it along to ICU (which may support it as en-US-u-va-posix in some versions, or may throw an error in other versions). My reasoning is that initdb is pulling from the environment, and we should try harder to succeed on any reasonable environmental settings (otherwise initdb with default settings could fail); whereas we can be more strict with CREATE DATABASE/COLLATION. 5. For the built-in provider, initdb defaults to UTF-8 rather than SQL_ASCII. Otherwise, you would be unable to use ICU at all later, because ICU doesn't support SQL_ASCII. --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-MrjU+V4I1ffFIWdKrBIv Content-Disposition: attachment; filename="v10-0001-Introduce-collation-provider-builtin.patch" Content-Type: text/x-patch; name="v10-0001-Introduce-collation-provider-builtin.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiOWEyN2M5NTM2YzRjYzJhNzQ4YTI5M2ZiMDk1ZTk4NWVlYzlkZTdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEgTWF5IDIwMjMgMTU6Mzg6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIIHYxMCAxLzRdIElu dHJvZHVjZSBjb2xsYXRpb24gcHJvdmlkZXIgImJ1aWx0aW4iLgoKT25seSBzdXBwb3J0cyBsb2Nh bGUgIkMiIChvciBlcXVpdmFsZW50bHksICJQT1NJWCIpLiBQcm92aWRlcwpsb2NhbGUtdW5hd2Fy ZSBzZW1hbnRpY3MgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgZmFzdCBieXRlIG9wZXJhdGlvbnMK aW4gUG9zdGdyZXMsIGluZGVwZW5kZW50IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9yIGFueSBw cm92aWRlcgpsaWJyYXJpZXMuCgpFcXVpdmFsZW50IChpbiBzZW1hbnRpY3MgYW5kIGltcGxlbWVu dGF0aW9uKSB0byB0aGUgbGliYyBwcm92aWRlciB3aXRoCmxvY2FsZSAiQyIsIGV4Y2VwdCB0aGF0 IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIGNhbiBiZSBzZXQKaW5kZXBlbmRlbnRseS4KClVzZSBw cm92aWRlciAiYnVpbHRpbiIgZm9yIGJ1aWx0LWluIGNvbGxhdGlvbiAidWNzX2Jhc2ljIiBpbnN0 ZWFkIG9mCmxpYmMuCgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2FiOTI1ZjY5LTVm OWQtZjg1ZS1iODdjLWJkMmE0NDc5ODY1OUBqb2Vjb253YXkuY29tCi0tLQogZG9jL3NyYy9zZ21s L2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgfCAgODkgKysrKysrKysrKysrKysrKystLS0tCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbCB8ICAxMSArKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwgIHwgICA4ICstCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZWRiLnNnbWwgICAgICAgICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIu c2dtbCAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29sbGF0aW9u LmMgICAgIHwgICA3ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMgICB8 IDEwMyArKysrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kYmNv bW1hbmRzLmMgICAgICB8ICA2OSArKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZS5jICAgICAgfCAgMjcgKysrKysrLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5p dC9wb3N0aW5pdC5jICAgICAgfCAgMTAgKystCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAgICAg ICAgICAgICAgICB8ICAyNCArKysrLS0KIHNyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbCAg ICAgICAgIHwgIDQ3ICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAg ICAgICAgICB8ICA0OSArKysrKysrKystLS0KIHNyYy9iaW4vcGdfdXBncmFkZS90LzAwMl9wZ191 cGdyYWRlLnBsIHwgIDM1ICsrKysrKystLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAg ICAgICAgICAgfCAgIDQgKy0KIHNyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jICAgICAgICAgICAg IHwgICAyICstCiBzcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwgICAgICB8ICA1NiAr KysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmggICAgICAgfCAg IDIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmRhdCAgIHwgICAzICstCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5oICAgICB8ICAgMyArCiBzcmMvdGVzdC9p Y3UvdC8wMTBfZGF0YWJhc2UucGwgICAgICAgICB8ICAgOSArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sbGF0ZS5vdXQgIHwgIDI1ICsrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y29sbGF0ZS5zcWwgICAgICAgfCAgMTAgKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCA1MTkgaW5zZXJ0 aW9ucygrKSwgODMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NoYXJz ZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKaW5kZXggZWQ4NDQ2NTk5Ni4uYjM4 Y2Y4MmY4MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvY2hhcnNldC5zZ21sCkBAIC0zNDIsMjIgKzM0MiwxNCBAQCBpbml0ZGIgLS1sb2Nh bGU9c3ZfU0UKICAgIDx0aXRsZT5Mb2NhbGUgUHJvdmlkZXJzPC90aXRsZT4KIAogICAgPHBhcmE+ Ci0gICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBzdXBwb3J0cyBtdWx0 aXBsZSA8Zmlyc3R0ZXJtPmxvY2FsZQotICAgIHByb3ZpZGVyczwvZmlyc3R0ZXJtPi4gIFRoaXMg c3BlY2lmaWVzIHdoaWNoIGxpYnJhcnkgc3VwcGxpZXMgdGhlIGxvY2FsZQotICAgIGRhdGEuICBP bmUgc3RhbmRhcmQgcHJvdmlkZXIgbmFtZSBpcyA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiwgd2hp Y2ggdXNlcwotICAgIHRoZSBsb2NhbGVzIHByb3ZpZGVkIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVt IEMgbGlicmFyeS4gIFRoZXNlIGFyZSB0aGUKLSAgICBsb2NhbGVzIHVzZWQgYnkgbW9zdCB0b29s cyBwcm92aWRlZCBieSB0aGUgb3BlcmF0aW5nIHN5c3RlbS4gIEFub3RoZXIKLSAgICBwcm92aWRl ciBpcyA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+LCB3aGljaCB1c2VzIHRoZSBleHRlcm5hbAotICAg IElDVTxpbmRleHRlcm0+PHByaW1hcnk+SUNVPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPiBsaWJyYXJ5 LiAgSUNVIGxvY2FsZXMgY2FuCi0gICAgb25seSBiZSB1c2VkIGlmIHN1cHBvcnQgZm9yIElDVSB3 YXMgY29uZmlndXJlZCB3aGVuIFBvc3RncmVTUUwgd2FzIGJ1aWx0LgorICAgIEEgbG9jYWxlIHBy b3ZpZGVyIHNwZWNpZmllcyB3aGljaCBsaWJyYXJ5IGRlZmluZXMgdGhlIGxvY2FsZSBiZWhhdmlv ciBmb3IKKyAgICBjb2xsYXRpb25zIGFuZCBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb25zLgogICAg PC9wYXJhPgogCiAgICA8cGFyYT4KICAgICBUaGUgY29tbWFuZHMgYW5kIHRvb2xzIHRoYXQgc2Vs ZWN0IHRoZSBsb2NhbGUgc2V0dGluZ3MsIGFzIGRlc2NyaWJlZAotICAgIGFib3ZlLCBlYWNoIGhh dmUgYW4gb3B0aW9uIHRvIHNlbGVjdCB0aGUgbG9jYWxlIHByb3ZpZGVyLiAgVGhlIGV4YW1wbGVz Ci0gICAgc2hvd24gZWFybGllciBhbGwgdXNlIHRoZSA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiBw cm92aWRlciwgd2hpY2ggaXMgdGhlCi0gICAgZGVmYXVsdC4gIEhlcmUgaXMgYW4gZXhhbXBsZSB0 byBpbml0aWFsaXplIGEgZGF0YWJhc2UgY2x1c3RlciB1c2luZyB0aGUKLSAgICBJQ1UgcHJvdmlk ZXI6CisgICAgYWJvdmUsIGVhY2ggaGF2ZSBhbiBvcHRpb24gdG8gc2VsZWN0IHRoZSBsb2NhbGUg cHJvdmlkZXIuIEhlcmUgaXMgYW4KKyAgICBleGFtcGxlIHRvIGluaXRpYWxpemUgYSBkYXRhYmFz ZSBjbHVzdGVyIHVzaW5nIHRoZSBJQ1UgcHJvdmlkZXI6CiA8cHJvZ3JhbWxpc3Rpbmc+CiBpbml0 ZGIgLS1sb2NhbGUtcHJvdmlkZXI9aWN1IC0taWN1LWxvY2FsZT1lbgogPC9wcm9ncmFtbGlzdGlu Zz4KQEAgLTM3MCwxMiArMzYyLDc1IEBAIGluaXRkYiAtLWxvY2FsZS1wcm92aWRlcj1pY3UgLS1p Y3UtbG9jYWxlPWVuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFdoaWNoIGxvY2FsZSBw cm92aWRlciB0byB1c2UgZGVwZW5kcyBvbiBpbmRpdmlkdWFsIHJlcXVpcmVtZW50cy4gIEZvciBt b3N0Ci0gICAgYmFzaWMgdXNlcywgZWl0aGVyIHByb3ZpZGVyIHdpbGwgZ2l2ZSBhZGVxdWF0ZSBy ZXN1bHRzLiAgRm9yIHRoZSBsaWJjCi0gICAgcHJvdmlkZXIsIGl0IGRlcGVuZHMgb24gd2hhdCB0 aGUgb3BlcmF0aW5nIHN5c3RlbSBvZmZlcnM7IHNvbWUgb3BlcmF0aW5nCi0gICAgc3lzdGVtcyBh cmUgYmV0dGVyIHRoYW4gb3RoZXJzLiAgRm9yIGFkdmFuY2VkIHVzZXMsIElDVSBvZmZlcnMgbW9y ZSBsb2NhbGUKLSAgICB2YXJpYW50cyBhbmQgY3VzdG9taXphdGlvbiBvcHRpb25zLgorICAgIFJl Z2FyZGxlc3Mgb2YgdGhlIGxvY2FsZSBwcm92aWRlciwgdGhlIG9wZXJhdGluZyBzeXN0ZW0gaXMg c3RpbGwgdXNlZCB0bworICAgIHByb3ZpZGUgc29tZSBsb2NhbGUtYXdhcmUgYmVoYXZpb3IsIHN1 Y2ggYXMgbWVzc2FnZXMgKHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9Imd1Yy1sYy1tZXNzYWdlcyIv PikuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBhdmFpbGFibGUgbG9jYWxlIHBy b3ZpZGVycyBhcmUgbGlzdGVkIGJlbG93LgorICAgPC9wYXJhPgorCisgICA8c2VjdDMgaWQ9Imxv Y2FsZS1wcm92aWRlci1idWlsdGluIj4KKyAgICA8dGl0bGU+QnVpbHRpbjwvdGl0bGU+CisgICAg PHBhcmE+CisgICAgIFRoZSA8bGl0ZXJhbD5idWlsdGluPC9saXRlcmFsPiBwcm92aWRlciB1c2Vz IHNpbXBsZSBidWlsdC1pbiBvcGVyYXRpb25zCisgICAgIHdoaWNoIGFyZSBub3QgbG9jYWxlLWF3 YXJlLiBPbmx5IHRoZSA8bGl0ZXJhbD5DPC9saXRlcmFsPiAob3IKKyAgICAgZXF1aXZhbGVudGx5 LCA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4pIGxvY2FsZXMgYXJlIHN1cHBvcnRlZCBmb3IgdGhp cworICAgICBwcm92aWRlci4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIFRoZSBjb2xs YXRpb24gYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiBiZWhhdmlvciBpcyBlcXVpdmFsZW50 IHRvCisgICAgIHVzaW5nIHRoZSA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiBwcm92aWRlciB3aXRo IGxvY2FsZQorICAgICA8bGl0ZXJhbD5DPC9saXRlcmFsPiwgZXhjZXB0IHRoYXQgPGxpdGVyYWw+ TENfQ09MTEFURTwvbGl0ZXJhbD4gYW5kCisgICAgIDxsaXRlcmFsPkxDX0NUWVBFPC9saXRlcmFs PiBjYW4gYmUgc2V0IGluZGVwZW5kZW50bHkuCisgICAgPC9wYXJhPgorICAgIDxub3RlPgorICAg ICA8cGFyYT4KKyAgICAgIFdoZW4gdXNpbmcgdGhlIDxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+ IGxvY2FsZSBwcm92aWRlciwgYmVoYXZpb3IgbWF5CisgICAgICBkZXBlbmQgb24gdGhlIGRhdGFi YXNlIGVuY29kaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9ub3RlPgorICAgPC9zZWN0Mz4KKyAg IDxzZWN0MyBpZD0ibG9jYWxlLXByb3ZpZGVyLWljdSI+CisgICAgPHRpdGxlPklDVTwvdGl0bGU+ CisgICAgPHBhcmE+CisgICAgIFRoZSA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+IHByb3ZpZGVyIHVz ZXMgdGhlIGV4dGVybmFsCisgICAgIElDVTxpbmRleHRlcm0+PHByaW1hcnk+SUNVPC9wcmltYXJ5 PjwvaW5kZXh0ZXJtPgorICAgICBsaWJyYXJ5LiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IG11c3QgaGF2ZSBiZWVuIGNvbmZpZ3VyZWQKKyAgICAgd2l0aCBzdXBwb3J0Lgor ICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgSUNVIHByb3ZpZGVzIGNvbGxhdGlvbiBhbmQg Y2hhcmFjdGVyIGNsYXNzaWZpY2F0aW9uIGJlaGF2aW9yIHRoYXQgaXMKKyAgICAgaW5kZXBlbmRl bnQgb2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gYW5kIGRhdGFiYXNlIGVuY29kaW5nLCB3aGljaCBp cworICAgICBwcmVmZXJhYmxlIGlmIHlvdSBleHBlY3QgdG8gdHJhbnNpdGlvbiB0byBvdGhlciBw bGF0Zm9ybXMgd2l0aG91dCBhbnkKKyAgICAgY2hhbmdlIGluIHJlc3VsdHMuIDxsaXRlcmFsPkxD X0NPTExBVEU8L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4g Y2FuIGJlIHNldCBpbmRlcGVuZGVudGx5IG9mIHRoZSBJQ1UgbG9jYWxlLgorICAgIDwvcGFyYT4K KyAgICA8bm90ZT4KKyAgICAgPHBhcmE+CisgICAgICBGb3IgdGhlIElDVSBwcm92aWRlciwgcmVz dWx0cyBtYXkgZGVwZW5kIG9uIHRoZSB2ZXJzaW9uIG9mIHRoZSBJQ1UKKyAgICAgIGxpYnJhcnkg dXNlZCwgYXMgaXQgaXMgdXBkYXRlZCB0byByZWZsZWN0IGNoYW5nZXMgaW4gbmF0dXJhbCBsYW5n dWFnZQorICAgICAgb3ZlciB0aW1lLgorICAgICA8L3BhcmE+CisgICAgPC9ub3RlPgorICAgPC9z ZWN0Mz4KKyAgIDxzZWN0MyBpZD0ibG9jYWxlLXByb3ZpZGVyLWxpYmMiPgorICAgIDx0aXRsZT5s aWJjPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgVGhlIDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+ IHByb3ZpZGVyIHVzZXMgdGhlIG9wZXJhdGluZyBzeXN0ZW0ncyBDCisgICAgIGxpYnJhcnkuIFRo ZSBjb2xsYXRpb24gYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiBiZWhhdmlvciBpcworICAg ICBjb250cm9sbGVkIGJ5IHRoZSBzZXR0aW5ncyA8bGl0ZXJhbD5MQ19DT0xMQVRFPC9saXRlcmFs PiBhbmQKKyAgICAgPGxpdGVyYWw+TENfQ1RZUEU8L2xpdGVyYWw+LCBzbyB0aGV5IGNhbm5vdCBi ZSBzZXQgaW5kZXBlbmRlbnRseS4KKyAgICA8L3BhcmE+CisgICAgPG5vdGU+CisgICAgIDxwYXJh PgorICAgICAgVGhlIHNhbWUgbG9jYWxlIG5hbWUgbWF5IGhhdmUgZGlmZmVyZW50IGJlaGF2aW9y IG9uIGRpZmZlcmVudCBwbGF0Zm9ybXMKKyAgICAgIHdoZW4gdXNpbmcgdGhlIGxpYmMgcHJvdmlk ZXIuCisgICAgIDwvcGFyYT4KKyAgICA8L25vdGU+CisgICA8L3NlY3QzPgorCiAgIDwvc2VjdDI+ CiAgIDxzZWN0MiBpZD0iaWN1LWxvY2FsZXMiPgogICAgPHRpdGxlPklDVSBMb2NhbGVzPC90aXRs ZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKaW5kZXggZjYzNTNkYTVjMS4u YzYzYTM1MGMxZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9u LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKQEAgLTg5 LDYgKzg5LDExIEBAIENSRUFURSBDT0xMQVRJT04gWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlCiAgICAgICAgYW5kIDxzeW1ib2w+ TENfQ1RZUEU8L3N5bWJvbD4gYXQgb25jZS4gIElmIHlvdSBzcGVjaWZ5IHRoaXMsCiAgICAgICAg eW91IGNhbm5vdCBzcGVjaWZ5IGVpdGhlciBvZiB0aG9zZSBwYXJhbWV0ZXJzLgogICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgPHJlcGxhY2VhYmxlPnByb3ZpZGVyPC9yZXBs YWNlYWJsZT4gaXMgPGxpdGVyYWw+YnVpbHRpbjwvbGl0ZXJhbD4sCisgICAgICAgdGhlbiA8cmVw bGFjZWFibGU+bG9jYWxlPC9yZXBsYWNlYWJsZT4gbXVzdCBiZSBzcGVjaWZpZWQgYW5kIHNldCB0 bworICAgICAgIGVpdGhlciA8bGl0ZXJhbD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwv bGl0ZXJhbD4uCisgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0 ZW50cnk+CiAKQEAgLTEyMCw5ICsxMjUsOSBAQCBDUkVBVEUgQ09MTEFUSU9OIFsgSUYgTk9UIEVY SVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gRlJPTSA8cmVwbGFjZQogICAg ICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT4KICAgICAgICBTcGVjaWZpZXMgdGhlIHByb3ZpZGVy IHRvIHVzZSBmb3IgbG9jYWxlIHNlcnZpY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCi0gICAgICAg Y29sbGF0aW9uLiAgUG9zc2libGUgdmFsdWVzIGFyZQotICAgICAgIDxsaXRlcmFsPmljdTwvbGl0 ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4KLSAgICAg ICAoaWYgdGhlIHNlcnZlciB3YXMgYnVpbHQgd2l0aCBJQ1Ugc3VwcG9ydCkgb3IgPGxpdGVyYWw+ bGliYzwvbGl0ZXJhbD4uCisgICAgICAgY29sbGF0aW9uLiAgUG9zc2libGUgdmFsdWVzIGFyZSA8 bGl0ZXJhbD5idWlsdGluPC9saXRlcmFsPiwKKyAgICAgICA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+ PGluZGV4dGVybT48cHJpbWFyeT5JQ1U8L3ByaW1hcnk+PC9pbmRleHRlcm0+IChpZgorICAgICAg IHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdpdGggSUNVIHN1cHBvcnQpIG9yIDxsaXRlcmFsPmxpYmM8 L2xpdGVyYWw+LgogICAgICAgIDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0 LiAgU2VlIDx4cmVmCiAgICAgICAgbGlua2VuZD0ibG9jYWxlLXByb3ZpZGVycyIvPiBmb3IgZGV0 YWlscy4KICAgICAgIDwvcGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2RhdGFiYXNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sCmlu ZGV4IDEzNzkzYmI2YjcuLjU2NTVkNmM4MjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2RhdGFiYXNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJh c2Uuc2dtbApAQCAtMTQ4LDYgKzE0OCwxMiBAQCBDUkVBVEUgREFUQUJBU0UgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICAgICBUaGlzIGlzIGEg c2hvcnRjdXQgZm9yIHNldHRpbmcgPHN5bWJvbD5MQ19DT0xMQVRFPC9zeW1ib2w+CiAgICAgICAg IGFuZCA8c3ltYm9sPkxDX0NUWVBFPC9zeW1ib2w+IGF0IG9uY2UuCiAgICAgICAgPC9wYXJhPgor ICAgICAgIDxwYXJhPgorICAgICAgICBJZiA8eHJlZiBsaW5rZW5kPSJjcmVhdGUtZGF0YWJhc2Ut bG9jYWxlLXByb3ZpZGVyIi8+IGlzCisgICAgICAgIDxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+ LCB0aGVuIDxyZXBsYWNlYWJsZT5sb2NhbGU8L3JlcGxhY2VhYmxlPgorICAgICAgICBtdXN0IGJl IHNwZWNpZmllZCBhbmQgc2V0IHRvIGVpdGhlciA8bGl0ZXJhbD5DPC9saXRlcmFsPiBvcgorICAg ICAgICA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPgogICAgICAgIDx0 aXA+CiAgICAgICAgIDxwYXJhPgogICAgICAgICAgVGhlIG90aGVyIGxvY2FsZSBzZXR0aW5ncyA8 eHJlZiBsaW5rZW5kPSJndWMtbGMtbWVzc2FnZXMiLz4sIDx4cmVmCkBAIC0yMTIsNyArMjE4LDcg QEAgQ1JFQVRFIERBVEFCQVNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgU3Bl Y2lmaWVzIHRoZSBwcm92aWRlciB0byB1c2UgZm9yIHRoZSBkZWZhdWx0IGNvbGxhdGlvbiBpbiB0 aGlzCi0gICAgICAgIGRhdGFiYXNlLiAgUG9zc2libGUgdmFsdWVzIGFyZQorICAgICAgICBkYXRh YmFzZS4gIFBvc3NpYmxlIHZhbHVlcyBhcmUgPGxpdGVyYWw+YnVpbHRpbjwvbGl0ZXJhbD4sCiAg ICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD48aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJp bWFyeT48L2luZGV4dGVybT4KICAgICAgICAgKGlmIHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdpdGgg SUNVIHN1cHBvcnQpIG9yIDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+LgogICAgICAgICBCeSBkZWZh dWx0LCB0aGUgcHJvdmlkZXIgaXMgdGhlIHNhbWUgYXMgdGhhdCBvZiB0aGUgPHhyZWYKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlZGIuc2dtbAppbmRleCBlMjM0MTliYTZjLi5lZTQ2NDQ4MThkIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVh dGVkYi5zZ21sCkBAIC0xNjgsNyArMTY4LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAg ICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgICA8dGVybT48 b3B0aW9uPi0tbG9jYWxlLXByb3ZpZGVyPXs8bGl0ZXJhbD5saWJjPC9saXRlcmFsPnw8bGl0ZXJh bD5pY3U8L2xpdGVyYWw+fTwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS1s b2NhbGUtcHJvdmlkZXI9ezxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+fDxsaXRlcmFsPmxpYmM8 L2xpdGVyYWw+fDxsaXRlcmFsPmljdTwvbGl0ZXJhbD59PC9vcHRpb24+PC90ZXJtPgogICAgICAg PGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSBw cm92aWRlciBmb3IgdGhlIGRhdGFiYXNlJ3MgZGVmYXVsdCBjb2xsYXRpb24uCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIu c2dtbAppbmRleCA4Nzk0NWI0YjYyLi45NmY4NGRjOGNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2luaXRkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAg LTI5NCw2ICsyOTQsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgIGVudmly b25tZW50IHRoYXQgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPiBydW5zIGluLiBMb2NhbGUKICAg ICAgICAgc3VwcG9ydCBpcyBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0ibG9jYWxlIi8+Lgog ICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgPG9wdGlvbj4tLWxvY2Fs ZS1wcm92aWRlcjwvb3B0aW9uPiBpcyA8bGl0ZXJhbD5idWlsdGluPC9saXRlcmFsPiwKKyAgICAg ICAgPG9wdGlvbj4tLWxvY2FsZTwvb3B0aW9uPiBtdXN0IGJlIHNwZWNpZmllZCBhbmQgc2V0IHRv CisgICAgICAgIDxsaXRlcmFsPkM8L2xpdGVyYWw+IChvciBlcXVpdmFsZW50bHksIDxsaXRlcmFs PlBPU0lYPC9saXRlcmFsPikuCisgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAg ICAgPC92YXJsaXN0ZW50cnk+CiAKQEAgLTMyMyw3ICszMjgsNyBAQCBQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKICAgICAgPHZhcmxpc3RlbnRyeSBpZD0i YXBwLWluaXRkYi1vcHRpb24tbG9jYWxlLXByb3ZpZGVyIj4KLSAgICAgIDx0ZXJtPjxvcHRpb24+ LS1sb2NhbGUtcHJvdmlkZXI9ezxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+fDxsaXRlcmFsPmljdTwv bGl0ZXJhbD59PC9vcHRpb24+PC90ZXJtPgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWxvY2FsZS1w cm92aWRlcj17PGxpdGVyYWw+YnVpbHRpbjwvbGl0ZXJhbD58PGxpdGVyYWw+bGliYzwvbGl0ZXJh bD58PGxpdGVyYWw+aWN1PC9saXRlcmFsPn08L29wdGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgb3B0aW9uIHNldHMgdGhlIGxvY2FsZSBw cm92aWRlciBmb3IgZGF0YWJhc2VzIGNyZWF0ZWQgaW4gdGhlIG5ldwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y29sbGF0aW9uLmMKaW5kZXggZmQwMjJlNmZjMi4uMGIxYmEzNTliNiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX2NvbGxhdGlvbi5jCkBAIC02OCw3ICs2OCwxMiBAQCBDb2xsYXRpb25DcmVhdGUoY29uc3Qg Y2hhciAqY29sbG5hbWUsIE9pZCBjb2xsbmFtZXNwYWNlLAogCUFzc2VydChjb2xsbmFtZSk7CiAJ QXNzZXJ0KGNvbGxuYW1lc3BhY2UpOwogCUFzc2VydChjb2xsb3duZXIpOwotCUFzc2VydCgoY29s bGNvbGxhdGUgJiYgY29sbGN0eXBlKSB8fCBjb2xsaWN1bG9jYWxlKTsKKwlBc3NlcnQoKGNvbGxw cm92aWRlciA9PSBDT0xMUFJPVklERVJfQlVJTFRJTiAmJgorCQkJIWNvbGxjb2xsYXRlICYmICFj b2xsY3R5cGUgJiYgIWNvbGxpY3Vsb2NhbGUpIHx8CisJCSAgIChjb2xscHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0xJQkMgJiYKKwkJCSBjb2xsY29sbGF0ZSAmJiAgY29sbGN0eXBlICYmICFjb2xs aWN1bG9jYWxlKSB8fAorCQkgICAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYK KwkJCSFjb2xsY29sbGF0ZSAmJiAhY29sbGN0eXBlICYmICBjb2xsaWN1bG9jYWxlKSk7CiAKIAkv KgogCSAqIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBleGlzdGluZyBjb2xsYXRpb24gb2Ygc2FtZSBu YW1lICYgZW5jb2RpbmcuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggMjk2 OWEyYmIyMS4uNDc0ODk0NjQ5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s bGF0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpA QCAtNjYsNiArNjYsNyBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0 ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCURlZkVsZW0gICAgKmRl dGVybWluaXN0aWNFbCA9IE5VTEw7CiAJRGVmRWxlbSAgICAqcnVsZXNFbCA9IE5VTEw7CiAJRGVm RWxlbSAgICAqdmVyc2lvbkVsID0gTlVMTDsKKwljaGFyCSAgICpidWlsdGluX2xvY2FsZSA9IE5V TEw7CiAJY2hhcgkgICAqY29sbGNvbGxhdGU7CiAJY2hhcgkgICAqY29sbGN0eXBlOwogCWNoYXIJ ICAgKmNvbGxpY3Vsb2NhbGU7CkBAIC0yMTUsNyArMjE2LDkgQEAgRGVmaW5lQ29sbGF0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZf bm90X2UKIAogCQlpZiAoY29sbHByb3ZpZGVyc3RyKQogCQl7Ci0JCQlpZiAocGdfc3RyY2FzZWNt cChjb2xscHJvdmlkZXJzdHIsICJpY3UiKSA9PSAwKQorCQkJaWYgKHBnX3N0cmNhc2VjbXAoY29s bHByb3ZpZGVyc3RyLCAiYnVpbHRpbiIpID09IDApCisJCQkJY29sbHByb3ZpZGVyID0gQ09MTFBS T1ZJREVSX0JVSUxUSU47CisJCQllbHNlIGlmIChwZ19zdHJjYXNlY21wKGNvbGxwcm92aWRlcnN0 ciwgImljdSIpID09IDApCiAJCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0lDVTsKIAkJ CWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAoY29sbHByb3ZpZGVyc3RyLCAibGliYyIpID09IDApCiAJ CQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CkBAIC0yMzAsNyArMjMzLDExIEBA IERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpw YXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAKIAkJaWYgKGxvY2FsZUVsKQogCQl7Ci0JCQlpZiAo Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQkJaWYgKGNvbGxwcm92aWRlciA9 PSBDT0xMUFJPVklERVJfQlVJTFRJTikKKwkJCXsKKwkJCQlidWlsdGluX2xvY2FsZSA9IGRlZkdl dFN0cmluZyhsb2NhbGVFbCk7CisJCQl9CisJCQllbHNlIGlmIChjb2xscHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0xJQkMpCiAJCQl7CiAJCQkJY29sbGNvbGxhdGUgPSBkZWZHZXRTdHJpbmcobG9j YWxlRWwpOwogCQkJCWNvbGxjdHlwZSA9IGRlZkdldFN0cmluZyhsb2NhbGVFbCk7CkBAIC0yNDUs NyArMjUyLDIyIEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5h bWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAJCWlmIChsY2N0eXBlRWwpCiAJ CQljb2xsY3R5cGUgPSBkZWZHZXRTdHJpbmcobGNjdHlwZUVsKTsKIAotCQlpZiAoY29sbHByb3Zp ZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9W SURFUl9CVUlMVElOKQorCQl7CisJCQlpZiAoIWJ1aWx0aW5fbG9jYWxlKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04p LAorCQkJCQkJIGVycm1zZygicGFyYW1ldGVyIFwibG9jYWxlXCIgbXVzdCBiZSBzcGVjaWZpZWQi KSkpOworCisJCQlpZiAoc3RyY21wKGJ1aWx0aW5fbG9jYWxlLCAiQyIpICE9IDAgJiYKKwkJCQlz dHJjbXAoYnVpbHRpbl9sb2NhbGUsICJQT1NJWCIpICE9IDApCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBl cnJtc2coImNvbGxhdGlvbiBwcm92aWRlciBcImJ1aWx0aW5cIiBkb2VzIG5vdCBzdXBwb3J0IGxv Y2FsZSBcIiVzXCIiLAorCQkJCQkJCQlidWlsdGluX2xvY2FsZSksCisJCQkJCQkgZXJyaGludCgi VGhlIGJ1aWx0LWluIGNvbGxhdGlvbiBwcm92aWRlciBvbmx5IHN1cHBvcnRzIHRoZSBcIkNcIiBh bmQgXCJQT1NJWFwiIGxvY2FsZXMuIikpKTsKKwkJfQorCQllbHNlIGlmIChjb2xscHJvdmlkZXIg PT0gQ09MTFBST1ZJREVSX0xJQkMpCiAJCXsKIAkJCWlmICghY29sbGNvbGxhdGUpCiAJCQkJZXJl cG9ydChFUlJPUiwKQEAgLTMwMiw3ICszMjQsMTcgQEAgRGVmaW5lQ29sbGF0aW9uKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTGlzdCAqbmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2UK IAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKIAkJCQkJ IGVycm1zZygiSUNVIHJ1bGVzIGNhbm5vdCBiZSBzcGVjaWZpZWQgdW5sZXNzIGxvY2FsZSBwcm92 aWRlciBpcyBJQ1UiKSkpOwogCi0JCWlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKKwkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfQlVJTFRJTikKKwkJeworCQkJ LyoKKwkJCSAqIEJlaGF2aW9yIG1heSBiZSBkaWZmZXJlbnQgaW4gZGlmZmVyZW50IGVuY29kaW5n cywgc28gc2V0CisJCQkgKiBjb2xsZW5jb2RpbmcgdG8gdGhlIGN1cnJlbnQgZGF0YWJhc2UgZW5j b2RpbmcuIE5vIHZhbGlkYXRpb24gaXMKKwkJCSAqIHJlcXVpcmVkLCBiZWNhdXNlIHRoZSAiYnVp bHRpbiIgcHJvdmlkZXIgaXMgY29tcGF0aWJsZSB3aXRoIGFueQorCQkJICogZW5jb2RpbmcuCisJ CQkgKi8KKwkJCWNvbGxlbmNvZGluZyA9IEdldERhdGFiYXNlRW5jb2RpbmcoKTsKKwkJfQorCQll bHNlIGlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJewogI2lmZGVmIFVT RV9JQ1UKIAkJCS8qCkBAIC0zMzEsNyArMzYzLDE4IEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0 YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9l CiAJfQogCiAJaWYgKCFjb2xsdmVyc2lvbikKLQkJY29sbHZlcnNpb24gPSBnZXRfY29sbGF0aW9u X2FjdHVhbF92ZXJzaW9uKGNvbGxwcm92aWRlciwgY29sbHByb3ZpZGVyID09IENPTExQUk9WSURF Ul9JQ1UgPyBjb2xsaWN1bG9jYWxlIDogY29sbGNvbGxhdGUpOworCXsKKwkJY2hhciAqbG9jYWxl OworCisJCWlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9 IGNvbGxpY3Vsb2NhbGU7CisJCWVsc2UgaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJf TElCQykKKwkJCWxvY2FsZSA9IGNvbGxjb2xsYXRlOworCQllbHNlCisJCQlsb2NhbGUgPSBOVUxM OyAvKiBDT0xMUFJPVklERVJfQlVJTFRJTiAqLworCisJCWNvbGx2ZXJzaW9uID0gZ2V0X2NvbGxh dGlvbl9hY3R1YWxfdmVyc2lvbihjb2xscHJvdmlkZXIsIGxvY2FsZSk7CisJfQogCiAJbmV3b2lk ID0gQ29sbGF0aW9uQ3JlYXRlKGNvbGxOYW1lLAogCQkJCQkJCSBjb2xsTmFtZXNwYWNlLApAQCAt NDA2LDYgKzQ0OSw3IEBAIEFsdGVyQ29sbGF0aW9uKEFsdGVyQ29sbGF0aW9uU3RtdCAqc3RtdCkK IAlGb3JtX3BnX2NvbGxhdGlvbiBjb2xsRm9ybTsKIAlEYXR1bQkJZGF0dW07CiAJYm9vbAkJaXNu dWxsOworCWNoYXIJICAgKmxvY2FsZTsKIAljaGFyCSAgICpvbGR2ZXJzaW9uOwogCWNoYXIJICAg Km5ld3ZlcnNpb247CiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwpAQCAtNDMwLDggKzQ3NCwyMCBA QCBBbHRlckNvbGxhdGlvbihBbHRlckNvbGxhdGlvblN0bXQgKnN0bXQpCiAJZGF0dW0gPSBTeXND YWNoZUdldEF0dHIoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsdmVyc2lvbiwg JmlzbnVsbCk7CiAJb2xkdmVyc2lvbiA9IGlzbnVsbCA/IE5VTEwgOiBUZXh0RGF0dW1HZXRDU3Ry aW5nKGRhdHVtKTsKIAotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT0xMT0lELCB0 dXAsIGNvbGxGb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/IEFudW1fcGdf Y29sbGF0aW9uX2NvbGxpY3Vsb2NhbGUgOiBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsY29sbGF0ZSk7 Ci0JbmV3dmVyc2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oY29sbEZvcm0tPmNv bGxwcm92aWRlciwgVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCWlmIChjb2xsRm9ybS0+ Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJeworCQlkYXR1bSA9IFN5c0NhY2hl R2V0QXR0ck5vdE51bGwoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsaWN1bG9j YWxlKTsKKwkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2Ug aWYgKGNvbGxGb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJeworCQlk YXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09MTE9JRCwgdHVwLCBBbnVtX3BnX2NvbGxh dGlvbl9jb2xsY29sbGF0ZSk7CisJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0p OworCX0KKwllbHNlCisJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9CVUlMVElOICov CisKKwluZXd2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihjb2xsRm9ybS0+ Y29sbHByb3ZpZGVyLCBsb2NhbGUpOwogCiAJLyogY2Fubm90IGNoYW5nZSBmcm9tIE5VTEwgdG8g bm9uLU5VTEwgb3IgdmljZSB2ZXJzYSAqLwogCWlmICgoIW9sZHZlcnNpb24gJiYgbmV3dmVyc2lv bikgfHwgKG9sZHZlcnNpb24gJiYgIW5ld3ZlcnNpb24pKQpAQCAtNDk1LDExICs1NTEsMTggQEAg cGdfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJcHJvdmlk ZXIgPSAoKEZvcm1fcGdfZGF0YWJhc2UpIEdFVFNUUlVDVChkYnR1cCkpLT5kYXRsb2Nwcm92aWRl cjsKIAotCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoREFUQUJBU0VPSUQsIGRidHVw LAotCQkJCQkJCQkJICAgcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/Ci0JCQkJCQkJCQkg ICBBbnVtX3BnX2RhdGFiYXNlX2RhdGljdWxvY2FsZSA6IEFudW1fcGdfZGF0YWJhc2VfZGF0Y29s bGF0ZSk7Ci0KLQkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCWlmIChw cm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQl7CisJCQlkYXR1bSA9IFN5c0NhY2hlR2V0 QXR0ck5vdE51bGwoREFUQUJBU0VPSUQsIGRidHVwLCBBbnVtX3BnX2RhdGFiYXNlX2RhdGljdWxv Y2FsZSk7CisJCQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwkJfQorCQll bHNlIGlmIChwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKKwkJeworCQkJZGF0dW0gPSBT eXNDYWNoZUdldEF0dHJOb3ROdWxsKERBVEFCQVNFT0lELCBkYnR1cCwgQW51bV9wZ19kYXRhYmFz ZV9kYXRjb2xsYXRlKTsKKwkJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwor CQl9CisJCWVsc2UKKwkJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9CVUlMVElOICov CiAKIAkJUmVsZWFzZVN5c0NhY2hlKGRidHVwKTsKIAl9CkBAIC01MTYsMTEgKzU3OSwxOSBAQCBw Z19jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAogCQlwcm92aWRl ciA9ICgoRm9ybV9wZ19jb2xsYXRpb24pIEdFVFNUUlVDVChjb2xsdHApKS0+Y29sbHByb3ZpZGVy OwogCQlBc3NlcnQocHJvdmlkZXIgIT0gQ09MTFBST1ZJREVSX0RFRkFVTFQpOwotCQlkYXR1bSA9 IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09MTE9JRCwgY29sbHRwLAotCQkJCQkJCQkJICAgcHJv dmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/Ci0JCQkJCQkJCQkgICBBbnVtX3BnX2NvbGxhdGlv bl9jb2xsaWN1bG9jYWxlIDogQW51bV9wZ19jb2xsYXRpb25fY29sbGNvbGxhdGUpOwogCi0JCWxv Y2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCQlpZiAocHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0lDVSkKKwkJeworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENP TExPSUQsIGNvbGx0cCwgQW51bV9wZ19jb2xsYXRpb25fY29sbGljdWxvY2FsZSk7CisJCQlsb2Nh bGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwkJfQorCQllbHNlIGlmIChwcm92aWRl ciA9PSBDT0xMUFJPVklERVJfTElCQykKKwkJeworCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJO b3ROdWxsKENPTExPSUQsIGNvbGx0cCwgQW51bV9wZ19jb2xsYXRpb25fY29sbGNvbGxhdGUpOwor CQkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCX0KKwkJZWxzZQorCQkJ bG9jYWxlID0gTlVMTDsgLyogQ09MTFBST1ZJREVSX0JVSUxUSU4gKi8KIAogCQlSZWxlYXNlU3lz Q2FjaGUoY29sbHRwKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNv bW1hbmRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKaW5kZXggOTlkNDA4 MGVhOS4uMDE2ODUyNjQ0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21t YW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpAQCAtOTA5LDcg KzkwOSw5IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10 ICpzdG10KQogCXsKIAkJY2hhcgkgICAqbG9jcHJvdmlkZXJzdHIgPSBkZWZHZXRTdHJpbmcoZGxv Y3Byb3ZpZGVyKTsKIAotCQlpZiAocGdfc3RyY2FzZWNtcChsb2Nwcm92aWRlcnN0ciwgImljdSIp ID09IDApCisJCWlmIChwZ19zdHJjYXNlY21wKGxvY3Byb3ZpZGVyc3RyLCAiYnVpbHRpbiIpID09 IDApCisJCQlkYmxvY3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX0JVSUxUSU47CisJCWVsc2UgaWYg KHBnX3N0cmNhc2VjbXAobG9jcHJvdmlkZXJzdHIsICJpY3UiKSA9PSAwKQogCQkJZGJsb2Nwcm92 aWRlciA9IENPTExQUk9WSURFUl9JQ1U7CiAJCWVsc2UgaWYgKHBnX3N0cmNhc2VjbXAobG9jcHJv dmlkZXJzdHIsICJsaWJjIikgPT0gMCkKIAkJCWRibG9jcHJvdmlkZXIgPSBDT0xMUFJPVklERVJf TElCQzsKQEAgLTExNzcsOSArMTE3OSwxNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUs IGNvbnN0IENyZWF0ZWRiU3RtdCAqc3RtdCkKIAkgKi8KIAlpZiAoc3JjX2NvbGx2ZXJzaW9uICYm ICFkY29sbHZlcnNpb24pCiAJewotCQljaGFyCSAgICphY3R1YWxfdmVyc2lvbnN0cjsKKwkJY2hh cgkqYWN0dWFsX3ZlcnNpb25zdHI7CisJCWNoYXIJKmxvY2FsZTsKIAotCQlhY3R1YWxfdmVyc2lv bnN0ciA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oZGJsb2Nwcm92aWRlciwgZGJsb2Nw cm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVID8gZGJpY3Vsb2NhbGUgOiBkYmNvbGxhdGUpOwor CQlpZiAoZGJsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCQkJbG9jYWxlID0gZGJp Y3Vsb2NhbGU7CisJCWVsc2UgaWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMp CisJCQlsb2NhbGUgPSBkYmNvbGxhdGU7CisJCWVsc2UKKwkJCWxvY2FsZSA9IE5VTEw7IC8qIENP TExQUk9WSURFUl9CVUlMVElOICovCisKKwkJYWN0dWFsX3ZlcnNpb25zdHIgPSBnZXRfY29sbGF0 aW9uX2FjdHVhbF92ZXJzaW9uKGRibG9jcHJvdmlkZXIsIGxvY2FsZSk7CiAJCWlmICghYWN0dWFs X3ZlcnNpb25zdHIpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJybXNnKCJ0ZW1wbGF0ZSBk YXRhYmFzZSBcIiVzXCIgaGFzIGEgY29sbGF0aW9uIHZlcnNpb24sIGJ1dCBubyBhY3R1YWwgY29s bGF0aW9uIHZlcnNpb24gY291bGQgYmUgZGV0ZXJtaW5lZCIsCkBAIC0xMjA3LDcgKzEyMTcsMTgg QEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQp CiAJICogY29sbGF0aW9uIHZlcnNpb24sIHdoaWNoIGlzIG5vcm1hbGx5IG9ubHkgdGhlIGNhc2Ug Zm9yIHRlbXBsYXRlMC4KIAkgKi8KIAlpZiAoZGJjb2xsdmVyc2lvbiA9PSBOVUxMKQotCQlkYmNv bGx2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihkYmxvY3Byb3ZpZGVyLCBk YmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPyBkYmljdWxvY2FsZSA6IGRiY29sbGF0 ZSk7CisJeworCQljaGFyICpsb2NhbGU7CisKKwkJaWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBS T1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGRiaWN1bG9jYWxlOworCQllbHNlIGlmIChkYmxvY3By b3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQkJbG9jYWxlID0gZGJjb2xsYXRlOworCQll bHNlCisJCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJPVklERVJfQlVJTFRJTiAqLworCisJCWRi Y29sbHZlcnNpb24gPSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGRibG9jcHJvdmlkZXIs IGxvY2FsZSk7CisJfQogCiAJLyogUmVzb2x2ZSBkZWZhdWx0IHRhYmxlc3BhY2UgZm9yIG5ldyBk YXRhYmFzZSAqLwogCWlmIChkdGFibGVzcGFjZW5hbWUgJiYgZHRhYmxlc3BhY2VuYW1lLT5hcmcp CkBAIC0yNDAzLDYgKzI0MjQsNyBAQCBBbHRlckRhdGFiYXNlUmVmcmVzaENvbGwoQWx0ZXJEYXRh YmFzZVJlZnJlc2hDb2xsU3RtdCAqc3RtdCkKIAlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAJRGF0 dW0JCWRhdHVtOwogCWJvb2wJCWlzbnVsbDsKKwljaGFyCSAgICpsb2NhbGU7CiAJY2hhcgkgICAq b2xkdmVyc2lvbjsKIAljaGFyCSAgICpuZXd2ZXJzaW9uOwogCkBAIC0yNDI5LDEwICsyNDUxLDI0 IEBAIEFsdGVyRGF0YWJhc2VSZWZyZXNoQ29sbChBbHRlckRhdGFiYXNlUmVmcmVzaENvbGxTdG10 ICpzdG10KQogCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVtX3BnX2RhdGFiYXNlX2Rh dGNvbGx2ZXJzaW9uLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOwogCW9sZHZlcnNp b24gPSBpc251bGwgPyBOVUxMIDogVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKLQlkYXR1 bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwgZGF0Rm9ybS0+ZGF0bG9jcHJvdmlkZXIgPT0gQ09MTFBS T1ZJREVSX0lDVSA/IEFudW1fcGdfZGF0YWJhc2VfZGF0aWN1bG9jYWxlIDogQW51bV9wZ19kYXRh YmFzZV9kYXRjb2xsYXRlLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOwotCWlmIChp c251bGwpCi0JCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIG51bGwgaW4gcGdfZGF0YWJhc2UiKTsK LQluZXd2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihkYXRGb3JtLT5kYXRs b2Nwcm92aWRlciwgVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCWlmIChkYXRGb3JtLT5k YXRsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCXsKKwkJZGF0dW0gPSBoZWFwX2dl dGF0dHIodHVwbGUsIEFudW1fcGdfZGF0YWJhc2VfZGF0aWN1bG9jYWxlLCBSZWxhdGlvbkdldERl c2NyKHJlbCksICZpc251bGwpOworCQlpZiAoaXNudWxsKQorCQkJZWxvZyhFUlJPUiwgInVuZXhw ZWN0ZWQgbnVsbCBpbiBwZ19kYXRhYmFzZSIpOworCQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3Ry aW5nKGRhdHVtKTsKKwl9CisJZWxzZSBpZiAoZGF0Rm9ybS0+ZGF0bG9jcHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0xJQkMpCisJeworCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwgQW51bV9w Z19kYXRhYmFzZV9kYXRjb2xsYXRlLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZpc251bGwpOwor CQlpZiAoaXNudWxsKQorCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbnVsbCBpbiBwZ19kYXRh YmFzZSIpOworCQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwl9CisJZWxz ZQorCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJPVklERVJfQlVJTFRJTiAqLworCisJbmV3dmVy c2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oZGF0Rm9ybS0+ZGF0bG9jcHJvdmlk ZXIsIGxvY2FsZSk7CiAKIAkvKiBjYW5ub3QgY2hhbmdlIGZyb20gTlVMTCB0byBub24tTlVMTCBv ciB2aWNlIHZlcnNhICovCiAJaWYgKCghb2xkdmVyc2lvbiAmJiBuZXd2ZXJzaW9uKSB8fCAob2xk dmVyc2lvbiAmJiAhbmV3dmVyc2lvbikpCkBAIC0yNjE3LDYgKzI2NTMsNyBAQCBwZ19kYXRhYmFz ZV9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAlIZWFwVHVwbGUJ dHA7CiAJY2hhcgkJZGF0bG9jcHJvdmlkZXI7CiAJRGF0dW0JCWRhdHVtOworCWNoYXIJICAgKmxv Y2FsZTsKIAljaGFyCSAgICp2ZXJzaW9uOwogCiAJdHAgPSBTZWFyY2hTeXNDYWNoZTEoREFUQUJB U0VPSUQsIE9iamVjdElkR2V0RGF0dW0oZGJpZCkpOwpAQCAtMjYyNyw4ICsyNjY0LDIwIEBAIHBn X2RhdGFiYXNlX2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihQR19GVU5DVElPTl9BUkdTKQogCiAJ ZGF0bG9jcHJvdmlkZXIgPSAoKEZvcm1fcGdfZGF0YWJhc2UpIEdFVFNUUlVDVCh0cCkpLT5kYXRs b2Nwcm92aWRlcjsKIAotCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChEQVRBQkFTRU9J RCwgdHAsIGRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPyBBbnVtX3BnX2RhdGFi YXNlX2RhdGljdWxvY2FsZSA6IEFudW1fcGdfZGF0YWJhc2VfZGF0Y29sbGF0ZSk7Ci0JdmVyc2lv biA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oZGF0bG9jcHJvdmlkZXIsIFRleHREYXR1 bUdldENTdHJpbmcoZGF0dW0pKTsKKwlpZiAoZGF0bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVS X0lDVSkKKwl7CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChEQVRBQkFTRU9JRCwg dHAsIEFudW1fcGdfZGF0YWJhc2VfZGF0aWN1bG9jYWxlKTsKKwkJbG9jYWxlID0gVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyID09IENPTExQ Uk9WSURFUl9MSUJDKQorCXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKERBVEFC QVNFT0lELCB0cCwgQW51bV9wZ19kYXRhYmFzZV9kYXRjb2xsYXRlKTsKKwkJbG9jYWxlID0gVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2UKKwkJbG9jYWxlID0gTlVMTDsgLyog Q09MTFBST1ZJREVSX0JVSUxUSU4gKi8KKworCXZlcnNpb24gPSBnZXRfY29sbGF0aW9uX2FjdHVh bF92ZXJzaW9uKGRhdGxvY3Byb3ZpZGVyLCBsb2NhbGUpOwogCiAJUmVsZWFzZVN5c0NhY2hlKHRw KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCmluZGV4IDMxZTNiMTZhZTAuLmQ0ZDdhZmZi YTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYworKysgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMKQEAgLTEyMjgsNyArMTIyOCwxMiBAQCBs b29rdXBfY29sbGF0aW9uX2NhY2hlKE9pZCBjb2xsYXRpb24sIGJvb2wgc2V0X2ZsYWdzKQogCQkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbGxhdGlvbiAldSIsIGNvbGxh dGlvbik7CiAJCWNvbGxmb3JtID0gKEZvcm1fcGdfY29sbGF0aW9uKSBHRVRTVFJVQ1QodHApOwog Ci0JCWlmIChjb2xsZm9ybS0+Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQlp ZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfQlVJTFRJTikKKwkJewor CQkJY2FjaGVfZW50cnktPmNvbGxhdGVfaXNfYyA9IHRydWU7CisJCQljYWNoZV9lbnRyeS0+Y3R5 cGVfaXNfYyA9IHRydWU7CisJCX0KKwkJZWxzZSBpZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9 PSBDT0xMUFJPVklERVJfTElCQykKIAkJewogCQkJRGF0dW0JCWRhdHVtOwogCQkJY29uc3QgY2hh ciAqY29sbGNvbGxhdGU7CkBAIC0xMjgxLDYgKzEyODYsOSBAQCBsY19jb2xsYXRlX2lzX2MoT2lk IGNvbGxhdGlvbikKIAkJc3RhdGljIGludAlyZXN1bHQgPSAtMTsKIAkJY2hhcgkgICAqbG9jYWxl cHRyOwogCisJCWlmIChkZWZhdWx0X2xvY2FsZS5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfQlVJ TFRJTikKKwkJCXJldHVybiB0cnVlOworCiAJCWlmIChkZWZhdWx0X2xvY2FsZS5wcm92aWRlciA9 PSBDT0xMUFJPVklERVJfSUNVKQogCQkJcmV0dXJuIGZhbHNlOwogCkBAIC0xMzM0LDYgKzEzNDIs OSBAQCBsY19jdHlwZV9pc19jKE9pZCBjb2xsYXRpb24pCiAJCXN0YXRpYyBpbnQJcmVzdWx0ID0g LTE7CiAJCWNoYXIJICAgKmxvY2FsZXB0cjsKIAorCQlpZiAoZGVmYXVsdF9sb2NhbGUucHJvdmlk ZXIgPT0gQ09MTFBST1ZJREVSX0JVSUxUSU4pCisJCQlyZXR1cm4gdHJ1ZTsKKwogCQlpZiAoZGVm YXVsdF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJCXJldHVybiBmYWxz ZTsKIApAQCAtMTQ4Nyw4ICsxNDk4LDEwIEBAIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihP aWQgY29sbGlkKQogCXsKIAkJaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQUk9W SURFUl9JQ1UpCiAJCQlyZXR1cm4gJmRlZmF1bHRfbG9jYWxlOwotCQllbHNlCisJCWVsc2UgaWYg KGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQogCQkJcmV0dXJu IChwZ19sb2NhbGVfdCkgMDsKKwkJZWxzZQorCQkJZWxvZyhFUlJPUiwgImNhbm5vdCBvcGVuIGNv bGxhdGlvbiB3aXRoIHByb3ZpZGVyIFwiYnVpbHRpblwiIik7CiAJfQogCiAJY2FjaGVfZW50cnkg PSBsb29rdXBfY29sbGF0aW9uX2NhY2hlKGNvbGxpZCwgZmFsc2UpOwpAQCAtMTUxMyw3ICsxNTI2 LDExIEBAIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxhdGlvbihPaWQgY29sbGlkKQogCQlyZXN1bHQu cHJvdmlkZXIgPSBjb2xsZm9ybS0+Y29sbHByb3ZpZGVyOwogCQlyZXN1bHQuZGV0ZXJtaW5pc3Rp YyA9IGNvbGxmb3JtLT5jb2xsaXNkZXRlcm1pbmlzdGljOwogCi0JCWlmIChjb2xsZm9ybS0+Y29s bHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQlpZiAoY29sbGZvcm0tPmNvbGxwcm92 aWRlciA9PSBDT0xMUFJPVklERVJfQlVJTFRJTikKKwkJeworCQkJZWxvZyhFUlJPUiwgImNhbm5v dCBvcGVuIGNvbGxhdGlvbiB3aXRoIHByb3ZpZGVyIFwiYnVpbHRpblwiIik7CisJCX0KKwkJZWxz ZSBpZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKIAkJewog I2lmZGVmIEhBVkVfTE9DQUxFX1QKIAkJCWNvbnN0IGNoYXIgKmNvbGxjb2xsYXRlOwpAQCAtMTU5 OSw2ICsxNjE2LDcgQEAgcGdfbmV3bG9jYWxlX2Zyb21fY29sbGF0aW9uKE9pZCBjb2xsaWQpCiAK IAkJCWNvbGx2ZXJzaW9uc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CiAKKwkJCUFz c2VydChjb2xsZm9ybS0+Y29sbHByb3ZpZGVyICE9IENPTExQUk9WSURFUl9CVUlMVElOKTsKIAkJ CWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChDT0xMT0lELCB0cCwgY29sbGZvcm0tPmNv bGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVID8gQW51bV9wZ19jb2xsYXRpb25fY29sbGlj dWxvY2FsZSA6IEFudW1fcGdfY29sbGF0aW9uX2NvbGxjb2xsYXRlKTsKIAogCQkJYWN0dWFsX3Zl cnNpb25zdHIgPSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGNvbGxmb3JtLT5jb2xscHJv dmlkZXIsCkBAIC0xNjUwLDYgKzE2NjgsOSBAQCBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9u KGNoYXIgY29sbHByb3ZpZGVyLCBjb25zdCBjaGFyICpjb2xsY29sbGF0ZSkKIHsKIAljaGFyCSAg ICpjb2xsdmVyc2lvbiA9IE5VTEw7CiAKKwlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURF Ul9CVUlMVElOKQorCQlyZXR1cm4gTlVMTDsKKwogI2lmZGVmIFVTRV9JQ1UKIAlpZiAoY29sbHBy b3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvaW5pdC9wb3N0aW5pdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5j CmluZGV4IDU2MWJkMTNlZDIuLjEyYzM2ZDEyZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2luaXQvcG9zdGluaXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0 LmMKQEAgLTQ2MSwxMCArNDYxLDE4IEBAIENoZWNrTXlEYXRhYmFzZShjb25zdCBjaGFyICpuYW1l LCBib29sIGFtX3N1cGVydXNlciwgYm9vbCBvdmVycmlkZV9hbGxvd19jb25uZWN0CiAJewogCQlj aGFyCSAgICphY3R1YWxfdmVyc2lvbnN0cjsKIAkJY2hhcgkgICAqY29sbHZlcnNpb25zdHI7CisJ CWNoYXIJICAgKmxvY2FsZTsKIAogCQljb2xsdmVyc2lvbnN0ciA9IFRleHREYXR1bUdldENTdHJp bmcoZGF0dW0pOwogCi0JCWFjdHVhbF92ZXJzaW9uc3RyID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxf dmVyc2lvbihkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyLCBkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyID09 IENPTExQUk9WSURFUl9JQ1UgPyBpY3Vsb2NhbGUgOiBjb2xsYXRlKTsKKwkJaWYgKGRiZm9ybS0+ ZGF0bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGljdWxvY2Fs ZTsKKwkJZWxzZSBpZiAoZGJmb3JtLT5kYXRsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElC QykKKwkJCWxvY2FsZSA9IGNvbGxhdGU7CisJCWVsc2UKKwkJCWxvY2FsZSA9IE5VTEw7IC8qIENP TExQUk9WSURFUl9CVUlMVElOICovCisKKwkJYWN0dWFsX3ZlcnNpb25zdHIgPSBnZXRfY29sbGF0 aW9uX2FjdHVhbF92ZXJzaW9uKGRiZm9ybS0+ZGF0bG9jcHJvdmlkZXIsIGxvY2FsZSk7CiAJCWlm ICghYWN0dWFsX3ZlcnNpb25zdHIpCiAJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJZWxv ZyhXQVJOSU5HLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgYi9zcmMvYmlu L2luaXRkYi9pbml0ZGIuYwppbmRleCAwOWE1Yzk4Y2MwLi42ZmMxOWM4ZDY0IDEwMDY0NAotLS0g YS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwpA QCAtMjQ3Miw3ICsyNDcyLDcgQEAgdXNhZ2UoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJCQkgIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQgZGVmYXVsdCBsb2NhbGUgaW4gdGhlIHJlc3Bl Y3RpdmUgY2F0ZWdvcnkgZm9yXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ZXcgZGF0YWJhc2VzIChkZWZhdWx0IHRha2VuIGZyb20gZW52aXJvbm1lbnQpXG4iKSk7CiAJcHJp bnRmKF8oIiAgICAgIC0tbm8tbG9jYWxlICAgICAgICAgICBlcXVpdmFsZW50IHRvIC0tbG9jYWxl PUNcbiIpKTsKLQlwcmludGYoXygiICAgICAgLS1sb2NhbGUtcHJvdmlkZXI9e2xpYmN8aWN1fVxu IgorCXByaW50ZihfKCIgICAgICAtLWxvY2FsZS1wcm92aWRlcj17YnVpbHRpbnxsaWJjfGljdX1c biIKIAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IGxvY2FsZSBw cm92aWRlciBmb3IgbmV3IGRhdGFiYXNlc1xuIikpOwogCXByaW50ZihfKCIgICAgICAtLXB3Zmls ZT1GSUxFICAgICAgICAgcmVhZCBwYXNzd29yZCBmb3IgdGhlIG5ldyBzdXBlcnVzZXIgZnJvbSBm aWxlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLVQsIC0tdGV4dC1zZWFyY2gtY29uZmlnPUNGR1xuIgpA QCAtMjYyMiw3ICsyNjIyLDE1IEBAIHNldHVwX2xvY2FsZV9lbmNvZGluZyh2b2lkKQogewogCXNl dGxvY2FsZXMoKTsKIAotCWlmIChsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMg JiYKKwlpZiAobG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9CVUlMVElOICYmCisJCXN0 cmNtcChsY19jdHlwZSwgIkMiKSA9PSAwICYmCisJCXN0cmNtcChsY19jb2xsYXRlLCAiQyIpID09 IDAgJiYKKwkJc3RyY21wKGxjX3RpbWUsICJDIikgPT0gMCAmJgorCQlzdHJjbXAobGNfbnVtZXJp YywgIkMiKSA9PSAwICYmCisJCXN0cmNtcChsY19tb25ldGFyeSwgIkMiKSA9PSAwICYmCisJCXN0 cmNtcChsY19tZXNzYWdlcywgIkMiKSA9PSAwKQorCQlwcmludGYoXygiVGhlIGRhdGFiYXNlIGNs dXN0ZXIgd2lsbCBiZSBpbml0aWFsaXplZCB3aXRoIG5vIGxvY2FsZS5cbiIpKTsKKwllbHNlIGlm IChsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMgJiYKIAkJc3RyY21wKGxjX2N0 eXBlLCBsY19jb2xsYXRlKSA9PSAwICYmCiAJCXN0cmNtcChsY19jdHlwZSwgbGNfdGltZSkgPT0g MCAmJgogCQlzdHJjbXAobGNfY3R5cGUsIGxjX251bWVyaWMpID09IDAgJiYKQEAgLTI2MzMsOSAr MjY0MSwxMSBAQCBzZXR1cF9sb2NhbGVfZW5jb2Rpbmcodm9pZCkKIAllbHNlCiAJewogCQlwcmlu dGYoXygiVGhlIGRhdGFiYXNlIGNsdXN0ZXIgd2lsbCBiZSBpbml0aWFsaXplZCB3aXRoIHRoaXMg bG9jYWxlIGNvbmZpZ3VyYXRpb246XG4iKSk7Ci0JCXByaW50ZihfKCIgIHByb3ZpZGVyOiAgICAl c1xuIiksIGNvbGxwcm92aWRlcl9uYW1lKGxvY2FsZV9wcm92aWRlcikpOwotCQlpZiAoaWN1X2xv Y2FsZSkKLQkJCXByaW50ZihfKCIgIElDVSBsb2NhbGU6ICAlc1xuIiksIGljdV9sb2NhbGUpOwor CQlwcmludGYoXygiICBkZWZhdWx0IGNvbGxhdGlvbiBwcm92aWRlcjogICVzXG4iKSwgY29sbHBy b3ZpZGVyX25hbWUobG9jYWxlX3Byb3ZpZGVyKSk7CisJCWlmIChsb2NhbGVfcHJvdmlkZXIgPT0g Q09MTFBST1ZJREVSX0JVSUxUSU4pCisJCQlwcmludGYoXygiICBkZWZhdWx0IGNvbGxhdGlvbiBs b2NhbGU6ICAgICVzXG4iKSwgIkMiKTsKKwkJZWxzZSBpZiAobG9jYWxlX3Byb3ZpZGVyID09IENP TExQUk9WSURFUl9JQ1UpCisJCQlwcmludGYoXygiICBkZWZhdWx0IGNvbGxhdGlvbiBsb2NhbGU6 ICAgICVzXG4iKSwgaWN1X2xvY2FsZSk7CiAJCXByaW50ZihfKCIgIExDX0NPTExBVEU6ICAlc1xu IgogCQkJCSAiICBMQ19DVFlQRTogICAgJXNcbiIKIAkJCQkgIiAgTENfTUVTU0FHRVM6ICVzXG4i CkBAIC0zMjk2LDcgKzMzMDYsOSBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkJ CQkJCQkJICItYyBkZWJ1Z19kaXNjYXJkX2NhY2hlcz0xIik7CiAJCQkJYnJlYWs7CiAJCQljYXNl IDE1OgotCQkJCWlmIChzdHJjbXAob3B0YXJnLCAiaWN1IikgPT0gMCkKKwkJCQlpZiAoc3RyY21w KG9wdGFyZywgImJ1aWx0aW4iKSA9PSAwKQorCQkJCQlsb2NhbGVfcHJvdmlkZXIgPSBDT0xMUFJP VklERVJfQlVJTFRJTjsKKwkJCQllbHNlIGlmIChzdHJjbXAob3B0YXJnLCAiaWN1IikgPT0gMCkK IAkJCQkJbG9jYWxlX3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX0lDVTsKIAkJCQllbHNlIGlmIChz dHJjbXAob3B0YXJnLCAibGliYyIpID09IDApCiAJCQkJCWxvY2FsZV9wcm92aWRlciA9IENPTExQ Uk9WSURFUl9MSUJDOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBs IGIvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCmluZGV4IGZhMDBiYjNkYWIuLjE1N2Q2 YWNmZDQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbAorKysgYi9z cmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKQEAgLTE1NCw2ICsxNTQsNTMgQEAgZWxzZQog CQknbG9jYWxlIHByb3ZpZGVyIElDVSBmYWlscyBzaW5jZSBubyBJQ1Ugc3VwcG9ydCcpOwogfQog Citjb21tYW5kX29rKAorCVsKKwkJJ2luaXRkYicsICctLW5vLXN5bmMnLCAnLS1sb2NhbGUtcHJv dmlkZXI9YnVpbHRpbicsICIkdGVtcGRpci9kYXRhNiIKKwldLAorCSdsb2NhbGUgcHJvdmlkZXIg YnVpbHRpbicKKyk7CisKK2NvbW1hbmRfb2soCisJWworCQknaW5pdGRiJywgJy0tbm8tc3luYycs ICctLWxvY2FsZS1wcm92aWRlcj1idWlsdGluJywgJy0tbG9jYWxlPUMnLAorCQkiJHRlbXBkaXIv ZGF0YTciCisJXSwKKwknbG9jYWxlIHByb3ZpZGVyIGJ1aWx0aW4gd2l0aCAtLWxvY2FsZScKKyk7 CisKK2NvbW1hbmRfb2soCisJWworCQknaW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2FsZS1w cm92aWRlcj1idWlsdGluJywgJy0tbGMtY29sbGF0ZT1DJywKKwkJIiR0ZW1wZGlyL2RhdGE4Igor CV0sCisJJ2xvY2FsZSBwcm92aWRlciBidWlsdGluIHdpdGggLS1sYy1jb2xsYXRlJworKTsKKwor Y29tbWFuZF9vaygKKwlbCisJCSdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3Zp ZGVyPWJ1aWx0aW4nLCAnLS1sYy1jdHlwZT1DJywKKwkJIiR0ZW1wZGlyL2RhdGE5IgorCV0sCisJ J2xvY2FsZSBwcm92aWRlciBidWlsdGluIHdpdGggLS1sYy1jdHlwZScKKyk7CisKK2NvbW1hbmRf ZmFpbHMoCisJWworCQknaW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1i dWlsdGluJywgJy0taWN1LWxvY2FsZT1lbicsCisJCSIkdGVtcGRpci9kYXRhWCIKKwldLAorCSdm YWlscyBmb3IgbG9jYWxlIHByb3ZpZGVyIGJ1aWx0aW4gd2l0aCBJQ1UgbG9jYWxlJworKTsKKwor Y29tbWFuZF9mYWlscygKKwlbCisJCSdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXBy b3ZpZGVyPWJ1aWx0aW4nLCAnLS1pY3UtcnVsZXM9IiInLAorCQkiJHRlbXBkaXIvZGF0YVgiCisJ XSwKKwknZmFpbHMgZm9yIGxvY2FsZSBwcm92aWRlciBidWlsdGluIHdpdGggSUNVIHJ1bGVzJwor KTsKKwogY29tbWFuZF9mYWlscygKIAlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxl LXByb3ZpZGVyPXh5eicsICIkdGVtcGRpci9kYXRhWCIgXSwKIAknZmFpbHMgZm9yIGludmFsaWQg bG9jYWxlIHByb3ZpZGVyJyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA1ZGFiMWJhOWVhLi5jNzU4MThjM2E0 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTMwNzAsNyArMzA3MCw5IEBAIGR1bXBEYXRhYmFzZShBcmNoaXZl ICpmb3V0KQogCX0KIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICIgTE9DQUxFX1BS T1ZJREVSID0gIik7Ci0JaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdjJykKKwlpZiAoZGF0bG9j cHJvdmlkZXJbMF0gPT0gJ2InKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiYnVp bHRpbiIpOworCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdjJykKIAkJYXBwZW5kUFFF eHBCdWZmZXJTdHIoY3JlYVFyeSwgImxpYmMiKTsKIAllbHNlIGlmIChkYXRsb2Nwcm92aWRlclsw XSA9PSAnaScpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICJpY3UiKTsKQEAgLTEz NDMyLDcgKzEzNDM0LDkgQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb2xs SW5mbyAqY29sbGluZm8pCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbGluZm8pKTsK IAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICJwcm92aWRlciA9ICIpOwotCWlmIChjb2xscHJv dmlkZXJbMF0gPT0gJ2MnKQorCWlmIChjb2xscHJvdmlkZXJbMF0gPT0gJ2InKQorCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxLCAiYnVpbHRpbiIpOworCWVsc2UgaWYgKGNvbGxwcm92aWRlclswXSA9 PSAnYycpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICJsaWJjIik7CiAJZWxzZSBpZiAoY29s bHByb3ZpZGVyWzBdID09ICdpJykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgImljdSIpOwpA QCAtMTM0NDYsMTMgKzEzNDUwLDQyIEBAIGR1bXBDb2xsYXRpb24oQXJjaGl2ZSAqZm91dCwgY29u c3QgQ29sbEluZm8gKmNvbGxpbmZvKQogCWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIDAsIGlf Y29sbGlzZGV0ZXJtaW5pc3RpYyksICJmIikgPT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cSwgIiwgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlIik7CiAKLQlpZiAoY29sbGljdWxvY2FsZSAhPSBO VUxMKQorCWlmIChjb2xscHJvdmlkZXJbMF0gPT0gJ2QnKQogCXsKKwkJQXNzZXJ0KGNvbGxpY3Vs b2NhbGUgPT0gTlVMTCk7CisJCUFzc2VydChjb2xsaWN1cnVsZXMgPT0gTlVMTCk7CisJCUFzc2Vy dChjb2xsY29sbGF0ZSA9PSBOVUxMKTsKKwkJQXNzZXJ0KGNvbGxjdHlwZSA9PSBOVUxMKTsKKwor CQkvKiBubyBsb2NhbGUgLS0gY2Fubm90IGJlIHJlbG9hZGVkIGFueXdheSAqLworCX0KKwllbHNl IGlmIChjb2xscHJvdmlkZXJbMF0gPT0gJ2InKQorCXsKKwkJQXNzZXJ0KGNvbGxpY3Vsb2NhbGUg PT0gTlVMTCk7CisJCUFzc2VydChjb2xsaWN1cnVsZXMgPT0gTlVMTCk7CisJCUFzc2VydChjb2xs Y29sbGF0ZSA9PSBOVUxMKTsKKwkJQXNzZXJ0KGNvbGxjdHlwZSA9PSBOVUxMKTsKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocSwgIiwgbG9jYWxlID0gJ0MnIik7CisJfQorCWVsc2UgaWYgKGNvbGxw cm92aWRlclswXSA9PSAnaScpCisJeworCQlBc3NlcnQoY29sbGljdWxvY2FsZSAhPSBOVUxMKTsK KwkJQXNzZXJ0KGNvbGxjb2xsYXRlID09IE5VTEwpOworCQlBc3NlcnQoY29sbGN0eXBlID09IE5V TEwpOworCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICIsIGxvY2FsZSA9ICIpOwogCQlhcHBl bmRTdHJpbmdMaXRlcmFsQUgocSwgY29sbGljdWxvY2FsZSwgZm91dCk7CisKKwkJaWYgKGNvbGxp Y3VydWxlcykKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiwgcnVsZXMgPSAiKTsK KwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxLCBjb2xsaWN1cnVsZXMsIGZvdXQpOworCQl9CiAJ fQotCWVsc2UKKwllbHNlIGlmIChjb2xscHJvdmlkZXJbMF0gPT0gJ2MnKQogCXsKKwkJQXNzZXJ0 KGNvbGxpY3Vsb2NhbGUgPT0gTlVMTCk7CisJCUFzc2VydChjb2xsaWN1cnVsZXMgPT0gTlVMTCk7 CiAJCUFzc2VydChjb2xsY29sbGF0ZSAhPSBOVUxMKTsKIAkJQXNzZXJ0KGNvbGxjdHlwZSAhPSBO VUxMKTsKIApAQCAtMTM0NjksMTIgKzEzNTAyLDggQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpm b3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pCiAJCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgo cSwgY29sbGN0eXBlLCBmb3V0KTsKIAkJfQogCX0KLQotCWlmIChjb2xsaWN1cnVsZXMpCi0Jewot CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiLCBydWxlcyA9ICIpOwotCQlhcHBlbmRTdHJpbmdM aXRlcmFsQUgocSwgY29sbGljdXJ1bGVzLCBmb3V0KTsKLQl9CisJZWxzZQorCQlwZ19mYXRhbCgi dW5yZWNvZ25pemVkIGNvbGxhdGlvbiBwcm92aWRlciAnJWMnIiwgY29sbHByb3ZpZGVyWzBdKTsK IAogCS8qCiAJICogRm9yIGJpbmFyeSB1cGdyYWRlLCBjYXJyeSBvdmVyIHRoZSBjb2xsYXRpb24g dmVyc2lvbi4gIEZvciBub3JtYWwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS90LzAw Ml9wZ191cGdyYWRlLnBsIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwK aW5kZXggNDFmY2UwODlkNi4uMjJkOWZjMTBhMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdy YWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAyX3Bn X3VwZ3JhZGUucGwKQEAgLTExNCwyMiArMTE0LDQ1IEBAIG15ICRvcmlnaW5hbF9sb2NhbGUgPSAi QyI7CiBteSAkb3JpZ2luYWxfaWN1bG9jYWxlID0gIiI7CiBteSAkcHJvdmlkZXJfZmllbGQgPSAi J2MnIEFTIGRhdGxvY3Byb3ZpZGVyIjsKIG15ICRpY3Vsb2NhbGVfZmllbGQgPSAiTlVMTCBBUyBk YXRpY3Vsb2NhbGUiOwotaWYgKCRvbGRub2RlLT5wZ192ZXJzaW9uID49IDE1ICYmICRFTlZ7d2l0 aF9pY3V9IGVxICd5ZXMnKQoraWYgKCRvbGRub2RlLT5wZ192ZXJzaW9uID49IDE1KQogewogCSRw cm92aWRlcl9maWVsZCA9ICJkYXRsb2Nwcm92aWRlciI7CiAJJGljdWxvY2FsZV9maWVsZCA9ICJk YXRpY3Vsb2NhbGUiOwotCSRvcmlnaW5hbF9wcm92aWRlciA9ICJpIjsKLQkkb3JpZ2luYWxfaWN1 bG9jYWxlID0gImZyLUNBIjsKKworCWlmICgkRU5We3dpdGhfaWN1fSBlcSAneWVzJykKKwl7CisJ CSRvcmlnaW5hbF9wcm92aWRlciA9ICJpIjsKKwkJJG9yaWdpbmFsX2ljdWxvY2FsZSA9ICJmci1D QSI7CisJfQorfQorCisjIHVzZSBidWlsdGluIHByb3ZpZGVyIGluc3RlYWQgb2YgbGliYywgaWYg c3VwcG9ydGVkCitpZiAoJG9sZG5vZGUtPnBnX3ZlcnNpb24gPj0gMTYgJiYgJEVOVnt3aXRoX2lj dX0gbmUgJ3llcycpCit7CisJJG9yaWdpbmFsX3Byb3ZpZGVyID0gImIiOwogfQogCiBteSBAaW5p dGRiX3BhcmFtcyA9IEBjdXN0b21fb3B0czsKIAogcHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWVu Y29kaW5nJywgJ1VURi04Jyk7CiBwdXNoIEBpbml0ZGJfcGFyYW1zLCAoJy0tbG9jYWxlJywgJG9y aWdpbmFsX2xvY2FsZSk7Ci1pZiAoJG9yaWdpbmFsX3Byb3ZpZGVyIGVxICJpIikKKworIyBhZGQg LS1sb2NhbGUtcHJvdmlkZXIsIGlmIHN1cHBvcnRlZAoraWYgKCRvbGRub2RlLT5wZ192ZXJzaW9u ID49IDE1KQogewotCXB1c2ggQGluaXRkYl9wYXJhbXMsICgnLS1sb2NhbGUtcHJvdmlkZXInLCAn aWN1Jyk7Ci0JcHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWljdS1sb2NhbGUnLCAnZnItQ0EnKTsK KwlpZiAoJG9yaWdpbmFsX3Byb3ZpZGVyIGVxICJiIikKKwl7CisJCXB1c2ggQGluaXRkYl9wYXJh bXMsICgnLS1sb2NhbGUtcHJvdmlkZXInLCAnYnVpbHRpbicpOworCX0KKwllbHNpZiAoJG9yaWdp bmFsX3Byb3ZpZGVyIGVxICJpIikKKwl7CisJCXB1c2ggQGluaXRkYl9wYXJhbXMsICgnLS1sb2Nh bGUtcHJvdmlkZXInLCAnaWN1Jyk7CisJCXB1c2ggQGluaXRkYl9wYXJhbXMsICgnLS1pY3UtbG9j YWxlJywgJ2ZyLUNBJyk7CisJfQorCWVsc2lmICgkb3JpZ2luYWxfcHJvdmlkZXIgZXEgImMiKQor CXsKKwkJcHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWxvY2FsZS1wcm92aWRlcicsICdsaWJjJyk7 CisJfQogfQogCiAkbm9kZV9wYXJhbXN7ZXh0cmF9ID0gXEBpbml0ZGJfcGFyYW1zOwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpp bmRleCA5MzI1YTQ2YjhmLi41NjQyNjM4ZGZiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtOTMyLDcgKzkzMiw3IEBA IGxpc3RBbGxEYnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdl dHRleHRfbm9vcCgiRW5jb2RpbmciKSk7CiAJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQog CQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJICAiICBDQVNFIGQuZGF0bG9jcHJvdmlk ZXIgV0hFTiAnYycgVEhFTiAnbGliYycgV0hFTiAnaScgVEhFTiAnaWN1JyBFTkQgQVMgXCIlc1wi LFxuIiwKKwkJCQkJCSAgIiAgQ0FTRSBkLmRhdGxvY3Byb3ZpZGVyIFdIRU4gJ2InIFRIRU4gJ2J1 aWx0aW4nIFdIRU4gJ2MnIFRIRU4gJ2xpYmMnIFdIRU4gJ2knIFRIRU4gJ2ljdScgRU5EIEFTIFwi JXNcIixcbiIsCiAJCQkJCQkgIGdldHRleHRfbm9vcCgiTG9jYWxlIFByb3ZpZGVyIikpOwogCWVs c2UKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKQEAgLTQ4NzMsNyArNDg3Myw3IEBAIGxpc3RD b2xsYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lz dGVtKQogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTAwMDAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAotCQkJCQkJICAiICBDQVNFIGMuY29sbHByb3ZpZGVyIFdIRU4gJ2QnIFRIRU4gJ2Rl ZmF1bHQnIFdIRU4gJ2MnIFRIRU4gJ2xpYmMnIFdIRU4gJ2knIFRIRU4gJ2ljdScgRU5EIEFTIFwi JXNcIixcbiIsCisJCQkJCQkgICIgIENBU0UgYy5jb2xscHJvdmlkZXIgV0hFTiAnZCcgVEhFTiAn ZGVmYXVsdCcgV0hFTiAnYicgVEhFTiAnYnVpbHRpbicgV0hFTiAnYycgVEhFTiAnbGliYycgV0hF TiAnaScgVEhFTiAnaWN1JyBFTkQgQVMgXCIlc1wiLFxuIiwKIAkJCQkJCSAgZ2V0dGV4dF9ub29w KCJQcm92aWRlciIpKTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCmRpZmYgLS1n aXQgYS9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVk Yi5jCmluZGV4IGI0MjA1YzRmYTUuLjQxYThkZTY1OWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2Ny aXB0cy9jcmVhdGVkYi5jCisrKyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jCkBAIC0yOTks NyArMjk5LDcgQEAgaGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAgICAg LS1sYy1jdHlwZT1MT0NBTEUgICAgICAgIExDX0NUWVBFIHNldHRpbmcgZm9yIHRoZSBkYXRhYmFz ZVxuIikpOwogCXByaW50ZihfKCIgICAgICAtLWljdS1sb2NhbGU9TE9DQUxFICAgICAgSUNVIGxv Y2FsZSBzZXR0aW5nIGZvciB0aGUgZGF0YWJhc2VcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1p Y3UtcnVsZXM9UlVMRVMgICAgICAgIElDVSBydWxlcyBzZXR0aW5nIGZvciB0aGUgZGF0YWJhc2Vc biIpKTsKLQlwcmludGYoXygiICAgICAgLS1sb2NhbGUtcHJvdmlkZXI9e2xpYmN8aWN1fVxuIgor CXByaW50ZihfKCIgICAgICAtLWxvY2FsZS1wcm92aWRlcj17YnVpbHRpbnxsaWJjfGljdX1cbiIK IAkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSBwcm92aWRlciBmb3Ig dGhlIGRhdGFiYXNlJ3MgZGVmYXVsdCBjb2xsYXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtTywg LS1vd25lcj1PV05FUiAgICAgICAgICAgIGRhdGFiYXNlIHVzZXIgdG8gb3duIHRoZSBuZXcgZGF0 YWJhc2VcbiIpKTsKIAlwcmludGYoXygiICAtUywgLS1zdHJhdGVneT1TVFJBVEVHWSAgICAgIGRh dGFiYXNlIGNyZWF0aW9uIHN0cmF0ZWd5IHdhbF9sb2cgb3IgZmlsZV9jb3B5XG4iKSk7CmRpZmYg LS1naXQgYS9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwgYi9zcmMvYmluL3Njcmlw dHMvdC8wMjBfY3JlYXRlZGIucGwKaW5kZXggZDA4MzBhNGExZC4uZjFkNmRiMGY0OCAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCisrKyBiL3NyYy9iaW4vc2Ny aXB0cy90LzAyMF9jcmVhdGVkYi5wbApAQCAtOTQsNiArOTQsNjIgQEAgZWxzZQogCQknY3JlYXRl IGRhdGFiYXNlIHdpdGggSUNVIGZhaWxzIHNpbmNlIG5vIElDVSBzdXBwb3J0Jyk7CiB9CiAKKyRu b2RlLT5jb21tYW5kX29rKAorCVsKKwkJJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRlMCcsICct LWxvY2FsZS1wcm92aWRlcj1idWlsdGluJywKKwkJJ3RidWlsdGluMScKKwldLAorCSdjcmVhdGUg ZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAiYnVpbHRpbiInCispOworCiskbm9kZS0+Y29tbWFuZF9v aygKKwlbCisJCSdjcmVhdGVkYicsICctVCcsICd0ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlk ZXI9YnVpbHRpbicsCisJCSctLWxvY2FsZT1DJywgJ3RidWlsdGluMicKKwldLAorCSdjcmVhdGUg ZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAiYnVpbHRpbiIgYW5kIGxvY2FsZSAiQyInCispOworCisk bm9kZS0+Y29tbWFuZF9vaygKKwlbCisJCSdjcmVhdGVkYicsICctVCcsICd0ZW1wbGF0ZTAnLCAn LS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsCisJCSctLWxjLWNvbGxhdGU9QycsICd0YnVpbHRp bjMnCisJXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgImJ1aWx0aW4iIGFuZCBM Q19DT0xMQVRFPUMnCispOworCiskbm9kZS0+Y29tbWFuZF9vaygKKwlbCisJCSdjcmVhdGVkYics ICctVCcsICd0ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsCisJCSctLWxj LWN0eXBlPUMnLCAndGJ1aWx0aW40JworCV0sCisJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3Zp ZGVyICJidWlsdGluIiBhbmQgTENfQ1RZUEU9QycKKyk7CisKKyRub2RlLT5jb21tYW5kX2ZhaWxz KAorCVsKKwkJJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRlMCcsICctLWxvY2FsZS1wcm92aWRl cj1idWlsdGluJywKKwkJJy0taWN1LWxvY2FsZT1lbicsICd0YnVpbHRpbjUnCisJXSwKKwknY3Jl YXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgImJ1aWx0aW4iIGFuZCBJQ1VfTE9DQUxFPSJlbiIn CispOworCiskbm9kZS0+Y29tbWFuZF9mYWlscygKKwlbCisJCSdjcmVhdGVkYicsICctVCcsICd0 ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsCisJCSctLWljdS1ydWxlcz0i IicsICd0YnVpbHRpbjYnCisJXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgImJ1 aWx0aW4iIGFuZCBJQ1VfUlVMRVM9IiInCispOworCiskbm9kZS0+Y29tbWFuZF9mYWlscygKKwlb CisJCSdjcmVhdGVkYicsICctVCcsICd0ZW1wbGF0ZTEnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVp bHRpbicsCisJCSctLWxvY2FsZT1DJywgJ3RidWlsdGluNycKKwldLAorCSdjcmVhdGUgZGF0YWJh c2Ugd2l0aCBwcm92aWRlciAiYnVpbHRpbiIgbm90IG1hdGNoaW5nIHRlbXBsYXRlJworKTsKKwog JG5vZGUtPmNvbW1hbmRfZmFpbHMoWyAnY3JlYXRlZGInLCAnZm9vYmFyMScgXSwKIAknZmFpbHMg aWYgZGF0YWJhc2UgYWxyZWFkeSBleGlzdHMnKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9jYXR2ZXJzaW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaApp bmRleCBjNzg0OTM3YTBlLi41MmUxN2JhYWZhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRh bG9nL2NhdHZlcnNpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaApA QCAtNTcsNiArNTcsNiBAQAogICovCiAKIC8qCQkJCQkJCXl5eXltbWRkTiAqLwotI2RlZmluZSBD QVRBTE9HX1ZFUlNJT05fTk8JMjAyMzA1MjExCisjZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwky MDIzMDYwODEKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bGxhdGlvbi5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5kYXQKaW5kZXgg YjZhNjlkMWQ0Mi4uY2ZiNTM4MDdlZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb2xsYXRpb24uZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmRh dApAQCAtMjQsOCArMjQsNyBAQAogICBjb2xsbmFtZSA9PiAnUE9TSVgnLCBjb2xscHJvdmlkZXIg PT4gJ2MnLCBjb2xsZW5jb2RpbmcgPT4gJy0xJywKICAgY29sbGNvbGxhdGUgPT4gJ1BPU0lYJywg Y29sbGN0eXBlID0+ICdQT1NJWCcgfSwKIHsgb2lkID0+ICc5NjInLCBkZXNjciA9PiAnc29ydHMg YnkgVW5pY29kZSBjb2RlIHBvaW50JywKLSAgY29sbG5hbWUgPT4gJ3Vjc19iYXNpYycsIGNvbGxw cm92aWRlciA9PiAnYycsIGNvbGxlbmNvZGluZyA9PiAnNicsCi0gIGNvbGxjb2xsYXRlID0+ICdD JywgY29sbGN0eXBlID0+ICdDJyB9LAorICBjb2xsbmFtZSA9PiAndWNzX2Jhc2ljJywgY29sbHBy b3ZpZGVyID0+ICdiJywgY29sbGVuY29kaW5nID0+ICc2JyB9LAogeyBvaWQgPT4gJzk2MycsCiAg IGRlc2NyID0+ICdzb3J0cyB1c2luZyB0aGUgVW5pY29kZSBDb2xsYXRpb24gQWxnb3JpdGhtIHdp dGggZGVmYXVsdCBzZXR0aW5ncycsCiAgIGNvbGxuYW1lID0+ICd1bmljb2RlJywgY29sbHByb3Zp ZGVyID0+ICdpJywgY29sbGVuY29kaW5nID0+ICctMScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xsYXRp b24uaAppbmRleCBiZmEzNTY4NDUxLi40MDA5YzRlYzkzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s bGF0aW9uLmgKQEAgLTY1LDYgKzY1LDcgQEAgREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19j b2xsYXRpb25fb2lkX2luZGV4LCAzMDg1LCBDb2xsYXRpb25PaWRJbmRleElkLCBvbgogI2lmZGVm IEVYUE9TRV9UT19DTElFTlRfQ09ERQogCiAjZGVmaW5lIENPTExQUk9WSURFUl9ERUZBVUxUCSdk JworI2RlZmluZSBDT0xMUFJPVklERVJfQlVJTFRJTgknYicKICNkZWZpbmUgQ09MTFBST1ZJREVS X0lDVQkJJ2knCiAjZGVmaW5lIENPTExQUk9WSURFUl9MSUJDCQknYycKIApAQCAtNzMsNiArNzQs OCBAQCBjb2xscHJvdmlkZXJfbmFtZShjaGFyIGMpCiB7CiAJc3dpdGNoIChjKQogCXsKKwkJY2Fz ZSBDT0xMUFJPVklERVJfQlVJTFRJTjoKKwkJCXJldHVybiAiYnVpbHRpbiI7CiAJCWNhc2UgQ09M TFBST1ZJREVSX0lDVToKIAkJCXJldHVybiAiaWN1IjsKIAkJY2FzZSBDT0xMUFJPVklERVJfTElC QzoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2ljdS90LzAxMF9kYXRhYmFzZS5wbCBiL3NyYy90ZXN0 L2ljdS90LzAxMF9kYXRhYmFzZS5wbAppbmRleCBkMzkwMWY1ZDNmLi4yNmY3MWUxMTU1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJhc2UucGwKKysrIGIvc3JjL3Rlc3QvaWN1 L3QvMDEwX2RhdGFiYXNlLnBsCkBAIC02Myw1ICs2MywxNCBAQCBsaWtlKAogCXFyL0VSUk9SOiAg SUNVIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmllZC8sCiAJIklDVSBsb2NhbGUgbXVzdCBiZSBzcGVj aWZpZWQgZm9yIElDVSBwcm92aWRlcjogZXJyb3IgbWVzc2FnZSIpOwogCitteSAoJHJldCwgJHN0 ZG91dCwgJHN0ZGVycikgPSAkbm9kZTEtPnBzcWwoJ3Bvc3RncmVzJywKKwlxe0NSRUFURSBEQVRB QkFTRSBkYmljdSBMT0NBTEVfUFJPVklERVIgYnVpbHRpbiBMT0NBTEUgJ0MnIFRFTVBMQVRFIGRi aWN1fQorKTsKK2lzbnQoJHJldCwgMCwKKwkibG9jYWxlIHByb3ZpZGVyIG11c3QgbWF0Y2ggdGVt cGxhdGU6IGV4aXQgY29kZSBub3QgMCIpOworbGlrZSgKKwkkc3RkZXJyLAorCXFyL0VSUk9SOiAg bmV3IGxvY2FsZSBwcm92aWRlciBcKGJ1aWx0aW5cKSBkb2VzIG5vdCBtYXRjaCBsb2NhbGUgcHJv dmlkZXIgb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlIFwoaWN1XCkvLAorCSJsb2NhbGUgcHJvdmlk ZXIgbXVzdCBtYXRjaCB0ZW1wbGF0ZTogZXJyb3IgbWVzc2FnZSIpOwogCiBkb25lX3Rlc3Rpbmco KTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUub3V0CmluZGV4IDA2NDk1NjQ0ODUuLjVi MjhkZTFiNDcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dApAQCAtNjUwLDYg KzY1MCwyNyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpCiAoMyByb3dzKQogCiAtLSBDUkVBVEUvRFJP UCBDT0xMQVRJT04KK0NSRUFURSBDT0xMQVRJT04gYnVpbHRpbl9jICggUFJPVklERVIgPSBidWls dGluLCBMT0NBTEUgPSAiQyIgKTsKK0NSRUFURSBDT0xMQVRJT04gYnVpbHRpbl9wb3NpeCAoIFBS T1ZJREVSID0gYnVpbHRpbiwgTE9DQUxFID0gIlBPU0lYIiApOworU0VMRUNUIGIgRlJPTSBjb2xs YXRlX3Rlc3QxIE9SREVSIEJZIGIgQ09MTEFURSBidWlsdGluX2M7CisgIGIgIAorLS0tLS0KKyBB QkQKKyBBYmMKKyBhYmMKKyBiYmMKKyg0IHJvd3MpCisKK0NSRUFURSBDT0xMQVRJT04gYnVpbHRp bjIgKCBQUk9WSURFUiA9IGJ1aWx0aW4gKTsgLS0gZmFpbHMKK0VSUk9SOiAgcGFyYW1ldGVyICJs b2NhbGUiIG11c3QgYmUgc3BlY2lmaWVkCitDUkVBVEUgQ09MTEFUSU9OIGJ1aWx0aW4yICggUFJP VklERVIgPSBidWlsdGluLCBMT0NBTEUgPSAiZW5fVVMiICk7IC0tIGZhaWxzCitFUlJPUjogIGNv bGxhdGlvbiBwcm92aWRlciAiYnVpbHRpbiIgZG9lcyBub3Qgc3VwcG9ydCBsb2NhbGUgImVuX1VT IgorSElOVDogIFRoZSBidWlsdC1pbiBjb2xsYXRpb24gcHJvdmlkZXIgb25seSBzdXBwb3J0cyB0 aGUgIkMiIGFuZCAiUE9TSVgiIGxvY2FsZXMuCitDUkVBVEUgQ09MTEFUSU9OIGJ1aWx0aW4yICgg UFJPVklERVIgPSBidWlsdGluLCBMQ19DVFlQRSA9ICJDIiwgTENfQ09MTEFURSA9ICJDIiApOyAt LSBmYWlscworRVJST1I6ICBwYXJhbWV0ZXIgImxvY2FsZSIgbXVzdCBiZSBzcGVjaWZpZWQKK0NS RUFURSBDT0xMQVRJT04gYnVpbHRpbjIgKCBQUk9WSURFUiA9IGJ1aWx0aW4sIExPQ0FMRSA9ICJQ T1NJWCIsIExDX0NUWVBFID0gIlBPU0lYIiApOyAtLSBmYWlscworRVJST1I6ICBjb25mbGljdGlu ZyBvciByZWR1bmRhbnQgb3B0aW9ucworREVUQUlMOiAgTE9DQUxFIGNhbm5vdCBiZSBzcGVjaWZp ZWQgdG9nZXRoZXIgd2l0aCBMQ19DT0xMQVRFIG9yIExDX0NUWVBFLgogQ1JFQVRFIENPTExBVElP TiBteWNvbGwxIEZST00gIkMiOwogQ1JFQVRFIENPTExBVElPTiBteWNvbGwyICggTENfQ09MTEFU RSA9ICJQT1NJWCIsIExDX0NUWVBFID0gIlBPU0lYIiApOwogQ1JFQVRFIENPTExBVElPTiBteWNv bGwzIEZST00gImRlZmF1bHQiOyAgLS0gaW50ZW50aW9uYWxseSB1bnN1cHBvcnRlZApAQCAtNzU0 LDcgKzc3NSw3IEBAIERFVEFJTDogIEZST00gY2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3 aXRoIGFueSBvdGhlciBvcHRpb25zLgogLS0gbXVzdCBnZXQgcmlkIG9mIHRoZW0uCiAtLQogRFJP UCBTQ0hFTUEgY29sbGF0ZV90ZXN0cyBDQVNDQURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byAxOSBvdGhlciBvYmplY3RzCitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIxIG90aGVyIG9i amVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MQogZHJv cCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRlX3Rlc3RfbGlrZQogZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSBjb2xsYXRlX3Rlc3QyCkBAIC03NzEsNiArNzkyLDggQEAgZHJvcCBjYXNjYWRlcyB0byBm dW5jdGlvbiBkdXAoYW55ZWxlbWVudCkKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY29sbGF0ZV90 ZXN0MjAKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MjEKIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MjIKK2Ryb3AgY2FzY2FkZXMgdG8gY29sbGF0aW9uIGJ1 aWx0aW5fYworZHJvcCBjYXNjYWRlcyB0byBjb2xsYXRpb24gYnVpbHRpbl9wb3NpeAogZHJvcCBj YXNjYWRlcyB0byBjb2xsYXRpb24gbXljb2xsMgogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xs YXRlX3Rlc3QyMwogZHJvcCBjYXNjYWRlcyB0byB2aWV3IGNvbGxhdGVfb25faW50CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvbGxhdGUuc3FsCmluZGV4IGMzZDQwZmMxOTUuLjAxZDVjNjlmZTQgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NvbGxhdGUuc3FsCkBAIC0yNDQsNiArMjQ0LDE2IEBAIEVYUExBSU4gKENPU1RTIE9GRikK IAogLS0gQ1JFQVRFL0RST1AgQ09MTEFUSU9OCiAKK0NSRUFURSBDT0xMQVRJT04gYnVpbHRpbl9j ICggUFJPVklERVIgPSBidWlsdGluLCBMT0NBTEUgPSAiQyIgKTsKK0NSRUFURSBDT0xMQVRJT04g YnVpbHRpbl9wb3NpeCAoIFBST1ZJREVSID0gYnVpbHRpbiwgTE9DQUxFID0gIlBPU0lYIiApOwor CitTRUxFQ1QgYiBGUk9NIGNvbGxhdGVfdGVzdDEgT1JERVIgQlkgYiBDT0xMQVRFIGJ1aWx0aW5f YzsKKworQ1JFQVRFIENPTExBVElPTiBidWlsdGluMiAoIFBST1ZJREVSID0gYnVpbHRpbiApOyAt LSBmYWlscworQ1JFQVRFIENPTExBVElPTiBidWlsdGluMiAoIFBST1ZJREVSID0gYnVpbHRpbiwg TE9DQUxFID0gImVuX1VTIiApOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiBidWlsdGluMiAo IFBST1ZJREVSID0gYnVpbHRpbiwgTENfQ1RZUEUgPSAiQyIsIExDX0NPTExBVEUgPSAiQyIgKTsg LS0gZmFpbHMKK0NSRUFURSBDT0xMQVRJT04gYnVpbHRpbjIgKCBQUk9WSURFUiA9IGJ1aWx0aW4s IExPQ0FMRSA9ICJQT1NJWCIsIExDX0NUWVBFID0gIlBPU0lYIiApOyAtLSBmYWlscworCiBDUkVB VEUgQ09MTEFUSU9OIG15Y29sbDEgRlJPTSAiQyI7CiBDUkVBVEUgQ09MTEFUSU9OIG15Y29sbDIg KCBMQ19DT0xMQVRFID0gIlBPU0lYIiwgTENfQ1RZUEUgPSAiUE9TSVgiICk7CiBDUkVBVEUgQ09M TEFUSU9OIG15Y29sbDMgRlJPTSAiZGVmYXVsdCI7ICAtLSBpbnRlbnRpb25hbGx5IHVuc3VwcG9y dGVkCi0tIAoyLjM0LjEKCg== --=-MrjU+V4I1ffFIWdKrBIv Content-Disposition: attachment; filename*0=v10-0002-ICU-for-locale-C-automatically-use-builtin-provi.pat; filename*1=ch Content-Type: text/x-patch; name="v10-0002-ICU-for-locale-C-automatically-use-builtin-provi.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjNDhkOTFhYjgwZTE1MTA5M2RiYWUwYWRhNmE5NjkxYTJmMTEyYzVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDggTWF5IDIwMjMgMTM6NDg6MDEgLTA3MDAKU3ViamVjdDogW1BBVENIIHYxMCAyLzRdIElD VTogZm9yIGxvY2FsZSAiQyIsIGF1dG9tYXRpY2FsbHkgdXNlICJidWlsdGluIgogcHJvdmlkZXIg aW5zdGVhZC4KClBvc3RncmVzIGV4cGVjdHMgbG9jYWxlIEMgdG8gYmUgb3B0aW1pemFibGUgdG8g c2ltcGxlIGxvY2FsZS11bmF3YXJlCmJ5dGUgb3BlcmF0aW9uczsgd2hpbGUgSUNVIGRvZXMgbm90 IHJlY29nbml6ZSB0aGUgbG9jYWxlICJDIiBhdCBhbGwsCmFuZCBmYWxscyBiYWNrIHRvIHRoZSBy b290IGxvY2FsZS4KCklmIHRoZSB1c2VyIHNwZWNpZmllcyBsb2NhbGUgIkMiIHdoZW4gY3JlYXRp bmcgYSBuZXcgY29sbGF0aW9uIG9yIGEKbmV3IGRhdGFiYXNlIHdpdGggdGhlIElDVSBwcm92aWRl ciwgYXV0b21hdGljYWxseSBzd2l0Y2ggaXQgdG8gdGhlCiJidWlsdGluIiBwcm92aWRlci4KCklm IHByb3ZpZGVyIGlzIGxpYmMsIGJlaGF2aW9yIGlzIHVuY2hhbmdlZC4KCkRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vYWI5MjVmNjktNWY5ZC1mODVlLWI4N2MtYmQyYTQ0Nzk4NjU5QGpv ZWNvbndheS5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sICAgICAgICAgICAgICAg ICAgICAgfCAgNiArKysKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sICAg ICAgICB8ICA2ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbCAgICAg ICAgIHwgIDUgKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwgICAgICAgICAgICAg ICAgfCAgNSArKysKIGRvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwgICAgICAgICAgICAgICAg ICB8IDIzICsrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMg ICAgICAgICAgfCAyMCArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRz LmMgICAgICAgICAgICAgfCAyMSArKysrKysrKysrCiBzcmMvYmluL2luaXRkYi9pbml0ZGIuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysrKwogc3JjL2Jpbi9pbml0ZGIvdC8wMDFf aW5pdGRiLnBsICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jp bi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsICAgICAgICAgICAgIHwgMTggKysrKysrKysrCiAu Li4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAxNCArKysrKy0t CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCAgICAgfCAgNiArKysK IDEyIGZpbGVzIGNoYW5nZWQsIDE2OCBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sIGIvZG9jL3NyYy9zZ21sL2NoYXJz ZXQuc2dtbAppbmRleCBiMzhjZjgyZjgzLi45YTdmOTI2M2VjIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY2hhcnNldC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKQEAgLTQw Nyw2ICs0MDcsMTIgQEAgaW5pdGRiIC0tbG9jYWxlLXByb3ZpZGVyPWljdSAtLWljdS1sb2NhbGU9 ZW4KICAgICAgY2hhbmdlIGluIHJlc3VsdHMuIDxsaXRlcmFsPkxDX0NPTExBVEU8L2xpdGVyYWw+ IGFuZAogICAgICA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4gY2FuIGJlIHNldCBpbmRlcGVu ZGVudGx5IG9mIHRoZSBJQ1UgbG9jYWxlLgogICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAg VGhlIElDVSBwcm92aWRlciBkb2VzIG5vdCBhY2NlcHQgdGhlIDxsaXRlcmFsPkM8L2xpdGVyYWw+ CisgICAgIGxvY2FsZS4gQ29tbWFuZHMgdGhhdCBjcmVhdGUgY29sbGF0aW9ucyBvciBkYXRhYmFz ZSB3aXRoIHRoZQorICAgICA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+IHByb3ZpZGVyIGFuZCBJQ1Ug bG9jYWxlIDxsaXRlcmFsPkM8L2xpdGVyYWw+IHVzZQorICAgICB0aGUgcHJvdmlkZXIgPGxpdGVy YWw+YnVpbHRpbjwvbGl0ZXJhbD4gaW5zdGVhZC4KKyAgICA8L3BhcmE+CiAgICAgPG5vdGU+CiAg ICAgIDxwYXJhPgogICAgICAgRm9yIHRoZSBJQ1UgcHJvdmlkZXIsIHJlc3VsdHMgbWF5IGRlcGVu ZCBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgSUNVCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9jb2xsYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlv bi5zZ21sCmluZGV4IGM2M2EzNTBjMWUuLjY3ZWEyNDdiMzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX2NvbGxhdGlvbi5zZ21sCkBAIC0xMzEsNiArMTMxLDEyIEBAIENSRUFURSBDT0xMQVRJT04g WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBGUk9NIDxy ZXBsYWNlCiAgICAgICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuICBT ZWUgPHhyZWYKICAgICAgICBsaW5rZW5kPSJsb2NhbGUtcHJvdmlkZXJzIi8+IGZvciBkZXRhaWxz LgogICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIHByb3ZpZGVyIGlz IDxsaXRlcmFsPmljdTwvbGl0ZXJhbD4gYW5kIHRoZSBsb2NhbGUgaXMKKyAgICAgICA8bGl0ZXJh bD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4sIHRoZSBwcm92aWRlciBp cworICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+ OyBhcyB0aGUgSUNVIHByb3ZpZGVyCisgICAgICAgZG9lc24ndCBzdXBwb3J0IGFuIElDVSBsb2Nh bGUgb2YgPGxpdGVyYWw+QzwvbGl0ZXJhbD4uCisgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2RhdGFiYXNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5z Z21sCmluZGV4IDU2NTVkNmM4MjMuLjE3NTUwYzE5YmIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf ZGF0YWJhc2Uuc2dtbApAQCAtMTk2LDYgKzE5NiwxMSBAQCBDUkVBVEUgREFUQUJBU0UgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICAgIDxwYXJh PgogICAgICAgICBTcGVjaWZpZXMgdGhlIElDVSBsb2NhbGUgSUQgaWYgdGhlIElDVSBsb2NhbGUg cHJvdmlkZXIgaXMgdXNlZC4KICAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAg IElmIHNwZWNpZmllZCBhcyA8bGl0ZXJhbD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwv bGl0ZXJhbD4sIHRoZQorICAgICAgICBwcm92aWRlciBpcyBhdXRvbWF0aWNhbGx5IHNldCB0byA8 bGl0ZXJhbD5idWlsdGluPC9saXRlcmFsPiwgYXMgdGhlCisgICAgICAgIElDVSBwcm92aWRlciBk b2Vzbid0IHN1cHBvcnQgYW4gSUNVIGxvY2FsZSBvZiA8bGl0ZXJhbD5DPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVkYi5zZ21sCmluZGV4IGVlNDY0NDgxOGQuLjUzNTJjY2U3NDQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZWRiLnNnbWwKQEAgLTE1NCw2ICsxNTQsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCiAgICAgICAgIFNwZWNpZmllcyB0aGUgSUNVIGxvY2FsZSBJRCB0byBiZSB1c2VkIGluIHRo aXMgZGF0YWJhc2UsIGlmIHRoZQogICAgICAgICBJQ1UgbG9jYWxlIHByb3ZpZGVyIGlzIHNlbGVj dGVkLgogICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgc3BlY2lmaWVk IGFzIDxsaXRlcmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBPU0lYPC9saXRlcmFsPiwgdGhl CisgICAgICAgIHByb3ZpZGVyIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDxsaXRlcmFsPmJ1aWx0 aW48L2xpdGVyYWw+LCBhcyB0aGUKKyAgICAgICAgSUNVIHByb3ZpZGVyIGRvZXNuJ3Qgc3VwcG9y dCBhbiBJQ1UgbG9jYWxlIG9mIDxsaXRlcmFsPkM8L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT4K ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dt bAppbmRleCA5NmY4NGRjOGNhLi5kOTYyMGU1OTMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2luaXRkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAgLTk0 LDEzICs5NCwxNCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogICA8cGFyYT4KICAgIEJ5 IGRlZmF1bHQsIDxjb21tYW5kPmluaXRkYjwvY29tbWFuZD4gdXNlcyB0aGUgSUNVIGxpYnJhcnkg dG8gcHJvdmlkZQotICAgbG9jYWxlIHNlcnZpY2VzIGlmIHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdp dGggSUNVIHN1cHBvcnQ7IG90aGVyd2lzZSBpdCB1c2VzCi0gICB0aGUgPGxpdGVyYWw+bGliYzwv bGl0ZXJhbD4gbG9jYWxlIHByb3ZpZGVyIChzZWUgPHhyZWYKLSAgIGxpbmtlbmQ9ImxvY2FsZS1w cm92aWRlcnMiLz4pLiBUbyBjaG9vc2UgdGhlIHNwZWNpZmljIElDVSBsb2NhbGUgSUQgdG8KLSAg IGFwcGx5LCB1c2UgdGhlIG9wdGlvbiA8b3B0aW9uPi0taWN1LWxvY2FsZTwvb3B0aW9uPi4gIE5v dGUgdGhhdCBmb3IKLSAgIGltcGxlbWVudGF0aW9uIHJlYXNvbnMgYW5kIHRvIHN1cHBvcnQgbGVn YWN5IGNvZGUsCi0gICA8Y29tbWFuZD5pbml0ZGI8L2NvbW1hbmQ+IHdpbGwgc3RpbGwgc2VsZWN0 IGFuZCBpbml0aWFsaXplIGxpYmMgbG9jYWxlCi0gICBzZXR0aW5ncyB3aGVuIHRoZSBJQ1UgbG9j YWxlIHByb3ZpZGVyIGlzIHVzZWQuCisgICBsb2NhbGUgc2VydmljZXMgaWYgdGhlIHNlcnZlciB3 YXMgYnVpbHQgd2l0aCBJQ1Ugc3VwcG9ydC4gVG8gY2hvb3NlIHRoZQorICAgc3BlY2lmaWMgSUNV IGxvY2FsZSBJRCB0byBhcHBseSwgdXNlIHRoZSBvcHRpb24KKyAgIDxvcHRpb24+LS1pY3UtbG9j YWxlPC9vcHRpb24+LiAgTm90ZSB0aGF0IGZvciBpbXBsZW1lbnRhdGlvbiByZWFzb25zIGFuZCB0 bworICAgc3VwcG9ydCBsZWdhY3kgY29kZSwgPGNvbW1hbmQ+aW5pdGRiPC9jb21tYW5kPiB3aWxs IHN0aWxsIHNlbGVjdCBhbmQKKyAgIGluaXRpYWxpemUgbGliYyBsb2NhbGUgc2V0dGluZ3Mgd2hl biB0aGUgSUNVIGxvY2FsZSBwcm92aWRlciBpcyB1c2VkLiBJZgorICAgPGxpdGVyYWw+LS1pY3Ut bG9jYWxlPC9saXRlcmFsPiBpcyA8bGl0ZXJhbD5DPC9saXRlcmFsPiAob3IgZXF1aXZhbGVudGx5 CisgICA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4pLCB0aGUgPGxpdGVyYWw+YnVpbHRpbjwvbGl0 ZXJhbD4gcHJvdmlkZXIgd2lsbCBiZQorICAgc2VsZWN0ZWQgaW5zdGVhZCBvZiBJQ1UuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KQEAgLTEwOSw4ICsxMTAsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50 YXRpb24KICAgIDxsaXRlcmFsPi0tbG9jYWxlLXByb3ZpZGVyPWxpYmM8L2xpdGVyYWw+LCBvciBi dWlsZCB0aGUgc2VydmVyIHdpdGhvdXQgSUNVCiAgICBzdXBwb3J0LiBUaGUgPGxpdGVyYWw+bGli YzwvbGl0ZXJhbD4gbG9jYWxlIHByb3ZpZGVyIHRha2VzIHRoZSBsb2NhbGUKICAgIHNldHRpbmdz IGZyb20gdGhlIGVudmlyb25tZW50LCBhbmQgZGV0ZXJtaW5lcyB0aGUgZW5jb2RpbmcgZnJvbSB0 aGUgbG9jYWxlCi0gICBzZXR0aW5ncy4gIFRoaXMgaXMgYWxtb3N0IGFsd2F5cyBzdWZmaWNpZW50 LCB1bmxlc3MgdGhlcmUgYXJlIHNwZWNpYWwKLSAgIHJlcXVpcmVtZW50cy4KKyAgIHNldHRpbmdz LgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0yNTAsNiArMjUwLDExIEBAIFBvc3RncmVTUUwg ZG9jdW1lbnRhdGlvbgogICAgICAgICBTcGVjaWZpZXMgdGhlIElDVSBsb2NhbGUgd2hlbiB0aGUg SUNVIHByb3ZpZGVyIGlzIHVzZWQuIExvY2FsZSBzdXBwb3J0CiAgICAgICAgIGlzIGRlc2NyaWJl ZCBpbiA8eHJlZiBsaW5rZW5kPSJsb2NhbGUiLz4uCiAgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBJZiBzcGVjaWZpZWQgYXMgPGxpdGVyYWw+QzwvbGl0ZXJhbD4gb3IgPGxp dGVyYWw+UE9TSVg8L2xpdGVyYWw+LCB0aGUKKyAgICAgICAgcHJvdmlkZXIgaXMgYXV0b21hdGlj YWxseSBzZXQgdG8gPGxpdGVyYWw+YnVpbHRpbjwvbGl0ZXJhbD4sIGFzIHRoZQorICAgICAgICBJ Q1UgcHJvdmlkZXIgZG9lc24ndCBzdXBwb3J0IGFuIElDVSBsb2NhbGUgb2YgPGxpdGVyYWw+Qzwv bGl0ZXJhbD4uCisgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICBJZiB0aGlz IG9wdGlvbiBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgbG9jYWxlIGlzIGluaGVyaXRlZCBmcm9tIHRo ZQogICAgICAgICBlbnZpcm9ubWVudCBpbiB3aGljaCA8Y29tbWFuZD5pbml0ZGI8L2NvbW1hbmQ+ IHJ1bnMuIFRoZSBlbnZpcm9ubWVudCdzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9jb2xsYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMK aW5kZXggNDc0ODk0NjQ5OS4uM2IyYmEzODI1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvY29sbGF0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlv bmNtZHMuYwpAQCAtMjUyLDYgKzI1MiwyNiBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQlp ZiAobGNjdHlwZUVsKQogCQkJY29sbGN0eXBlID0gZGVmR2V0U3RyaW5nKGxjY3R5cGVFbCk7CiAK KwkJLyoKKwkJICogUG9zdGdyZXMgZGVmaW5lcyB0aGUgIkMiIChhbmQgZXF1aXZhbGVudGx5LCAi UE9TSVgiKSBsb2NhbGVzIHRvIGJlCisJCSAqIG9wdGltaXphYmxlIHRvIGJ5dGUgb3BlcmF0aW9u cyAobWVtY21wKCksIHBnX2FzY2lpX3RvbG93ZXIoKSwKKwkJICogZXRjLik7IHVzZSB0aGUgYnVp bHRpbiBwcm92aWRlciBpbnN0ZWFkIG9mIElDVSBpZiB0aGUgbG9jYWxlIGlzIEMuCisJCSAqCisJ CSAqIERvbid0IGNoYW5nZSB0aGUgcHJvdmlkZXIgZHVyaW5nIGJpbmFyeSB1cGdyYWRlLgorCQkg Ki8KKwkJaWYgKCFJc0JpbmFyeVVwZ3JhZGUgJiYgY29sbHByb3ZpZGVyID09IENPTExQUk9WSURF Ul9JQ1UgJiYKKwkJCWNvbGxpY3Vsb2NhbGUgJiYKKwkJCShzdHJjbXAoY29sbGljdWxvY2FsZSwg IkMiKSA9PSAwIHx8CisJCQkgc3RyY21wKGNvbGxpY3Vsb2NhbGUsICJQT1NJWCIpID09IDApKQor CQl7CisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygidXNpbmcgbG9jYWxlIHByb3Zp ZGVyIFwiYnVpbHRpblwiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQkJY29sbGljdWxv Y2FsZSkpKTsKKwkJCWJ1aWx0aW5fbG9jYWxlID0gY29sbGljdWxvY2FsZTsKKwkJCWNvbGxpY3Vs b2NhbGUgPSBOVUxMOworCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0JVSUxUSU47CisJ CX0KKwogCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9CVUlMVElOKQogCQl7CiAJ CQlpZiAoIWJ1aWx0aW5fbG9jYWxlKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGJjb21tYW5kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IDAx Njg1MjY0NGYuLjVjOGNhZWFjMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ri Y29tbWFuZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAgLTEw NDMsNiArMTA0MywyNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0 ZWRiU3RtdCAqc3RtdCkKIAogCWNoZWNrX2VuY29kaW5nX2xvY2FsZV9tYXRjaGVzKGVuY29kaW5n LCBkYmNvbGxhdGUsIGRiY3R5cGUpOwogCisJLyoKKwkgKiBQb3N0Z3JlcyBkZWZpbmVzIHRoZSAi QyIgKGFuZCBlcXVpdmFsZW50bHksICJQT1NJWCIpIGxvY2FsZXMgdG8gYmUKKwkgKiBvcHRpbWl6 YWJsZSB0byBieXRlIG9wZXJhdGlvbnMgKG1lbWNtcCgpLCBwZ19hc2NpaV90b2xvd2VyKCksIGV0 Yy4pOworCSAqIHVzZSB0aGUgYnVpbHRpbiBwcm92aWRlciBpbnN0ZWFkIG9mIElDVSBpZiB0aGUg bG9jYWxlIGlzIEMuCisJICoKKwkgKiBEb24ndCBjaGFuZ2UgdGhlIHByb3ZpZGVyIGR1cmluZyBi aW5hcnkgdXBncmFkZSBvciB3aGVuIGJvdGggdGhlCisJICogcHJvdmlkZXIgYW5kIElDVSBsb2Nh bGUgYXJlIHVuY2hhbmdlZCBmcm9tIHRoZSB0ZW1wbGF0ZS4KKwkgKi8KKwlpZiAoIUlzQmluYXJ5 VXBncmFkZSAmJiBkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYKKwkJZGJpY3Vs b2NhbGUgJiYKKwkJKGRibG9jcHJvdmlkZXIgIT0gc3JjX2xvY3Byb3ZpZGVyIHx8CisJCSBzdHJj bXAoZGJpY3Vsb2NhbGUsIHNyY19pY3Vsb2NhbGUpICE9IDApICYmCisJCShzdHJjbXAoZGJpY3Vs b2NhbGUsICJDIikgPT0gMCB8fCBzdHJjbXAoZGJpY3Vsb2NhbGUsICJQT1NJWCIpID09IDApKQor CXsKKwkJZXJlcG9ydChOT1RJQ0UsCisJCQkJKGVycm1zZygidXNpbmcgbG9jYWxlIHByb3ZpZGVy IFwiYnVpbHRpblwiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQlkYmljdWxvY2FsZSkp KTsKKwkJZGJpY3Vsb2NhbGUgPSBOVUxMOworCQlkYmxvY3Byb3ZpZGVyID0gQ09MTFBST1ZJREVS X0JVSUxUSU47CisJfQorCiAJaWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkK IAl7CiAJCWlmICghKGlzX2VuY29kaW5nX3N1cHBvcnRlZF9ieV9pY3UoZW5jb2RpbmcpKSkKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRi LmMKaW5kZXggNmZjMTljOGQ2NC4uODk3NTIxY2YzNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTIzOTQsNiArMjM5 NCwyMyBAQCBzZXRsb2NhbGVzKHZvaWQpCiAJCQlsY19tZXNzYWdlcyA9IGxvY2FsZTsKIAl9CiAK KwkvKgorCSAqIFBvc3RncmVzIGRlZmluZXMgdGhlICJDIiAoYW5kIGVxdWl2YWxlbnRseSwgIlBP U0lYIikgbG9jYWxlcyB0byBiZQorCSAqIG9wdGltaXphYmxlIHRvIGJ5dGUgb3BlcmF0aW9ucyAo bWVtY21wKCksIHBnX2FzY2lpX3RvbG93ZXIoKSwgZXRjLik7CisJICogdXNlIHRoZSBidWlsdGlu IHByb3ZpZGVyIGluc3RlYWQgb2YgSUNVIGlmIHRoZSBsb2NhbGUgaXMgQy4KKwkgKi8KKwlpZiAo aWN1X2xvY2FsZSAmJiBsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSAmJgorCQko c3RyY21wKGljdV9sb2NhbGUsICJDIikgPT0gMCB8fAorCQkgc3RyY21wKGljdV9sb2NhbGUsICJQ T1NJWCIpID09IDAgfHwKKwkJIHN0cm5jbXAoaWN1X2xvY2FsZSwgIkMuIiwgMikgPT0gMCB8fAor CQkgc3RybmNtcChpY3VfbG9jYWxlLCAiUE9TSVguIiwgNikgPT0gMCkpCisJeworCQlwZ19sb2df aW5mbygidXNpbmcgbG9jYWxlIHByb3ZpZGVyIFwiYnVpbHRpblwiIGZvciBJQ1UgbG9jYWxlIFwi JXNcIiIsCisJCQkJCSBpY3VfbG9jYWxlKTsKKwkJaWN1X2xvY2FsZSA9IE5VTEw7CisJCWxvY2Fs ZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9CVUlMVElOOworCX0KKwogCS8qCiAJICogY2Fub25p Y2FsaXplIGxvY2FsZSBuYW1lcywgYW5kIG9idGFpbiBhbnkgbWlzc2luZyB2YWx1ZXMgZnJvbSBv dXIKIAkgKiBjdXJyZW50IGVudmlyb25tZW50CmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi90 LzAwMV9pbml0ZGIucGwgYi9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKaW5kZXggMTU3 ZDZhY2ZkNC4uZjNmODMyYTQxMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5p dGRiLnBsCisrKyBiL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbApAQCAtMTExLDYgKzEx MSw0NSBAQCBpZiAoJEVOVnt3aXRoX2ljdX0gZXEgJ3llcycpCiAJCV0sCiAJCSdvcHRpb24gLS1p Y3UtbG9jYWxlJyk7CiAKKwkjIHRyYW5zZm9ybWVkIHRvIHByb3ZpZGVyPWJ1aWx0aW4KKwljb21t YW5kX29rKAorCQlbCisJCQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCisJ CQknLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJCSIkdGVtcGRp ci9kYXRhNGEiCisJCV0sCisJCSdvcHRpb24gLS1pY3UtbG9jYWxlPUMnKTsKKworCSMgdHJhbnNm b3JtZWQgdG8gcHJvdmlkZXI9YnVpbHRpbgorCWNvbW1hbmRfb2soCisJCVsKKwkJCSdpbml0ZGIn LCAgICAgICAgICAgICAgICAnLS1uby1zeW5jJywKKwkJCSctLWxvY2FsZS1wcm92aWRlcj1pY3Un LCAnLS1pY3UtbG9jYWxlPUMnLAorCQkJJy0tbG9jYWxlPUMnLAorCQkJIiR0ZW1wZGlyL2RhdGE0 YiIKKwkJXSwKKwkJJ29wdGlvbiAtLWljdS1sb2NhbGU9QyAtLWxvY2FsZT1DJyk7CisKKwkjIHRy YW5zZm9ybWVkIHRvIHByb3ZpZGVyPWJ1aWx0aW4KKwljb21tYW5kX29rKAorCQlbCisJCQknaW5p dGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCisJCQknLS1sb2NhbGUtcHJvdmlkZXI9 aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJCSctLWxjLWNvbGxhdGU9QycsCisJCQkiJHRlbXBk aXIvZGF0YTRjIgorCQldLAorCQknb3B0aW9uIC0taWN1LWxvY2FsZT1DIC0tbGMtY29sbGF0ZT1D Jyk7CisKKwkjIHRyYW5zZm9ybWVkIHRvIHByb3ZpZGVyPWJ1aWx0aW4KKwljb21tYW5kX29rKAor CQlbCisJCQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCisJCQknLS1sb2Nh bGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJCSctLWxjLWN0eXBlPUMnLAor CQkJIiR0ZW1wZGlyL2RhdGE0ZCIKKwkJXSwKKwkJJ29wdGlvbiAtLWljdS1sb2NhbGU9QyAtLWxj LWN0eXBlPUMnKTsKKwogCWNvbW1hbmRfZmFpbHNfbGlrZSgKIAkJWwogCQkJJ2luaXRkYicsICct LW5vLXN5bmMnLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBs IGIvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCmluZGV4IGYxZDZkYjBmNDguLjEy MWFkNTExMmIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbAor KysgYi9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKQEAgLTg2LDYgKzg2LDI0IEBA IGlmICgkRU5We3dpdGhfaWN1fSBlcSAneWVzJykKIAkJXSwKIAkJJ2NyZWF0ZSBkYXRhYmFzZSB3 aXRoIGljdSBsb2NhbGUgZnJvbSB0ZW1wbGF0ZSBkYXRhYmFzZSB3aXRoIGljdSBwcm92aWRlcicK IAkpOworCisJIyB0cmFuc2Zvcm1lZCBpbnRvIHByb3ZpZGVyICJidWlsdGluIgorCSRub2RlLT5j b21tYW5kX29rKAorCQlbCisJCQknY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9j YWxlLXByb3ZpZGVyPWljdScsCisJCQknLS1pY3UtbG9jYWxlPUMnLCAndGVzdF9idWlsdGluX2lj dTEnCisJCV0sCisJCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAiaWN1IiBhbmQgSUNV X0xPQ0FMRT0iQyInCisJKTsKKworCSMgdHJhbnNmb3JtZWQgaW50byBwcm92aWRlciAiYnVpbHRp biIKKwkkbm9kZS0+Y29tbWFuZF9vaygKKwkJWworCQkJJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBs YXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1pY3UnLAorCQkJJy0taWN1LWxvY2FsZT1DJywgJy0t bGMtY3R5cGU9QycsICd0ZXN0X2J1aWx0aW5faWN1MicKKwkJXSwKKwkJJ2NyZWF0ZSBkYXRhYmFz ZSB3aXRoIHByb3ZpZGVyICJpY3UiIGFuZCBJQ1VfTE9DQUxFPSJDIiBhbmQgTENfQ1RZUEU9QycK KwkpOwogfQogZWxzZQogewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j b2xsYXRlLmljdS51dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5p Y3UudXRmOC5vdXQKaW5kZXggMDBkZWUyNDU0OS4uNWJhOGY3NTU1OCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CkBAIC0xMDM1LDYgKzEwMzUs OSBAQCBCRUdJTgogRU5ECiAkJDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSB1c2Vz ICJidWlsdGluIiBwcm92aWRlciBpbnN0ZWFkCitDUkVBVEUgQ09MTEFUSU9OIHRlc3RjIChwcm92 aWRlciA9IGljdSwgbG9jYWxlPSdDJyk7CitOT1RJQ0U6ICB1c2luZyBsb2NhbGUgcHJvdmlkZXIg ImJ1aWx0aW4iIGZvciBJQ1UgbG9jYWxlICJDIgogQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJv dmlkZXIgPSBpY3UsIGxjX2NvbGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWVkcyAi bG9jYWxlIgogRVJST1I6ICBwYXJhbWV0ZXIgImxvY2FsZSIgbXVzdCBiZSBzcGVjaWZpZWQKIFNF VCBpY3VfdmFsaWRhdGlvbl9sZXZlbCA9IEVSUk9SOwpAQCAtMTA1OCw4ICsxMDYxLDExIEBAIFNF TEVDVCBjb2xsbmFtZSBGUk9NIHBnX2NvbGxhdGlvbiBXSEVSRSBjb2xsbmFtZSBMSUtFICd0ZXN0 JScgT1JERVIgQlkgMTsKICB0ZXN0MAogIHRlc3QxCiAgdGVzdDUKLSgzIHJvd3MpCisgdGVzdGMK Kyg0IHJvd3MpCiAKK0RST1AgQ09MTEFUSU9OIHRlc3QxOworQ1JFQVRFIENPTExBVElPTiB0ZXN0 MSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICd1bmQnKTsKIEFMVEVSIENPTExBVElPTiB0ZXN0 MSBSRU5BTUUgVE8gdGVzdDExOwogQUxURVIgQ09MTEFUSU9OIHRlc3QwIFJFTkFNRSBUTyB0ZXN0 MTE7IC0tIGZhaWwKIEVSUk9SOiAgY29sbGF0aW9uICJ0ZXN0MTEiIGFscmVhZHkgZXhpc3RzIGlu IHNjaGVtYSAiY29sbGF0ZV90ZXN0cyIKQEAgLTEwNzksNyArMTA4NSw4IEBAIFNFTEVDVCBjb2xs bmFtZSwgbnNwbmFtZSwgb2JqX2Rlc2NyaXB0aW9uKHBnX2NvbGxhdGlvbi5vaWQsICdwZ19jb2xs YXRpb24nKQogIHRlc3QwICAgIHwgY29sbGF0ZV90ZXN0cyB8IFVTIEVuZ2xpc2gKICB0ZXN0MTEg ICB8IHRlc3Rfc2NoZW1hICAgfCAKICB0ZXN0NSAgICB8IGNvbGxhdGVfdGVzdHMgfCAKLSgzIHJv d3MpCisgdGVzdGMgICAgfCBjb2xsYXRlX3Rlc3RzIHwgCisoNCByb3dzKQogCiBEUk9QIENPTExB VElPTiB0ZXN0MCwgdGVzdF9zY2hlbWEudGVzdDExLCB0ZXN0NTsKIERST1AgQ09MTEFUSU9OIHRl c3QwOyAtLSBmYWlsCkBAIC0xMDg5LDcgKzEwOTYsOCBAQCBOT1RJQ0U6ICBjb2xsYXRpb24gInRl c3QwIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKIFNFTEVDVCBjb2xsbmFtZSBGUk9NIHBnX2Nv bGxhdGlvbiBXSEVSRSBjb2xsbmFtZSBMSUtFICd0ZXN0JSc7CiAgY29sbG5hbWUgCiAtLS0tLS0t LS0tCi0oMCByb3dzKQorIHRlc3RjCisoMSByb3cpCiAKIERST1AgU0NIRU1BIHRlc3Rfc2NoZW1h OwogRFJPUCBST0xFIHJlZ3Jlc3NfdGVzdF9yb2xlOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xs YXRlLmljdS51dGY4LnNxbAppbmRleCBhODAwMWI0YjhlLi4xMjJjMTY2OTY2IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbApAQCAtMzc1LDYgKzM3NSw5IEBAICQk OwogCiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSB1c2VzICJidWlsdGluIiBwcm92 aWRlciBpbnN0ZWFkCitDUkVBVEUgQ09MTEFUSU9OIHRlc3RjIChwcm92aWRlciA9IGljdSwgbG9j YWxlPSdDJyk7CisKIENSRUFURSBDT0xMQVRJT04gdGVzdDMgKHByb3ZpZGVyID0gaWN1LCBsY19j b2xsYXRlID0gJ2VuX1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVlZHMgImxvY2FsZSIKIFNFVCBpY3Vf dmFsaWRhdGlvbl9sZXZlbCA9IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlk ZXIgPSBpY3UsIGxvY2FsZSA9ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCkBAIC0zODgs NiArMzkxLDkgQEAgQ1JFQVRFIENPTExBVElPTiB0ZXN0NSBGUk9NIHRlc3QwOwogCiBTRUxFQ1Qg Y29sbG5hbWUgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbG5hbWUgTElLRSAndGVzdCUnIE9S REVSIEJZIDE7CiAKK0RST1AgQ09MTEFUSU9OIHRlc3QxOworQ1JFQVRFIENPTExBVElPTiB0ZXN0 MSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICd1bmQnKTsKKwogQUxURVIgQ09MTEFUSU9OIHRl c3QxIFJFTkFNRSBUTyB0ZXN0MTE7CiBBTFRFUiBDT0xMQVRJT04gdGVzdDAgUkVOQU1FIFRPIHRl c3QxMTsgLS0gZmFpbAogQUxURVIgQ09MTEFUSU9OIHRlc3QxIFJFTkFNRSBUTyB0ZXN0MjI7IC0t IGZhaWwKLS0gCjIuMzQuMQoK --=-MrjU+V4I1ffFIWdKrBIv Content-Disposition: attachment; filename*0=v10-0003-CREATE-DATABASE-make-LOCALE-apply-to-all-collati.pat; filename*1=ch Content-Type: text/x-patch; name="v10-0003-CREATE-DATABASE-make-LOCALE-apply-to-all-collati.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3ZWU5YmZjN2RlZDU5MDZmNWIyNzM5MDA2MTUxM2JiYWIzZDg3NTU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI1IEFwciAyMDIzIDE1OjAxOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MTAgMy80XSBD UkVBVEUgREFUQUJBU0U6IG1ha2UgTE9DQUxFIGFwcGx5IHRvIGFsbCBjb2xsYXRpb24KIHByb3Zp ZGVycy4KClByZXZpb3VzbHksIExPQ0FMRSBhcHBsaWVkIG9ubHkgdG8gTENfQ09MTEFURSBhbmQg TENfQ1RZUEUuIFRoYXQgY291bGQKbGVhZCB0byBjb25mdXNpb24gd2hlbiB0aGUgcHJvdmlkZXIg aXMgaW1wbGljaXQsIHN1Y2ggYXMgd2hlbiBpdCBpcwppbmhlcml0ZWQgZnJvbSB0aGUgdGVtcGxh dGUgZGF0YWJhc2UsIG9yIHdoZW4gSUNVIHdhcyBtYWRlIGRlZmF1bHQgYXQKaW5pdGRiIHRpbWUg aW4gY29tbWl0IDI3YjYyMzc3YjQuCgpSZXZlcnRzIGluY29tcGxldGUgZml4IDVjZDFhNWFmNGQu CgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzMzOTE5MzIuMTY4MjEwNzIwOUBzc3Mu cGdoLnBhLnVzCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwgICAg ICAgIHwgMjMgKysrKystLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwg ICAgICAgICB8IDU3ICsrKysrKysrKysrKysrKy0tLS0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRl ZGIuc2dtbCAgICAgICAgICAgICAgICB8ICA1ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5z Z21sICAgICAgICAgICAgICAgICAgfCAgNyArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxh dGlvbmNtZHMuYyAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1h bmRzLmMgICAgICAgICAgICAgfCA1MSArKysrKysrKysrKysrKystLQogc3JjL2Jpbi9pbml0ZGIv aW5pdGRiLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMjcgKysrKysrKy0tCiBzcmMvYmluL2lu aXRkYi90LzAwMV9pbml0ZGIucGwgICAgICAgICAgICAgICAgfCAyOCArKysrKy0tLS0KIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDU1ICsrKysrKysrKysr KysrLS0tLQogc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMgICAgICAgICAgICAgICAgICAgIHwg MTMgKystLS0KIHNyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbCAgICAgICAgICAgICB8 IDI4ICsrKysrKystLQogc3JjL3Rlc3QvaWN1L3QvMDEwX2RhdGFiYXNlLnBsICAgICAgICAgICAg ICAgIHwgMjIgKysrKy0tLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5v dXQgICAgIHwgMjIgKysrLS0tLQogMTMgZmlsZXMgY2hhbmdlZCwgMjUxIGluc2VydGlvbnMoKyks IDg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nv bGxhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKaW5k ZXggNjdlYTI0N2IzOS4uNDhiNjJmNzdjYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfY29sbGF0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0 aW9uLnNnbWwKQEAgLTg1LDkgKzg1LDE2IEBAIENSRUFURSBDT0xMQVRJT04gWyBJRiBOT1QgRVhJ U1RTIF0gPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlCiAKICAg ICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+Ci0gICAgICAgVGhpcyBpcyBhIHNob3J0Y3V0IGZv ciBzZXR0aW5nIDxzeW1ib2w+TENfQ09MTEFURTwvc3ltYm9sPgotICAgICAgIGFuZCA8c3ltYm9s PkxDX0NUWVBFPC9zeW1ib2w+IGF0IG9uY2UuICBJZiB5b3Ugc3BlY2lmeSB0aGlzLAotICAgICAg IHlvdSBjYW5ub3Qgc3BlY2lmeSBlaXRoZXIgb2YgdGhvc2UgcGFyYW1ldGVycy4KKyAgICAgICBU aGUgbG9jYWxlIG5hbWUgZm9yIHRoaXMgY29sbGF0aW9uLiBTZWUgPHhyZWYKKyAgICAgICBsaW5r ZW5kPSJjb2xsYXRpb24tbWFuYWdpbmctY3JlYXRlLWxpYmMiLz4gYW5kIDx4cmVmCisgICAgICAg bGlua2VuZD0iY29sbGF0aW9uLW1hbmFnaW5nLWNyZWF0ZS1pY3UiLz4gZm9yIGRldGFpbHMuCisg ICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiA8cmVwbGFjZWFibGU+cHJvdmlk ZXI8L3JlcGxhY2VhYmxlPiBpcyA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiwgdGhpcworICAgICAg IGlzIGEgc2hvcnRjdXQgZm9yIHNldHRpbmcgPHN5bWJvbD5MQ19DT0xMQVRFPC9zeW1ib2w+IGFu ZAorICAgICAgIDxzeW1ib2w+TENfQ1RZUEU8L3N5bWJvbD4gYXQgb25jZS4gIElmIHlvdSBzcGVj aWZ5CisgICAgICAgPHJlcGxhY2VhYmxlPmxvY2FsZTwvcmVwbGFjZWFibGU+LCB5b3UgY2Fubm90 IHNwZWNpZnkgZWl0aGVyIG9mIHRob3NlCisgICAgICAgcGFyYW1ldGVycy4KICAgICAgIDwvcGFy YT4KICAgICAgIDxwYXJhPgogICAgICAgIElmIDxyZXBsYWNlYWJsZT5wcm92aWRlcjwvcmVwbGFj ZWFibGU+IGlzIDxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+LApAQCAtMTAyLDggKzEwOSw5IEBA IENSRUFURSBDT0xMQVRJT04gWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlPm5hbWU8L3Jl cGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlCiAKICAgICAgPGxpc3RpdGVtPgogICAgICAgPHBhcmE+ Ci0gICAgICAgVXNlIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW5nIHN5c3RlbSBsb2NhbGUgZm9yCi0g ICAgICAgdGhlIDxzeW1ib2w+TENfQ09MTEFURTwvc3ltYm9sPiBsb2NhbGUgY2F0ZWdvcnkuCisg ICAgICAgSWYgPHJlcGxhY2VhYmxlPnByb3ZpZGVyPC9yZXBsYWNlYWJsZT4gaXMgPGxpdGVyYWw+ bGliYzwvbGl0ZXJhbD4sIHVzZQorICAgICAgIHRoZSBzcGVjaWZpZWQgb3BlcmF0aW5nIHN5c3Rl bSBsb2NhbGUgZm9yIHRoZQorICAgICAgIDxzeW1ib2w+TENfQ09MTEFURTwvc3ltYm9sPiBsb2Nh bGUgY2F0ZWdvcnkuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJs aXN0ZW50cnk+CkBAIC0xMTMsOCArMTIxLDkgQEAgQ1JFQVRFIENPTExBVElPTiBbIElGIE5PVCBF WElTVFMgXSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2UKIAog ICAgICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT4KLSAgICAgICBVc2UgdGhlIHNwZWNpZmllZCBv cGVyYXRpbmcgc3lzdGVtIGxvY2FsZSBmb3IKLSAgICAgICB0aGUgPHN5bWJvbD5MQ19DVFlQRTwv c3ltYm9sPiBsb2NhbGUgY2F0ZWdvcnkuCisgICAgICAgSWYgPHJlcGxhY2VhYmxlPnByb3ZpZGVy PC9yZXBsYWNlYWJsZT4gaXMgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4sIHVzZQorICAgICAgIHRo ZSBzcGVjaWZpZWQgb3BlcmF0aW5nIHN5c3RlbSBsb2NhbGUgZm9yIHRoZSA8c3ltYm9sPkxDX0NU WVBFPC9zeW1ib2w+CisgICAgICAgbG9jYWxlIGNhdGVnb3J5LgogICAgICAgPC9wYXJhPgogICAg ICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Rh dGFiYXNlLnNnbWwKaW5kZXggMTc1NTBjMTliYi4uOWYyMGM5MzI2NyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9kYXRhYmFzZS5zZ21sCkBAIC0xNDUsOCArMTQ1LDIyIEBAIENSRUFURSBEQVRBQkFT RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bG9jYWxlPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+Ci0gICAgICAgIFRoaXMg aXMgYSBzaG9ydGN1dCBmb3Igc2V0dGluZyA8c3ltYm9sPkxDX0NPTExBVEU8L3N5bWJvbD4KLSAg ICAgICAgYW5kIDxzeW1ib2w+TENfQ1RZUEU8L3N5bWJvbD4gYXQgb25jZS4KKyAgICAgICAgU2V0 cyB0aGUgZGVmYXVsdCBjb2xsYXRpb24gb3JkZXIgYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlv biBpbiB0aGUKKyAgICAgICAgbmV3IGRhdGFiYXNlLiAgQ29sbGF0aW9uIGFmZmVjdHMgdGhlIHNv cnQgb3JkZXIgYXBwbGllZCB0byBzdHJpbmdzLAorICAgICAgICBlLmcuLCBpbiBxdWVyaWVzIHdp dGggT1JERVIgQlksIGFzIHdlbGwgYXMgdGhlIG9yZGVyIHVzZWQgaW4gaW5kZXhlcworICAgICAg ICBvbiB0ZXh0IGNvbHVtbnMuICBDaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gYWZmZWN0cyB0aGUg Y2F0ZWdvcml6YXRpb24KKyAgICAgICAgb2YgY2hhcmFjdGVycywgZS5nLiwgbG93ZXIsIC0gdXBw ZXIgYW5kIGRpZ2l0LiAgQWxzbyBzZXRzIHRoZQorICAgICAgICBhc3NvY2lhdGVkIGFzcGVjdHMg b2YgdGhlIG9wZXJhdGluZyBzeXN0ZW0gZW52aXJvbm1lbnQsCisgICAgICAgIDxsaXRlcmFsPkxD X0NPTExBVEU8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4uICBUaGUK KyAgICAgICAgZGVmYXVsdCBpcyB0aGUgc2FtZSBzZXR0aW5nIGFzIHRoZSB0ZW1wbGF0ZSBkYXRh YmFzZS4gIFNlZSA8eHJlZgorICAgICAgICBsaW5rZW5kPSJjb2xsYXRpb24tbWFuYWdpbmctY3Jl YXRlLWxpYmMiLz4gYW5kIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImNvbGxhdGlvbi1tYW5hZ2lu Zy1jcmVhdGUtaWN1Ii8+IGZvciBkZXRhaWxzLgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgQ2FuIGJlIG92ZXJyaWRkZW4gYnkgc2V0dGluZyA8eHJlZgorICAgICAgICBs aW5rZW5kPSJjcmVhdGUtZGF0YWJhc2UtbGMtY29sbGF0ZSIvPiwgPHhyZWYKKyAgICAgICAgbGlu a2VuZD0iY3JlYXRlLWRhdGFiYXNlLWxjLWN0eXBlIi8+LCBvciA8eHJlZgorICAgICAgICBsaW5r ZW5kPSJjcmVhdGUtZGF0YWJhc2UtaWN1LWxvY2FsZSIvPiBpbmRpdmlkdWFsbHkuCiAgICAgICAg PC9wYXJhPgogICAgICAgIDxwYXJhPgogICAgICAgICBJZiA8eHJlZiBsaW5rZW5kPSJjcmVhdGUt ZGF0YWJhc2UtbG9jYWxlLXByb3ZpZGVyIi8+IGlzCkBAIC0xNzAsMTEgKzE4NCwxNyBAQCBDUkVB VEUgREFUQUJBU0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPgogICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxjX2NvbGxh dGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4K LSAgICAgICAgQ29sbGF0aW9uIG9yZGVyICg8bGl0ZXJhbD5MQ19DT0xMQVRFPC9saXRlcmFsPikg dG8gdXNlIGluIHRoZSBuZXcgZGF0YWJhc2UuCi0gICAgICAgIFRoaXMgYWZmZWN0cyB0aGUgc29y dCBvcmRlciBhcHBsaWVkIHRvIHN0cmluZ3MsIGUuZy4sIGluIHF1ZXJpZXMgd2l0aAotICAgICAg ICBPUkRFUiBCWSwgYXMgd2VsbCBhcyB0aGUgb3JkZXIgdXNlZCBpbiBpbmRleGVzIG9uIHRleHQg Y29sdW1ucy4KLSAgICAgICAgVGhlIGRlZmF1bHQgaXMgdG8gdXNlIHRoZSBjb2xsYXRpb24gb3Jk ZXIgb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlLgotICAgICAgICBTZWUgYmVsb3cgZm9yIGFkZGl0 aW9uYWwgcmVzdHJpY3Rpb25zLgorICAgICAgICBTZXRzIDxsaXRlcmFsPkxDX0NPTExBVEU8L2xp dGVyYWw+IGluIHRoZSBkYXRhYmFzZSBzZXJ2ZXIncyBvcGVyYXRpbmcKKyAgICAgICAgc3lzdGVt IGVudmlyb25tZW50LiAgVGhlIGRlZmF1bHQgaXMgdGhlIHNldHRpbmcgb2YgPHhyZWYKKyAgICAg ICAgbGlua2VuZD0iY3JlYXRlLWRhdGFiYXNlLWxvY2FsZSIvPiBpZiBzcGVjaWZpZWQ7IG90aGVy d2lzZSB0aGUgc2FtZQorICAgICAgICBzZXR0aW5nIGFzIHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZS4g IFNlZSBiZWxvdyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZXN0cmljdGlvbnMuCisgICAgICAg PC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiA8eHJlZiBsaW5rZW5kPSJjcmVhdGUt ZGF0YWJhc2UtbG9jYWxlLXByb3ZpZGVyIi8+IGlzCisgICAgICAgIDxsaXRlcmFsPmxpYmM8L2xp dGVyYWw+LCBhbHNvIHNldHMgdGhlIGRlZmF1bHQgY29sbGF0aW9uIG9yZGVyIHRvIHVzZQorICAg ICAgICBpbiB0aGUgbmV3IGRhdGFiYXNlLCBvdmVycmlkaW5nIHRoZSBzZXR0aW5nIDx4cmVmCisg ICAgICAgIGxpbmtlbmQ9ImNyZWF0ZS1kYXRhYmFzZS1sb2NhbGUiLz4uCiAgICAgICAgPC9wYXJh PgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xODIsMTAgKzIw MiwxNyBAQCBDUkVBVEUgREFUQUJBU0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPgogICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmxjX2N0eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgICA8bGlzdGl0ZW0+CiAgICAg ICAgPHBhcmE+Ci0gICAgICAgIENoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiAoPGxpdGVyYWw+TENf Q1RZUEU8L2xpdGVyYWw+KSB0byB1c2UgaW4gdGhlIG5ldwotICAgICAgICBkYXRhYmFzZS4gVGhp cyBhZmZlY3RzIHRoZSBjYXRlZ29yaXphdGlvbiBvZiBjaGFyYWN0ZXJzLCBlLmcuLCBsb3dlciwK LSAgICAgICAgdXBwZXIgYW5kIGRpZ2l0LiBUaGUgZGVmYXVsdCBpcyB0byB1c2UgdGhlIGNoYXJh Y3RlciBjbGFzc2lmaWNhdGlvbiBvZgotICAgICAgICB0aGUgdGVtcGxhdGUgZGF0YWJhc2UuIFNl ZSBiZWxvdyBmb3IgYWRkaXRpb25hbCByZXN0cmljdGlvbnMuCisgICAgICAgIFNldHMgPGxpdGVy YWw+TENfQ1RZUEU8L2xpdGVyYWw+IGluIHRoZSBkYXRhYmFzZSBzZXJ2ZXIncyBvcGVyYXRpbmcK KyAgICAgICAgc3lzdGVtIGVudmlyb25tZW50LiAgVGhlIGRlZmF1bHQgaXMgdGhlIHNldHRpbmcg b2YgPHhyZWYKKyAgICAgICAgbGlua2VuZD0iY3JlYXRlLWRhdGFiYXNlLWxvY2FsZSIvPiBpZiBz cGVjaWZpZWQ7IG90aGVyd2lzZSB0aGUgc2FtZQorICAgICAgICBzZXR0aW5nIGFzIHRoZSB0ZW1w bGF0ZSBkYXRhYmFzZS4gIFNlZSBiZWxvdyBmb3IgYWRkaXRpb25hbAorICAgICAgICByZXN0cmlj dGlvbnMuCisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiA8eHJlZiBs aW5rZW5kPSJjcmVhdGUtZGF0YWJhc2UtbG9jYWxlLXByb3ZpZGVyIi8+IGlzCisgICAgICAgIDxs aXRlcmFsPmxpYmM8L2xpdGVyYWw+LCBhbHNvIHNldHMgdGhlIGRlZmF1bHQgY2hhcmFjdGVyCisg ICAgICAgIGNsYXNzaWZpY2F0aW9uIHRvIHVzZSBpbiB0aGUgbmV3IGRhdGFiYXNlLCBvdmVycmlk aW5nIHRoZSBzZXR0aW5nCisgICAgICAgIDx4cmVmIGxpbmtlbmQ9ImNyZWF0ZS1kYXRhYmFzZS1s b2NhbGUiLz4uCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJs aXN0ZW50cnk+CkBAIC0xOTQsNyArMjIxLDEzIEBAIENSRUFURSBEQVRBQkFTRSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aWN1X2xvY2FsZTwvcmVwbGFjZWFibGU+PC90ZXJt PgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgotICAgICAgICBTcGVjaWZpZXMgdGhl IElDVSBsb2NhbGUgSUQgaWYgdGhlIElDVSBsb2NhbGUgcHJvdmlkZXIgaXMgdXNlZC4KKyAgICAg ICAgU3BlY2lmaWVzIHRoZSBJQ1UgbG9jYWxlIChzZWUgPHhyZWYKKyAgICAgICAgbGlua2VuZD0i Y29sbGF0aW9uLW1hbmFnaW5nLWNyZWF0ZS1pY3UiLz4pIGZvciB0aGUgZGF0YWJhc2UgZGVmYXVs dAorICAgICAgICBjb2xsYXRpb24gb3JkZXIgYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNhdGlvbiwg b3ZlcnJpZGluZyB0aGUgc2V0dGluZworICAgICAgICA8eHJlZiBsaW5rZW5kPSJjcmVhdGUtZGF0 YWJhc2UtbG9jYWxlIi8+LiAgVGhlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImNyZWF0ZS1kYXRh YmFzZS1sb2NhbGUtcHJvdmlkZXIiLz4gbXVzdCBiZSBJQ1UuICBUaGUgZGVmYXVsdAorICAgICAg ICBpcyB0aGUgc2V0dGluZyBvZiA8eHJlZiBsaW5rZW5kPSJjcmVhdGUtZGF0YWJhc2UtbG9jYWxl Ii8+IGlmCisgICAgICAgIHNwZWNpZmllZDsgb3RoZXJ3aXNlIHRoZSBzYW1lIHNldHRpbmcgYXMg dGhlIHRlbXBsYXRlIGRhdGFiYXNlLgogICAgICAgIDwvcGFyYT4KICAgICAgICA8cGFyYT4KICAg ICAgICAgSWYgc3BlY2lmaWVkIGFzIDxsaXRlcmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBP U0lYPC9saXRlcmFsPiwgdGhlCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRi LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwKaW5kZXggNTM1MmNjZTc0NC4u OTQ5MzdlMWQ2ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbApAQCAtMTI0LDcgKzEyNCwxMCBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDxsaXN0aXRlbT4KICAgICAgICA8cGFyYT4K ICAgICAgICAgU3BlY2lmaWVzIHRoZSBsb2NhbGUgdG8gYmUgdXNlZCBpbiB0aGlzIGRhdGFiYXNl LiAgVGhpcyBpcyBlcXVpdmFsZW50Ci0gICAgICAgIHRvIHNwZWNpZnlpbmcgYm90aCA8b3B0aW9u Pi0tbGMtY29sbGF0ZTwvb3B0aW9uPiBhbmQgPG9wdGlvbj4tLWxjLWN0eXBlPC9vcHRpb24+Lgor ICAgICAgICB0byBzcGVjaWZ5aW5nIDxvcHRpb24+LS1sYy1jb2xsYXRlPC9vcHRpb24+LAorICAg ICAgICA8b3B0aW9uPi0tbGMtY3R5cGU8L29wdGlvbj4sIGFuZCA8b3B0aW9uPi0taWN1LWxvY2Fs ZTwvb3B0aW9uPiB0byB0aGUKKyAgICAgICAgc2FtZSB2YWx1ZS4gU29tZSBsb2NhbGVzIGFyZSBv bmx5IHZhbGlkIGZvciBJQ1UgYW5kIG11c3QgYmUgc2V0IHdpdGgKKyAgICAgICAgPG9wdGlvbj4t LWljdS1sb2NhbGU8L29wdGlvbj4uCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0aXRlbT4K ICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRk Yi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbAppbmRleCBkOTYyMGU1OTMxLi41 ZWFiYWFlYzNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAgLTExNiw5ICsxMTYsMTAgQEAgUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCiAgIDxwYXJhPgogICAgVG8gY2hvb3NlIGEgZGlmZmVyZW50IGxv Y2FsZSBmb3IgdGhlIGNsdXN0ZXIsIHVzZSB0aGUgb3B0aW9uCiAgICA8b3B0aW9uPi0tbG9jYWxl PC9vcHRpb24+LiAgVGhlcmUgYXJlIGFsc28gaW5kaXZpZHVhbCBvcHRpb25zCi0gICA8b3B0aW9u Pi0tbGMtKjwvb3B0aW9uPiAoc2VlIGJlbG93KSB0byBzZXQgdmFsdWVzIGZvciB0aGUgaW5kaXZp ZHVhbCBsb2NhbGUKLSAgIGNhdGVnb3JpZXMuICBOb3RlIHRoYXQgaW5jb25zaXN0ZW50IHNldHRp bmdzIGZvciBkaWZmZXJlbnQgbG9jYWxlCi0gICBjYXRlZ29yaWVzIGNhbiBnaXZlIG5vbnNlbnNp Y2FsIHJlc3VsdHMsIHNvIHRoaXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBjYXJlLgorICAgPG9wdGlv bj4tLWxjLSo8L29wdGlvbj4gYW5kIDxvcHRpb24+LS1pY3UtbG9jYWxlPC9vcHRpb24+IChzZWUg YmVsb3cpIHRvCisgICBzZXQgdmFsdWVzIGZvciB0aGUgaW5kaXZpZHVhbCBsb2NhbGUgY2F0ZWdv cmllcy4gIE5vdGUgdGhhdCBpbmNvbnNpc3RlbnQKKyAgIHNldHRpbmdzIGZvciBkaWZmZXJlbnQg bG9jYWxlIGNhdGVnb3JpZXMgY2FuIGdpdmUgbm9uc2Vuc2ljYWwgcmVzdWx0cywgc28KKyAgIHRo aXMgc2hvdWxkIGJlIHVzZWQgd2l0aCBjYXJlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggM2IyYmEzODI1MC4uNTgzMTZlYzE5ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpAQCAtMzE4LDcgKzMxOCw3IEBAIERl ZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpwYXJh bWV0ZXJzLCBib29sIGlmX25vdF9lCiAJCQkJaWYgKGxhbmd0YWcgJiYgc3RyY21wKGNvbGxpY3Vs b2NhbGUsIGxhbmd0YWcpICE9IDApCiAJCQkJewogCQkJCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJ CQkoZXJybXNnKCJ1c2luZyBzdGFuZGFyZCBmb3JtIFwiJXNcIiBmb3IgbG9jYWxlIFwiJXNcIiIs CisJCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBcIiVzXCIgZm9yIElDVSBsb2Nh bGUgXCIlc1wiIiwKIAkJCQkJCQkJCWxhbmd0YWcsIGNvbGxpY3Vsb2NhbGUpKSk7CiAKIAkJCQkJ Y29sbGljdWxvY2FsZSA9IGxhbmd0YWc7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9kYmNvbW1hbmRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKaW5kZXgg NWM4Y2FlYWMyZC4uM2Q1M2UyOWM3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGJjb21tYW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwpAQCAt NzEwLDYgKzcxMCw3IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRl ZGJTdG10ICpzdG10KQogCWNoYXIJICAgKmRibmFtZSA9IHN0bXQtPmRibmFtZTsKIAljaGFyCSAg ICpkYm93bmVyID0gTlVMTDsKIAljb25zdCBjaGFyICpkYnRlbXBsYXRlID0gTlVMTDsKKwljaGFy CSAgICpidWlsdGluX2xvY2FsZSA9IE5VTEw7CiAJY2hhcgkgICAqZGJjb2xsYXRlID0gTlVMTDsK IAljaGFyCSAgICpkYmN0eXBlID0gTlVMTDsKIAljaGFyCSAgICpkYmljdWxvY2FsZSA9IE5VTEw7 CkBAIC04OTQsNiArODk1LDcgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBD cmVhdGVkYlN0bXQgKnN0bXQpCiAJfQogCWlmIChkbG9jYWxlICYmIGRsb2NhbGUtPmFyZykKIAl7 CisJCWJ1aWx0aW5fbG9jYWxlID0gZGVmR2V0U3RyaW5nKGRsb2NhbGUpOwogCQlkYmNvbGxhdGUg PSBkZWZHZXRTdHJpbmcoZGxvY2FsZSk7CiAJCWRiY3R5cGUgPSBkZWZHZXRTdHJpbmcoZGxvY2Fs ZSk7CiAJfQpAQCAtMTAxOCw4ICsxMDIwLDE2IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQlkYmN0eXBlID0gc3JjX2N0eXBlOwogCWlm IChkYmxvY3Byb3ZpZGVyID09ICdcMCcpCiAJCWRibG9jcHJvdmlkZXIgPSBzcmNfbG9jcHJvdmlk ZXI7CisJaWYgKGJ1aWx0aW5fbG9jYWxlID09IE5VTEwgJiYgZGJsb2Nwcm92aWRlciA9PSBDT0xM UFJPVklERVJfQlVJTFRJTiAmJgorCQlzcmNfbG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0JV SUxUSU4pCisJCWJ1aWx0aW5fbG9jYWxlID0gIkMiOwogCWlmIChkYmljdWxvY2FsZSA9PSBOVUxM ICYmIGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKLQkJZGJpY3Vsb2NhbGUgPSBz cmNfaWN1bG9jYWxlOworCXsKKwkJaWYgKGRsb2NhbGUgJiYgZGxvY2FsZS0+YXJnKQorCQkJZGJp Y3Vsb2NhbGUgPSBkZWZHZXRTdHJpbmcoZGxvY2FsZSk7CisJCWVsc2UKKwkJCWRiaWN1bG9jYWxl ID0gc3JjX2ljdWxvY2FsZTsKKwl9CiAJaWYgKGRiaWN1cnVsZXMgPT0gTlVMTCAmJiBkYmxvY3By b3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCWRiaWN1cnVsZXMgPSBzcmNfaWN1cnVsZXM7 CiAKQEAgLTEwMzMsMTIgKzEwNDMsMTQgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBj b25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJaWYgKCFjaGVja19sb2NhbGUoTENfQ09MTEFURSwg ZGJjb2xsYXRlLCAmY2Fub25uYW1lKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShF UlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJpbnZhbGlkIGxvY2FsZSBu YW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUpKSk7CisJCQkJIGVycm1zZygiaW52YWxpZCBMQ19DT0xM QVRFIGxvY2FsZSBuYW1lOiBcIiVzXCIiLCBkYmNvbGxhdGUpLAorCQkJCSBlcnJoaW50KCJJZiB0 aGUgbG9jYWxlIG5hbWUgaXMgc3BlY2lmaWMgdG8gSUNVLCB1c2UgSUNVX0xPQ0FMRS4iKSkpOwog CWRiY29sbGF0ZSA9IGNhbm9ubmFtZTsKIAlpZiAoIWNoZWNrX2xvY2FsZShMQ19DVFlQRSwgZGJj dHlwZSwgJmNhbm9ubmFtZSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiaW52YWxpZCBsb2NhbGUgbmFtZTog XCIlc1wiIiwgZGJjdHlwZSkpKTsKKwkJCQkgZXJybXNnKCJpbnZhbGlkIExDX0NUWVBFIGxvY2Fs ZSBuYW1lOiBcIiVzXCIiLCBkYmN0eXBlKSwKKwkJCQkgZXJyaGludCgiSWYgdGhlIGxvY2FsZSBu YW1lIGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIElDVV9MT0NBTEUuIikpKTsKIAlkYmN0eXBlID0g Y2Fub25uYW1lOwogCiAJY2hlY2tfZW5jb2RpbmdfbG9jYWxlX21hdGNoZXMoZW5jb2RpbmcsIGRi Y29sbGF0ZSwgZGJjdHlwZSk7CkBAIC0xMDYwLDExICsxMDcyLDM4IEBAIGNyZWF0ZWRiKFBhcnNl U3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQllcmVwb3J0KE5PVElD RSwKIAkJCQkoZXJybXNnKCJ1c2luZyBsb2NhbGUgcHJvdmlkZXIgXCJidWlsdGluXCIgZm9yIElD VSBsb2NhbGUgXCIlc1wiIiwKIAkJCQkJCWRiaWN1bG9jYWxlKSkpOworCQlidWlsdGluX2xvY2Fs ZSA9IGRiaWN1bG9jYWxlOwogCQlkYmljdWxvY2FsZSA9IE5VTEw7CiAJCWRibG9jcHJvdmlkZXIg PSBDT0xMUFJPVklERVJfQlVJTFRJTjsKIAl9CiAKLQlpZiAoZGJsb2Nwcm92aWRlciA9PSBDT0xM UFJPVklERVJfSUNVKQorCWlmIChkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9CVUlMVElO KQorCXsKKwkJLyogY2FuIGhhcHBlbiBpZiB0ZW1wbGF0ZSBpcyBhIGRpZmZlcmVudCBwcm92aWRl ciAqLworCQlpZiAoYnVpbHRpbl9sb2NhbGUgPT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkgZXJy bXNnKCJMT0NBTEUgbXVzdCBiZSBzcGVjaWZpZWQiKSkpOworCisJCWlmIChkYmljdWxvY2FsZSkK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1Rf REVGSU5JVElPTiksCisJCQkJCSBlcnJtc2coIklDVSBsb2NhbGUgY2Fubm90IGJlIHNwZWNpZmll ZCB1bmxlc3MgbG9jYWxlIHByb3ZpZGVyIGlzIElDVSIpKSk7CisKKwkJaWYgKGRiaWN1cnVsZXMp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLAorCQkJCQkgZXJybXNnKCJJQ1UgcnVsZXMgY2Fubm90IGJlIHNwZWNpZmll ZCB1bmxlc3MgbG9jYWxlIHByb3ZpZGVyIGlzIElDVSIpKSk7CisKKwkJaWYgKHN0cmNtcChidWls dGluX2xvY2FsZSwgIkMiKSAhPSAwICYmCisJCQlzdHJjbXAoYnVpbHRpbl9sb2NhbGUsICJQT1NJ WCIpICE9IDApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coImxvY2FsZSBwcm92aWRlciBcImJ1aWx0 aW5cIiBkb2VzIG5vdCBzdXBwb3J0IGxvY2FsZSBcIiVzXCIiLAorCQkJCQkJCWJ1aWx0aW5fbG9j YWxlKSwKKwkJCQkJIGVycmhpbnQoIlRoZSBidWlsdC1pbiBsb2NhbGUgcHJvdmlkZXIgb25seSBz dXBwb3J0cyB0aGUgXCJDXCIgYW5kIFwiUE9TSVhcIiBsb2NhbGVzLiIpKSk7CisJfQorCWVsc2Ug aWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAl7CiAJCWlmICghKGlzX2Vu Y29kaW5nX3N1cHBvcnRlZF9ieV9pY3UoZW5jb2RpbmcpKSkKIAkJCWVyZXBvcnQoRVJST1IsCkBA IC0xMDc5LDcgKzExMTgsNyBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENy ZWF0ZWRiU3RtdCAqc3RtdCkKIAkJaWYgKCFkYmljdWxvY2FsZSkKIAkJCWVyZXBvcnQoRVJST1Is CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCQkg ZXJybXNnKCJJQ1UgbG9jYWxlIG11c3QgYmUgc3BlY2lmaWVkIikpKTsKKwkJCQkJIGVycm1zZygi TE9DQUxFIG9yIElDVV9MT0NBTEUgbXVzdCBiZSBzcGVjaWZpZWQiKSkpOwogCiAJCS8qCiAJCSAq IER1cmluZyBiaW5hcnkgdXBncmFkZSwgb3Igd2hlbiB0aGUgbG9jYWxlIGNhbWUgZnJvbSB0aGUg dGVtcGxhdGUKQEAgLTEwOTQsNyArMTEzMyw3IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCQkJaWYgKGxhbmd0YWcgJiYgc3RyY21wKGRi aWN1bG9jYWxlLCBsYW5ndGFnKSAhPSAwKQogCQkJewogCQkJCWVyZXBvcnQoTk9USUNFLAotCQkJ CQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBcIiVzXCIgZm9yIGxvY2FsZSBcIiVzXCIi LAorCQkJCQkJKGVycm1zZygidXNpbmcgc3RhbmRhcmQgZm9ybSBcIiVzXCIgZm9yIElDVSBsb2Nh bGUgXCIlc1wiIiwKIAkJCQkJCQkJbGFuZ3RhZywgZGJpY3Vsb2NhbGUpKSk7CiAKIAkJCQlkYmlj dWxvY2FsZSA9IGxhbmd0YWc7CmRpZmYgLS1naXQgYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYyBi L3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCmluZGV4IDg5NzUyMWNmMzUuLjBhOTMwN2RmMmIgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5jCisrKyBiL3NyYy9iaW4vaW5pdGRiL2lu aXRkYi5jCkBAIC0yMTYzLDcgKzIxNjMsMTEgQEAgY2hlY2tfbG9jYWxlX25hbWUoaW50IGNhdGVn b3J5LCBjb25zdCBjaGFyICpsb2NhbGUsIGNoYXIgKipjYW5vbm5hbWUpCiAJaWYgKHJlcyA9PSBO VUxMKQogCXsKIAkJaWYgKCpsb2NhbGUpCi0JCQlwZ19mYXRhbCgiaW52YWxpZCBsb2NhbGUgbmFt ZSBcIiVzXCIiLCBsb2NhbGUpOworCQl7CisJCQlwZ19sb2dfZXJyb3IoImludmFsaWQgbG9jYWxl IG5hbWUgXCIlc1wiIiwgbG9jYWxlKTsKKwkJCXBnX2xvZ19lcnJvcl9oaW50KCJJZiB0aGUgbG9j YWxlIG5hbWUgaXMgc3BlY2lmaWMgdG8gSUNVLCB1c2UgLS1pY3UtbG9jYWxlLiIpOworCQkJZXhp dCgxKTsKKwkJfQogCQllbHNlCiAJCXsKIAkJCS8qCkBAIC0yMzc1LDggKzIzNzksOSBAQCBzdGF0 aWMgdm9pZAogc2V0bG9jYWxlcyh2b2lkKQogewogCWNoYXIJICAgKmNhbm9ubmFtZTsKKwljaGFy CSAgICpidWlsdGluX2xvY2FsZSA9IGxvY2FsZTsKIAotCS8qIHNldCBlbXB0eSBsY18qIHZhbHVl cyB0byBsb2NhbGUgY29uZmlnIGlmIHNldCAqLworCS8qIHNldCBlbXB0eSBsY18qIGFuZCBpY3Vs b2NhbGUgdmFsdWVzIHRvIGxvY2FsZSBjb25maWcgaWYgc2V0ICovCiAKIAlpZiAobG9jYWxlKQog CXsKQEAgLTIzOTIsNiArMjM5Nyw4IEBAIHNldGxvY2FsZXModm9pZCkKIAkJCWxjX21vbmV0YXJ5 ID0gbG9jYWxlOwogCQlpZiAoIWxjX21lc3NhZ2VzKQogCQkJbGNfbWVzc2FnZXMgPSBsb2NhbGU7 CisJCWlmICghaWN1X2xvY2FsZSAmJiBsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lD VSkKKwkJCWljdV9sb2NhbGUgPSBsb2NhbGU7CiAJfQogCiAJLyoKQEAgLTI0MDcsNiArMjQxNCw3 IEBAIHNldGxvY2FsZXModm9pZCkKIAl7CiAJCXBnX2xvZ19pbmZvKCJ1c2luZyBsb2NhbGUgcHJv dmlkZXIgXCJidWlsdGluXCIgZm9yIElDVSBsb2NhbGUgXCIlc1wiIiwKIAkJCQkJIGljdV9sb2Nh bGUpOworCQlidWlsdGluX2xvY2FsZSA9ICJDIjsKIAkJaWN1X2xvY2FsZSA9IE5VTEw7CiAJCWxv Y2FsZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9CVUlMVElOOwogCX0KQEAgLTI0MzQsNyArMjQ0 MiwxNSBAQCBzZXRsb2NhbGVzKHZvaWQpCiAJbGNfbWVzc2FnZXMgPSBjYW5vbm5hbWU7CiAjZW5k aWYKIAotCWlmIChsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwlpZiAobG9j YWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9CVUlMVElOKQorCXsKKwkJaWYgKCFidWlsdGlu X2xvY2FsZSkKKwkJCXBnX2ZhdGFsKCJUaGUgcGFyYW1ldGVyIC0tbG9jYWxlIG11c3QgYmUgc3Bl Y2lmaWVkIGZvciB0aGUgYnVpbHQtaW4gcHJvdmlkZXIuIik7CisJCWlmIChzdHJjbXAoYnVpbHRp bl9sb2NhbGUsICJDIikgIT0gMCAmJgorCQkJc3RyY21wKGJ1aWx0aW5fbG9jYWxlLCAiUE9TSVgi KSAhPSAwKQorCQkJcGdfZmF0YWwoIlRoZSBidWlsdC1pbiBsb2NhbGUgcHJvdmlkZXIgb25seSBz dXBwb3J0cyB0aGUgXCJDXCIgYW5kIFwiUE9TSVhcIiBsb2NhbGVzLiIpOworCX0KKwllbHNlIGlm IChsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAl7CiAJCWNoYXIJICAgKmxh bmd0YWc7CiAKQEAgLTI2ODcsNyArMjcwMyw5IEBAIHNldHVwX2xvY2FsZV9lbmNvZGluZyh2b2lk KQogCQkgKiBJZiBjdHlwZV9lbmM9U1FMX0FTQ0lJLCBpdCdzIGNvbXBhdGlibGUgd2l0aCBhbnkg ZW5jb2RpbmcuIElDVSBkb2VzCiAJCSAqIG5vdCBzdXBwb3J0IFNRTF9BU0NJSSwgc28gc2VsZWN0 IFVURi04IGluc3RlYWQuCiAJCSAqLwotCQlpZiAobG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9W SURFUl9JQ1UgJiYgY3R5cGVfZW5jID09IFBHX1NRTF9BU0NJSSkKKwkJaWYgKChsb2NhbGVfcHJv dmlkZXIgPT0gQ09MTFBST1ZJREVSX0JVSUxUSU4gfHwKKwkJCSBsb2NhbGVfcHJvdmlkZXIgPT0g Q09MTFBST1ZJREVSX0lDVSkKKwkJCSYmIGN0eXBlX2VuYyA9PSBQR19TUUxfQVNDSUkpCiAJCQlj dHlwZV9lbmMgPSBQR19VVEY4OwogCiAJCWlmIChjdHlwZV9lbmMgPT0gLTEpCkBAIC0zMjk0LDcg KzMzMTIsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkJYnJlYWs7CiAJCQlj YXNlIDg6CiAJCQkJbG9jYWxlID0gIkMiOwotCQkJCWxvY2FsZV9wcm92aWRlciA9IENPTExQUk9W SURFUl9MSUJDOwogCQkJCWJyZWFrOwogCQkJY2FzZSA5OgogCQkJCXB3ZmlsZW5hbWUgPSBwZ19z dHJkdXAob3B0YXJnKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5w bCBiL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbAppbmRleCBmM2Y4MzJhNDEzLi45YjBj MjIwMmEzIDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwKKysrIGIv c3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCkBAIC0xOTMsMTEgKzE5MywxOSBAQCBlbHNl CiAJCSdsb2NhbGUgcHJvdmlkZXIgSUNVIGZhaWxzIHNpbmNlIG5vIElDVSBzdXBwb3J0Jyk7CiB9 CiAKLWNvbW1hbmRfb2soCitjb21tYW5kX2ZhaWxzKAogCVsKIAkJJ2luaXRkYicsICctLW5vLXN5 bmMnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsICIkdGVtcGRpci9kYXRhNiIKIAldLAot CSdsb2NhbGUgcHJvdmlkZXIgYnVpbHRpbicKKwknbG9jYWxlIHByb3ZpZGVyIGJ1aWx0aW4gd2l0 aG91dCAtLWxvY2FsZScKKyk7CisKK2NvbW1hbmRfZmFpbHMoCisJWworCQknaW5pdGRiJywgJy0t bm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1idWlsdGluJywgJy0tbG9jYWxlPWVuJywKKwkJ IiR0ZW1wZGlyL2RhdGE2IgorCV0sCisJJ2xvY2FsZSBwcm92aWRlciBidWlsdGluIHdpdGggaW52 YWxpZCAtLWxvY2FsZScKICk7CiAKIGNvbW1hbmRfb2soCkBAIC0yMTAsMzIgKzIxOCwzMiBAQCBj b21tYW5kX29rKAogCiBjb21tYW5kX29rKAogCVsKLQkJJ2luaXRkYicsICctLW5vLXN5bmMnLCAn LS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsICctLWxjLWNvbGxhdGU9QycsCi0JCSIkdGVtcGRp ci9kYXRhOCIKKwkJJ2luaXRkYicsICctLW5vLXN5bmMnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVp bHRpbicsICctLWxvY2FsZT1DJywKKwkJJy0tbGMtY29sbGF0ZT1DJywgIiR0ZW1wZGlyL2RhdGE4 IgogCV0sCiAJJ2xvY2FsZSBwcm92aWRlciBidWlsdGluIHdpdGggLS1sYy1jb2xsYXRlJwogKTsK IAogY29tbWFuZF9vaygKIAlbCi0JCSdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXBy b3ZpZGVyPWJ1aWx0aW4nLCAnLS1sYy1jdHlwZT1DJywKLQkJIiR0ZW1wZGlyL2RhdGE5IgorCQkn aW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1idWlsdGluJywgJy0tbG9j YWxlPUMnLAorCQknLS1sYy1jdHlwZT1DJywgIiR0ZW1wZGlyL2RhdGE5IgogCV0sCiAJJ2xvY2Fs ZSBwcm92aWRlciBidWlsdGluIHdpdGggLS1sYy1jdHlwZScKICk7CiAKIGNvbW1hbmRfZmFpbHMo CiAJWwotCQknaW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1idWlsdGlu JywgJy0taWN1LWxvY2FsZT1lbicsCi0JCSIkdGVtcGRpci9kYXRhWCIKKwkJJ2luaXRkYicsICct LW5vLXN5bmMnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsICctLWxvY2FsZT1DJywKKwkJ Jy0taWN1LWxvY2FsZT1lbicsICIkdGVtcGRpci9kYXRhWCIKIAldLAogCSdmYWlscyBmb3IgbG9j YWxlIHByb3ZpZGVyIGJ1aWx0aW4gd2l0aCBJQ1UgbG9jYWxlJwogKTsKIAogY29tbWFuZF9mYWls cygKIAlbCi0JCSdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPWJ1aWx0 aW4nLCAnLS1pY3UtcnVsZXM9IiInLAotCQkiJHRlbXBkaXIvZGF0YVgiCisJCSdpbml0ZGInLCAn LS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPWJ1aWx0aW4nLCAnLS1sb2NhbGU9QycsCisJ CSctLWljdS1ydWxlcz0iIicsICIkdGVtcGRpci9kYXRhWCIKIAldLAogCSdmYWlscyBmb3IgbG9j YWxlIHByb3ZpZGVyIGJ1aWx0aW4gd2l0aCBJQ1UgcnVsZXMnCiApOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXgg Yzc1ODE4YzNhNC4uOGRiYmQ4NzYxMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zMDgwLDEzICszMDgwLDEw IEBAIGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KQogCQlwZ19mYXRhbCgidW5yZWNvZ25pemVk IGxvY2FsZSBwcm92aWRlcjogJXMiLAogCQkJCSBkYXRsb2Nwcm92aWRlcik7CiAKLQlpZiAoc3Ry bGVuKGNvbGxhdGUpID4gMCAmJiBzdHJjbXAoY29sbGF0ZSwgY3R5cGUpID09IDApCi0JewotCQlh cHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiIExPQ0FMRSA9ICIpOwotCQlhcHBlbmRTdHJp bmdMaXRlcmFsQUgoY3JlYVFyeSwgY29sbGF0ZSwgZm91dCk7Ci0JfQotCWVsc2UKKwlpZiAoZGF0 bG9jcHJvdmlkZXJbMF0gPT0gJ2InKQogCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFy eSwgIiBMT0NBTEUgPSAnQyciKTsKKwogCQlpZiAoc3RybGVuKGNvbGxhdGUpID4gMCkKIAkJewog CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgIiBMQ19DT0xMQVRFID0gIik7CkBAIC0z MDk4LDE1ICszMDk1LDUxIEBAIGR1bXBEYXRhYmFzZShBcmNoaXZlICpmb3V0KQogCQkJYXBwZW5k U3RyaW5nTGl0ZXJhbEFIKGNyZWFRcnksIGN0eXBlLCBmb3V0KTsKIAkJfQogCX0KLQlpZiAoaWN1 bG9jYWxlKQorCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdpJykKIAl7Ci0JCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICIgSUNVX0xPQ0FMRSA9ICIpOworCQlBc3NlcnQoaWN1 bG9jYWxlKTsKKworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiIExPQ0FMRSA9ICIp OwogCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoY3JlYVFyeSwgaWN1bG9jYWxlLCBmb3V0KTsKKwor CQlpZiAoc3RybGVuKGNvbGxhdGUpID4gMCkKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo Y3JlYVFyeSwgIiBMQ19DT0xMQVRFID0gIik7CisJCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoY3Jl YVFyeSwgY29sbGF0ZSwgZm91dCk7CisJCX0KKwkJaWYgKHN0cmxlbihjdHlwZSkgPiAwKQorCQl7 CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiIExDX0NUWVBFID0gIik7CisJCQlh cHBlbmRTdHJpbmdMaXRlcmFsQUgoY3JlYVFyeSwgY3R5cGUsIGZvdXQpOworCQl9CisJCWlmIChp Y3VydWxlcykKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgIiBJQ1VfUlVM RVMgPSAiKTsKKwkJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChjcmVhUXJ5LCBpY3VydWxlcywgZm91 dCk7CisJCX0KIAl9Ci0JaWYgKGljdXJ1bGVzKQorCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyWzBd ID09ICdjJykKIAl7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICIgSUNVX1JVTEVT ID0gIik7Ci0JCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChjcmVhUXJ5LCBpY3VydWxlcywgZm91dCk7 CisJCUFzc2VydCghaWN1bG9jYWxlKTsKKworCQlpZiAoc3RybGVuKGNvbGxhdGUpID4gMCAmJiBz dHJjbXAoY29sbGF0ZSwgY3R5cGUpID09IDApCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KGNyZWFRcnksICIgTE9DQUxFID0gIik7CisJCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoY3JlYVFy eSwgY29sbGF0ZSwgZm91dCk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlpZiAoc3RybGVuKGNvbGxh dGUpID4gMCkKKwkJCXsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihjcmVhUXJ5LCAiIExDX0NP TExBVEUgPSAiKTsKKwkJCQlhcHBlbmRTdHJpbmdMaXRlcmFsQUgoY3JlYVFyeSwgY29sbGF0ZSwg Zm91dCk7CisJCQl9CisJCQlpZiAoc3RybGVuKGN0eXBlKSA+IDApCisJCQl7CisJCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgIiBMQ19DVFlQRSA9ICIpOworCQkJCWFwcGVuZFN0cmlu Z0xpdGVyYWxBSChjcmVhUXJ5LCBjdHlwZSwgZm91dCk7CisJCQl9CisJCX0KIAl9CiAKIAkvKgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMgYi9zcmMvYmluL3NjcmlwdHMv Y3JlYXRlZGIuYwppbmRleCA0MWE4ZGU2NTllLi44Zjg5OTU5NjRjIDEwMDY0NAotLS0gYS9zcmMv YmluL3NjcmlwdHMvY3JlYXRlZGIuYworKysgYi9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYwpA QCAtMTY0LDE0ICsxNjQsNiBAQCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlleGl0 KDEpOwogCX0KIAotCWlmIChsb2NhbGUpCi0JewotCQlpZiAoIWxjX2N0eXBlKQotCQkJbGNfY3R5 cGUgPSBsb2NhbGU7Ci0JCWlmICghbGNfY29sbGF0ZSkKLQkJCWxjX2NvbGxhdGUgPSBsb2NhbGU7 Ci0JfQotCiAJaWYgKGVuY29kaW5nKQogCXsKIAkJaWYgKHBnX2NoYXJfdG9fZW5jb2RpbmcoZW5j b2RpbmcpIDwgMCkKQEAgLTIxOSw2ICsyMTEsMTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQlhcHBlbmRQUUV4cEJ1ZmZlcigmc3FsLCAiIFNUUkFURUdZICVzIiwgZm10SWQoc3Ry YXRlZ3kpKTsKIAlpZiAodGVtcGxhdGUpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZzcWwsICIgVEVN UExBVEUgJXMiLCBmbXRJZCh0ZW1wbGF0ZSkpOworCWlmIChsb2NhbGUpCisJeworCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmc3FsLCAiIExPQ0FMRSAiKTsKKwkJYXBwZW5kU3RyaW5nTGl0ZXJhbENv bm4oJnNxbCwgbG9jYWxlLCBjb25uKTsKKwl9CiAJaWYgKGxjX2NvbGxhdGUpCiAJewogCQlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmc3FsLCAiIExDX0NPTExBVEUgIik7CmRpZmYgLS1naXQgYS9zcmMv YmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwgYi9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3Jl YXRlZGIucGwKaW5kZXggMTIxYWQ1MTEyYi4uM2Y1NzE5YzkxMyAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCisrKyBiL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9j cmVhdGVkYi5wbApAQCAtMTE1LDcgKzExNSw3IEBAIGVsc2UKICRub2RlLT5jb21tYW5kX29rKAog CVsKIAkJJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1i dWlsdGluJywKLQkJJ3RidWlsdGluMScKKwkJJy0tbG9jYWxlPUMnLCAndGJ1aWx0aW4xJwogCV0s CiAJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJidWlsdGluIicKICk7CkBAIC0xMzEs NyArMTMxLDcgQEAgJG5vZGUtPmNvbW1hbmRfb2soCiAkbm9kZS0+Y29tbWFuZF9vaygKIAlbCiAJ CSdjcmVhdGVkYicsICctVCcsICd0ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRp bicsCi0JCSctLWxjLWNvbGxhdGU9QycsICd0YnVpbHRpbjMnCisJCSctLWxvY2FsZT1DJywgJy0t bGMtY29sbGF0ZT1DJywgJ3RidWlsdGluMycKIAldLAogCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBw cm92aWRlciAiYnVpbHRpbiIgYW5kIExDX0NPTExBVEU9QycKICk7CkBAIC0xMzksNyArMTM5LDcg QEAgJG5vZGUtPmNvbW1hbmRfb2soCiAkbm9kZS0+Y29tbWFuZF9vaygKIAlbCiAJCSdjcmVhdGVk YicsICctVCcsICd0ZW1wbGF0ZTAnLCAnLS1sb2NhbGUtcHJvdmlkZXI9YnVpbHRpbicsCi0JCSct LWxjLWN0eXBlPUMnLCAndGJ1aWx0aW40JworCQknLS1sb2NhbGU9QycsICctLWxjLWN0eXBlPUMn LCAndGJ1aWx0aW40JwogCV0sCiAJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJidWls dGluIiBhbmQgTENfQ1RZUEU9QycKICk7CkBAIC0xNjgsNiArMTY4LDIyIEBAICRub2RlLT5jb21t YW5kX2ZhaWxzKAogCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAiYnVpbHRpbiIgbm90 IG1hdGNoaW5nIHRlbXBsYXRlJwogKTsKIAorJG5vZGUtPmNvbW1hbmRfZmFpbHMoCisJWworCQkn Y3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3ZpZGVyPWJ1aWx0aW4n LAorCQkndGJ1aWx0aW44JworCV0sCisJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJi dWlsdGluIiBhbmQgbG9jYWxlIHVuc3BlY2lmaWVkJworKTsKKworJG5vZGUtPmNvbW1hbmRfZmFp bHMoCisJWworCQknY3JlYXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3Zp ZGVyPWJ1aWx0aW4nLAorCQknLS1sb2NhbGU9ZW4nLCAndGJ1aWx0aW44JworCV0sCisJJ2NyZWF0 ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJidWlsdGluIiBhbmQgbG9jYWxlPWVuJworKTsKKwog JG5vZGUtPmNvbW1hbmRfZmFpbHMoWyAnY3JlYXRlZGInLCAnZm9vYmFyMScgXSwKIAknZmFpbHMg aWYgZGF0YWJhc2UgYWxyZWFkeSBleGlzdHMnKTsKIApAQCAtMTg0LDcgKzIwMCw3IEBAIEFMVEVS IFRBQkxFIHRhYl9mb29iYXIgb3duZXIgdG8gcm9sZV9mb29iYXI7CiBDUkVBVEUgUE9MSUNZIHBv bF9mb29iYXIgT04gdGFiX2Zvb2JhciBGT1IgQUxMIFRPIHJvbGVfZm9vYmFyOycpOwogJG5vZGUt Pmlzc3Vlc19zcWxfbGlrZSgKIAlbICdjcmVhdGVkYicsICctbCcsICdDJywgJy1UJywgJ2Zvb2Jh cjInLCAnZm9vYmFyMycgXSwKLQlxci9zdGF0ZW1lbnQ6IENSRUFURSBEQVRBQkFTRSBmb29iYXIz IFRFTVBMQVRFIGZvb2JhcjIvLAorCXFyL3N0YXRlbWVudDogQ1JFQVRFIERBVEFCQVNFIGZvb2Jh cjMgVEVNUExBVEUgZm9vYmFyMiBMT0NBTEUgJ0MnLywKIAknY3JlYXRlIGRhdGFiYXNlIHdpdGgg dGVtcGxhdGUnKTsKICgkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlLT5wc3FsKAogCSdm b29iYXIzJywKQEAgLTIxMSw3ICsyMjcsNyBAQCAkbm9kZS0+Y29tbWFuZF9jaGVja3NfYWxsKAog CTEsCiAJW3FyL14kL10sCiAJWwotCQlxci9eY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVh dGlvbiBmYWlsZWQ6IEVSUk9SOiAgaW52YWxpZCBsb2NhbGUgbmFtZXxeY3JlYXRlZGI6IGVycm9y OiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgbmV3IGNvbGxhdGlvbiBcKGZvbyc7 IFNFTEVDVCAnMVwpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBjb2xsYXRpb24gb2YgdGhlIHRl bXBsYXRlIGRhdGFiYXNlL3MKKwkJcXIvXmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRp b24gZmFpbGVkOiBFUlJPUjogIGludmFsaWQgTENfQ09MTEFURSBsb2NhbGUgbmFtZXxeY3JlYXRl ZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgbmV3IGNvbGxhdGlv biBcKGZvbyc7IFNFTEVDVCAnMVwpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBjb2xsYXRpb24g b2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlL3MKIAldLAogCSdjcmVhdGVkYiB3aXRoIGluY29ycmVj dCAtLWxjLWNvbGxhdGUnKTsKICRub2RlLT5jb21tYW5kX2NoZWNrc19hbGwoCkBAIC0yMTksNyAr MjM1LDcgQEAgJG5vZGUtPmNvbW1hbmRfY2hlY2tzX2FsbCgKIAkxLAogCVtxci9eJC9dLAogCVsK LQkJcXIvXmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjog IGludmFsaWQgbG9jYWxlIG5hbWV8XmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3JlYXRpb24g ZmFpbGVkOiBFUlJPUjogIG5ldyBMQ19DVFlQRSBcKGZvbyc7IFNFTEVDVCAnMVwpIGlzIGluY29t cGF0aWJsZSB3aXRoIHRoZSBMQ19DVFlQRSBvZiB0aGUgdGVtcGxhdGUgZGF0YWJhc2UvcworCQlx ci9eY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgaW52 YWxpZCBMQ19DVFlQRSBsb2NhbGUgbmFtZXxeY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVh dGlvbiBmYWlsZWQ6IEVSUk9SOiAgbmV3IExDX0NUWVBFIFwoZm9vJzsgU0VMRUNUICcxXCkgaXMg aW5jb21wYXRpYmxlIHdpdGggdGhlIExDX0NUWVBFIG9mIHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZS9z CiAJXSwKIAknY3JlYXRlZGIgd2l0aCBpbmNvcnJlY3QgLS1sYy1jdHlwZScpOwogCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJhc2UucGwgYi9zcmMvdGVzdC9pY3UvdC8wMTBf ZGF0YWJhc2UucGwKaW5kZXggMjZmNzFlMTE1NS4uNmQxOTQ4OGFmYyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvaWN1L3QvMDEwX2RhdGFiYXNlLnBsCisrKyBiL3NyYy90ZXN0L2ljdS90LzAxMF9kYXRh YmFzZS5wbApAQCAtNTEsMTcgKzUxLDIzIEBAIGIpLAogCSdzb3J0IGJ5IGV4cGxpY2l0IGNvbGxh dGlvbiB1cHBlciBmaXJzdCcpOwogCiAKLSMgVGVzdCBlcnJvciBjYXNlcyBpbiBDUkVBVEUgREFU QUJBU0UgaW52b2x2aW5nIGxvY2FsZS1yZWxhdGVkIG9wdGlvbnMKLQotbXkgKCRyZXQsICRzdGRv dXQsICRzdGRlcnIpID0gJG5vZGUxLT5wc3FsKCdwb3N0Z3JlcycsCi0JcXtDUkVBVEUgREFUQUJB U0UgZGJpY3UgTE9DQUxFX1BST1ZJREVSIGljdSBMT0NBTEUgJ0MnIFRFTVBMQVRFIHRlbXBsYXRl MCBFTkNPRElORyBVVEY4fQorIyBUZXN0IHRoYXQgTE9DQUxFPSdDJyB3b3JrcyBmb3IgSUNVCitt eSAkcmV0MSA9ICRub2RlMS0+cHNxbCgncG9zdGdyZXMnLAorCXF7Q1JFQVRFIERBVEFCQVNFIGRi aWN1MiBMT0NBTEVfUFJPVklERVIgaWN1IExPQ0FMRSAnQycgVEVNUExBVEUgdGVtcGxhdGUwIEVO Q09ESU5HIFVURjh9CiApOwotaXNudCgkcmV0LCAwLAotCSJJQ1UgbG9jYWxlIG11c3QgYmUgc3Bl Y2lmaWVkIGZvciBJQ1UgcHJvdmlkZXI6IGV4aXQgY29kZSBub3QgMCIpOworaXMoJHJldDEsIDAs CisJIkMgbG9jYWxlIHdvcmtzIGZvciBJQ1UiKTsKKworIyBUZXN0IHRoYXQgSUNVLXNwZWNpZmlj IGxvY2FsZSBzdHJpbmcgbXVzdCBiZSBzcGVjaWZpZWQgd2l0aCBJQ1VfTE9DQUxFLAorIyBub3Qg TE9DQUxFCitteSAoJHJldDIsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGUxLT5wc3FsKCdwb3N0 Z3JlcycsCisJcXtDUkVBVEUgREFUQUJBU0UgZGJpY3UzIExPQ0FMRV9QUk9WSURFUiBpY3UgTE9D QUxFICdAY29sU3RyZW5ndGg9cHJpbWFyeScgVEVNUExBVEUgdGVtcGxhdGUwIEVOQ09ESU5HIFVU Rjh9KTsKK2lzbnQoJHJldDIsIDAsCisJIklDVS1zcGVjaWZpYyBsb2NhbGUgbXVzdCBiZSBzcGVj aWZpZWQgd2l0aCBJQ1VfTE9DQUxFOiBleGl0IGNvZGUgbm90IDAiKTsKIGxpa2UoCiAJJHN0ZGVy ciwKLQlxci9FUlJPUjogIElDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQvLAotCSJJQ1UgbG9j YWxlIG11c3QgYmUgc3BlY2lmaWVkIGZvciBJQ1UgcHJvdmlkZXI6IGVycm9yIG1lc3NhZ2UiKTsK Kwlxci9FUlJPUjogIGludmFsaWQgTENfQ09MTEFURSBsb2NhbGUgbmFtZS8sCisJIklDVS1zcGVj aWZpYyBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQgd2l0aCBJQ1VfTE9DQUxFOiBlcnJvciBtZXNz YWdlIik7CiAKIG15ICgkcmV0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlMS0+cHNxbCgncG9z dGdyZXMnLAogCXF7Q1JFQVRFIERBVEFCQVNFIGRiaWN1IExPQ0FMRV9QUk9WSURFUiBidWlsdGlu IExPQ0FMRSAnQycgVEVNUExBVEUgZGJpY3V9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9jb2xsYXRlLmljdS51dGY4Lm91dAppbmRleCA1YmE4Zjc1NTU4Li45ZTQ5YzBkOWE3IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKQEAgLTEy MDIsOSArMTIwMiw5IEBAIFNFTEVDVCAnY290w6knIDwgJ2PDtHRlJyBDT0xMQVRFICJ1bmQteC1p Y3UiLCAnY290w6knID4gJ2PDtHRlJyBDT0xMQVRFIHRlc3Rjb2xsCiAoMSByb3cpCiAKIENSRUFU RSBDT0xMQVRJT04gdGVzdGNvbGxfbG93ZXJfZmlyc3QgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUg PSAnQGNvbENhc2VGaXJzdD1sb3dlcicpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAi dW5kLXUta2YtbG93ZXIiIGZvciBsb2NhbGUgIkBjb2xDYXNlRmlyc3Q9bG93ZXIiCitOT1RJQ0U6 ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rZi1sb3dlciIgZm9yIElDVSBsb2NhbGUgIkBj b2xDYXNlRmlyc3Q9bG93ZXIiCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Rjb2xsX3VwcGVyX2ZpcnN0 IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xDYXNlRmlyc3Q9dXBwZXInKTsKLU5PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLXVwcGVyIiBmb3IgbG9jYWxlICJAY29s Q2FzZUZpcnN0PXVwcGVyIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUta2Yt dXBwZXIiIGZvciBJQ1UgbG9jYWxlICJAY29sQ2FzZUZpcnN0PXVwcGVyIgogU0VMRUNUICdhYWEn IDwgJ0FBQScgQ09MTEFURSB0ZXN0Y29sbF9sb3dlcl9maXJzdCwgJ2FhYScgPiAnQUFBJyBDT0xM QVRFIHRlc3Rjb2xsX3VwcGVyX2ZpcnN0OwogID9jb2x1bW4/IHwgP2NvbHVtbj8gCiAtLS0tLS0t LS0tKy0tLS0tLS0tLS0KQEAgLTEyMTIsNyArMTIxMiw3IEBAIFNFTEVDVCAnYWFhJyA8ICdBQUEn IENPTExBVEUgdGVzdGNvbGxfbG93ZXJfZmlyc3QsICdhYWEnID4gJ0FBQScgQ09MTEFURSB0ZXN0 Y29sCiAoMSByb3cpCiAKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfc2hpZnRlZCAocHJvdmlk ZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQnKTsKLU5PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWthLXNoaWZ0ZWQiIGZvciBsb2NhbGUgIkBjb2xBbHRl cm5hdGU9c2hpZnRlZCIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWthLXNo aWZ0ZWQiIGZvciBJQ1UgbG9jYWxlICJAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQiCiBTRUxFQ1QgJ2Rl LWx1Z2UnIDwgJ2RlYW56YScgQ09MTEFURSAidW5kLXgtaWN1IiwgJ2RlLWx1Z2UnID4gJ2RlYW56 YScgQ09MTEFURSB0ZXN0Y29sbF9zaGlmdGVkOwogID9jb2x1bW4/IHwgP2NvbHVtbj8gCiAtLS0t LS0tLS0tKy0tLS0tLS0tLS0KQEAgLTEyMjksMTIgKzEyMjksMTIgQEAgU0VMRUNUICdBLTIxJyA+ ICdBLTEyMycgQ09MTEFURSAidW5kLXgtaWN1IiwgJ0EtMjEnIDwgJ0EtMTIzJyBDT0xMQVRFIHRl c3Rjb2xsX24KICgxIHJvdykKIAogQ1JFQVRFIENPTExBVElPTiB0ZXN0Y29sbF9lcnJvcjEgKHBy b3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQGNvbE51bWVyaWM9bG93ZXInKTsKLU5PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtuLWxvd2VyIiBmb3IgbG9jYWxlICJAY29sTnVtZXJp Yz1sb3dlciIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtuLWxvd2VyIiBm b3IgSUNVIGxvY2FsZSAiQGNvbE51bWVyaWM9bG93ZXIiCiBFUlJPUjogIGNvdWxkIG5vdCBvcGVu IGNvbGxhdG9yIGZvciBsb2NhbGUgInVuZC11LWtuLWxvd2VyIjogVV9JTExFR0FMX0FSR1VNRU5U X0VSUk9SCiAtLSB0ZXN0IHRoYXQgYXR0cmlidXRlcyBub3QgaGFuZGxlZCBieSBpY3Vfc2V0X2Nv bGxhdGlvbl9hdHRyaWJ1dGVzKCkKIC0tIChoYW5kbGVkIGJ5IHVjb2xfb3BlbigpIGRpcmVjdGx5 KSBhbHNvIHdvcmsKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfZGVfcGhvbmVib29rIChwcm92 aWRlciA9IGljdSwgbG9jYWxlID0gJ2RlQGNvbGxhdGlvbj1waG9uZWJvb2snKTsKLU5PVElDRTog IHVzaW5nIHN0YW5kYXJkIGZvcm0gImRlLXUtY28tcGhvbmViayIgZm9yIGxvY2FsZSAiZGVAY29s bGF0aW9uPXBob25lYm9vayIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gImRlLXUtY28t cGhvbmViayIgZm9yIElDVSBsb2NhbGUgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siCiBTRUxFQ1Qg J0dvbGRtYW5uJyA8ICdHw7Z0eicgQ09MTEFURSAiZGUteC1pY3UiLCAnR29sZG1hbm4nID4gJ0fD tnR6JyBDT0xMQVRFIHRlc3Rjb2xsX2RlX3Bob25lYm9vazsKICA/Y29sdW1uPyB8ID9jb2x1bW4/ IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0xMjQzLDcgKzEyNDMsNyBAQCBTRUxFQ1QgJ0dv bGRtYW5uJyA8ICdHw7Z0eicgQ09MTEFURSAiZGUteC1pY3UiLCAnR29sZG1hbm4nID4gJ0fDtnR6 JyBDT0xMQVRFIHRlcwogCiAtLSBydWxlcwogQ1JFQVRFIENPTExBVElPTiB0ZXN0Y29sbF9ydWxl czEgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnJywgcnVsZXMgPSAnJmEgPCBnJyk7Ci1OT1RJ Q0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIKIENSRUFURSBUQUJMRSB0 ZXN0NyAoYSB0ZXh0KTsKIC0tIGV4YW1wbGUgZnJvbSBodHRwczovL3VuaWNvZGUtb3JnLmdpdGh1 Yi5pby9pY3UvdXNlcmd1aWRlL2NvbGxhdGlvbi9jdXN0b21pemF0aW9uLyNzeW50YXgKIElOU0VS VCBJTlRPIHRlc3Q3IFZBTFVFUyAoJ0FiZXJuYXRoeScpLCAoJ2FwcGxlJyksICgnYmlyZCcpLCAo J0Jvc3RvbicpLCAoJ0dyYWhhbScpLCAoJ2dyZWVuJyk7CkBAIC0xMjcxLDEzICsxMjcxLDEzIEBA IFNFTEVDVCAqIEZST00gdGVzdDcgT1JERVIgQlkgYSBDT0xMQVRFIHRlc3Rjb2xsX3J1bGVzMTsK IAogRFJPUCBUQUJMRSB0ZXN0NzsKIENSRUFURSBDT0xMQVRJT04gdGVzdGNvbGxfcnVsZXN4IChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJycsIHJ1bGVzID0gJyEhd3JvbmchIScpOwotTk9USUNF OiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgbG9jYWxlICIiCitOT1RJQ0U6ICB1c2lu ZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9jYWxlICIiCiBFUlJPUjogIGNvdWxkIG5v dCBvcGVuIGNvbGxhdG9yIGZvciBsb2NhbGUgInVuZCIgd2l0aCBydWxlcyAiISF3cm9uZyEhIjog VV9JTlZBTElEX0ZPUk1BVF9FUlJPUgogLS0gbm9uZGV0ZXJtaW5pc3RpYyBjb2xsYXRpb25zCiBD UkVBVEUgQ09MTEFUSU9OIGN0ZXN0X2RldCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnLCBk ZXRlcm1pbmlzdGljID0gdHJ1ZSk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQi IGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElD VSBsb2NhbGUgIiIKIENSRUFURSBDT0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChwcm92aWRlciA9IGlj dSwgbG9jYWxlID0gJycsIGRldGVybWluaXN0aWMgPSBmYWxzZSk7Ci1OT1RJQ0U6ICB1c2luZyBz dGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUgIiIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJk IGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIKIENSRUFURSBUQUJMRSB0ZXN0NiAoYSBpbnQs IGIgdGV4dCk7CiAtLSBzYW1lIHN0cmluZyBpbiBkaWZmZXJlbnQgbm9ybWFsIGZvcm1zCiBJTlNF UlQgSU5UTyB0ZXN0NiBWQUxVRVMgKDEsIFUmJ1wwMEU0YmMnKTsKQEAgLTEzMjcsOSArMTMyNyw5 IEBAIFNFTEVDVCAqIEZST00gdGVzdDZhIFdIRVJFIGIgPSBBUlJBWVsnw6RiYyddIENPTExBVEUg Y3Rlc3Rfbm9uZGV0OwogKDIgcm93cykKIAogQ1JFQVRFIENPTExBVElPTiBjYXNlX3NlbnNpdGl2 ZSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnKTsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJk IGZvcm0gInVuZCIgZm9yIGxvY2FsZSAiIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAi dW5kIiBmb3IgSUNVIGxvY2FsZSAiIgogQ1JFQVRFIENPTExBVElPTiBjYXNlX2luc2Vuc2l0aXZl IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1zZWNvbmRhcnknLCBkZXRl cm1pbmlzdGljID0gZmFsc2UpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUt a3MtbGV2ZWwyIiBmb3IgbG9jYWxlICJAY29sU3RyZW5ndGg9c2Vjb25kYXJ5IgorTk9USUNFOiAg dXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUta3MtbGV2ZWwyIiBmb3IgSUNVIGxvY2FsZSAiQGNv bFN0cmVuZ3RoPXNlY29uZGFyeSIKIFNFTEVDVCAnYWJjJyA8PSAnQUJDJyBDT0xMQVRFIGNhc2Vf c2Vuc2l0aXZlLCAnYWJjJyA+PSAnQUJDJyBDT0xMQVRFIGNhc2Vfc2Vuc2l0aXZlOwogID9jb2x1 bW4/IHwgP2NvbHVtbj8gCiAtLS0tLS0tLS0tKy0tLS0tLS0tLS0KLS0gCjIuMzQuMQoK --=-MrjU+V4I1ffFIWdKrBIv Content-Disposition: attachment; filename="v10-0004-CREATE-COLLATION-default-provider.patch" Content-Type: text/x-patch; name="v10-0004-CREATE-COLLATION-default-provider.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlYTcyZDlmOGJhYWUyNjNhZjBmN2NlMWI4MGJmNjI0ZTA0OTZhNTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDI0IE1heSAyMDIzIDA5OjUzOjAyIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MTAgNC80XSBD UkVBVEUgQ09MTEFUSU9OIGRlZmF1bHQgcHJvdmlkZXIuCgpJZiB0aGUgTENfQ09MTEFURSBvciBM Q19DVFlQRSBhcmUgc3BlY2lmaWVkIGZvciBhIG5ldyBjb2xsYXRpb24sIHRoZQpkZWZhdWx0IHBy b3ZpZGVyIGlzIGxpYmMuIE90aGVyd2lzZSwgdGhlIGRlZmF1bHQgcHJvdmlkZXIgaXMgdGhlIHNh bWUKYXMgdGhlIHByb3ZpZGVyIGZvciB0aGUgZGF0YWJhc2UgZGVmYXVsdCBjb2xsYXRpb24uCgpQ cmV2aW91c2x5LCB0aGUgZGVmYXVsdCBwcm92aWRlciB3YXMgYWx3YXlzIGxpYmMuCi0tLQogY29u dHJpYi9jaXRleHQvZXhwZWN0ZWQvY3JlYXRlX2luZGV4X2FjbC5vdXQgICAgIHwgIDIgKy0KIGNv bnRyaWIvY2l0ZXh0L3NxbC9jcmVhdGVfaW5kZXhfYWNsLnNxbCAgICAgICAgICB8ICAyICstCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbCAgICAgICAgICAgfCAxMiArKysr KysrKystLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYyAgICAgICAgICAg ICB8ICA3ICsrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51 dGY4Lm91dCB8IDEwICsrKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUubGlu dXgudXRmOC5zcWwgICAgICB8IDEwICsrKysrLS0tLS0KIDYgZmlsZXMgY2hhbmdlZCwgMjcgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQv ZXhwZWN0ZWQvY3JlYXRlX2luZGV4X2FjbC5vdXQgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9j cmVhdGVfaW5kZXhfYWNsLm91dAppbmRleCAzM2JlMTNhOTJkLi43NjU4NjdkMzZkIDEwMDY0NAot LS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jcmVhdGVfaW5kZXhfYWNsLm91dAorKysgYi9j b250cmliL2NpdGV4dC9leHBlY3RlZC9jcmVhdGVfaW5kZXhfYWNsLm91dApAQCAtNDMsNyArNDMs NyBAQCBSRVZPS0UgQUxMIE9OIEZVTkNUSU9OIHMuaW5kZXhfcm93X2lmIEZST00gUFVCTElDOwog LS0gRXZlbiBmb3IgYW4gZW1wdHkgdGFibGUsIENSRUFURSBJTkRFWCBjaGVja3MgaWlfUHJlZGlj YXRlIHBlcm1pc3Npb25zLgogR1JBTlQgRVhFQ1VURSBPTiBGVU5DVElPTiBzLmluZGV4X3Jvd19p ZiBUTyByZWdyZXNzX21pbmltYWw7CiAtLSBOb24tZXh0ZW5zaW9uLCBub24tZnVuY3Rpb24gb2Jq ZWN0cy4KLUNSRUFURSBDT0xMQVRJT04gcy5jb2xsIChMT0NBTEU9IkMiKTsKK0NSRUFURSBDT0xM QVRJT04gcy5jb2xsIChQUk9WSURFUj1saWJjLCBMT0NBTEU9IkMiKTsKIENSRUFURSBUQUJMRSBz LnggKHkgcy5jaXRleHQpOwogQUxURVIgVEFCTEUgcy54IE9XTkVSIFRPIHJlZ3Jlc3NfbWluaW1h bDsKIC0tIEVtcHR5LXRhYmxlIERlZmluZUluZGV4KCkKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0 ZXh0L3NxbC9jcmVhdGVfaW5kZXhfYWNsLnNxbCBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jcmVhdGVf aW5kZXhfYWNsLnNxbAppbmRleCAxMGI1MjI1NTY5Li5lMzM4YWM4Nzk5IDEwMDY0NAotLS0gYS9j b250cmliL2NpdGV4dC9zcWwvY3JlYXRlX2luZGV4X2FjbC5zcWwKKysrIGIvY29udHJpYi9jaXRl eHQvc3FsL2NyZWF0ZV9pbmRleF9hY2wuc3FsCkBAIC00NSw3ICs0NSw3IEBAIFJFVk9LRSBBTEwg T04gRlVOQ1RJT04gcy5pbmRleF9yb3dfaWYgRlJPTSBQVUJMSUM7CiAtLSBFdmVuIGZvciBhbiBl bXB0eSB0YWJsZSwgQ1JFQVRFIElOREVYIGNoZWNrcyBpaV9QcmVkaWNhdGUgcGVybWlzc2lvbnMu CiBHUkFOVCBFWEVDVVRFIE9OIEZVTkNUSU9OIHMuaW5kZXhfcm93X2lmIFRPIHJlZ3Jlc3NfbWlu aW1hbDsKIC0tIE5vbi1leHRlbnNpb24sIG5vbi1mdW5jdGlvbiBvYmplY3RzLgotQ1JFQVRFIENP TExBVElPTiBzLmNvbGwgKExPQ0FMRT0iQyIpOworQ1JFQVRFIENPTExBVElPTiBzLmNvbGwgKFBS T1ZJREVSPWxpYmMsIExPQ0FMRT0iQyIpOwogQ1JFQVRFIFRBQkxFIHMueCAoeSBzLmNpdGV4dCk7 CiBBTFRFUiBUQUJMRSBzLnggT1dORVIgVE8gcmVncmVzc19taW5pbWFsOwogLS0gRW1wdHktdGFi bGUgRGVmaW5lSW5kZXgoKQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s bGF0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbAppbmRl eCA0OGI2MmY3N2NiLi4yYjI1ZWZmNDRlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9jb2xsYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2xsYXRp b24uc2dtbApAQCAtMTM2LDkgKzEzNiwxNSBAQCBDUkVBVEUgQ09MTEFUSU9OIFsgSUYgTk9UIEVY SVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gRlJPTSA8cmVwbGFjZQogICAg ICAgIFNwZWNpZmllcyB0aGUgcHJvdmlkZXIgdG8gdXNlIGZvciBsb2NhbGUgc2VydmljZXMgYXNz b2NpYXRlZCB3aXRoIHRoaXMKICAgICAgICBjb2xsYXRpb24uICBQb3NzaWJsZSB2YWx1ZXMgYXJl IDxsaXRlcmFsPmJ1aWx0aW48L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJh bD48aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4gKGlmCi0gICAg ICAgdGhlIHNlcnZlciB3YXMgYnVpbHQgd2l0aCBJQ1Ugc3VwcG9ydCkgb3IgPGxpdGVyYWw+bGli YzwvbGl0ZXJhbD4uCi0gICAgICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1 bHQuICBTZWUgPHhyZWYKLSAgICAgICBsaW5rZW5kPSJsb2NhbGUtcHJvdmlkZXJzIi8+IGZvciBk ZXRhaWxzLgorICAgICAgIHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdpdGggSUNVIHN1cHBvcnQpIG9y IDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+LiBTZWUKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJsb2Nh bGUtcHJvdmlkZXJzIi8+IGZvciBkZXRhaWxzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgSWYgPHJlcGxhY2VhYmxlPmxjX2NvbGxsYXRlPC9yZXBsYWNlYWJsZT4gb3IKKyAg ICAgICA8cmVwbGFjZWFibGU+bGNfY3R5cGU8L3JlcGxhY2VhYmxlPiBpcyBzcGVjaWZpZWQsIHRo ZSBkZWZhdWx0IGlzCisgICAgICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD47IG90aGVyd2lzZSwg dGhlIGRlZmF1bHQgaXMgdGhlIHNhbWUgYXMgdGhlCisgICAgICAgcHJvdmlkZXIgZm9yIHRoZSBk YXRhYmFzZSBkZWZhdWx0IGNvbGxhdGlvbiAoc2VlIDx4cmVmCisgICAgICAgbGlua2VuZD0ic3Fs LWNyZWF0ZWRhdGFiYXNlIi8+KS4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAg IElmIHRoZSBwcm92aWRlciBpcyA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+IGFuZCB0aGUgbG9jYWxl IGlzCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggNTgzMTZlYzE5ZS4uZjIy NjQwMDBjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpAQCAtMjI5LDcgKzIy OSwxMiBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywg TGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCQkJCQljb2xscHJvdmlkZXJzdHIp KSk7CiAJCX0KIAkJZWxzZQotCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CisJ CXsKKwkJCWlmIChsY2NvbGxhdGVFbCB8fCBsY2N0eXBlRWwpCisJCQkJY29sbHByb3ZpZGVyID0g Q09MTFBST1ZJREVSX0xJQkM7CisJCQllbHNlCisJCQkJY29sbHByb3ZpZGVyID0gZGVmYXVsdF9s b2NhbGUucHJvdmlkZXI7CisJCX0KIAogCQlpZiAobG9jYWxlRWwpCiAJCXsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5saW51eC51dGY4Lm91dAppbmRleCAwMTY2NGY3 YzFiLi41ODgxOThkMTNlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv bGxhdGUubGludXgudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xs YXRlLmxpbnV4LnV0Zjgub3V0CkBAIC0xMDI2LDcgKzEwMjYsNyBAQCBDUkVBVEUgU0NIRU1BIHRl c3Rfc2NoZW1hOwogLS0gV2UgbmVlZCB0byBkbyB0aGlzIHRoaXMgd2F5IHRvIGNvcGUgd2l0aCB2 YXJ5aW5nIG5hbWVzIGZvciBlbmNvZGluZ3M6CiBkbyAkJAogQkVHSU4KLSAgRVhFQ1VURSAnQ1JF QVRFIENPTExBVElPTiB0ZXN0MCAobG9jYWxlID0gJyB8fAorICBFWEVDVVRFICdDUkVBVEUgQ09M TEFUSU9OIHRlc3QwIChwcm92aWRlciA9IGxpYmMsIGxvY2FsZSA9ICcgfHwKICAgICAgICAgICBx dW90ZV9saXRlcmFsKChTRUxFQ1QgZGF0Y29sbGF0ZSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRh dG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpKSB8fCAnKTsnOwogRU5ECiAkJDsKQEAgLTEwMzQs NyArMTAzNCw3IEBAIENSRUFURSBDT0xMQVRJT04gdGVzdDAgRlJPTSAiQyI7IC0tIGZhaWwsIGR1 cGxpY2F0ZSBuYW1lCiBFUlJPUjogIGNvbGxhdGlvbiAidGVzdDAiIGFscmVhZHkgZXhpc3RzCiBD UkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElTVFMgdGVzdDAgRlJPTSAiQyI7IC0tIG9rLCBza2lw cGVkCiBOT1RJQ0U6ICBjb2xsYXRpb24gInRlc3QwIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmcK LUNSRUFURSBDT0xMQVRJT04gSUYgTk9UIEVYSVNUUyB0ZXN0MCAobG9jYWxlID0gJ2ZvbycpOyAt LSBvaywgc2tpcHBlZAorQ1JFQVRFIENPTExBVElPTiBJRiBOT1QgRVhJU1RTIHRlc3QwIChwcm92 aWRlciA9IGxpYmMsIGxvY2FsZSA9ICdmb28nKTsgLS0gb2ssIHNraXBwZWQKIE5PVElDRTogIGNv bGxhdGlvbiAidGVzdDAiIGZvciBlbmNvZGluZyAiVVRGOCIgYWxyZWFkeSBleGlzdHMsIHNraXBw aW5nCiBkbyAkJAogQkVHSU4KQEAgLTEwNDYsNyArMTA0Niw3IEBAIEVORAogJCQ7CiBDUkVBVEUg Q09MTEFUSU9OIHRlc3QzIChsY19jb2xsYXRlID0gJ2VuX1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVl ZCBsY19jdHlwZQogRVJST1I6ICBwYXJhbWV0ZXIgImxjX2N0eXBlIiBtdXN0IGJlIHNwZWNpZmll ZAotQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAobG9jYWxlID0gJ25vbnNlbnNlJyk7IC0tIGZhaWwK K0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gbGliYywgbG9jYWxlID0gJ25vbnNl bnNlJyk7IC0tIGZhaWwKIEVSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBsb2NhbGUgIm5vbnNlbnNl IjogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQogREVUQUlMOiAgVGhlIG9wZXJhdGluZyBzeXN0 ZW0gY291bGQgbm90IGZpbmQgYW55IGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlIG5hbWUgIm5v bnNlbnNlIi4KIENSRUFURSBDT0xMQVRJT04gdGVzdDQgRlJPTSBub25zZW5zZTsKQEAgLTExNjYs OCArMTE2Niw4IEBAIFNFTEVDVCAqIEZST00gY29sbGF0ZV90ZXN0MiBPUkRFUiBCWSBiIENPTExB VEUgVUNTX0JBU0lDOwogCiAtLSBub25kZXRlcm1pbmlzdGljIGNvbGxhdGlvbnMKIC0tIChub3Qg c3VwcG9ydGVkIHdpdGggbGliYyBwcm92aWRlcikKLUNSRUFURSBDT0xMQVRJT04gY3Rlc3RfZGV0 IChsb2NhbGUgPSAnZW5fVVMudXRmOCcsIGRldGVybWluaXN0aWMgPSB0cnVlKTsKLUNSRUFURSBD T0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChsb2NhbGUgPSAnZW5fVVMudXRmOCcsIGRldGVybWluaXN0 aWMgPSBmYWxzZSk7CitDUkVBVEUgQ09MTEFUSU9OIGN0ZXN0X2RldCAocHJvdmlkZXIgPSBsaWJj LCBsb2NhbGUgPSAnZW5fVVMudXRmOCcsIGRldGVybWluaXN0aWMgPSB0cnVlKTsKK0NSRUFURSBD T0xMQVRJT04gY3Rlc3Rfbm9uZGV0IChwcm92aWRlciA9IGxpYmMsIGxvY2FsZSA9ICdlbl9VUy51 dGY4JywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsKIEVSUk9SOiAgbm9uZGV0ZXJtaW5pc3RpYyBj b2xsYXRpb25zIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGlzIHByb3ZpZGVyCiAtLSBjbGVhbnVwCiBT RVQgY2xpZW50X21pbl9tZXNzYWdlcyBUTyB3YXJuaW5nOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY29sbGF0ZS5saW51eC51dGY4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2NvbGxhdGUubGludXgudXRmOC5zcWwKaW5kZXggMTMyZDEzYWYwYS4uMmQwMzEyOTNkMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5saW51eC51dGY4LnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmxpbnV4LnV0Zjguc3FsCkBAIC0zNTgsMTMg KzM1OCwxMyBAQCBDUkVBVEUgU0NIRU1BIHRlc3Rfc2NoZW1hOwogLS0gV2UgbmVlZCB0byBkbyB0 aGlzIHRoaXMgd2F5IHRvIGNvcGUgd2l0aCB2YXJ5aW5nIG5hbWVzIGZvciBlbmNvZGluZ3M6CiBk byAkJAogQkVHSU4KLSAgRVhFQ1VURSAnQ1JFQVRFIENPTExBVElPTiB0ZXN0MCAobG9jYWxlID0g JyB8fAorICBFWEVDVVRFICdDUkVBVEUgQ09MTEFUSU9OIHRlc3QwIChwcm92aWRlciA9IGxpYmMs IGxvY2FsZSA9ICcgfHwKICAgICAgICAgICBxdW90ZV9saXRlcmFsKChTRUxFQ1QgZGF0Y29sbGF0 ZSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSBjdXJyZW50X2RhdGFiYXNlKCkpKSB8 fCAnKTsnOwogRU5ECiAkJDsKIENSRUFURSBDT0xMQVRJT04gdGVzdDAgRlJPTSAiQyI7IC0tIGZh aWwsIGR1cGxpY2F0ZSBuYW1lCiBDUkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElTVFMgdGVzdDAg RlJPTSAiQyI7IC0tIG9rLCBza2lwcGVkCi1DUkVBVEUgQ09MTEFUSU9OIElGIE5PVCBFWElTVFMg dGVzdDAgKGxvY2FsZSA9ICdmb28nKTsgLS0gb2ssIHNraXBwZWQKK0NSRUFURSBDT0xMQVRJT04g SUYgTk9UIEVYSVNUUyB0ZXN0MCAocHJvdmlkZXIgPSBsaWJjLCBsb2NhbGUgPSAnZm9vJyk7IC0t IG9rLCBza2lwcGVkCiBkbyAkJAogQkVHSU4KICAgRVhFQ1VURSAnQ1JFQVRFIENPTExBVElPTiB0 ZXN0MSAobGNfY29sbGF0ZSA9ICcgfHwKQEAgLTM3NCw3ICszNzQsNyBAQCBCRUdJTgogRU5ECiAk JDsKIENSRUFURSBDT0xMQVRJT04gdGVzdDMgKGxjX2NvbGxhdGUgPSAnZW5fVVMudXRmOCcpOyAt LSBmYWlsLCBuZWVkIGxjX2N0eXBlCi1DUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChsb2NhbGUgPSAn bm9uc2Vuc2UnKTsgLS0gZmFpbAorQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBs aWJjLCBsb2NhbGUgPSAnbm9uc2Vuc2UnKTsgLS0gZmFpbAogCiBDUkVBVEUgQ09MTEFUSU9OIHRl c3Q0IEZST00gbm9uc2Vuc2U7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7CkBA IC00NTUsOCArNDU1LDggQEAgU0VMRUNUICogRlJPTSBjb2xsYXRlX3Rlc3QyIE9SREVSIEJZIGIg Q09MTEFURSBVQ1NfQkFTSUM7CiAtLSBub25kZXRlcm1pbmlzdGljIGNvbGxhdGlvbnMKIC0tIChu b3Qgc3VwcG9ydGVkIHdpdGggbGliYyBwcm92aWRlcikKIAotQ1JFQVRFIENPTExBVElPTiBjdGVz dF9kZXQgKGxvY2FsZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOwotQ1JF QVRFIENPTExBVElPTiBjdGVzdF9ub25kZXQgKGxvY2FsZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJt aW5pc3RpYyA9IGZhbHNlKTsKK0NSRUFURSBDT0xMQVRJT04gY3Rlc3RfZGV0IChwcm92aWRlciA9 IGxpYmMsIGxvY2FsZSA9ICdlbl9VUy51dGY4JywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOworQ1JF QVRFIENPTExBVElPTiBjdGVzdF9ub25kZXQgKHByb3ZpZGVyID0gbGliYywgbG9jYWxlID0gJ2Vu X1VTLnV0ZjgnLCBkZXRlcm1pbmlzdGljID0gZmFsc2UpOwogCiAKIC0tIGNsZWFudXAKLS0gCjIu MzQuMQoK --=-MrjU+V4I1ffFIWdKrBIv--