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 1pxDqs-0002X5-2Q for pgsql-hackers@arkaria.postgresql.org; Thu, 11 May 2023 21:29:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pxDqr-0004ER-0H for pgsql-hackers@arkaria.postgresql.org; Thu, 11 May 2023 21:29:29 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pxDqq-0004EI-Eb for pgsql-hackers@lists.postgresql.org; Thu, 11 May 2023 21:29:28 +0000 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1pxDqk-0023Rv-Cs for pgsql-hackers@lists.postgresql.org; Thu, 11 May 2023 21:29:27 +0000 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-1aad55244b7so70568955ad.2 for ; Thu, 11 May 2023 14:29:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1683840561; x=1686432561; 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=SdXOtyjNioGqX7CRpLc2tyiYTsiDpNhPyh5+tO2EUFk=; b=s3e/rs3D9UsBIYs8Ir/xQ4ATeIt8t9jRg5sgpFsaleTbUy+wZpGqNAFJy3OFCXOgE4 cPK7Y5rBofArE/iN/hntxcEChRpzBXk5sK6Yr71CadiIiTcH2rvRMIKjFhg7kcpgvt1b 1amuFrALZK3E1WZnfN4FuAlvf1m5PXp8GcS6sY7r+BNDXzKuGeTj5pEEpCepuyOF9uMY jz5woSELZzQ7/tu5scS3wIyZ3q+ewq+sbcUKNFdNbX82aE0KG4G+CE92YaCx4+/DSR4Y xDw1OSSccdNOop95I6klSvmSfabht7zmsGJx1U4IYDjklXMFzj5ejmPk7sDb4CxX9n5x WJKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683840561; x=1686432561; 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=SdXOtyjNioGqX7CRpLc2tyiYTsiDpNhPyh5+tO2EUFk=; b=OMc2fjOlu9ycSd/tAJvQVkiiCkbpoNV+S+l+bNPEhS7BqBKm9ozYQ5W3M1m9DEIkPn 6xnL/EDNlocC+0E7P4GJx1eG1NuXfL5KF2AMnpAwGlOK0MurlyP3McFkw6tJ7WrYQWOP P65lNzeUpFWpBXL3r18ylXUYa+xdbMgGQyGphdRZEXL3QclVrkIhp8SIwqdcyQdslpjH hKENwXF+1s51i/quHZpRQEhw0vV7rOfGiaayqkFVBHeBE+E7vltZruodd34cBYin1TJc +TyUWoZ0a4A1lkhOQC+ykMjyG49s3g46ZuwpqheVYZtVeA/zn7fmswSWSsK6S4o2Yszb hTXA== X-Gm-Message-State: AC+VfDwcqKlOpXhY0aZTQosNBFCMvBfa+11MHlzW3gqCv5URXhHXD/BC HE0TY+AREFMnmavjkSHsGLs2mg== X-Google-Smtp-Source: ACHHUZ5kwFcFYmsT+fyaCwisREqsM276qAl8NKoXUe45wXprLOfudK/g4KVLHDeOZ+8SbDPY1CCTDw== X-Received: by 2002:a17:903:185:b0:1a9:6bd4:236a with SMTP id z5-20020a170903018500b001a96bd4236amr28595335plg.69.1683840560478; Thu, 11 May 2023 14:29:20 -0700 (PDT) Received: from jeff-laptop.lan (c-73-170-46-202.hsd1.ca.comcast.net. [73.170.46.202]) by smtp.gmail.com with ESMTPSA id y15-20020a17090264cf00b001ab01b909c9sm6425019pli.120.2023.05.11.14.29.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 May 2023 14:29:19 -0700 (PDT) Message-ID: Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Daniel Verite Cc: Andrew Gierth , Peter Eisentraut , Sandro Santilli , Tom Lane , Regina Obe , pgsql-hackers@lists.postgresql.org Date: Thu, 11 May 2023 14:29:18 -0700 In-Reply-To: <37520ec1ae9591f83132f82dbd625f3fc2d69c16.camel@j-davis.com> References: <543e4ce6-8205-4aea-b54b-12b9ef747bf6@manitou-mail.org> <654a49f7ff7461bcf47be4181430678d45f93858.camel@j-davis.com> <37520ec1ae9591f83132f82dbd625f3fc2d69c16.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-MRRvylN7ApmEOtfiDDp5" 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 --=-MRRvylN7ApmEOtfiDDp5 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable New patch series attached. =3D=3D=3D 0001: fix bug that allows creating hidden collations Bug: https://www.postgresql.org/message-id/051c9395cf880307865ee8b17acdbf7f838c1= e39.camel@j-davis.com =3D=3D=3D 0002: handle some kinds of libc-stlye locale strings ICU used to handle libc locale strings like 'fr_FR@euro', but doesn't in later versions. Handle them in postgres for consistency. =3D=3D=3D 0003: reduce icu_validation_level to WARNING Given that we've seen some inconsistency in which locale names are accepted in different ICU versions, it seems best not to be too strict. Peter Eisentraut suggested that it be set to ERROR originally, but a WARNING should be sufficient to see problems without introducing risks migrating to version 16. I don't expect objections to 0003, so I may commit this soon, but I'll give it a little time in case someone has an opinion. =3D=3D=3D 0004-0006:=20 To solve the issues that have come up in this thread, we need CREATE DATABASE (and createdb and initdb) to use LOCALE to mean the collation locale regardless of which provider is in use (which is what 0006 does). 0006 depends on ICU handling libc locale names. It already does a good job for most libc locale names (though patch 0002 fixes a few cases where it doesn't). There may be more cases, but for the most part libc names are interpreted in a reasonable way. But one important case is missing: ICU does not handle the "C" locale as we expect (that is, using memcmp()). We've already allowed users to create ICU collations with the C locale in the past, which uses the root collation (not memcmp()), and we need to keep supporting that for upgraded clusters. So that leaves us with a catalog representation problem. I mentioned upthread that we can solve that by: 1. Using iculocale=3DNULL to mean "C-as-in-memcmp", or having some other catalog hack (like another field). That's not desirable because the catalog representation is already complex and it may be hard for users to tell what's happening. 2. When provider=3Dicu and locale=3DC, switch to provider=3Dlibc locale= =3DC. This is very messy, because currently the syntax allows specifying a database with LOCALE_PROVIDER=3D'icu' ICU_LOCALE=3D'C' LC_COLLATE=3D'en_US'= - - if the provider gets changed to libc, what would we set datcollate to? I don't think this is workable without some breakage. We can't simply override datcollate to be C in that case, because there are some things other than the default collation that might need it set to en_US as the user specified. 3. Introduce collation provider "none", which is always memcmp-based (patch 0004). It's equivalent to the libc locale=3DC, but it allows specifying the LC_COLLATE and LC_CTYPE independently. A command like CREATE DATABASE ... LOCALE_PROVIDER=3D'icu' ICU_LOCALE=3D'C' LC_COLLATE=3D'en_US' would get changed (with a NOTICE) to provider "none" (patch 0005), so you'd have datlocprovider=3Dnone, datcollate=3Den_US. For the database default collation, that would always use memcmp(), but the server environment LC_COLLATE would be set to en_US as the user specified. For this patch series, I chose approach #3. I think it works out nicely -- it provides a better place to document the "no locale" behavior (including a warning that it depends on the database encoding), and I think it's more clear to the user that locale=3DC is not actually using a provider at all. It's more invasive, but feels like a better solution. If others don't like it I can implement approach #1 instead. =3D=3D=3D 0007: Add a GUC to control the default collation provider Having a GUC would make it easier to migrate to ICU without surprises. This only affects the default for CREATE COLLATION, not CREATE DATABASE (and obviously not initdb). --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename*0=v5-0001-For-user-defined-collations-never-set-collencodin.pat; filename*1=ch Content-Type: text/x-patch; name="v5-0001-For-user-defined-collations-never-set-collencodin.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBmYzY2ZjAyOTc2YmIxMWI2MjliY2Y3MTM0NmMyODU4ZWNjYmNmMWEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDExIE1heSAyMDIzIDEwOjM2OjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAxLzddIEZv ciB1c2VyLWRlZmluZWQgY29sbGF0aW9ucywgbmV2ZXIgc2V0CiBjb2xsZW5jb2Rpbmc9LTEuCgpG b3IgbmV3IHVzZXItZGVmaW5lZCBjb2xsYXRpb25zLCBhbHdheXMgc2V0IGNvbGxlbmNvZGluZyB0 byB0aGUKY3VycmVudCBkYXRhYmFzZSBlbmNvZGluZyBzbyB0aGF0IGl0IGlzIG5ldmVyIHNoYWRv d2VkIGJ5IGEgYnVpbHQtaW4KY29sbGF0aW9uLgoKQnVpbHQgaW4gY29sbGF0aW9ucyB0aGF0IHdv cmsgd2l0aCBhbnkgZW5jb2RpbmcgbWF5IGhhdmUKY29sbGVuY29kaW5nPS0xLCBhbmQgaWYgYSB1 c2VyIGRlZmluZXMgYSBjb2xsYXRpb24gd2l0aCB0aGUgc2FtZSBuYW1lLAppdCB3aWxsIHNoYWRv dyB0aGUgYnVpbHQtaW4gY29sbGF0aW9uLgoKUHJldmlvdXNseSBpdCB3YXMgcG9zc2libGUgdG8g Y3JlYXRlIGFuIElDVSBjb2xsYXRpb24gKHdoaWNoIHdhcwphc3NpZ25lZCBjb2xsZW5jb2Rpbmc9 LTEpIHRoYXQgd2FzIHNoYWRvd2VkIGJ5IGEgYnVpbHQtaW4gY29sbGF0aW9uCmFuZCBjb21wbGV0 ZWx5IGluYWNjZXNzaWJsZS4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRz LmMgICAgICAgICAgfCAyOCArKysrKysrKysrKysrLS0tLS0tCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBp bnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbGxhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNt ZHMuYwppbmRleCBjOTFmZTY2ZDliLi5hNTM3MDAyNTZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s bGF0aW9uY21kcy5jCkBAIC0zMDIsMTYgKzMwMiwyOSBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3Rf ZQogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAogCQkJ CQkgZXJybXNnKCJJQ1UgcnVsZXMgY2Fubm90IGJlIHNwZWNpZmllZCB1bmxlc3MgbG9jYWxlIHBy b3ZpZGVyIGlzIElDVSIpKSk7CiAKKwkJLyoKKwkJICogVGhlIGNvbGxlbmNvZGluZyBpcyB1c2Vk IHRvIGhpZGUgYnVpbHQtaW4gY29sbGF0aW9ucyB0aGF0IGFyZQorCQkgKiBpbmNvbXBhdGlibGUg d2l0aCB0aGUgY3VycmVudCBkYXRhYmFzZSBlbmNvZGluZywgYWxsb3dpbmcgdXNlcnMgdG8KKwkJ ICogZGVmaW5lIGEgY29tcGF0aWJsZSBjb2xsYXRpb24gd2l0aCB0aGUgc2FtZSBuYW1lIGlmCisJ CSAqIGRlc2lyZWQuIEJ1aWx0LWluIGNvbGxhdGlvbnMgdGhhdCB3b3JrIHdpdGggYW55IGVuY29k aW5nIGhhdmUKKwkJICogY29sbGVuY29kaW5nPS0xLgorCQkgKgorCQkgKiBBIGNvbGxhdGlvbiB0 aGF0J3MgYSBtYXRjaCB0byB0aGUgY3VycmVudCBkYXRhYmFzZSBlbmNvZGluZyB3aWxsCisJCSAq IHNoYWRvdyBhIGNvbGxhdGlvbiB3aXRoIHRoZSBzYW1lIG5hbWUgYW5kIGNvbGxlbmNvZGluZz0t MS4gV2UgbmV2ZXIKKwkJICogd2FudCBhIHVzZXItY3JlYXRlZCBjb2xsYXRpb24gdG8gYmUgc2hh ZG93ZWQgYnkgYSBidWlsdC1pbgorCQkgKiBjb2xsYXRpb24sIHNvIGZvciB1c2VyLWNyZWF0ZWQg Y29sbGF0aW9ucywgYWx3YXlzIHNldCBjb2xsZW5jb2RpbmcKKwkJICogdG8gdGhlIGN1cnJlbnQg ZGF0YWJhc2UgZW5jb2RpbmcuCisJCSAqLworCQljb2xsZW5jb2RpbmcgPSBHZXREYXRhYmFzZUVu Y29kaW5nKCk7CisKIAkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCQl7 CiAjaWZkZWYgVVNFX0lDVQogCQkJLyoKLQkJCSAqIFdlIGNvdWxkIGNyZWF0ZSBJQ1UgY29sbGF0 aW9ucyB3aXRoIGNvbGxlbmNvZGluZyA9PSBkYXRhYmFzZQotCQkJICogZW5jb2RpbmcsIGJ1dCBp dCBzZWVtcyBiZXR0ZXIgdG8gdXNlIC0xIHNvIHRoYXQgaXQgbWF0Y2hlcyB0aGUKLQkJCSAqIHdh eSBpbml0ZGIgd291bGQgY3JlYXRlIElDVSBjb2xsYXRpb25zLiAgSG93ZXZlciwgb25seSBhbGxv dwotCQkJICogb25lIHRvIGJlIGNyZWF0ZWQgd2hlbiB0aGUgY3VycmVudCBkYXRhYmFzZSdzIGVu Y29kaW5nIGlzCi0JCQkgKiBzdXBwb3J0ZWQuICBPdGhlcndpc2UgdGhlIGNvbGxhdGlvbiBpcyB1 c2VsZXNzLCBwbHVzIHdlIGdldAotCQkJICogc3VycHJpc2luZyBiZWhhdmlvcnMgbGlrZSBub3Qg YmVpbmcgYWJsZSB0byBkcm9wIHRoZSBjb2xsYXRpb24uCisJCQkgKiBPbmx5IGFsbG93IGFuIElD VSBjb2xsYXRpb24gdG8gYmUgY3JlYXRlZCB3aGVuIHRoZSBjdXJyZW50CisJCQkgKiBkYXRhYmFz ZSdzIGVuY29kaW5nIGlzIHN1cHBvcnRlZC4gIE90aGVyd2lzZSB0aGUgY29sbGF0aW9uIGlzCisJ CQkgKiB1c2VsZXNzLCBwbHVzIHdlIGdldCBzdXJwcmlzaW5nIGJlaGF2aW9ycyBsaWtlIG5vdCBi ZWluZyBhYmxlCisJCQkgKiB0byBkcm9wIHRoZSBjb2xsYXRpb24uCiAJCQkgKgogCQkJICogU2tp cCB0aGlzIHRlc3Qgd2hlbiAhVVNFX0lDVSwgYmVjYXVzZSB0aGUgZXJyb3Igd2Ugd2FudCB0bwog CQkJICogdGhyb3cgZm9yIHRoYXQgaXNuJ3QgdGhyb3duIHRpbGwgbGF0ZXIuCkBAIC0zMjEsMTEg KzMzNCwxMCBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1l cywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJIGVycm1zZygiY3VycmVudCBkYXRhYmFz ZSdzIGVuY29kaW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2l0aCB0aGlzIHByb3ZpZGVyIikpKTsKICNl bmRpZgotCQkJY29sbGVuY29kaW5nID0gLTE7CiAJCX0KIAkJZWxzZQogCQl7Ci0JCQljb2xsZW5j b2RpbmcgPSBHZXREYXRhYmFzZUVuY29kaW5nKCk7CisJCQlBc3NlcnQoY29sbHByb3ZpZGVyID09 IENPTExQUk9WSURFUl9MSUJDKTsKIAkJCWNoZWNrX2VuY29kaW5nX2xvY2FsZV9tYXRjaGVzKGNv bGxlbmNvZGluZywgY29sbGNvbGxhdGUsIGNvbGxjdHlwZSk7CiAJCX0KIAl9CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAppbmRleCBiNWEyMjFiMDMw Li45YzllMWU0ZjQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxh dGUuaWN1LnV0Zjgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5p Y3UudXRmOC5vdXQKQEAgLTEwNjIsNyArMTA2Miw3IEBAIFNFTEVDVCBjb2xsbmFtZSBGUk9NIHBn X2NvbGxhdGlvbiBXSEVSRSBjb2xsbmFtZSBMSUtFICd0ZXN0JScgT1JERVIgQlkgMTsKIAogQUxU RVIgQ09MTEFUSU9OIHRlc3QxIFJFTkFNRSBUTyB0ZXN0MTE7CiBBTFRFUiBDT0xMQVRJT04gdGVz dDAgUkVOQU1FIFRPIHRlc3QxMTsgLS0gZmFpbAotRVJST1I6ICBjb2xsYXRpb24gInRlc3QxMSIg YWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hICJjb2xsYXRlX3Rlc3RzIgorRVJST1I6ICBjb2xsYXRp b24gInRlc3QxMSIgZm9yIGVuY29kaW5nICJVVEY4IiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEg ImNvbGxhdGVfdGVzdHMiCiBBTFRFUiBDT0xMQVRJT04gdGVzdDEgUkVOQU1FIFRPIHRlc3QyMjsg LS0gZmFpbAogRVJST1I6ICBjb2xsYXRpb24gInRlc3QxIiBmb3IgZW5jb2RpbmcgIlVURjgiIGRv ZXMgbm90IGV4aXN0CiBBTFRFUiBDT0xMQVRJT04gdGVzdDExIE9XTkVSIFRPIHJlZ3Jlc3NfdGVz dF9yb2xlOwotLSAKMi4zNC4xCgo= --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename="v5-0002-ICU-fix-up-old-libc-style-locale-strings.patch" Content-Type: text/x-patch; name="v5-0002-ICU-fix-up-old-libc-style-locale-strings.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyNTgyNGRjMjEzMjcyYzczOWVlY2QxNmIxN2EzNDU4ZmM1ZjgxMzM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBG cmksIDI4IEFwciAyMDIzIDEyOjIyOjQxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAyLzddIElD VTogZml4IHVwIG9sZCBsaWJjLXN0eWxlIGxvY2FsZSBzdHJpbmdzLgoKQmVmb3JlIHRyYW5zZm9y bWluZyBhIGxvY2FsZSBzdHJpbmcgaW50byBhIGxhbmd1YWdlIHRhZywgZml4IHVwIG9sZApsaWJj LXN0eWxlIGxvY2FsZSBzdHJpbmdzIHN1Y2ggYXMgJ2ZyX0ZSQGV1cm8nLiBPbGRlciBJQ1UgdmVy c2lvbnMgZGlkCnRoaXMgYXV0b21hdGljYWxseSwgYnV0IElDVSB2ZXJzaW9uIDY0IHJlbW92ZWQg dGhhdCBzdXBwb3J0LgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS82NTRhNDlmN2Zm NzQ2MWJjZjQ3YmU0MTgxNDMwNjc4ZDQ1ZjkzODU4LmNhbWVsJTQwai1kYXZpcy5jb20KLS0tCiBz cmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgICAgICAgICAgICAgfCA1OSArKysrKysr KysrKysrKysrLQogc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMgICAgICAgICAgICAgICAgICAgICAg IHwgNjMgKysrKysrKysrKysrKysrKysrLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5p Y3UudXRmOC5vdXQgICAgIHwgMTEgKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5p Y3UudXRmOC5zcWwgICAgIHwgIDcgKysrCiA0IGZpbGVzIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25z KCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z19sb2NhbGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYwppbmRleCBmMGI2 NTY3ZGExLi5lN2IxNjY0NjFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdf bG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jCkBAIC0yNzY2 LDYgKzI3NjYsNjAgQEAgaWN1X3NldF9jb2xsYXRpb25fYXR0cmlidXRlcyhVQ29sbGF0b3IgKmNv bGxhdG9yLCBjb25zdCBjaGFyICpsb2MsCiAJcGZyZWUobG93ZXJfc3RyKTsKIH0KIAorc3RhdGlj IGNvbnN0IGNoYXIgKmljdV92YXJpYW50X21hcFtdWzJdID0geworCXsgIkBFVVJPIiwgICAiQGN1 cnJlbmN5PUVVUiIgfSwKKwl7ICJAUElOWUlOIiwgIkBjb2xsYXRpb249cGlueWluIiB9LAorCXsg IkBTVFJPS0UiLCAiQGNvbGxhdGlvbj1zdHJva2UiIH0sCit9OworCisjZGVmaW5lIElDVV9WQVJJ QU5UX01BUF9TSVpFIFwKKwkoc2l6ZW9mKGljdV92YXJpYW50X21hcCkvc2l6ZW9mKGljdV92YXJp YW50X21hcFswXSkpCisKKy8qCisgKiBJQ1UgdmVyc2lvbiA2NCByZW1vdmVkIHRoZSBhYmlsaXR5 IHRvIHRyYW5zZm9ybSBsb2NhbGUgc3RyaW5ncyBvZiB0aGUgZm9ybQorICogJy4uLkBWQVJJQU5U JyBpbnRvIHByb3BlciBsYW5ndWFnZSB0YWdzLiBQZXJmb3JtIHRoZSB0cmFuc2Zvcm1hdGlvbiBm cm9tCisgKiB3aXRoaW4gUG9zdGdyZXMgc28gdGhhdCBJQ1Ugc3VwcG9ydHMgYW55IGxpYmMgbG9j YWxlIG5hbWUgY29uc2lzdGVudGx5LAorICogcmVnYXJkbGVzcyBvZiB0aGUgSUNVIHZlcnNpb24u CisgKi8KK3N0YXRpYyBjaGFyICoKK2ljdV9maXhfdmFyaWFudHMoY29uc3QgY2hhciAqbG9jX3N0 cikKK3sKKwljb25zdCBjaGFyICpvbGRfdmFyaWFudCA9IHN0cnJjaHIobG9jX3N0ciwgJ0AnKTsK KworCS8qCisJICogRXh0cmFjdCBhIHZhcmlhbnQgb2YgdGhlIGZvcm0gJy4uLkBWQVJJQU5UJywg YW5kIHJlcGxhY2Ugd2l0aAorCSAqIHRoZSBhcHByb3ByaWF0ZSAnLi4uQGtleXdvcmQ9dmFsdWUn IGlmIGZvdW5kIGluIHRoZSBtYXAuCisJICovCisJaWYgKG9sZF92YXJpYW50KQorCXsKKwkJc2l6 ZV90IHByZWZpeF9sZW4gPSBvbGRfdmFyaWFudCAtIGxvY19zdHI7IC8qIGJ5dGVzIGJlZm9yZSB0 aGUgJ0AnICovCisKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCBJQ1VfVkFSSUFOVF9NQVBfU0laRTsg aSsrKQorCQl7CisJCQljb25zdCBjaGFyICptYXBfdmFyaWFudCA9IGljdV92YXJpYW50X21hcFtp XVswXTsKKwkJCWNvbnN0IGNoYXIgKm1hcF9yZXBsYWNlbWVudCA9IGljdV92YXJpYW50X21hcFtp XVsxXTsKKworCQkJaWYgKHBnX3N0cmNhc2VjbXAob2xkX3ZhcmlhbnQsIG1hcF92YXJpYW50KSA9 PSAwKQorCQkJeworCQkJCXNpemVfdAkgcmVwbGFjZW1lbnRfbGVuID0gc3RybGVuKG1hcF9yZXBs YWNlbWVudCk7CisJCQkJc2l6ZV90CSByZXN1bHRfbGVuOworCQkJCWNoYXIJKnJlc3VsdDsKKwor CQkJCXJlc3VsdF9sZW4gPSBwcmVmaXhfbGVuICsgcmVwbGFjZW1lbnRfbGVuICsgMTsKKwkJCQly ZXN1bHQgPSBwYWxsb2MocmVzdWx0X2xlbik7CisKKwkJCQltZW1jcHkocmVzdWx0LCBsb2Nfc3Ry LCBwcmVmaXhfbGVuKTsKKwkJCQltZW1jcHkocmVzdWx0ICsgcHJlZml4X2xlbiwgbWFwX3JlcGxh Y2VtZW50LCByZXBsYWNlbWVudF9sZW4pOworCQkJCXJlc3VsdFtwcmVmaXhfbGVuICsgcmVwbGFj ZW1lbnRfbGVuXSA9ICdcMCc7CisKKwkJCQlyZXR1cm4gcmVzdWx0OworCQkJfQorCQl9CisJfQor CisJcmV0dXJuIHBzdHJkdXAobG9jX3N0cik7Cit9CisKICNlbmRpZgogCiAvKgpAQCAtMjc4Miw2 ICsyODM2LDcgQEAgaWN1X2xhbmd1YWdlX3RhZyhjb25zdCBjaGFyICpsb2Nfc3RyLCBpbnQgZWxl dmVsKQogewogI2lmZGVmIFVTRV9JQ1UKIAlVRXJyb3JDb2RlCSBzdGF0dXM7CisJY2hhcgkJKmZp eGVkX2xvY19zdHIgPSBpY3VfZml4X3ZhcmlhbnRzKGxvY19zdHIpOwogCWNoYXIJCSBsYW5nW1VM T0NfTEFOR19DQVBBQ0lUWV07CiAJY2hhcgkJKmxhbmd0YWc7CiAJc2l6ZV90CQkgYnVmbGVuID0g MzI7CS8qIGFyYml0cmFyeSBzdGFydGluZyBidWZmZXIgc2l6ZSAqLwpAQCAtMjgxNCw3ICsyODY5 LDcgQEAgaWN1X2xhbmd1YWdlX3RhZyhjb25zdCBjaGFyICpsb2Nfc3RyLCBpbnQgZWxldmVsKQog CQlpbnQzMl90CQlsZW47CiAKIAkJc3RhdHVzID0gVV9aRVJPX0VSUk9SOwotCQlsZW4gPSB1bG9j X3RvTGFuZ3VhZ2VUYWcobG9jX3N0ciwgbGFuZ3RhZywgYnVmbGVuLCBzdHJpY3QsICZzdGF0dXMp OworCQlsZW4gPSB1bG9jX3RvTGFuZ3VhZ2VUYWcoZml4ZWRfbG9jX3N0ciwgbGFuZ3RhZywgYnVm bGVuLCBzdHJpY3QsICZzdGF0dXMpOwogCiAJCS8qCiAJCSAqIElmIHRoZSByZXN1bHQgZml0cyBp biB0aGUgYnVmZmVyIGV4YWN0bHkgKGxlbiA9PSBidWZsZW4pLApAQCAtMjgzNCw2ICsyODg5LDgg QEAgaWN1X2xhbmd1YWdlX3RhZyhjb25zdCBjaGFyICpsb2Nfc3RyLCBpbnQgZWxldmVsKQogCQli cmVhazsKIAl9CiAKKwlwZnJlZShmaXhlZF9sb2Nfc3RyKTsKKwogCWlmIChVX0ZBSUxVUkUoc3Rh dHVzKSkKIAl7CiAJCXBmcmVlKGxhbmd0YWcpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9pbml0ZGIv aW5pdGRiLmMgYi9zcmMvYmluL2luaXRkYi9pbml0ZGIuYwppbmRleCAyYzIwOGVhZDAxLi4yYjVj YzMwOTU1IDEwMDY0NAotLS0gYS9zcmMvYmluL2luaXRkYi9pbml0ZGIuYworKysgYi9zcmMvYmlu L2luaXRkYi9pbml0ZGIuYwpAQCAtMjIyOSw2ICsyMjI5LDY0IEBAIGNoZWNrX2ljdV9sb2NhbGVf ZW5jb2RpbmcoaW50IHVzZXJfZW5jKQogCXJldHVybiB0cnVlOwogfQogCisjaWZkZWYgVVNFX0lD VQorCitzdGF0aWMgY29uc3QgY2hhciAqaWN1X3ZhcmlhbnRfbWFwW11bMl0gPSB7CisJeyAiQEVV Uk8iLCAgICJAY3VycmVuY3k9RVVSIiB9LAorCXsgIkBQSU5ZSU4iLCAiQGNvbGxhdGlvbj1waW55 aW4iIH0sCisJeyAiQFNUUk9LRSIsICJAY29sbGF0aW9uPXN0cm9rZSIgfSwKK307CisKKyNkZWZp bmUgSUNVX1ZBUklBTlRfTUFQX1NJWkUgXAorCShzaXplb2YoaWN1X3ZhcmlhbnRfbWFwKS9zaXpl b2YoaWN1X3ZhcmlhbnRfbWFwWzBdKSkKKworLyoKKyAqIElDVSB2ZXJzaW9uIDY0IHJlbW92ZWQg dGhlIGFiaWxpdHkgdG8gdHJhbnNmb3JtIGxvY2FsZSBzdHJpbmdzIG9mIHRoZSBmb3JtCisgKiAn Li4uQFZBUklBTlQnIGludG8gcHJvcGVyIGxhbmd1YWdlIHRhZ3MuIFBlcmZvcm0gdGhlIHRyYW5z Zm9ybWF0aW9uIGZyb20KKyAqIHdpdGhpbiBQb3N0Z3JlcyBzbyB0aGF0IElDVSBzdXBwb3J0cyBh bnkgbGliYyBsb2NhbGUgbmFtZSBjb25zaXN0ZW50bHksCisgKiByZWdhcmRsZXNzIG9mIHRoZSBJ Q1UgdmVyc2lvbi4KKyAqLworc3RhdGljIGNoYXIgKgoraWN1X2ZpeF92YXJpYW50cyhjb25zdCBj aGFyICpsb2Nfc3RyKQoreworCWNvbnN0IGNoYXIgKm9sZF92YXJpYW50ID0gc3RycmNocihsb2Nf c3RyLCAnQCcpOworCisJLyoKKwkgKiBFeHRyYWN0IGEgdmFyaWFudCBvZiB0aGUgZm9ybSAnLi4u QFZBUklBTlQnLCBhbmQgcmVwbGFjZSB3aXRoCisJICogdGhlIGFwcHJvcHJpYXRlICcuLi5Aa2V5 d29yZD12YWx1ZScgaWYgZm91bmQgaW4gdGhlIG1hcC4KKwkgKi8KKwlpZiAob2xkX3ZhcmlhbnQp CisJeworCQlzaXplX3QgcHJlZml4X2xlbiA9IG9sZF92YXJpYW50IC0gbG9jX3N0cjsgLyogYnl0 ZXMgYmVmb3JlIHRoZSAnQCcgKi8KKworCQlmb3IgKGludCBpID0gMDsgaSA8IElDVV9WQVJJQU5U X01BUF9TSVpFOyBpKyspCisJCXsKKwkJCWNvbnN0IGNoYXIgKm1hcF92YXJpYW50ID0gaWN1X3Zh cmlhbnRfbWFwW2ldWzBdOworCQkJY29uc3QgY2hhciAqbWFwX3JlcGxhY2VtZW50ID0gaWN1X3Zh cmlhbnRfbWFwW2ldWzFdOworCisJCQlpZiAocGdfc3RyY2FzZWNtcChvbGRfdmFyaWFudCwgbWFw X3ZhcmlhbnQpID09IDApCisJCQl7CisJCQkJc2l6ZV90CSByZXBsYWNlbWVudF9sZW4gPSBzdHJs ZW4obWFwX3JlcGxhY2VtZW50KTsKKwkJCQlzaXplX3QJIHJlc3VsdF9sZW47CisJCQkJY2hhcgkq cmVzdWx0OworCisJCQkJcmVzdWx0X2xlbiA9IHByZWZpeF9sZW4gKyByZXBsYWNlbWVudF9sZW4g KyAxOworCQkJCXJlc3VsdCA9IHBnX21hbGxvYyhyZXN1bHRfbGVuKTsKKworCQkJCW1lbWNweShy ZXN1bHQsIGxvY19zdHIsIHByZWZpeF9sZW4pOworCQkJCW1lbWNweShyZXN1bHQgKyBwcmVmaXhf bGVuLCBtYXBfcmVwbGFjZW1lbnQsIHJlcGxhY2VtZW50X2xlbik7CisJCQkJcmVzdWx0W3ByZWZp eF9sZW4gKyByZXBsYWNlbWVudF9sZW5dID0gJ1wwJzsKKworCQkJCXJldHVybiByZXN1bHQ7CisJ CQl9CisJCX0KKwl9CisKKwlyZXR1cm4gcGdfc3RyZHVwKGxvY19zdHIpOworfQorCisjZW5kaWYK KwogLyoKICAqIENvbnZlcnQgdG8gY2Fub25pY2FsIEJDUDQ3IGxhbmd1YWdlIHRhZy4gTXVzdCBi ZSBjb25zaXN0ZW50IHdpdGgKICAqIGljdV9sYW5ndWFnZV90YWcoKS4KQEAgLTIyMzgsNiArMjI5 Niw3IEBAIGljdV9sYW5ndWFnZV90YWcoY29uc3QgY2hhciAqbG9jX3N0cikKIHsKICNpZmRlZiBV U0VfSUNVCiAJVUVycm9yQ29kZQkgc3RhdHVzOworCWNoYXIJCSpmaXhlZF9sb2Nfc3RyID0gaWN1 X2ZpeF92YXJpYW50cyhsb2Nfc3RyKTsKIAljaGFyCQkgbGFuZ1tVTE9DX0xBTkdfQ0FQQUNJVFld OwogCWNoYXIJCSpsYW5ndGFnOwogCXNpemVfdAkJIGJ1ZmxlbiA9IDMyOwkvKiBhcmJpdHJhcnkg c3RhcnRpbmcgYnVmZmVyIHNpemUgKi8KQEAgLTIyNjgsNyArMjMyNyw3IEBAIGljdV9sYW5ndWFn ZV90YWcoY29uc3QgY2hhciAqbG9jX3N0cikKIAkJaW50MzJfdAkJbGVuOwogCiAJCXN0YXR1cyA9 IFVfWkVST19FUlJPUjsKLQkJbGVuID0gdWxvY190b0xhbmd1YWdlVGFnKGxvY19zdHIsIGxhbmd0 YWcsIGJ1Zmxlbiwgc3RyaWN0LCAmc3RhdHVzKTsKKwkJbGVuID0gdWxvY190b0xhbmd1YWdlVGFn KGZpeGVkX2xvY19zdHIsIGxhbmd0YWcsIGJ1Zmxlbiwgc3RyaWN0LCAmc3RhdHVzKTsKIAogCQkv KgogCQkgKiBJZiB0aGUgcmVzdWx0IGZpdHMgaW4gdGhlIGJ1ZmZlciBleGFjdGx5IChsZW4gPT0g YnVmbGVuKSwKQEAgLTIyODcsNiArMjM0Niw4IEBAIGljdV9sYW5ndWFnZV90YWcoY29uc3QgY2hh ciAqbG9jX3N0cikKIAkJYnJlYWs7CiAJfQogCisJcGdfZnJlZShmaXhlZF9sb2Nfc3RyKTsKKwog CWlmIChVX0ZBSUxVUkUoc3RhdHVzKSkKIAl7CiAJCXBnX2ZyZWUobGFuZ3RhZyk7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAppbmRleCA5YzllMWU0 ZjQ4Li5lMGYxMWUzY2Q0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv bGxhdGUuaWN1LnV0Zjgub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0 ZS5pY3UudXRmOC5vdXQKQEAgLTEwNDIsMTMgKzEwNDIsMjQgQEAgRVJST1I6ICBJQ1UgbG9jYWxl ICJub25zZW5zZS1ub3doZXJlIiBoYXMgdW5rbm93biBsYW5ndWFnZSAibm9uc2Vuc2UiCiBISU5U OiAgVG8gZGlzYWJsZSBJQ1UgbG9jYWxlIHZhbGlkYXRpb24sIHNldCBwYXJhbWV0ZXIgaWN1X3Zh bGlkYXRpb25fbGV2ZWwgdG8gRElTQUJMRUQuCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92 aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcycp OyAtLSBmYWlscwogRVJST1I6ICBjb3VsZCBub3QgY29udmVydCBsb2NhbGUgbmFtZSAiQGNvbFN0 cmVuZ3RoPXByaW1hcnk7bm9uc2Vuc2U9eWVzIiB0byBsYW5ndWFnZSB0YWc6IFVfSUxMRUdBTF9B UkdVTUVOVF9FUlJPUgorQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdAQVNERicpOyAtLSBmYWlscworRVJST1I6ICBjb3VsZCBub3QgY29udmVydCBsb2Nh bGUgbmFtZSAiQEFTREYiIHRvIGxhbmd1YWdlIHRhZzogVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9S CiBTRVQgaWN1X3ZhbGlkYXRpb25fbGV2ZWwgPSBXQVJOSU5HOwogQ1JFQVRFIENPTExBVElPTiB0 ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtub25z ZW5zZT15ZXMnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CiBXQVJOSU5HOiAgY291bGQgbm90IGNv bnZlcnQgbG9jYWxlIG5hbWUgIkBjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcyIgdG8g bGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IKIENSRUFURSBDT0xMQVRJT04g dGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnbm9uc2Vuc2Utbm93aGVyZScpOyBEUk9Q IENPTExBVElPTiB0ZXN0eDsKIFdBUk5JTkc6ICBJQ1UgbG9jYWxlICJub25zZW5zZS1ub3doZXJl IiBoYXMgdW5rbm93biBsYW5ndWFnZSAibm9uc2Vuc2UiCiBISU5UOiAgVG8gZGlzYWJsZSBJQ1Ug bG9jYWxlIHZhbGlkYXRpb24sIHNldCBwYXJhbWV0ZXIgaWN1X3ZhbGlkYXRpb25fbGV2ZWwgdG8g RElTQUJMRUQuCitDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxl ID0gJ0BBU0RGJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OworV0FSTklORzogIGNvdWxkIG5vdCBj b252ZXJ0IGxvY2FsZSBuYW1lICJAQVNERiIgdG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJH VU1FTlRfRVJST1IKIFJFU0VUIGljdV92YWxpZGF0aW9uX2xldmVsOworLS0gdGVzdCBzcGVjaWFs IHZhcmlhbnRzCitDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxl ID0gJ0BFVVJPJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OworTk9USUNFOiAgdXNpbmcgc3RhbmRh cmQgZm9ybSAidW5kLXUtY3UtZXVyIiBmb3IgbG9jYWxlICJARVVSTyIKK0NSRUFURSBDT0xMQVRJ T04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQHBpbnlpbicpOyBEUk9QIENPTExB VElPTiB0ZXN0eDsKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWNvLXBpbnlp biIgZm9yIGxvY2FsZSAiQHBpbnlpbiIKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVy ID0gaWN1LCBsb2NhbGUgPSAnQHN0cm9rZScpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK05PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWNvLXN0cm9rZSIgZm9yIGxvY2FsZSAiQHN0 cm9rZSIKIENSRUFURSBDT0xMQVRJT04gdGVzdDQgRlJPTSBub25zZW5zZTsKIEVSUk9SOiAgY29s bGF0aW9uICJub25zZW5zZSIgZm9yIGVuY29kaW5nICJVVEY4IiBkb2VzIG5vdCBleGlzdAogQ1JF QVRFIENPTExBVElPTiB0ZXN0NSBGUk9NIHRlc3QwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xs YXRlLmljdS51dGY4LnNxbAppbmRleCA4NWUyNjk1MWI2Li44ZDU0MjNiYzE3IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbApAQCAtMzc4LDExICszNzgsMTggQEAg UkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIENSRUFURSBDT0xMQVRJT04gdGVzdDMgKHByb3Zp ZGVyID0gaWN1LCBsY19jb2xsYXRlID0gJ2VuX1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVlZHMgImxv Y2FsZSIKIENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAn bm9uc2Vuc2Utbm93aGVyZScpOyAtLSBmYWlscwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJv dmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMn KTsgLS0gZmFpbHMKK0NSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2Nh bGUgPSAnQEFTREYnKTsgLS0gZmFpbHMKIFNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbCA9IFdBUk5J Tkc7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bj b2xTdHJlbmd0aD1wcmltYXJ5O25vbnNlbnNlPXllcycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsK IENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnbm9uc2Vu c2Utbm93aGVyZScpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKK0NSRUFURSBDT0xMQVRJT04gdGVz dHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQEFTREYnKTsgRFJPUCBDT0xMQVRJT04gdGVz dHg7CiBSRVNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbDsKIAorLS0gdGVzdCBzcGVjaWFsIHZhcmlh bnRzCitDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BF VVJPJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OworQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJv dmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAcGlueWluJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4Owor Q1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAc3Ryb2tl Jyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OworCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q0IEZST00g bm9uc2Vuc2U7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Q1IEZST00gdGVzdDA7CiAKLS0gCjIuMzQu MQoK --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename="v5-0003-Reduce-icu_validation_level-default-to-WARNING.patch" Content-Type: text/x-patch; name="v5-0003-Reduce-icu_validation_level-default-to-WARNING.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjZDgzOWYwNjljYzA5YTcxNzg4YmFmYTI4NzMwZTRjYWY4ZjlkNzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBX ZWQsIDEwIE1heSAyMDIzIDEwOjQ3OjE2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSAzLzddIFJl ZHVjZSBpY3VfdmFsaWRhdGlvbl9sZXZlbCBkZWZhdWx0IHRvIFdBUk5JTkcuCgotLS0KIGRvYy9z cmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMgICAgICAgICAgICAgIHwgMiArLQogc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5k L3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSAgfCAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0IHwgNCArKy0tCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCAgICAgIHwgNCArKy0tCiA2IGZpbGVzIGNoYW5n ZWQsIDggaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggYjU2ZjA3 M2E5MS4uYzRhOWRjYjlhZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtOTg0MCw3ICs5ODQwLDcgQEAgU0VUIFhN TCBPUFRJT04geyBET0NVTUVOVCB8IENPTlRFTlQgfTsKICAgICAgICA8cGFyYT4KICAgICAgICAg SWYgc2V0IHRvIDxsaXRlcmFsPkRJU0FCTEVEPC9saXRlcmFsPiwgZG9lcyBub3QgcmVwb3J0IHZh bGlkYXRpb24KICAgICAgICAgcHJvYmxlbXMgYXQgYWxsLiBPdGhlcndpc2UgcmVwb3J0cyBwcm9i bGVtcyBhdCB0aGUgZ2l2ZW4gbWVzc2FnZQotICAgICAgICBsZXZlbC4gVGhlIGRlZmF1bHQgaXMg PGxpdGVyYWw+RVJST1I8L2xpdGVyYWw+LgorICAgICAgICBsZXZlbC4gVGhlIGRlZmF1bHQgaXMg PGxpdGVyYWw+V0FSTklORzwvbGl0ZXJhbD4uCiAgICAgICAgPC9wYXJhPgogICAgICAgPC9saXN0 aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcGdfbG9jYWxlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMKaW5k ZXggZTdiMTY2NDYxYi4uYmI0YThkODRmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BnX2xvY2FsZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYwpA QCAtOTYsNyArOTYsNyBAQCBjaGFyCSAgICpsb2NhbGVfbW9uZXRhcnk7CiBjaGFyCSAgICpsb2Nh bGVfbnVtZXJpYzsKIGNoYXIJICAgKmxvY2FsZV90aW1lOwogCi1pbnQJCQlpY3VfdmFsaWRhdGlv bl9sZXZlbCA9IEVSUk9SOworaW50CQkJaWN1X3ZhbGlkYXRpb25fbGV2ZWwgPSBXQVJOSU5HOwog CiAvKgogICogbGNfdGltZSBsb2NhbGl6YXRpb24gY2FjaGUuCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3Vj X3RhYmxlcy5jCmluZGV4IDJmNDJjZWJhZjYuLjhjODQzZjRhYjYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvZ3VjX3RhYmxlcy5jCkBAIC00Njg5LDcgKzQ2ODksNyBAQCBzdHJ1Y3QgY29uZmlnX2VudW0g Q29uZmlndXJlTmFtZXNFbnVtW10gPQogCQkgTlVMTAogCQl9LAogCQkmaWN1X3ZhbGlkYXRpb25f bGV2ZWwsCi0JCUVSUk9SLCBpY3VfdmFsaWRhdGlvbl9sZXZlbF9vcHRpb25zLAorCQlXQVJOSU5H LCBpY3VfdmFsaWRhdGlvbl9sZXZlbF9vcHRpb25zLAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2Ft cGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4 IGI3MGM2NmNhODcuLjg3YmFkOGVjYmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21p c2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bv c3RncmVzcWwuY29uZi5zYW1wbGUKQEAgLTczNCw3ICs3MzQsNyBAQAogI2xjX251bWVyaWMgPSAn QycJCQkjIGxvY2FsZSBmb3IgbnVtYmVyIGZvcm1hdHRpbmcKICNsY190aW1lID0gJ0MnCQkJCSMg bG9jYWxlIGZvciB0aW1lIGZvcm1hdHRpbmcKIAotI2ljdV92YWxpZGF0aW9uX2xldmVsID0gRVJS T1IJCSMgcmVwb3J0IElDVSBsb2NhbGUgdmFsaWRhdGlvbgorI2ljdV92YWxpZGF0aW9uX2xldmVs ID0gV0FSTklORwkJIyByZXBvcnQgSUNVIGxvY2FsZSB2YWxpZGF0aW9uCiAJCQkJCSMgZXJyb3Jz IGF0IHRoZSBnaXZlbiBsZXZlbAogCiAjIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmb3IgdGV4dCBz ZWFyY2gKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3Uu dXRmOC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0 CmluZGV4IGUwZjExZTNjZDQuLjEyYWZjM2I2NWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dApAQCAtMTAzNyw2ICsxMDM3LDcgQEAgJCQ7CiBS RVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlk ZXIgPSBpY3UsIGxjX2NvbGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWVkcyAibG9j YWxlIgogRVJST1I6ICBwYXJhbWV0ZXIgImxvY2FsZSIgbXVzdCBiZSBzcGVjaWZpZWQKK1NFVCBp Y3VfdmFsaWRhdGlvbl9sZXZlbCA9IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJv dmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCiBFUlJP UjogIElDVSBsb2NhbGUgIm5vbnNlbnNlLW5vd2hlcmUiIGhhcyB1bmtub3duIGxhbmd1YWdlICJu b25zZW5zZSIKIEhJTlQ6ICBUbyBkaXNhYmxlIElDVSBsb2NhbGUgdmFsaWRhdGlvbiwgc2V0IHBh cmFtZXRlciBpY3VfdmFsaWRhdGlvbl9sZXZlbCB0byBESVNBQkxFRC4KQEAgLTEwNDQsNyArMTA0 NSw3IEBAIENSRUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAn QGNvbFN0cmVuZ3RoPXByaW1hcnk7bm9uc2Vuc2U9CiBFUlJPUjogIGNvdWxkIG5vdCBjb252ZXJ0 IGxvY2FsZSBuYW1lICJAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMiIHRvIGxhbmd1 YWdlIHRhZzogVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4 IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BBU0RGJyk7IC0tIGZhaWxzCiBFUlJPUjogIGNv dWxkIG5vdCBjb252ZXJ0IGxvY2FsZSBuYW1lICJAQVNERiIgdG8gbGFuZ3VhZ2UgdGFnOiBVX0lM TEVHQUxfQVJHVU1FTlRfRVJST1IKLVNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbCA9IFdBUk5JTkc7 CitSRVNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbDsKIENSRUFURSBDT0xMQVRJT04gdGVzdHggKHBy b3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQGNvbFN0cmVuZ3RoPXByaW1hcnk7bm9uc2Vuc2U9eWVz Jyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OwogV0FSTklORzogIGNvdWxkIG5vdCBjb252ZXJ0IGxv Y2FsZSBuYW1lICJAY29sU3RyZW5ndGg9cHJpbWFyeTtub25zZW5zZT15ZXMiIHRvIGxhbmd1YWdl IHRhZzogVV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNlLW5vd2hlcmUnKTsgRFJPUCBDT0xMQVRJ T04gdGVzdHg7CkBAIC0xMDUyLDcgKzEwNTMsNiBAQCBXQVJOSU5HOiAgSUNVIGxvY2FsZSAibm9u c2Vuc2Utbm93aGVyZSIgaGFzIHVua25vd24gbGFuZ3VhZ2UgIm5vbnNlbnNlIgogSElOVDogIFRv IGRpc2FibGUgSUNVIGxvY2FsZSB2YWxpZGF0aW9uLCBzZXQgcGFyYW1ldGVyIGljdV92YWxpZGF0 aW9uX2xldmVsIHRvIERJU0FCTEVELgogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIg PSBpY3UsIGxvY2FsZSA9ICdAQVNERicpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIFdBUk5JTkc6 ICBjb3VsZCBub3QgY29udmVydCBsb2NhbGUgbmFtZSAiQEFTREYiIHRvIGxhbmd1YWdlIHRhZzog VV9JTExFR0FMX0FSR1VNRU5UX0VSUk9SCi1SRVNFVCBpY3VfdmFsaWRhdGlvbl9sZXZlbDsKIC0t IHRlc3Qgc3BlY2lhbCB2YXJpYW50cwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIg PSBpY3UsIGxvY2FsZSA9ICdARVVSTycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKIE5PVElDRTog IHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWN1LWV1ciIgZm9yIGxvY2FsZSAiQEVVUk8iCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCmluZGV4IDhkNTQyM2JjMTcu LjY1NWM5NjVmNDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1 LnV0Zjguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3Fs CkBAIC0zNzYsMTQgKzM3NiwxNCBAQCAkJDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAK IENSRUFURSBDT0xMQVRJT04gdGVzdDMgKHByb3ZpZGVyID0gaWN1LCBsY19jb2xsYXRlID0gJ2Vu X1VTLnV0ZjgnKTsgLS0gZmFpbCwgbmVlZHMgImxvY2FsZSIKK1NFVCBpY3VfdmFsaWRhdGlvbl9s ZXZlbCA9IEVSUk9SOwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdub25zZW5zZS1ub3doZXJlJyk7IC0tIGZhaWxzCiBDUkVBVEUgQ09MTEFUSU9OIHRl c3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5O25vbnNl bnNlPXllcycpOyAtLSBmYWlscwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBp Y3UsIGxvY2FsZSA9ICdAQVNERicpOyAtLSBmYWlscwotU0VUIGljdV92YWxpZGF0aW9uX2xldmVs ID0gV0FSTklORzsKK1JFU0VUIGljdV92YWxpZGF0aW9uX2xldmVsOwogQ1JFQVRFIENPTExBVElP TiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29sU3RyZW5ndGg9cHJpbWFyeTtu b25zZW5zZT15ZXMnKTsgRFJPUCBDT0xMQVRJT04gdGVzdHg7CiBDUkVBVEUgQ09MTEFUSU9OIHRl c3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNlLW5vd2hlcmUnKTsgRFJPUCBD T0xMQVRJT04gdGVzdHg7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwg bG9jYWxlID0gJ0BBU0RGJyk7IERST1AgQ09MTEFUSU9OIHRlc3R4OwotUkVTRVQgaWN1X3ZhbGlk YXRpb25fbGV2ZWw7CiAKIC0tIHRlc3Qgc3BlY2lhbCB2YXJpYW50cwogQ1JFQVRFIENPTExBVElP TiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdARVVSTycpOyBEUk9QIENPTExBVElP TiB0ZXN0eDsKLS0gCjIuMzQuMQoK --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename="v5-0004-Introduce-collation-provider-none.patch" Content-Type: text/x-patch; name="v5-0004-Introduce-collation-provider-none.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBhMTNhMTU5ODhhYjJlOTkxZTQyNTY5YjhiMWUwY2QxZDZlOTQwYmFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDEgTWF5IDIwMjMgMTU6Mzg6MjkgLTA3MDAKU3ViamVjdDogW1BBVENIIHY1IDQvN10gSW50 cm9kdWNlIGNvbGxhdGlvbiBwcm92aWRlciAibm9uZSIuCgpQcm92aWRlcyBsb2NhbGUtdW5hd2Fy ZSBzZW1hbnRpY3MgdGhhdCBhcmUgaW1wbGVtZW50ZWQgYXMgZmFzdCBieXRlCm9wZXJhdGlvbnMg aW4gUG9zdGdyZXMsIGluZGVwZW5kZW50IG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9yIGFueQpw cm92aWRlciBsaWJyYXJpZXMuCgpFcXVpdmFsZW50IChpbiBzZW1hbnRpY3MgYW5kIGltcGxlbWVu dGF0aW9uKSB0byB0aGUgbGliYyBwcm92aWRlciB3aXRoCmxvY2FsZSAiQyIsIGV4Y2VwdCB0aGF0 IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIGNhbiBiZSBzZXQKaW5kZXBlbmRlbnRseS4KClVzZSBw cm92aWRlciAibm9uZSIgZm9yIGJ1aWx0LWluIGNvbGxhdGlvbiAidWNzX2Jhc2ljIiBpbnN0ZWFk IG9mCmxpYmMuCi0tLQogZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbCAgICAgICAgICAgICAgfCA4 NyArKysrKysrKysrKysrKysrKysrKystLS0tLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s bGF0aW9uLnNnbWwgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dt bCAgfCAgMiArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sICAgICAgICAgfCAgMiAr LQogZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbCAgICAgICAgICAgfCAgMiArLQogc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYyAgICAgfCAgNyArKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2NvbGxhdGlvbmNtZHMuYyAgIHwgODQgKysrKysrKysrKysrKysrKysrKystLS0tLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jICAgICAgfCA2OSArKysrKysrKysrKysr KysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BnX2xvY2FsZS5jICAgICAgfCAyNyArKysr KysrLQogc3JjL2JhY2tlbmQvdXRpbHMvaW5pdC9wb3N0aW5pdC5jICAgICAgfCAxMCArKy0KIHNy Yy9iaW4vaW5pdGRiL2luaXRkYi5jICAgICAgICAgICAgICAgIHwgMzMgKysrKysrKysrLQogc3Jj L2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsICAgICAgICAgfCAyOSArKysrKysrKysKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgIHwgIDggKystCiBzcmMvYmluL3BnX3Vw Z3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbCB8IDE4ICsrKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMg ICAgICAgICAgICAgfCAgMiArLQogc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsICAg ICAgfCAyOSArKysrKysrKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmRhdCAg IHwgIDMgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmggICAgIHwgIDMgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dCAgfCAxMCArKy0KIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuc3FsICAgICAgIHwgIDYgKysKIDIxIGZpbGVzIGNoYW5nZWQs IDM3MiBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2hhcnNldC5zZ21sIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAppbmRleCA2ZGQ5 NWI4OTY2Li5kZTdjNjVhZTM1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKQEAgLTM0MiwyMiArMzQyLDE0IEBAIGlu aXRkYiAtLWxvY2FsZT1zdl9TRQogICAgPHRpdGxlPkxvY2FsZSBQcm92aWRlcnM8L3RpdGxlPgog CiAgICA8cGFyYT4KLSAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHN1 cHBvcnRzIG11bHRpcGxlIDxmaXJzdHRlcm0+bG9jYWxlCi0gICAgcHJvdmlkZXJzPC9maXJzdHRl cm0+LiAgVGhpcyBzcGVjaWZpZXMgd2hpY2ggbGlicmFyeSBzdXBwbGllcyB0aGUgbG9jYWxlCi0g ICAgZGF0YS4gIE9uZSBzdGFuZGFyZCBwcm92aWRlciBuYW1lIGlzIDxsaXRlcmFsPmxpYmM8L2xp dGVyYWw+LCB3aGljaCB1c2VzCi0gICAgdGhlIGxvY2FsZXMgcHJvdmlkZWQgYnkgdGhlIG9wZXJh dGluZyBzeXN0ZW0gQyBsaWJyYXJ5LiAgVGhlc2UgYXJlIHRoZQotICAgIGxvY2FsZXMgdXNlZCBi eSBtb3N0IHRvb2xzIHByb3ZpZGVkIGJ5IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgQW5vdGhlcgot ICAgIHByb3ZpZGVyIGlzIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD4sIHdoaWNoIHVzZXMgdGhlIGV4 dGVybmFsCi0gICAgSUNVPGluZGV4dGVybT48cHJpbWFyeT5JQ1U8L3ByaW1hcnk+PC9pbmRleHRl cm0+IGxpYnJhcnkuICBJQ1UgbG9jYWxlcyBjYW4KLSAgICBvbmx5IGJlIHVzZWQgaWYgc3VwcG9y dCBmb3IgSUNVIHdhcyBjb25maWd1cmVkIHdoZW4gUG9zdGdyZVNRTCB3YXMgYnVpbHQuCisgICAg QSBsb2NhbGUgcHJvdmlkZXIgc3BlY2lmaWVzIHdoaWNoIGxpYnJhcnkgZGVmaW5lcyB0aGUgbG9j YWxlIGJlaGF2aW9yIGZvcgorICAgIGNvbGxhdGlvbnMgYW5kIGNoYXJhY3RlciBjbGFzc2lmaWNh dGlvbnMuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgogICAgIFRoZSBjb21tYW5kcyBhbmQgdG9v bHMgdGhhdCBzZWxlY3QgdGhlIGxvY2FsZSBzZXR0aW5ncywgYXMgZGVzY3JpYmVkCi0gICAgYWJv dmUsIGVhY2ggaGF2ZSBhbiBvcHRpb24gdG8gc2VsZWN0IHRoZSBsb2NhbGUgcHJvdmlkZXIuICBU aGUgZXhhbXBsZXMKLSAgICBzaG93biBlYXJsaWVyIGFsbCB1c2UgdGhlIDxsaXRlcmFsPmxpYmM8 L2xpdGVyYWw+IHByb3ZpZGVyLCB3aGljaCBpcyB0aGUKLSAgICBkZWZhdWx0LiAgSGVyZSBpcyBh biBleGFtcGxlIHRvIGluaXRpYWxpemUgYSBkYXRhYmFzZSBjbHVzdGVyIHVzaW5nIHRoZQotICAg IElDVSBwcm92aWRlcjoKKyAgICBhYm92ZSwgZWFjaCBoYXZlIGFuIG9wdGlvbiB0byBzZWxlY3Qg dGhlIGxvY2FsZSBwcm92aWRlci4gSGVyZSBpcyBhbgorICAgIGV4YW1wbGUgdG8gaW5pdGlhbGl6 ZSBhIGRhdGFiYXNlIGNsdXN0ZXIgdXNpbmcgdGhlIElDVSBwcm92aWRlcjoKIDxwcm9ncmFtbGlz dGluZz4KIGluaXRkYiAtLWxvY2FsZS1wcm92aWRlcj1pY3UgLS1pY3UtbG9jYWxlPWVuCiA8L3By b2dyYW1saXN0aW5nPgpAQCAtMzcwLDEyICszNjIsNzMgQEAgaW5pdGRiIC0tbG9jYWxlLXByb3Zp ZGVyPWljdSAtLWljdS1sb2NhbGU9ZW4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgV2hp Y2ggbG9jYWxlIHByb3ZpZGVyIHRvIHVzZSBkZXBlbmRzIG9uIGluZGl2aWR1YWwgcmVxdWlyZW1l bnRzLiAgRm9yIG1vc3QKLSAgICBiYXNpYyB1c2VzLCBlaXRoZXIgcHJvdmlkZXIgd2lsbCBnaXZl IGFkZXF1YXRlIHJlc3VsdHMuICBGb3IgdGhlIGxpYmMKLSAgICBwcm92aWRlciwgaXQgZGVwZW5k cyBvbiB3aGF0IHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9mZmVyczsgc29tZSBvcGVyYXRpbmcKLSAg ICBzeXN0ZW1zIGFyZSBiZXR0ZXIgdGhhbiBvdGhlcnMuICBGb3IgYWR2YW5jZWQgdXNlcywgSUNV IG9mZmVycyBtb3JlIGxvY2FsZQotICAgIHZhcmlhbnRzIGFuZCBjdXN0b21pemF0aW9uIG9wdGlv bnMuCisgICAgUmVnYXJkbGVzcyBvZiB0aGUgbG9jYWxlIHByb3ZpZGVyLCB0aGUgb3BlcmF0aW5n IHN5c3RlbSBpcyBzdGlsbCB1c2VkIHRvCisgICAgcHJvdmlkZSBzb21lIGxvY2FsZS1hd2FyZSBi ZWhhdmlvciwgc3VjaCBhcyBtZXNzYWdlcyAoc2VlIDx4cmVmCisgICAgbGlua2VuZD0iZ3VjLWxj LW1lc3NhZ2VzIi8+KS4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIGF2YWlsYWJs ZSBsb2NhbGUgcHJvdmlkZXJzIGFyZSBsaXN0ZWQgYmVsb3cuCisgICA8L3BhcmE+CisKKyAgIDxz ZWN0MyBpZD0ibG9jYWxlLXByb3ZpZGVyLW5vbmUiPgorICAgIDx0aXRsZT5Ob25lPC90aXRsZT4K KyAgICA8cGFyYT4KKyAgICAgVGhlIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+IHByb3ZpZGVyIHVz ZXMgc2ltcGxlIGJ1aWx0LWluIG9wZXJhdGlvbnMKKyAgICAgd2hpY2ggYXJlIG5vdCBsb2NhbGUt YXdhcmUuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBUaGUgY29sbGF0aW9uIGFuZCBj aGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gYmVoYXZpb3IgaXMgZXF1aXZhbGVudCB0bworICAgICB1 c2luZyB0aGUgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gcHJvdmlkZXIgd2l0aCBsb2NhbGUKKyAg ICAgPGxpdGVyYWw+QzwvbGl0ZXJhbD4sIGV4Y2VwdCB0aGF0IDxsaXRlcmFsPkxDX0NPTExBVEU8 L2xpdGVyYWw+IGFuZAorICAgICA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4gY2FuIGJlIHNl dCBpbmRlcGVuZGVudGx5LgorICAgIDwvcGFyYT4KKyAgICA8bm90ZT4KKyAgICAgPHBhcmE+Cisg ICAgICBXaGVuIHVzaW5nIHRoZSA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiBsb2NhbGUgcHJvdmlk ZXIsIGJlaGF2aW9yIG1heQorICAgICAgZGVwZW5kIG9uIHRoZSBkYXRhYmFzZSBlbmNvZGluZy4K KyAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgIDwvc2VjdDM+CisgICA8c2VjdDMgaWQ9Imxv Y2FsZS1wcm92aWRlci1pY3UiPgorICAgIDx0aXRsZT5JQ1U8L3RpdGxlPgorICAgIDxwYXJhPgor ICAgICBUaGUgPGxpdGVyYWw+aWN1PC9saXRlcmFsPiBwcm92aWRlciB1c2VzIHRoZSBleHRlcm5h bAorICAgICBJQ1U8aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4K KyAgICAgbGlicmFyeS4gPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBtdXN0 IGhhdmUgYmVlbiBjb25maWd1cmVkCisgICAgIHdpdGggc3VwcG9ydC4KKyAgICA8L3BhcmE+Cisg ICAgPHBhcmE+CisgICAgIElDVSBwcm92aWRlcyBjb2xsYXRpb24gYW5kIGNoYXJhY3RlciBjbGFz c2lmaWNhdGlvbiBiZWhhdmlvciB0aGF0IGlzCisgICAgIGluZGVwZW5kZW50IG9mIHRoZSBvcGVy YXRpbmcgc3lzdGVtIGFuZCBkYXRhYmFzZSBlbmNvZGluZywgd2hpY2ggaXMKKyAgICAgcHJlZmVy YWJsZSBpZiB5b3UgZXhwZWN0IHRvIHRyYW5zaXRpb24gdG8gb3RoZXIgcGxhdGZvcm1zIHdpdGhv dXQgYW55CisgICAgIGNoYW5nZSBpbiByZXN1bHRzLiA8bGl0ZXJhbD5MQ19DT0xMQVRFPC9saXRl cmFsPiBhbmQKKyAgICAgPGxpdGVyYWw+TENfQ1RZUEU8L2xpdGVyYWw+IGNhbiBiZSBzZXQgaW5k ZXBlbmRlbnRseSBvZiB0aGUgSUNVIGxvY2FsZS4KKyAgICA8L3BhcmE+CisgICAgPG5vdGU+Cisg ICAgIDxwYXJhPgorICAgICAgRm9yIHRoZSBJQ1UgcHJvdmlkZXIsIHJlc3VsdHMgbWF5IGRlcGVu ZCBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgSUNVCisgICAgICBsaWJyYXJ5IHVzZWQsIGFzIGl0IGlz IHVwZGF0ZWQgdG8gcmVmbGVjdCBjaGFuZ2VzIGluIG5hdHVyYWwgbGFuZ3VhZ2UKKyAgICAgIG92 ZXIgdGltZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbm90ZT4KKyAgIDwvc2VjdDM+CisgICA8c2Vj dDMgaWQ9ImxvY2FsZS1wcm92aWRlci1saWJjIj4KKyAgICA8dGl0bGU+bGliYzwvdGl0bGU+Cisg ICAgPHBhcmE+CisgICAgIFRoZSA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPiBwcm92aWRlciB1c2Vz IHRoZSBvcGVyYXRpbmcgc3lzdGVtJ3MgQworICAgICBsaWJyYXJ5LiBUaGUgY29sbGF0aW9uIGFu ZCBjaGFyYWN0ZXIgY2xhc3NpZmljYXRpb24gYmVoYXZpb3IgaXMKKyAgICAgY29udHJvbGxlZCBi eSB0aGUgc2V0dGluZ3MgPGxpdGVyYWw+TENfQ09MTEFURTwvbGl0ZXJhbD4gYW5kCisgICAgIDxs aXRlcmFsPkxDX0NUWVBFPC9saXRlcmFsPiwgc28gdGhleSBjYW5ub3QgYmUgc2V0IGluZGVwZW5k ZW50bHkuCisgICAgPC9wYXJhPgorICAgIDxub3RlPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBz YW1lIGxvY2FsZSBuYW1lIG1heSBoYXZlIGRpZmZlcmVudCBiZWhhdmlvciBvbiBkaWZmZXJlbnQg cGxhdGZvcm1zCisgICAgICB3aGVuIHVzaW5nIHRoZSBsaWJjIHByb3ZpZGVyLgorICAgICA8L3Bh cmE+CisgICAgPC9ub3RlPgorICAgPC9zZWN0Mz4KKwogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBp ZD0ibG9jYWxlLXByb2JsZW1zIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2NvbGxhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sbGF0aW9uLnNnbWwK aW5kZXggZjYzNTNkYTVjMS4uNTQ4OWFlNzQxMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sbGF0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29s bGF0aW9uLnNnbWwKQEAgLTEyMCw3ICsxMjAsNyBAQCBDUkVBVEUgQ09MTEFUSU9OIFsgSUYgTk9U IEVYSVNUUyBdIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gRlJPTSA8cmVwbGFjZQog ICAgICA8bGlzdGl0ZW0+CiAgICAgICA8cGFyYT4KICAgICAgICBTcGVjaWZpZXMgdGhlIHByb3Zp ZGVyIHRvIHVzZSBmb3IgbG9jYWxlIHNlcnZpY2VzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCi0gICAg ICAgY29sbGF0aW9uLiAgUG9zc2libGUgdmFsdWVzIGFyZQorICAgICAgIGNvbGxhdGlvbi4gIFBv c3NpYmxlIHZhbHVlcyBhcmUgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVy YWw+aWN1PC9saXRlcmFsPjxpbmRleHRlcm0+PHByaW1hcnk+SUNVPC9wcmltYXJ5PjwvaW5kZXh0 ZXJtPgogICAgICAgIChpZiB0aGUgc2VydmVyIHdhcyBidWlsdCB3aXRoIElDVSBzdXBwb3J0KSBv ciA8bGl0ZXJhbD5saWJjPC9saXRlcmFsPi4KICAgICAgICA8bGl0ZXJhbD5saWJjPC9saXRlcmFs PiBpcyB0aGUgZGVmYXVsdC4gIFNlZSA8eHJlZgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfZGF0YWJhc2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNl LnNnbWwKaW5kZXggMTM3OTNiYjZiNy4uNjBiOWRhMDk1MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9kYXRhYmFzZS5zZ21sCkBAIC0yMTIsNyArMjEyLDcgQEAgQ1JFQVRFIERBVEFCQVNFIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgIDxsaXN0 aXRlbT4KICAgICAgICA8cGFyYT4KICAgICAgICAgU3BlY2lmaWVzIHRoZSBwcm92aWRlciB0byB1 c2UgZm9yIHRoZSBkZWZhdWx0IGNvbGxhdGlvbiBpbiB0aGlzCi0gICAgICAgIGRhdGFiYXNlLiAg UG9zc2libGUgdmFsdWVzIGFyZQorICAgICAgICBkYXRhYmFzZS4gIFBvc3NpYmxlIHZhbHVlcyBh cmUgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4sCiAgICAgICAgIDxsaXRlcmFsPmljdTwvbGl0ZXJh bD48aW5kZXh0ZXJtPjxwcmltYXJ5PklDVTwvcHJpbWFyeT48L2luZGV4dGVybT4KICAgICAgICAg KGlmIHRoZSBzZXJ2ZXIgd2FzIGJ1aWx0IHdpdGggSUNVIHN1cHBvcnQpIG9yIDxsaXRlcmFsPmxp YmM8L2xpdGVyYWw+LgogICAgICAgICBCeSBkZWZhdWx0LCB0aGUgcHJvdmlkZXIgaXMgdGhlIHNh bWUgYXMgdGhhdCBvZiB0aGUgPHhyZWYKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlZGIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbAppbmRleCBlMjM0MTli YTZjLi4zMjZhMzcxZDM0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sCkBAIC0xNjgsNyArMTY4LDcg QEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICAg IDx2YXJsaXN0ZW50cnk+Ci0gICAgICA8dGVybT48b3B0aW9uPi0tbG9jYWxlLXByb3ZpZGVyPXs8 bGl0ZXJhbD5saWJjPC9saXRlcmFsPnw8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+fTwvb3B0aW9uPjwv dGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS1sb2NhbGUtcHJvdmlkZXI9ezxsaXRlcmFsPm5v bmU8L2xpdGVyYWw+fDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+fDxsaXRlcmFsPmljdTwvbGl0ZXJh bD59PC9vcHRpb24+PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgogICAgICAgIDxwYXJhPgogICAg ICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSBwcm92aWRlciBmb3IgdGhlIGRhdGFiYXNlJ3MgZGVm YXVsdCBjb2xsYXRpb24uCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbAppbmRleCA4Nzk0NWI0YjYyLi5lNjA0YWI0 OGI3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAgLTMyMyw3ICszMjMsNyBAQCBQb3N0Z3JlU1FMIGRv Y3VtZW50YXRpb24KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKICAgICAgPHZhcmxpc3RlbnRyeSBp ZD0iYXBwLWluaXRkYi1vcHRpb24tbG9jYWxlLXByb3ZpZGVyIj4KLSAgICAgIDx0ZXJtPjxvcHRp b24+LS1sb2NhbGUtcHJvdmlkZXI9ezxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+fDxsaXRlcmFsPmlj dTwvbGl0ZXJhbD59PC9vcHRpb24+PC90ZXJtPgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWxvY2Fs ZS1wcm92aWRlcj17PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD58PGxpdGVyYWw+bGliYzwvbGl0ZXJh bD58PGxpdGVyYWw+aWN1PC9saXRlcmFsPn08L29wdGlvbj48L3Rlcm0+CiAgICAgICA8bGlzdGl0 ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIFRoaXMgb3B0aW9uIHNldHMgdGhlIGxvY2FsZSBw cm92aWRlciBmb3IgZGF0YWJhc2VzIGNyZWF0ZWQgaW4gdGhlIG5ldwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y29sbGF0aW9uLmMKaW5kZXggZmQwMjJlNmZjMi4uODZiNmJhMjM3NSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb2xsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX2NvbGxhdGlvbi5jCkBAIC02OCw3ICs2OCwxMiBAQCBDb2xsYXRpb25DcmVhdGUoY29uc3Qg Y2hhciAqY29sbG5hbWUsIE9pZCBjb2xsbmFtZXNwYWNlLAogCUFzc2VydChjb2xsbmFtZSk7CiAJ QXNzZXJ0KGNvbGxuYW1lc3BhY2UpOwogCUFzc2VydChjb2xsb3duZXIpOwotCUFzc2VydCgoY29s bGNvbGxhdGUgJiYgY29sbGN0eXBlKSB8fCBjb2xsaWN1bG9jYWxlKTsKKwlBc3NlcnQoKGNvbGxw cm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORSAmJgorCQkJIWNvbGxjb2xsYXRlICYmICFjb2xs Y3R5cGUgJiYgIWNvbGxpY3Vsb2NhbGUpIHx8CisJCSAgIChjb2xscHJvdmlkZXIgPT0gQ09MTFBS T1ZJREVSX0xJQkMgJiYKKwkJCSBjb2xsY29sbGF0ZSAmJiAgY29sbGN0eXBlICYmICFjb2xsaWN1 bG9jYWxlKSB8fAorCQkgICAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgJiYKKwkJ CSFjb2xsY29sbGF0ZSAmJiAhY29sbGN0eXBlICYmICBjb2xsaWN1bG9jYWxlKSk7CiAKIAkvKgog CSAqIE1ha2Ugc3VyZSB0aGVyZSBpcyBubyBleGlzdGluZyBjb2xsYXRpb24gb2Ygc2FtZSBuYW1l ICYgZW5jb2RpbmcuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25j bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKaW5kZXggYTUzNzAw MjU2Yi4uMjY3YTU1MTgxOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwpAQCAt MjE1LDcgKzIxNSw5IEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km5hbWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAKIAkJaWYgKGNvbGxwcm92 aWRlcnN0cikKIAkJewotCQkJaWYgKHBnX3N0cmNhc2VjbXAoY29sbHByb3ZpZGVyc3RyLCAiaWN1 IikgPT0gMCkKKwkJCWlmIChwZ19zdHJjYXNlY21wKGNvbGxwcm92aWRlcnN0ciwgIm5vbmUiKSA9 PSAwKQorCQkJCWNvbGxwcm92aWRlciA9IENPTExQUk9WSURFUl9OT05FOworCQkJZWxzZSBpZiAo cGdfc3RyY2FzZWNtcChjb2xscHJvdmlkZXJzdHIsICJpY3UiKSA9PSAwKQogCQkJCWNvbGxwcm92 aWRlciA9IENPTExQUk9WSURFUl9JQ1U7CiAJCQllbHNlIGlmIChwZ19zdHJjYXNlY21wKGNvbGxw cm92aWRlcnN0ciwgImxpYmMiKSA9PSAwKQogCQkJCWNvbGxwcm92aWRlciA9IENPTExQUk9WSURF Ul9MSUJDOwpAQCAtMjI4LDYgKzIzMCwxMyBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQll bHNlCiAJCQljb2xscHJvdmlkZXIgPSBDT0xMUFJPVklERVJfTElCQzsKIAorCQlpZiAoY29sbHBy b3ZpZGVyID09IENPTExQUk9WSURFUl9OT05FCisJCQkmJiAobG9jYWxlRWwgfHwgbGNjb2xsYXRl RWwgfHwgbGNjdHlwZUVsKSkKKwkJeworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycm1zZygi Y29sbGF0aW9uIHByb3ZpZGVyIFwibm9uZVwiIGRvZXMgbm90IHN1cHBvcnQgTE9DQUxFLCBMQ19D T0xMQVRFLCBvciBMQ19DVFlQRSIpKSk7CisJCX0KKwogCQlpZiAobG9jYWxlRWwpCiAJCXsKIAkJ CWlmIChjb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCkBAIC0zMTcsNyArMzI2LDE1 IEBAIERlZmluZUNvbGxhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0 ICpwYXJhbWV0ZXJzLCBib29sIGlmX25vdF9lCiAJCSAqLwogCQljb2xsZW5jb2RpbmcgPSBHZXRE YXRhYmFzZUVuY29kaW5nKCk7CiAKLQkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJf SUNVKQorCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9OT05FKQorCQl7CisJCQkv KgorCQkJICogVGhlICJub25lIiBwcm92aWRlciB3b3JrcyB3aXRoIGFsbCBlbmNvZGluZ3MsIHNv IG5vIGNoZWNraW5nIGlzCisJCQkgKiByZXF1aXJlZC4gTkI6IHRoZSBiZWhhdmlvciBtYXkgYmUg ZGlmZmVyZW50IGZvciBkaWZmZXJlbnQKKwkJCSAqIGVuY29kaW5ncywgdGhvdWdoLgorCQkJICov CisJCX0KKwkJZWxzZSBpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCiAJCXsK ICNpZmRlZiBVU0VfSUNVCiAJCQkvKgpAQCAtMzQzLDcgKzM2MCwxOCBAQCBEZWZpbmVDb2xsYXRp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFyYW1ldGVycywgYm9v bCBpZl9ub3RfZQogCX0KIAogCWlmICghY29sbHZlcnNpb24pCi0JCWNvbGx2ZXJzaW9uID0gZ2V0 X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihjb2xscHJvdmlkZXIsIGNvbGxwcm92aWRlciA9PSBD T0xMUFJPVklERVJfSUNVID8gY29sbGljdWxvY2FsZSA6IGNvbGxjb2xsYXRlKTsKKwl7CisJCWNo YXIgKmxvY2FsZTsKKworCQlpZiAoY29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJ CQlsb2NhbGUgPSBjb2xsaWN1bG9jYWxlOworCQllbHNlIGlmIChjb2xscHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0xJQkMpCisJCQlsb2NhbGUgPSBjb2xsY29sbGF0ZTsKKwkJZWxzZQorCQkJbG9j YWxlID0gTlVMTDsgLyogQ09MTFBST1ZJREVSX05PTkUgKi8KKworCQljb2xsdmVyc2lvbiA9IGdl dF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oY29sbHByb3ZpZGVyLCBsb2NhbGUpOworCX0KIAog CW5ld29pZCA9IENvbGxhdGlvbkNyZWF0ZShjb2xsTmFtZSwKIAkJCQkJCQkgY29sbE5hbWVzcGFj ZSwKQEAgLTQxOCw2ICs0NDYsNyBAQCBBbHRlckNvbGxhdGlvbihBbHRlckNvbGxhdGlvblN0bXQg KnN0bXQpCiAJRm9ybV9wZ19jb2xsYXRpb24gY29sbEZvcm07CiAJRGF0dW0JCWRhdHVtOwogCWJv b2wJCWlzbnVsbDsKKwljaGFyCSAgICpsb2NhbGU7CiAJY2hhcgkgICAqb2xkdmVyc2lvbjsKIAlj aGFyCSAgICpuZXd2ZXJzaW9uOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKQEAgLTQ0Miw4ICs0 NzEsMjAgQEAgQWx0ZXJDb2xsYXRpb24oQWx0ZXJDb2xsYXRpb25TdG10ICpzdG10KQogCWRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyKENPTExPSUQsIHR1cCwgQW51bV9wZ19jb2xsYXRpb25fY29sbHZl cnNpb24sICZpc251bGwpOwogCW9sZHZlcnNpb24gPSBpc251bGwgPyBOVUxMIDogVGV4dERhdHVt R2V0Q1N0cmluZyhkYXR1bSk7CiAKLQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09M TE9JRCwgdHVwLCBjb2xsRm9ybS0+Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPyBB bnVtX3BnX2NvbGxhdGlvbl9jb2xsaWN1bG9jYWxlIDogQW51bV9wZ19jb2xsYXRpb25fY29sbGNv bGxhdGUpOwotCW5ld3ZlcnNpb24gPSBnZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGNvbGxG b3JtLT5jb2xscHJvdmlkZXIsIFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlpZiAoY29s bEZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQorCXsKKwkJZGF0dW0gPSBT eXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQsIHR1cCwgQW51bV9wZ19jb2xsYXRpb25fY29s bGljdWxvY2FsZSk7CisJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCX0K KwllbHNlIGlmIChjb2xsRm9ybS0+Y29sbHByb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQor CXsKKwkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQsIHR1cCwgQW51bV9w Z19jb2xsYXRpb25fY29sbGNvbGxhdGUpOworCQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5n KGRhdHVtKTsKKwl9CisJZWxzZQorCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJPVklERVJfTk9O RSAqLworCisJbmV3dmVyc2lvbiA9IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oY29sbEZv cm0tPmNvbGxwcm92aWRlciwgbG9jYWxlKTsKIAogCS8qIGNhbm5vdCBjaGFuZ2UgZnJvbSBOVUxM IHRvIG5vbi1OVUxMIG9yIHZpY2UgdmVyc2EgKi8KIAlpZiAoKCFvbGR2ZXJzaW9uICYmIG5ld3Zl cnNpb24pIHx8IChvbGR2ZXJzaW9uICYmICFuZXd2ZXJzaW9uKSkKQEAgLTUwNiwxMSArNTQ3LDE4 IEBAIHBnX2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihQR19GVU5DVElPTl9BUkdTKQogCiAJCXBy b3ZpZGVyID0gKChGb3JtX3BnX2RhdGFiYXNlKSBHRVRTVFJVQ1QoZGJ0dXApKS0+ZGF0bG9jcHJv dmlkZXI7CiAKLQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKERBVEFCQVNFT0lELCBk YnR1cCwKLQkJCQkJCQkJCSAgIHByb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPwotCQkJCQkJ CQkJICAgQW51bV9wZ19kYXRhYmFzZV9kYXRpY3Vsb2NhbGUgOiBBbnVtX3BnX2RhdGFiYXNlX2Rh dGNvbGxhdGUpOwotCi0JCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCQlp ZiAocHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJeworCQkJZGF0dW0gPSBTeXNDYWNo ZUdldEF0dHJOb3ROdWxsKERBVEFCQVNFT0lELCBkYnR1cCwgQW51bV9wZ19kYXRhYmFzZV9kYXRp Y3Vsb2NhbGUpOworCQkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCX0K KwkJZWxzZSBpZiAocHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJCXsKKwkJCWRhdHVt ID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChEQVRBQkFTRU9JRCwgZGJ0dXAsIEFudW1fcGdfZGF0 YWJhc2VfZGF0Y29sbGF0ZSk7CisJCQlsb2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVt KTsKKwkJfQorCQllbHNlCisJCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJPVklERVJfTk9ORSAq LwogCiAJCVJlbGVhc2VTeXNDYWNoZShkYnR1cCk7CiAJfQpAQCAtNTI2LDExICs1NzQsMTkgQEAg cGdfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkJcHJvdmlk ZXIgPSAoKEZvcm1fcGdfY29sbGF0aW9uKSBHRVRTVFJVQ1QoY29sbHRwKSktPmNvbGxwcm92aWRl cjsKIAkJQXNzZXJ0KHByb3ZpZGVyICE9IENPTExQUk9WSURFUl9ERUZBVUxUKTsKLQkJZGF0dW0g PSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKENPTExPSUQsIGNvbGx0cCwKLQkJCQkJCQkJCSAgIHBy b3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPwotCQkJCQkJCQkJICAgQW51bV9wZ19jb2xsYXRp b25fY29sbGljdWxvY2FsZSA6IEFudW1fcGdfY29sbGF0aW9uX2NvbGxjb2xsYXRlKTsKIAotCQls b2NhbGUgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwkJaWYgKHByb3ZpZGVyID09IENP TExQUk9WSURFUl9JQ1UpCisJCXsKKwkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChD T0xMT0lELCBjb2xsdHAsIEFudW1fcGdfY29sbGF0aW9uX2NvbGxpY3Vsb2NhbGUpOworCQkJbG9j YWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJCX0KKwkJZWxzZSBpZiAocHJvdmlk ZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCisJCXsKKwkJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRy Tm90TnVsbChDT0xMT0lELCBjb2xsdHAsIEFudW1fcGdfY29sbGF0aW9uX2NvbGxjb2xsYXRlKTsK KwkJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOworCQl9CisJCWVsc2UKKwkJ CWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9OT05FICovCiAKIAkJUmVsZWFzZVN5c0Nh Y2hlKGNvbGx0cCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21t YW5kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCmluZGV4IDJlMjQyZWVm ZjIuLjllNzNmNTQ4MDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFu ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKQEAgLTkwOSw3ICs5 MDksOSBAQCBjcmVhdGVkYihQYXJzZVN0YXRlICpwc3RhdGUsIGNvbnN0IENyZWF0ZWRiU3RtdCAq c3RtdCkKIAl7CiAJCWNoYXIJICAgKmxvY3Byb3ZpZGVyc3RyID0gZGVmR2V0U3RyaW5nKGRsb2Nw cm92aWRlcik7CiAKLQkJaWYgKHBnX3N0cmNhc2VjbXAobG9jcHJvdmlkZXJzdHIsICJpY3UiKSA9 PSAwKQorCQlpZiAocGdfc3RyY2FzZWNtcChsb2Nwcm92aWRlcnN0ciwgIm5vbmUiKSA9PSAwKQor CQkJZGJsb2Nwcm92aWRlciA9IENPTExQUk9WSURFUl9OT05FOworCQllbHNlIGlmIChwZ19zdHJj YXNlY21wKGxvY3Byb3ZpZGVyc3RyLCAiaWN1IikgPT0gMCkKIAkJCWRibG9jcHJvdmlkZXIgPSBD T0xMUFJPVklERVJfSUNVOwogCQllbHNlIGlmIChwZ19zdHJjYXNlY21wKGxvY3Byb3ZpZGVyc3Ry LCAibGliYyIpID09IDApCiAJCQlkYmxvY3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CkBA IC0xMTc3LDkgKzExNzksMTcgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBD cmVhdGVkYlN0bXQgKnN0bXQpCiAJICovCiAJaWYgKHNyY19jb2xsdmVyc2lvbiAmJiAhZGNvbGx2 ZXJzaW9uKQogCXsKLQkJY2hhcgkgICAqYWN0dWFsX3ZlcnNpb25zdHI7CisJCWNoYXIJKmFjdHVh bF92ZXJzaW9uc3RyOworCQljaGFyCSpsb2NhbGU7CiAKLQkJYWN0dWFsX3ZlcnNpb25zdHIgPSBn ZXRfY29sbGF0aW9uX2FjdHVhbF92ZXJzaW9uKGRibG9jcHJvdmlkZXIsIGRibG9jcHJvdmlkZXIg PT0gQ09MTFBST1ZJREVSX0lDVSA/IGRiaWN1bG9jYWxlIDogZGJjb2xsYXRlKTsKKwkJaWYgKGRi bG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKKwkJCWxvY2FsZSA9IGRiaWN1bG9jYWxl OworCQllbHNlIGlmIChkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJDKQorCQkJbG9j YWxlID0gZGJjb2xsYXRlOworCQllbHNlCisJCQlsb2NhbGUgPSBOVUxMOyAvKiBDT0xMUFJPVklE RVJfTk9ORSAqLworCisJCWFjdHVhbF92ZXJzaW9uc3RyID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxf dmVyc2lvbihkYmxvY3Byb3ZpZGVyLCBsb2NhbGUpOwogCQlpZiAoIWFjdHVhbF92ZXJzaW9uc3Ry KQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycm1zZygidGVtcGxhdGUgZGF0YWJhc2UgXCIl c1wiIGhhcyBhIGNvbGxhdGlvbiB2ZXJzaW9uLCBidXQgbm8gYWN0dWFsIGNvbGxhdGlvbiB2ZXJz aW9uIGNvdWxkIGJlIGRldGVybWluZWQiLApAQCAtMTIwNyw3ICsxMjE3LDE4IEBAIGNyZWF0ZWRi KFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCSAqIGNvbGxh dGlvbiB2ZXJzaW9uLCB3aGljaCBpcyBub3JtYWxseSBvbmx5IHRoZSBjYXNlIGZvciB0ZW1wbGF0 ZTAuCiAJICovCiAJaWYgKGRiY29sbHZlcnNpb24gPT0gTlVMTCkKLQkJZGJjb2xsdmVyc2lvbiA9 IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oZGJsb2Nwcm92aWRlciwgZGJsb2Nwcm92aWRl ciA9PSBDT0xMUFJPVklERVJfSUNVID8gZGJpY3Vsb2NhbGUgOiBkYmNvbGxhdGUpOworCXsKKwkJ Y2hhciAqbG9jYWxlOworCisJCWlmIChkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1Up CisJCQlsb2NhbGUgPSBkYmljdWxvY2FsZTsKKwkJZWxzZSBpZiAoZGJsb2Nwcm92aWRlciA9PSBD T0xMUFJPVklERVJfTElCQykKKwkJCWxvY2FsZSA9IGRiY29sbGF0ZTsKKwkJZWxzZQorCQkJbG9j YWxlID0gTlVMTDsgLyogQ09MTFBST1ZJREVSX05PTkUgKi8KKworCQlkYmNvbGx2ZXJzaW9uID0g Z2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihkYmxvY3Byb3ZpZGVyLCBsb2NhbGUpOworCX0K IAogCS8qIFJlc29sdmUgZGVmYXVsdCB0YWJsZXNwYWNlIGZvciBuZXcgZGF0YWJhc2UgKi8KIAlp ZiAoZHRhYmxlc3BhY2VuYW1lICYmIGR0YWJsZXNwYWNlbmFtZS0+YXJnKQpAQCAtMjQwMyw2ICsy NDI0LDcgQEAgQWx0ZXJEYXRhYmFzZVJlZnJlc2hDb2xsKEFsdGVyRGF0YWJhc2VSZWZyZXNoQ29s bFN0bXQgKnN0bXQpCiAJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCURhdHVtCQlkYXR1bTsKIAli b29sCQlpc251bGw7CisJY2hhcgkgICAqbG9jYWxlOwogCWNoYXIJICAgKm9sZHZlcnNpb247CiAJ Y2hhcgkgICAqbmV3dmVyc2lvbjsKIApAQCAtMjQyOSwxMCArMjQ1MSwyNCBAQCBBbHRlckRhdGFi YXNlUmVmcmVzaENvbGwoQWx0ZXJEYXRhYmFzZVJlZnJlc2hDb2xsU3RtdCAqc3RtdCkKIAlkYXR1 bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwgQW51bV9wZ19kYXRhYmFzZV9kYXRjb2xsdmVyc2lvbiwg UmVsYXRpb25HZXREZXNjcihyZWwpLCAmaXNudWxsKTsKIAlvbGR2ZXJzaW9uID0gaXNudWxsID8g TlVMTCA6IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pOwogCi0JZGF0dW0gPSBoZWFwX2dldGF0 dHIodHVwbGUsIGRhdEZvcm0tPmRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UgPyBB bnVtX3BnX2RhdGFiYXNlX2RhdGljdWxvY2FsZSA6IEFudW1fcGdfZGF0YWJhc2VfZGF0Y29sbGF0 ZSwgUmVsYXRpb25HZXREZXNjcihyZWwpLCAmaXNudWxsKTsKLQlpZiAoaXNudWxsKQotCQllbG9n KEVSUk9SLCAidW5leHBlY3RlZCBudWxsIGluIHBnX2RhdGFiYXNlIik7Ci0JbmV3dmVyc2lvbiA9 IGdldF9jb2xsYXRpb25fYWN0dWFsX3ZlcnNpb24oZGF0Rm9ybS0+ZGF0bG9jcHJvdmlkZXIsIFRl eHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlpZiAoZGF0Rm9ybS0+ZGF0bG9jcHJvdmlkZXIg PT0gQ09MTFBST1ZJREVSX0lDVSkKKwl7CisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBB bnVtX3BnX2RhdGFiYXNlX2RhdGljdWxvY2FsZSwgUmVsYXRpb25HZXREZXNjcihyZWwpLCAmaXNu dWxsKTsKKwkJaWYgKGlzbnVsbCkKKwkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIG51bGwgaW4g cGdfZGF0YWJhc2UiKTsKKwkJbG9jYWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJ fQorCWVsc2UgaWYgKGRhdEZvcm0tPmRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9MSUJD KQorCXsKKwkJZGF0dW0gPSBoZWFwX2dldGF0dHIodHVwbGUsIEFudW1fcGdfZGF0YWJhc2VfZGF0 Y29sbGF0ZSwgUmVsYXRpb25HZXREZXNjcihyZWwpLCAmaXNudWxsKTsKKwkJaWYgKGlzbnVsbCkK KwkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIG51bGwgaW4gcGdfZGF0YWJhc2UiKTsKKwkJbG9j YWxlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkYXR1bSk7CisJfQorCWVsc2UKKwkJbG9jYWxlID0g TlVMTDsgLyogQ09MTFBST1ZJREVSX05PTkUgKi8KKworCW5ld3ZlcnNpb24gPSBnZXRfY29sbGF0 aW9uX2FjdHVhbF92ZXJzaW9uKGRhdEZvcm0tPmRhdGxvY3Byb3ZpZGVyLCBsb2NhbGUpOwogCiAJ LyogY2Fubm90IGNoYW5nZSBmcm9tIE5VTEwgdG8gbm9uLU5VTEwgb3IgdmljZSB2ZXJzYSAqLwog CWlmICgoIW9sZHZlcnNpb24gJiYgbmV3dmVyc2lvbikgfHwgKG9sZHZlcnNpb24gJiYgIW5ld3Zl cnNpb24pKQpAQCAtMjYxNyw2ICsyNjUzLDcgQEAgcGdfZGF0YWJhc2VfY29sbGF0aW9uX2FjdHVh bF92ZXJzaW9uKFBHX0ZVTkNUSU9OX0FSR1MpCiAJSGVhcFR1cGxlCXRwOwogCWNoYXIJCWRhdGxv Y3Byb3ZpZGVyOwogCURhdHVtCQlkYXR1bTsKKwljaGFyCSAgICpsb2NhbGU7CiAJY2hhcgkgICAq dmVyc2lvbjsKIAogCXRwID0gU2VhcmNoU3lzQ2FjaGUxKERBVEFCQVNFT0lELCBPYmplY3RJZEdl dERhdHVtKGRiaWQpKTsKQEAgLTI2MjcsOCArMjY2NCwyMCBAQCBwZ19kYXRhYmFzZV9jb2xsYXRp b25fYWN0dWFsX3ZlcnNpb24oUEdfRlVOQ1RJT05fQVJHUykKIAogCWRhdGxvY3Byb3ZpZGVyID0g KChGb3JtX3BnX2RhdGFiYXNlKSBHRVRTVFJVQ1QodHApKS0+ZGF0bG9jcHJvdmlkZXI7CiAKLQlk YXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoREFUQUJBU0VPSUQsIHRwLCBkYXRsb2Nwcm92 aWRlciA9PSBDT0xMUFJPVklERVJfSUNVID8gQW51bV9wZ19kYXRhYmFzZV9kYXRpY3Vsb2NhbGUg OiBBbnVtX3BnX2RhdGFiYXNlX2RhdGNvbGxhdGUpOwotCXZlcnNpb24gPSBnZXRfY29sbGF0aW9u X2FjdHVhbF92ZXJzaW9uKGRhdGxvY3Byb3ZpZGVyLCBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVt KSk7CisJaWYgKGRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJeworCQlkYXR1 bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoREFUQUJBU0VPSUQsIHRwLCBBbnVtX3BnX2RhdGFi YXNlX2RhdGljdWxvY2FsZSk7CisJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0p OworCX0KKwllbHNlIGlmIChkYXRsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKKwl7 CisJCWRhdHVtID0gU3lzQ2FjaGVHZXRBdHRyTm90TnVsbChEQVRBQkFTRU9JRCwgdHAsIEFudW1f cGdfZGF0YWJhc2VfZGF0Y29sbGF0ZSk7CisJCWxvY2FsZSA9IFRleHREYXR1bUdldENTdHJpbmco ZGF0dW0pOworCX0KKwllbHNlCisJCWxvY2FsZSA9IE5VTEw7IC8qIENPTExQUk9WSURFUl9OT05F ICovCisKKwl2ZXJzaW9uID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihkYXRsb2Nwcm92 aWRlciwgbG9jYWxlKTsKIAogCVJlbGVhc2VTeXNDYWNoZSh0cCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ19sb2NhbGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z19sb2NhbGUuYwppbmRleCBiYjRhOGQ4NGY2Li41YWM1MDM2ZjA1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvcGdfbG9jYWxlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3BnX2xvY2FsZS5jCkBAIC0xMjI4LDcgKzEyMjgsMTIgQEAgbG9va3VwX2NvbGxhdGlvbl9jYWNo ZShPaWQgY29sbGF0aW9uLCBib29sIHNldF9mbGFncykKIAkJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBjb2xsYXRpb24gJXUiLCBjb2xsYXRpb24pOwogCQljb2xsZm9ybSA9 IChGb3JtX3BnX2NvbGxhdGlvbikgR0VUU1RSVUNUKHRwKTsKIAotCQlpZiAoY29sbGZvcm0tPmNv bGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKKwkJaWYgKGNvbGxmb3JtLT5jb2xscHJv dmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUpCisJCXsKKwkJCWNhY2hlX2VudHJ5LT5jb2xsYXRl X2lzX2MgPSB0cnVlOworCQkJY2FjaGVfZW50cnktPmN0eXBlX2lzX2MgPSB0cnVlOworCQl9CisJ CWVsc2UgaWYgKGNvbGxmb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMpCiAJ CXsKIAkJCURhdHVtCQlkYXR1bTsKIAkJCWNvbnN0IGNoYXIgKmNvbGxjb2xsYXRlOwpAQCAtMTI4 MSw2ICsxMjg2LDkgQEAgbGNfY29sbGF0ZV9pc19jKE9pZCBjb2xsYXRpb24pCiAJCXN0YXRpYyBp bnQJcmVzdWx0ID0gLTE7CiAJCWNoYXIJICAgKmxvY2FsZXB0cjsKIAorCQlpZiAoZGVmYXVsdF9s b2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUpCisJCQlyZXR1cm4gdHJ1ZTsKKwog CQlpZiAoZGVmYXVsdF9sb2NhbGUucHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJCXJl dHVybiBmYWxzZTsKIApAQCAtMTMzNCw2ICsxMzQyLDkgQEAgbGNfY3R5cGVfaXNfYyhPaWQgY29s bGF0aW9uKQogCQlzdGF0aWMgaW50CXJlc3VsdCA9IC0xOwogCQljaGFyCSAgICpsb2NhbGVwdHI7 CiAKKwkJaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQUk9WSURFUl9OT05FKQor CQkJcmV0dXJuIHRydWU7CisKIAkJaWYgKGRlZmF1bHRfbG9jYWxlLnByb3ZpZGVyID09IENPTExQ Uk9WSURFUl9JQ1UpCiAJCQlyZXR1cm4gZmFsc2U7CiAKQEAgLTE0ODcsOCArMTQ5OCwxMCBAQCBw Z19uZXdsb2NhbGVfZnJvbV9jb2xsYXRpb24oT2lkIGNvbGxpZCkKIAl7CiAJCWlmIChkZWZhdWx0 X2xvY2FsZS5wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCQkJcmV0dXJuICZkZWZhdWx0 X2xvY2FsZTsKLQkJZWxzZQorCQllbHNlIGlmIChkZWZhdWx0X2xvY2FsZS5wcm92aWRlciA9PSBD T0xMUFJPVklERVJfTElCQykKIAkJCXJldHVybiAocGdfbG9jYWxlX3QpIDA7CisJCWVsc2UKKwkJ CWVsb2coRVJST1IsICJjYW5ub3Qgb3BlbiBjb2xsYXRpb24gd2l0aCBwcm92aWRlciBcIm5vbmVc IiIpOwogCX0KIAogCWNhY2hlX2VudHJ5ID0gbG9va3VwX2NvbGxhdGlvbl9jYWNoZShjb2xsaWQs IGZhbHNlKTsKQEAgLTE1MTMsNyArMTUyNiwxMSBAQCBwZ19uZXdsb2NhbGVfZnJvbV9jb2xsYXRp b24oT2lkIGNvbGxpZCkKIAkJcmVzdWx0LnByb3ZpZGVyID0gY29sbGZvcm0tPmNvbGxwcm92aWRl cjsKIAkJcmVzdWx0LmRldGVybWluaXN0aWMgPSBjb2xsZm9ybS0+Y29sbGlzZGV0ZXJtaW5pc3Rp YzsKIAotCQlpZiAoY29sbGZvcm0tPmNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykK KwkJaWYgKGNvbGxmb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUpCisJCXsK KwkJCWVsb2coRVJST1IsICJjYW5ub3Qgb3BlbiBjb2xsYXRpb24gd2l0aCBwcm92aWRlciBcIm5v bmVcIiIpOworCQl9CisJCWVsc2UgaWYgKGNvbGxmb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBS T1ZJREVSX0xJQkMpCiAJCXsKICNpZmRlZiBIQVZFX0xPQ0FMRV9UCiAJCQljb25zdCBjaGFyICpj b2xsY29sbGF0ZTsKQEAgLTE1OTksNiArMTYxNiw3IEBAIHBnX25ld2xvY2FsZV9mcm9tX2NvbGxh dGlvbihPaWQgY29sbGlkKQogCiAJCQljb2xsdmVyc2lvbnN0ciA9IFRleHREYXR1bUdldENTdHJp bmcoZGF0dW0pOwogCisJCQlBc3NlcnQoY29sbGZvcm0tPmNvbGxwcm92aWRlciAhPSBDT0xMUFJP VklERVJfTk9ORSk7CiAJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09MTE9JRCwg dHAsIGNvbGxmb3JtLT5jb2xscHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSA/IEFudW1fcGdf Y29sbGF0aW9uX2NvbGxpY3Vsb2NhbGUgOiBBbnVtX3BnX2NvbGxhdGlvbl9jb2xsY29sbGF0ZSk7 CiAKIAkJCWFjdHVhbF92ZXJzaW9uc3RyID0gZ2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihj b2xsZm9ybS0+Y29sbHByb3ZpZGVyLApAQCAtMTY1MCw2ICsxNjY4LDkgQEAgZ2V0X2NvbGxhdGlv bl9hY3R1YWxfdmVyc2lvbihjaGFyIGNvbGxwcm92aWRlciwgY29uc3QgY2hhciAqY29sbGNvbGxh dGUpCiB7CiAJY2hhcgkgICAqY29sbHZlcnNpb24gPSBOVUxMOwogCisJaWYgKGNvbGxwcm92aWRl ciA9PSBDT0xMUFJPVklERVJfTk9ORSkKKwkJcmV0dXJuIE5VTEw7CisKICNpZmRlZiBVU0VfSUNV CiAJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2luaXQvcG9zdGluaXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2lu aXQvcG9zdGluaXQuYwppbmRleCA1MzQyMGY0OTc0Li44MDUzNjQyZmQzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9pbml0L3Bvc3Rpbml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv aW5pdC9wb3N0aW5pdC5jCkBAIC00NjEsMTAgKzQ2MSwxOCBAQCBDaGVja015RGF0YWJhc2UoY29u c3QgY2hhciAqbmFtZSwgYm9vbCBhbV9zdXBlcnVzZXIsIGJvb2wgb3ZlcnJpZGVfYWxsb3dfY29u bmVjdAogCXsKIAkJY2hhcgkgICAqYWN0dWFsX3ZlcnNpb25zdHI7CiAJCWNoYXIJICAgKmNvbGx2 ZXJzaW9uc3RyOworCQljaGFyCSAgICpsb2NhbGU7CiAKIAkJY29sbHZlcnNpb25zdHIgPSBUZXh0 RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAotCQlhY3R1YWxfdmVyc2lvbnN0ciA9IGdldF9jb2xs YXRpb25fYWN0dWFsX3ZlcnNpb24oZGJmb3JtLT5kYXRsb2Nwcm92aWRlciwgZGJmb3JtLT5kYXRs b2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVID8gaWN1bG9jYWxlIDogY29sbGF0ZSk7CisJ CWlmIChkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCisJCQlsb2Nh bGUgPSBpY3Vsb2NhbGU7CisJCWVsc2UgaWYgKGRiZm9ybS0+ZGF0bG9jcHJvdmlkZXIgPT0gQ09M TFBST1ZJREVSX0xJQkMpCisJCQlsb2NhbGUgPSBjb2xsYXRlOworCQllbHNlCisJCQlsb2NhbGUg PSBOVUxMOyAvKiBDT0xMUFJPVklERVJfTk9ORSAqLworCisJCWFjdHVhbF92ZXJzaW9uc3RyID0g Z2V0X2NvbGxhdGlvbl9hY3R1YWxfdmVyc2lvbihkYmZvcm0tPmRhdGxvY3Byb3ZpZGVyLCBsb2Nh bGUpOwogCQlpZiAoIWFjdHVhbF92ZXJzaW9uc3RyKQogCQkJLyogc2hvdWxkIG5vdCBoYXBwZW4g Ki8KIAkJCWVsb2coV0FSTklORywKZGlmZiAtLWdpdCBhL3NyYy9iaW4vaW5pdGRiL2luaXRkYi5j IGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggMmI1Y2MzMDk1NS4uNGNmNjg5MmJlZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIvc3JjL2Jpbi9pbml0ZGIv aW5pdGRiLmMKQEAgLTI0NjksNiArMjQ2OSwyMiBAQCBzZXRsb2NhbGVzKHZvaWQpCiAKIAkvKiBz ZXQgZW1wdHkgbGNfKiB2YWx1ZXMgdG8gbG9jYWxlIGNvbmZpZyBpZiBzZXQgKi8KIAorCWlmIChs b2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX05PTkUpCisJeworCQlpZiAoIWxjX2N0eXBl KQorCQkJbGNfY3R5cGUgPSAiQyI7CisJCWlmICghbGNfY29sbGF0ZSkKKwkJCWxjX2NvbGxhdGUg PSAiQyI7CisJCWlmICghbGNfbnVtZXJpYykKKwkJCWxjX251bWVyaWMgPSAiQyI7CisJCWlmICgh bGNfdGltZSkKKwkJCWxjX3RpbWUgPSAiQyI7CisJCWlmICghbGNfbW9uZXRhcnkpCisJCQlsY19t b25ldGFyeSA9ICJDIjsKKwkJaWYgKCFsY19tZXNzYWdlcykKKwkJCWxjX21lc3NhZ2VzID0gIkMi OworCX0KKwogCWlmIChsb2NhbGUpCiAJewogCQlpZiAoIWxjX2N0eXBlKQpAQCAtMjU2Myw3ICsy NTc5LDcgQEAgdXNhZ2UoY29uc3QgY2hhciAqcHJvZ25hbWUpCiAJCQkgIiAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXQgZGVmYXVsdCBsb2NhbGUgaW4gdGhlIHJlc3BlY3RpdmUgY2F0ZWdv cnkgZm9yXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcgZGF0YWJhc2Vz IChkZWZhdWx0IHRha2VuIGZyb20gZW52aXJvbm1lbnQpXG4iKSk7CiAJcHJpbnRmKF8oIiAgICAg IC0tbm8tbG9jYWxlICAgICAgICAgICBlcXVpdmFsZW50IHRvIC0tbG9jYWxlPUNcbiIpKTsKLQlw cmludGYoXygiICAgICAgLS1sb2NhbGUtcHJvdmlkZXI9e2xpYmN8aWN1fVxuIgorCXByaW50Zihf KCIgICAgICAtLWxvY2FsZS1wcm92aWRlcj17bm9uZXxsaWJjfGljdX1cbiIKIAkJCSAiICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNldCBkZWZhdWx0IGxvY2FsZSBwcm92aWRlciBmb3IgbmV3 IGRhdGFiYXNlc1xuIikpOwogCXByaW50ZihfKCIgICAgICAtLXB3ZmlsZT1GSUxFICAgICAgICAg cmVhZCBwYXNzd29yZCBmb3IgdGhlIG5ldyBzdXBlcnVzZXIgZnJvbSBmaWxlXG4iKSk7CiAJcHJp bnRmKF8oIiAgLVQsIC0tdGV4dC1zZWFyY2gtY29uZmlnPUNGR1xuIgpAQCAtMjcxMyw3ICsyNzI5 LDE1IEBAIHNldHVwX2xvY2FsZV9lbmNvZGluZyh2b2lkKQogewogCXNldGxvY2FsZXMoKTsKIAot CWlmIChsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0xJQkMgJiYKKwlpZiAobG9jYWxl X3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9OT05FICYmCisJCXN0cmNtcChsY19jdHlwZSwgIkMi KSA9PSAwICYmCisJCXN0cmNtcChsY19jb2xsYXRlLCAiQyIpID09IDAgJiYKKwkJc3RyY21wKGxj X3RpbWUsICJDIikgPT0gMCAmJgorCQlzdHJjbXAobGNfbnVtZXJpYywgIkMiKSA9PSAwICYmCisJ CXN0cmNtcChsY19tb25ldGFyeSwgIkMiKSA9PSAwICYmCisJCXN0cmNtcChsY19tZXNzYWdlcywg IkMiKSA9PSAwKQorCQlwcmludGYoXygiVGhlIGRhdGFiYXNlIGNsdXN0ZXIgd2lsbCBiZSBpbml0 aWFsaXplZCB3aXRoIG5vIGxvY2FsZS5cbiIpKTsKKwllbHNlIGlmIChsb2NhbGVfcHJvdmlkZXIg PT0gQ09MTFBST1ZJREVSX0xJQkMgJiYKIAkJc3RyY21wKGxjX2N0eXBlLCBsY19jb2xsYXRlKSA9 PSAwICYmCiAJCXN0cmNtcChsY19jdHlwZSwgbGNfdGltZSkgPT0gMCAmJgogCQlzdHJjbXAobGNf Y3R5cGUsIGxjX251bWVyaWMpID09IDAgJiYKQEAgLTMzODcsNyArMzQxMSw5IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQkJCQkJCQkgIi1jIGRlYnVnX2Rpc2NhcmRfY2FjaGVz PTEiKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgMTU6Ci0JCQkJaWYgKHN0cmNtcChvcHRhcmcsICJp Y3UiKSA9PSAwKQorCQkJCWlmIChzdHJjbXAob3B0YXJnLCAibm9uZSIpID09IDApCisJCQkJCWxv Y2FsZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9OT05FOworCQkJCWVsc2UgaWYgKHN0cmNtcChv cHRhcmcsICJpY3UiKSA9PSAwKQogCQkJCQlsb2NhbGVfcHJvdmlkZXIgPSBDT0xMUFJPVklERVJf SUNVOwogCQkJCWVsc2UgaWYgKHN0cmNtcChvcHRhcmcsICJsaWJjIikgPT0gMCkKIAkJCQkJbG9j YWxlX3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CkBAIC0zNDI2LDYgKzM0NTIsNyBAQCBt YWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCWV4aXQoMSk7CiAJfQogCisKIAlpZiAoaWN1 X2xvY2FsZSAmJiBsb2NhbGVfcHJvdmlkZXIgIT0gQ09MTFBST1ZJREVSX0lDVSkKIAkJcGdfZmF0 YWwoIiVzIGNhbm5vdCBiZSBzcGVjaWZpZWQgdW5sZXNzIGxvY2FsZSBwcm92aWRlciBcIiVzXCIg aXMgY2hvc2VuIiwKIAkJCQkgIi0taWN1LWxvY2FsZSIsICJpY3UiKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vaW5pdGRiL3QvMDAxX2luaXRkYi5wbCBiL3NyYy9iaW4vaW5pdGRiL3QvMDAxX2luaXRk Yi5wbAppbmRleCAxN2E0NDRkODBjLi5mZTZkMjI0ZTViIDEwMDY0NAotLS0gYS9zcmMvYmluL2lu aXRkYi90LzAwMV9pbml0ZGIucGwKKysrIGIvc3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBs CkBAIC0xNTQsNiArMTU0LDM1IEBAIGVsc2UKIAkJJ2xvY2FsZSBwcm92aWRlciBJQ1UgZmFpbHMg c2luY2Ugbm8gSUNVIHN1cHBvcnQnKTsKIH0KIAorY29tbWFuZF9vaygKKwlbICdpbml0ZGInLCAn LS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAiJHRlbXBkaXIvZGF0YTYiIF0s CisJJ2xvY2FsZSBwcm92aWRlciBub25lJyk7CisKK2NvbW1hbmRfb2soCisJWyAnaW5pdGRiJywg Jy0tbm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1ub25lJywgJy0tbG9jYWxlPUMnLAorCSAg IiR0ZW1wZGlyL2RhdGE3IiBdLAorCSdsb2NhbGUgcHJvdmlkZXIgbm9uZSB3aXRoIC0tbG9jYWxl Jyk7CisKK2NvbW1hbmRfb2soCisJWyAnaW5pdGRiJywgJy0tbm8tc3luYycsICctLWxvY2FsZS1w cm92aWRlcj1ub25lJywgJy0tbGMtY29sbGF0ZT1DJywKKwkgICIkdGVtcGRpci9kYXRhOCIgXSwK KwknbG9jYWxlIHByb3ZpZGVyIG5vbmUgd2l0aCAtLWxjLWNvbGxhdGUnKTsKKworY29tbWFuZF9v aygKKwlbICdpbml0ZGInLCAnLS1uby1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAn LS1sYy1jdHlwZT1DJywKKwkgICIkdGVtcGRpci9kYXRhOSIgXSwKKwknbG9jYWxlIHByb3ZpZGVy IG5vbmUgd2l0aCAtLWxjLWN0eXBlJyk7CisKK2NvbW1hbmRfZmFpbHMoCisJWyAnaW5pdGRiJywg Jy0tbm8tc3luYycsICctLWxvY2FsZS1wcm92aWRlcj1ub25lJywgJy0taWN1LWxvY2FsZT1lbics CisJICAiJHRlbXBkaXIvZGF0YVgiIF0sCisJJ2ZhaWxzIGZvciBsb2NhbGUgcHJvdmlkZXIgbm9u ZSB3aXRoIElDVSBsb2NhbGUnKTsKKworY29tbWFuZF9mYWlscygKKwlbICdpbml0ZGInLCAnLS1u by1zeW5jJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1pY3UtcnVsZXM9IiInLAorCSAg IiR0ZW1wZGlyL2RhdGFYIiBdLAorCSdmYWlscyBmb3IgbG9jYWxlIHByb3ZpZGVyIG5vbmUgd2l0 aCBJQ1UgcnVsZXMnKTsKKwogY29tbWFuZF9mYWlscygKIAlbICdpbml0ZGInLCAnLS1uby1zeW5j JywgJy0tbG9jYWxlLXByb3ZpZGVyPXh5eicsICIkdGVtcGRpci9kYXRhWCIgXSwKIAknZmFpbHMg Zm9yIGludmFsaWQgbG9jYWxlIHByb3ZpZGVyJyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA0MWE1MWVjNWNk Li5iZTY1ODBhYjNjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTMwNzAsNyArMzA3MCw5IEBAIGR1bXBEYXRh YmFzZShBcmNoaXZlICpmb3V0KQogCX0KIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnks ICIgTE9DQUxFX1BST1ZJREVSID0gIik7Ci0JaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdjJykK KwlpZiAoZGF0bG9jcHJvdmlkZXJbMF0gPT0gJ24nKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihj cmVhUXJ5LCAibm9uZSIpOworCWVsc2UgaWYgKGRhdGxvY3Byb3ZpZGVyWzBdID09ICdjJykKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoY3JlYVFyeSwgImxpYmMiKTsKIAllbHNlIGlmIChkYXRsb2Nw cm92aWRlclswXSA9PSAnaScpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKGNyZWFRcnksICJpY3Ui KTsKQEAgLTEzNDQ2LDcgKzEzNDQ4LDkgQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBj b25zdCBDb2xsSW5mbyAqY29sbGluZm8pCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29s bGluZm8pKTsKIAogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICJwcm92aWRlciA9ICIpOwotCWlm IChjb2xscHJvdmlkZXJbMF0gPT0gJ2MnKQorCWlmIChjb2xscHJvdmlkZXJbMF0gPT0gJ24nKQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAibm9uZSIpOworCWVsc2UgaWYgKGNvbGxwcm92aWRl clswXSA9PSAnYycpCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHEsICJsaWJjIik7CiAJZWxzZSBp ZiAoY29sbHByb3ZpZGVyWzBdID09ICdpJykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgImlj dSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3QvMDAyX3BnX3VwZ3JhZGUucGwg Yi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbAppbmRleCA0YTc4OTVhNzU2 Li42ZDU4ZjYxMDNlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBn cmFkZS5wbAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvdC8wMDJfcGdfdXBncmFkZS5wbApAQCAt MTE0LDEyICsxMTQsMjAgQEAgbXkgJG9yaWdpbmFsX2xvY2FsZSA9ICJDIjsKIG15ICRvcmlnaW5h bF9pY3Vsb2NhbGUgPSAiIjsKIG15ICRwcm92aWRlcl9maWVsZCA9ICInYycgQVMgZGF0bG9jcHJv dmlkZXIiOwogbXkgJGljdWxvY2FsZV9maWVsZCA9ICJOVUxMIEFTIGRhdGljdWxvY2FsZSI7Ci1p ZiAoJG9sZG5vZGUtPnBnX3ZlcnNpb24gPj0gMTUgJiYgJEVOVnt3aXRoX2ljdX0gZXEgJ3llcycp CitpZiAoJG9sZG5vZGUtPnBnX3ZlcnNpb24gPj0gMTUpCiB7CiAJJHByb3ZpZGVyX2ZpZWxkID0g ImRhdGxvY3Byb3ZpZGVyIjsKIAkkaWN1bG9jYWxlX2ZpZWxkID0gImRhdGljdWxvY2FsZSI7Ci0J JG9yaWdpbmFsX3Byb3ZpZGVyID0gImkiOwotCSRvcmlnaW5hbF9pY3Vsb2NhbGUgPSAiZnItQ0Ei OworCisJaWYgKCRFTlZ7d2l0aF9pY3V9IGVxICd5ZXMnKQorCXsKKwkJJG9yaWdpbmFsX3Byb3Zp ZGVyID0gImkiOworCQkkb3JpZ2luYWxfaWN1bG9jYWxlID0gImZyLUNBIjsKKwl9CisJZWxzZQor CXsKKwkJJG9yaWdpbmFsX3Byb3ZpZGVyID0gIm4iOworCX0KIH0KIAogbXkgQGluaXRkYl9wYXJh bXMgPSBAY3VzdG9tX29wdHM7CkBAIC0xMzEsNiArMTM5LDEwIEBAIGlmICgkb3JpZ2luYWxfcHJv dmlkZXIgZXEgImkiKQogCXB1c2ggQGluaXRkYl9wYXJhbXMsICgnLS1sb2NhbGUtcHJvdmlkZXIn LCAnaWN1Jyk7CiAJcHVzaCBAaW5pdGRiX3BhcmFtcywgKCctLWljdS1sb2NhbGUnLCAnZnItQ0En KTsKIH0KK2Vsc2lmICgkb3JpZ2luYWxfcHJvdmlkZXIgZXEgIm4iKQoreworCXB1c2ggQGluaXRk Yl9wYXJhbXMsICgnLS1sb2NhbGUtcHJvdmlkZXInLCAnbm9uZScpOworfQogCiAkbm9kZV9wYXJh bXN7ZXh0cmF9ID0gXEBpbml0ZGJfcGFyYW1zOwogJG9sZG5vZGUtPmluaXQoJW5vZGVfcGFyYW1z KTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKaW5kZXggMDU4ZTQxZTc0OS4uMTZlNzI2Yjc4NCAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTkzMiw3 ICs5MzIsNyBAQCBsaXN0QWxsRGJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkK IAkJCQkJICBnZXR0ZXh0X25vb3AoIkVuY29kaW5nIikpOwogCWlmIChwc2V0LnN2ZXJzaW9uID49 IDE1MDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKLQkJCQkJCSAgIiAgQ0FTRSBkLmRh dGxvY3Byb3ZpZGVyIFdIRU4gJ2MnIFRIRU4gJ2xpYmMnIFdIRU4gJ2knIFRIRU4gJ2ljdScgRU5E IEFTIFwiJXNcIixcbiIsCisJCQkJCQkgICIgIENBU0UgZC5kYXRsb2Nwcm92aWRlciBXSEVOICdu JyBUSEVOICdub25lJyBXSEVOICdjJyBUSEVOICdsaWJjJyBXSEVOICdpJyBUSEVOICdpY3UnIEVO RCBBUyBcIiVzXCIsXG4iLAogCQkJCQkJICBnZXR0ZXh0X25vb3AoIkxvY2FsZSBQcm92aWRlciIp KTsKIAllbHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsCmRpZmYgLS1naXQgYS9zcmMvYmlu L3NjcmlwdHMvY3JlYXRlZGIuYyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jCmluZGV4IGI0 MjA1YzRmYTUuLjc5MzY3ZDkzM2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVk Yi5jCisrKyBiL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jCkBAIC0yOTksNyArMjk5LDcgQEAg aGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAgICAgLS1sYy1jdHlwZT1M T0NBTEUgICAgICAgIExDX0NUWVBFIHNldHRpbmcgZm9yIHRoZSBkYXRhYmFzZVxuIikpOwogCXBy aW50ZihfKCIgICAgICAtLWljdS1sb2NhbGU9TE9DQUxFICAgICAgSUNVIGxvY2FsZSBzZXR0aW5n IGZvciB0aGUgZGF0YWJhc2VcbiIpKTsKIAlwcmludGYoXygiICAgICAgLS1pY3UtcnVsZXM9UlVM RVMgICAgICAgIElDVSBydWxlcyBzZXR0aW5nIGZvciB0aGUgZGF0YWJhc2VcbiIpKTsKLQlwcmlu dGYoXygiICAgICAgLS1sb2NhbGUtcHJvdmlkZXI9e2xpYmN8aWN1fVxuIgorCXByaW50ZihfKCIg ICAgICAtLWxvY2FsZS1wcm92aWRlcj17bm9uZXxsaWJjfGljdX1cbiIKIAkJCSAiICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZSBwcm92aWRlciBmb3IgdGhlIGRhdGFiYXNlJ3Mg ZGVmYXVsdCBjb2xsYXRpb25cbiIpKTsKIAlwcmludGYoXygiICAtTywgLS1vd25lcj1PV05FUiAg ICAgICAgICAgIGRhdGFiYXNlIHVzZXIgdG8gb3duIHRoZSBuZXcgZGF0YWJhc2VcbiIpKTsKIAlw cmludGYoXygiICAtUywgLS1zdHJhdGVneT1TVFJBVEVHWSAgICAgIGRhdGFiYXNlIGNyZWF0aW9u IHN0cmF0ZWd5IHdhbF9sb2cgb3IgZmlsZV9jb3B5XG4iKSk7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwgYi9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRl ZGIucGwKaW5kZXggYWYzYjE0OTJlMy4uNWFhNjU4YjY3MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9z Y3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCisrKyBiL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVh dGVkYi5wbApAQCAtODMsNiArODMsMzUgQEAgZWxzZQogCQknY3JlYXRlIGRhdGFiYXNlIHdpdGgg SUNVIGZhaWxzIHNpbmNlIG5vIElDVSBzdXBwb3J0Jyk7CiB9CiAKKyRub2RlLT5jb21tYW5kX29r KAorCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1u b25lJywgJ3Rlc3Rub25lMScgXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgIm5v bmUiJyk7CisKKyRub2RlLT5jb21tYW5kX29rKAorCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBs YXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1ub25lJywgJy0tbG9jYWxlPUMnLAorCSAgJ3Rlc3Ru b25lMicgXSwKKwknY3JlYXRlIGRhdGFiYXNlIHdpdGggcHJvdmlkZXIgIm5vbmUiIGFuZCBsb2Nh bGUgIkMiJyk7CisKKyRub2RlLT5jb21tYW5kX29rKAorCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3Rl bXBsYXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1ub25lJywgJy0tbGMtY29sbGF0ZT1DJywKKwkg ICd0ZXN0bm9uZTMnIF0sCisJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJub25lIiBh bmQgTENfQ09MTEFURT1DJyk7CisKKyRub2RlLT5jb21tYW5kX29rKAorCVsgJ2NyZWF0ZWRiJywg Jy1UJywgJ3RlbXBsYXRlMCcsICctLWxvY2FsZS1wcm92aWRlcj1ub25lJywgJy0tbGMtY3R5cGU9 QycsCisJICAndGVzdG5vbmU0JyBdLAorCSdjcmVhdGUgZGF0YWJhc2Ugd2l0aCBwcm92aWRlciAi bm9uZSIgYW5kIExDX0NUWVBFPUMnKTsKKworJG5vZGUtPmNvbW1hbmRfZmFpbHMoCisJWyAnY3Jl YXRlZGInLCAnLVQnLCAndGVtcGxhdGUwJywgJy0tbG9jYWxlLXByb3ZpZGVyPW5vbmUnLCAnLS1p Y3UtbG9jYWxlPWVuJywKKwkgICd0ZXN0bm9uZTUnIF0sCisJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRo IHByb3ZpZGVyICJub25lIiBhbmQgSUNVX0xPQ0FMRT0iZW4iJyk7CisKKyRub2RlLT5jb21tYW5k X2ZhaWxzKAorCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRlMCcsICctLWxvY2FsZS1wcm92 aWRlcj1ub25lJywgJy0taWN1LXJ1bGVzPSIiJywKKwkgICd0ZXN0bm9uZTYnIF0sCisJJ2NyZWF0 ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJub25lIiBhbmQgSUNVX1JVTEVTPSIiJyk7CisKICRu b2RlLT5jb21tYW5kX2ZhaWxzKFsgJ2NyZWF0ZWRiJywgJ2Zvb2JhcjEnIF0sCiAJJ2ZhaWxzIGlm IGRhdGFiYXNlIGFscmVhZHkgZXhpc3RzJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29sbGF0aW9uLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9u LmRhdAppbmRleCBiNmE2OWQxZDQyLi40MGQ2MjQxNmVhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NvbGxhdGlvbi5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19j b2xsYXRpb24uZGF0CkBAIC0yNCw4ICsyNCw3IEBACiAgIGNvbGxuYW1lID0+ICdQT1NJWCcsIGNv bGxwcm92aWRlciA9PiAnYycsIGNvbGxlbmNvZGluZyA9PiAnLTEnLAogICBjb2xsY29sbGF0ZSA9 PiAnUE9TSVgnLCBjb2xsY3R5cGUgPT4gJ1BPU0lYJyB9LAogeyBvaWQgPT4gJzk2MicsIGRlc2Ny ID0+ICdzb3J0cyBieSBVbmljb2RlIGNvZGUgcG9pbnQnLAotICBjb2xsbmFtZSA9PiAndWNzX2Jh c2ljJywgY29sbHByb3ZpZGVyID0+ICdjJywgY29sbGVuY29kaW5nID0+ICc2JywKLSAgY29sbGNv bGxhdGUgPT4gJ0MnLCBjb2xsY3R5cGUgPT4gJ0MnIH0sCisgIGNvbGxuYW1lID0+ICd1Y3NfYmFz aWMnLCBjb2xscHJvdmlkZXIgPT4gJ24nLCBjb2xsZW5jb2RpbmcgPT4gJzYnIH0sCiB7IG9pZCA9 PiAnOTYzJywKICAgZGVzY3IgPT4gJ3NvcnRzIHVzaW5nIHRoZSBVbmljb2RlIENvbGxhdGlvbiBB bGdvcml0aG0gd2l0aCBkZWZhdWx0IHNldHRpbmdzJywKICAgY29sbG5hbWUgPT4gJ3VuaWNvZGUn LCBjb2xscHJvdmlkZXIgPT4gJ2knLCBjb2xsZW5jb2RpbmcgPT4gJy0xJywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbGxhdGlvbi5oCmluZGV4IGJmYTM1Njg0NTEuLjI5YmUzZjhkOTQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbGF0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb2xsYXRpb24uaApAQCAtNjQsNiArNjQsNyBAQCBERUNMQVJFX1VOSVFVRV9JTkRF WF9QS0VZKHBnX2NvbGxhdGlvbl9vaWRfaW5kZXgsIDMwODUsIENvbGxhdGlvbk9pZEluZGV4SWQs IG9uCiAKICNpZmRlZiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUKIAorI2RlZmluZSBDT0xMUFJPVklE RVJfTk9ORQkJJ24nCiAjZGVmaW5lIENPTExQUk9WSURFUl9ERUZBVUxUCSdkJwogI2RlZmluZSBD T0xMUFJPVklERVJfSUNVCQknaScKICNkZWZpbmUgQ09MTFBST1ZJREVSX0xJQkMJCSdjJwpAQCAt NzMsNiArNzQsOCBAQCBjb2xscHJvdmlkZXJfbmFtZShjaGFyIGMpCiB7CiAJc3dpdGNoIChjKQog CXsKKwkJY2FzZSBDT0xMUFJPVklERVJfTk9ORToKKwkJCXJldHVybiAibm9uZSI7CiAJCWNhc2Ug Q09MTFBST1ZJREVSX0lDVToKIAkJCXJldHVybiAiaWN1IjsKIAkJY2FzZSBDT0xMUFJPVklERVJf TElCQzoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUub3V0CmluZGV4IDA2NDk1NjQ0ODUu LmI3NjAzYzlmNmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0 ZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLm91dApAQCAtNjUw LDYgKzY1MCwxMyBAQCBFWFBMQUlOIChDT1NUUyBPRkYpCiAoMyByb3dzKQogCiAtLSBDUkVBVEUv RFJPUCBDT0xMQVRJT04KK0NSRUFURSBDT0xMQVRJT04gbm9uZSAoIFBST1ZJREVSID0gbm9uZSAp OworQ1JFQVRFIENPTExBVElPTiBub25lMiAoIFBST1ZJREVSID0gbm9uZSwgTE9DQUxFPSJQT1NJ WCIgKTsgLS0gZmFpbHMKK0VSUk9SOiAgY29sbGF0aW9uIHByb3ZpZGVyICJub25lIiBkb2VzIG5v dCBzdXBwb3J0IExPQ0FMRSwgTENfQ09MTEFURSwgb3IgTENfQ1RZUEUKK0NSRUFURSBDT0xMQVRJ T04gbm9uZTIgKCBQUk9WSURFUiA9IG5vbmUsIExDX0NUWVBFPSJQT1NJWCIgKTsgLS0gZmFpbHMK K0VSUk9SOiAgY29sbGF0aW9uIHByb3ZpZGVyICJub25lIiBkb2VzIG5vdCBzdXBwb3J0IExPQ0FM RSwgTENfQ09MTEFURSwgb3IgTENfQ1RZUEUKK0NSRUFURSBDT0xMQVRJT04gbm9uZTIgKCBQUk9W SURFUiA9IG5vbmUsIExDX0NPTExBVEU9IlBPU0lYIiApOyAtLSBmYWlscworRVJST1I6ICBjb2xs YXRpb24gcHJvdmlkZXIgIm5vbmUiIGRvZXMgbm90IHN1cHBvcnQgTE9DQUxFLCBMQ19DT0xMQVRF LCBvciBMQ19DVFlQRQogQ1JFQVRFIENPTExBVElPTiBteWNvbGwxIEZST00gIkMiOwogQ1JFQVRF IENPTExBVElPTiBteWNvbGwyICggTENfQ09MTEFURSA9ICJQT1NJWCIsIExDX0NUWVBFID0gIlBP U0lYIiApOwogQ1JFQVRFIENPTExBVElPTiBteWNvbGwzIEZST00gImRlZmF1bHQiOyAgLS0gaW50 ZW50aW9uYWxseSB1bnN1cHBvcnRlZApAQCAtNzU0LDcgKzc2MSw3IEBAIERFVEFJTDogIEZST00g Y2Fubm90IGJlIHNwZWNpZmllZCB0b2dldGhlciB3aXRoIGFueSBvdGhlciBvcHRpb25zLgogLS0g bXVzdCBnZXQgcmlkIG9mIHRoZW0uCiAtLQogRFJPUCBTQ0hFTUEgY29sbGF0ZV90ZXN0cyBDQVND QURFOwotTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAxOSBvdGhlciBvYmplY3RzCitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIDIwIG90aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2Fk ZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRl X3Rlc3RfbGlrZQogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRlX3Rlc3QyCkBAIC03NzEs NiArNzc4LDcgQEAgZHJvcCBjYXNjYWRlcyB0byBmdW5jdGlvbiBkdXAoYW55ZWxlbWVudCkKIGRy b3AgY2FzY2FkZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MjAKIGRyb3AgY2FzY2FkZXMgdG8gdGFi bGUgY29sbGF0ZV90ZXN0MjEKIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgY29sbGF0ZV90ZXN0MjIK K2Ryb3AgY2FzY2FkZXMgdG8gY29sbGF0aW9uICJub25lIgogZHJvcCBjYXNjYWRlcyB0byBjb2xs YXRpb24gbXljb2xsMgogZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBjb2xsYXRlX3Rlc3QyMwogZHJv cCBjYXNjYWRlcyB0byB2aWV3IGNvbGxhdGVfb25faW50CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jb2xsYXRlLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuc3Fs CmluZGV4IGMzZDQwZmMxOTUuLmUyZGNlYjhkZmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NvbGxhdGUuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuc3Fs CkBAIC0yNDQsNiArMjQ0LDEyIEBAIEVYUExBSU4gKENPU1RTIE9GRikKIAogLS0gQ1JFQVRFL0RS T1AgQ09MTEFUSU9OCiAKK0NSRUFURSBDT0xMQVRJT04gbm9uZSAoIFBST1ZJREVSID0gbm9uZSAp OworCitDUkVBVEUgQ09MTEFUSU9OIG5vbmUyICggUFJPVklERVIgPSBub25lLCBMT0NBTEU9IlBP U0lYIiApOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiBub25lMiAoIFBST1ZJREVSID0gbm9u ZSwgTENfQ1RZUEU9IlBPU0lYIiApOyAtLSBmYWlscworQ1JFQVRFIENPTExBVElPTiBub25lMiAo IFBST1ZJREVSID0gbm9uZSwgTENfQ09MTEFURT0iUE9TSVgiICk7IC0tIGZhaWxzCisKIENSRUFU RSBDT0xMQVRJT04gbXljb2xsMSBGUk9NICJDIjsKIENSRUFURSBDT0xMQVRJT04gbXljb2xsMiAo IExDX0NPTExBVEUgPSAiUE9TSVgiLCBMQ19DVFlQRSA9ICJQT1NJWCIgKTsKIENSRUFURSBDT0xM QVRJT04gbXljb2xsMyBGUk9NICJkZWZhdWx0IjsgIC0tIGludGVudGlvbmFsbHkgdW5zdXBwb3J0 ZWQKLS0gCjIuMzQuMQoK --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename*0=v5-0005-ICU-for-locale-C-automatically-use-none-provider-.pat; filename*1=ch Content-Type: text/x-patch; name="v5-0005-ICU-for-locale-C-automatically-use-none-provider-.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAyM2U4NTkyMGRiY2ZkMWQzZTcxMDQxZjkyYzRhZGVhNTg5YWNkNGYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBN b24sIDggTWF5IDIwMjMgMTM6NDg6MDEgLTA3MDAKU3ViamVjdDogW1BBVENIIHY1IDUvN10gSUNV OiBmb3IgbG9jYWxlICJDIiwgYXV0b21hdGljYWxseSB1c2UgIm5vbmUiIHByb3ZpZGVyCiBpbnN0 ZWFkLgoKUG9zdGdyZXMgZXhwZWN0cyBsb2NhbGUgQyB0byBiZSBvcHRpbWl6YWJsZSB0byBzaW1w bGUgbG9jYWxlLXVuYXdhcmUKYnl0ZSBvcGVyYXRpb25zOyB3aGlsZSBJQ1UgZG9lcyBub3QgcmVj b2duaXplIHRoZSBsb2NhbGUgIkMiIGF0IGFsbCwKYW5kIGZhbGxzIGJhY2sgdG8gdGhlIHJvb3Qg bG9jYWxlLgoKSWYgdGhlIHVzZXIgc3BlY2lmaWVzIGxvY2FsZSAiQyIgd2hlbiBjcmVhdGluZyBh IG5ldyBjb2xsYXRpb24gb3IgYQpuZXcgZGF0YWJhc2Ugd2l0aCB0aGUgSUNVIHByb3ZpZGVyLCBh dXRvbWF0aWNhbGx5IHN3aXRjaCBpdCB0byB0aGUKIm5vbmUiIHByb3ZpZGVyLgoKSWYgcHJvdmlk ZXIgaXMgbGliYywgYmVoYXZpb3IgaXMgdW5jaGFuZ2VkLgotLS0KIGRvYy9zcmMvc2dtbC9jaGFy c2V0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfY29sbGF0aW9uLnNnbWwgICAgICAgIHwgIDYgKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9kYXRhYmFzZS5zZ21sICAgICAgICAgfCAgNSArKysKIGRvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlZGIuc2dtbCAgICAgICAgICAgICAgICB8ICA1ICsrKwogZG9jL3NyYy9zZ21sL3JlZi9pbml0 ZGIuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDUgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9j b2xsYXRpb25jbWRzLmMgICAgICAgICAgfCAxNyArKysrKysrKwogc3JjL2JhY2tlbmQvY29tbWFu ZHMvZGJjb21tYW5kcy5jICAgICAgICAgICAgIHwgMjEgKysrKysrKysrKwogc3JjL2Jpbi9pbml0 ZGIvaW5pdGRiLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysKIHNyYy9iaW4vaW5p dGRiL3QvMDAxX2luaXRkYi5wbCAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysrKysrKysrKysr KysKIHNyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jICAgICAgICAgICAgICAgICAgICB8IDExICsr KysrKwogc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsICAgICAgICAgICAgIHwgMTIg KysrKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAx MiArKysrLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsICAgICB8 ICAzICsrCiAxMyBmaWxlcyBjaGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sIGIvZG9jL3NyYy9zZ21s L2NoYXJzZXQuc2dtbAppbmRleCBkZTdjNjVhZTM1Li41YzRmNzEzZThiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwK QEAgLTQwNSw2ICs0MDUsMTIgQEAgaW5pdGRiIC0tbG9jYWxlLXByb3ZpZGVyPWljdSAtLWljdS1s b2NhbGU9ZW4KICAgICAgY2hhbmdlIGluIHJlc3VsdHMuIDxsaXRlcmFsPkxDX0NPTExBVEU8L2xp dGVyYWw+IGFuZAogICAgICA8bGl0ZXJhbD5MQ19DVFlQRTwvbGl0ZXJhbD4gY2FuIGJlIHNldCBp bmRlcGVuZGVudGx5IG9mIHRoZSBJQ1UgbG9jYWxlLgogICAgIDwvcGFyYT4KKyAgICA8cGFyYT4K KyAgICAgVGhlIElDVSBwcm92aWRlciBkb2VzIG5vdCBhY2NlcHQgdGhlIDxsaXRlcmFsPkM8L2xp dGVyYWw+CisgICAgIGxvY2FsZS4gQ29tbWFuZHMgdGhhdCBjcmVhdGUgY29sbGF0aW9ucyBvciBk YXRhYmFzZSB3aXRoIHRoZQorICAgICA8bGl0ZXJhbD5pY3U8L2xpdGVyYWw+IHByb3ZpZGVyIGFu ZCBJQ1UgbG9jYWxlIDxsaXRlcmFsPkM8L2xpdGVyYWw+IHVzZQorICAgICB0aGUgcHJvdmlkZXIg PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4gaW5zdGVhZC4KKyAgICA8L3BhcmE+CiAgICAgPG5vdGU+ CiAgICAgIDxwYXJhPgogICAgICAgRm9yIHRoZSBJQ1UgcHJvdmlkZXIsIHJlc3VsdHMgbWF5IGRl cGVuZCBvbiB0aGUgdmVyc2lvbiBvZiB0aGUgSUNVCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9jb2xsYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxh dGlvbi5zZ21sCmluZGV4IDU0ODlhZTc0MTMuLjFhYzQxODMxZDggMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2NvbGxhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2NvbGxhdGlvbi5zZ21sCkBAIC0xMjYsNiArMTI2LDEyIEBAIENSRUFURSBDT0xMQVRJ T04gWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBGUk9N IDxyZXBsYWNlCiAgICAgICAgPGxpdGVyYWw+bGliYzwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQu ICBTZWUgPHhyZWYKICAgICAgICBsaW5rZW5kPSJsb2NhbGUtcHJvdmlkZXJzIi8+IGZvciBkZXRh aWxzLgogICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIHByb3ZpZGVy IGlzIDxsaXRlcmFsPmljdTwvbGl0ZXJhbD4gYW5kIHRoZSBsb2NhbGUgaXMKKyAgICAgICA8bGl0 ZXJhbD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4sIHRoZSBwcm92aWRl ciBpcworICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+ OyBhcyB0aGUgSUNVIHByb3ZpZGVyCisgICAgICAgZG9lc24ndCBzdXBwb3J0IGFuIElDVSBsb2Nh bGUgb2YgPGxpdGVyYWw+QzwvbGl0ZXJhbD4uCisgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2RhdGFiYXNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5z Z21sCmluZGV4IDYwYjlkYTA5NTIuLmM3MzBkMDJlMTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf ZGF0YWJhc2Uuc2dtbApAQCAtMTkwLDYgKzE5MCwxMSBAQCBDUkVBVEUgREFUQUJBU0UgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgICAgIDxwYXJh PgogICAgICAgICBTcGVjaWZpZXMgdGhlIElDVSBsb2NhbGUgSUQgaWYgdGhlIElDVSBsb2NhbGUg cHJvdmlkZXIgaXMgdXNlZC4KICAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAg IElmIHNwZWNpZmllZCBhcyA8bGl0ZXJhbD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwv bGl0ZXJhbD4sIHRoZQorICAgICAgICBwcm92aWRlciBpcyBhdXRvbWF0aWNhbGx5IHNldCB0byA8 bGl0ZXJhbD5ub25lPC9saXRlcmFsPiwgYXMgdGhlIElDVQorICAgICAgICBwcm92aWRlciBkb2Vz bid0IHN1cHBvcnQgYW4gSUNVIGxvY2FsZSBvZiA8bGl0ZXJhbD5DPC9saXRlcmFsPi4KKyAgICAg ICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVkYi5zZ21sCmluZGV4IDMyNmEzNzFkMzQuLjdjNTczZTg0OGEgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZWRiLnNnbWwKQEAgLTE1NCw2ICsxNTQsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9u CiAgICAgICAgIFNwZWNpZmllcyB0aGUgSUNVIGxvY2FsZSBJRCB0byBiZSB1c2VkIGluIHRoaXMg ZGF0YWJhc2UsIGlmIHRoZQogICAgICAgICBJQ1UgbG9jYWxlIHByb3ZpZGVyIGlzIHNlbGVjdGVk LgogICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSWYgc3BlY2lmaWVkIGFz IDxsaXRlcmFsPkM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPlBPU0lYPC9saXRlcmFsPiwgdGhlCisg ICAgICAgIHByb3ZpZGVyIGlzIGF1dG9tYXRpY2FsbHkgc2V0IHRvIDxsaXRlcmFsPm5vbmU8L2xp dGVyYWw+LCBhcyB0aGUgSUNVCisgICAgICAgIHByb3ZpZGVyIGRvZXNuJ3Qgc3VwcG9ydCBhbiBJ Q1UgbG9jYWxlIG9mIDxsaXRlcmFsPkM8L2xpdGVyYWw+LgorICAgICAgIDwvcGFyYT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2luaXRkYi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbAppbmRl eCBlNjA0YWI0OGI3Li43Njk5M2FjZGZlIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2lu aXRkYi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwKQEAgLTI1MCw2ICsy NTAsMTEgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgICAgICAgIFNwZWNpZmllcyB0aGUg SUNVIGxvY2FsZSB3aGVuIHRoZSBJQ1UgcHJvdmlkZXIgaXMgdXNlZC4gTG9jYWxlIHN1cHBvcnQK ICAgICAgICAgaXMgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9ImxvY2FsZSIvPi4KICAgICAg ICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIElmIHNwZWNpZmllZCBhcyA8bGl0ZXJh bD5DPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5QT1NJWDwvbGl0ZXJhbD4sIHRoZQorICAgICAgICBw cm92aWRlciBpcyBhdXRvbWF0aWNhbGx5IHNldCB0byA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiwg YXMgdGhlIElDVQorICAgICAgICBwcm92aWRlciBkb2Vzbid0IHN1cHBvcnQgYW4gSUNVIGxvY2Fs ZSBvZiA8bGl0ZXJhbD5DPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+ CiAgICAgICAgIElmIHRoaXMgb3B0aW9uIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBsb2NhbGUgaXMg aW5oZXJpdGVkIGZyb20gdGhlCiAgICAgICAgIGVudmlyb25tZW50IGluIHdoaWNoIDxjb21tYW5k PmluaXRkYjwvY29tbWFuZD4gcnVucy4gVGhlIGVudmlyb25tZW50J3MKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2NvbGxhdGlvbmNtZHMuYwppbmRleCAyNjdhNTUxODE4Li5lZDY0ZTE3NTA0IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29sbGF0aW9uY21kcy5jCkBAIC0yNTQsNiArMjU0LDIzIEBAIERlZmluZUNvbGxh dGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm5hbWVzLCBMaXN0ICpwYXJhbWV0ZXJzLCBi b29sIGlmX25vdF9lCiAJCWlmIChsY2N0eXBlRWwpCiAJCQljb2xsY3R5cGUgPSBkZWZHZXRTdHJp bmcobGNjdHlwZUVsKTsKIAorCQkvKgorCQkgKiBQb3N0Z3JlcyBkZWZpbmVzIHRoZSAiQyIgKGFu ZCBlcXVpdmFsZW50bHksICJQT1NJWCIpIGxvY2FsZXMgdG8gYmUKKwkJICogb3B0aW1pemFibGUg dG8gYnl0ZSBvcGVyYXRpb25zIChtZW1jbXAoKSwgcGdfYXNjaWlfdG9sb3dlcigpLAorCQkgKiBl dGMuKTsgdHJhbnNmb3JtIGludG8gdGhlICJub25lIiBwcm92aWRlci4gRG9uJ3QgdHJhbnNmb3Jt IGR1cmluZworCQkgKiBiaW5hcnkgdXBncmFkZS4KKwkJICovCisJCWlmICghSXNCaW5hcnlVcGdy YWRlICYmIGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVICYmCisJCQljb2xsaWN1bG9j YWxlICYmIChwZ19zdHJjYXNlY21wKGNvbGxpY3Vsb2NhbGUsICJDIikgPT0gMCB8fAorCQkJCQkJ CSAgcGdfc3RyY2FzZWNtcChjb2xsaWN1bG9jYWxlLCAiUE9TSVgiKSA9PSAwKSkKKwkJeworCQkJ ZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJtc2coInVzaW5nIGxvY2FsZSBwcm92aWRlciBcIm5v bmVcIiBmb3IgSUNVIGxvY2FsZSBcIiVzXCIiLAorCQkJCQkJCWNvbGxpY3Vsb2NhbGUpKSk7CisJ CQljb2xsaWN1bG9jYWxlID0gTlVMTDsKKwkJCWNvbGxwcm92aWRlciA9IENPTExQUk9WSURFUl9O T05FOworCQl9CisKIAkJaWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTElCQykKIAkJ ewogCQkJaWYgKCFjb2xsY29sbGF0ZSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2RiY29tbWFuZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYwppbmRleCA5 ZTczZjU0ODAzLi42ZGM3MzdhZWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k YmNvbW1hbmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGJjb21tYW5kcy5jCkBAIC0x MDQzLDYgKzEwNDMsMjcgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVh dGVkYlN0bXQgKnN0bXQpCiAKIAljaGVja19lbmNvZGluZ19sb2NhbGVfbWF0Y2hlcyhlbmNvZGlu ZywgZGJjb2xsYXRlLCBkYmN0eXBlKTsKIAorCS8qCisJICogUG9zdGdyZXMgZGVmaW5lcyB0aGUg IkMiIChhbmQgZXF1aXZhbGVudGx5LCAiUE9TSVgiKSBsb2NhbGVzIHRvIGJlCisJICogb3B0aW1p emFibGUgdG8gYnl0ZSBvcGVyYXRpb25zIChtZW1jbXAoKSwgcGdfYXNjaWlfdG9sb3dlcigpLCBl dGMuKTsKKwkgKiB0cmFuc2Zvcm0gaW50byB0aGUgIm5vbmUiIHByb3ZpZGVyLgorCSAqCisJICog RG9uJ3QgdHJhbnNmb3JtIGR1cmluZyBiaW5hcnkgdXBncmFkZSBvciB3aGVuIGJvdGggdGhlIHBy b3ZpZGVyIGFuZCBJQ1UKKwkgKiBsb2NhbGUgYXJlIHVuY2hhbmdlZCBmcm9tIHRoZSB0ZW1wbGF0 ZS4KKwkgKi8KKwlpZiAoIUlzQmluYXJ5VXBncmFkZSAmJiBkYmxvY3Byb3ZpZGVyID09IENPTExQ Uk9WSURFUl9JQ1UgJiYKKwkJKHNyY19sb2Nwcm92aWRlciAhPSBDT0xMUFJPVklERVJfSUNVIHx8 CisJCSBzdHJjbXAoZGJpY3Vsb2NhbGUsIHNyY19pY3Vsb2NhbGUpICE9IDApICYmCisJCWRiaWN1 bG9jYWxlICYmIChwZ19zdHJjYXNlY21wKGRiaWN1bG9jYWxlLCAiQyIpID09IDAgfHwKKwkJCQkJ CXBnX3N0cmNhc2VjbXAoZGJpY3Vsb2NhbGUsICJQT1NJWCIpID09IDApKQorCXsKKwkJZXJlcG9y dChOT1RJQ0UsCisJCQkJKGVycm1zZygidXNpbmcgbG9jYWxlIHByb3ZpZGVyIFwibm9uZVwiIGZv ciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQlkYmljdWxvY2FsZSkpKTsKKwkJZGJpY3Vsb2Nh bGUgPSBOVUxMOworCQlkYmxvY3Byb3ZpZGVyID0gQ09MTFBST1ZJREVSX05PTkU7CisJfQorCiAJ aWYgKGRibG9jcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSkKIAl7CiAJCWlmICghKGlzX2Vu Y29kaW5nX3N1cHBvcnRlZF9ieV9pY3UoZW5jb2RpbmcpKSkKZGlmZiAtLWdpdCBhL3NyYy9iaW4v aW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggNGNmNjg5MmJl ZS4uZWEyNmJmODM2MSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysrIGIv c3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTI1MDEsNiArMjUwMSwxNiBAQCBzZXRsb2NhbGVz KHZvaWQpCiAJCQlsY19tZXNzYWdlcyA9IGxvY2FsZTsKIAl9CiAKKwlpZiAoaWN1X2xvY2FsZSAm JiBsb2NhbGVfcHJvdmlkZXIgPT0gQ09MTFBST1ZJREVSX0lDVSAmJgorCQkocGdfc3RyY2FzZWNt cChpY3VfbG9jYWxlLCAiQyIpID09IDAgfHwKKwkJIHBnX3N0cmNhc2VjbXAoaWN1X2xvY2FsZSwg IlBPU0lYIikgPT0gMCkpCisJeworCQlwZ19sb2dfaW5mbygidXNpbmcgbG9jYWxlIHByb3ZpZGVy IFwibm9uZVwiIGZvciBJQ1UgbG9jYWxlIFwiJXNcIiIsCisJCQkJCSBpY3VfbG9jYWxlKTsKKwkJ aWN1X2xvY2FsZSA9IE5VTEw7CisJCWxvY2FsZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9OT05F OworCX0KKwogCS8qCiAJICogY2Fub25pY2FsaXplIGxvY2FsZSBuYW1lcywgYW5kIG9idGFpbiBh bnkgbWlzc2luZyB2YWx1ZXMgZnJvbSBvdXIKIAkgKiBjdXJyZW50IGVudmlyb25tZW50CmRpZmYg LS1naXQgYS9zcmMvYmluL2luaXRkYi90LzAwMV9pbml0ZGIucGwgYi9zcmMvYmluL2luaXRkYi90 LzAwMV9pbml0ZGIucGwKaW5kZXggZmU2ZDIyNGU1Yi4uZWE5MmIwODUxMSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9pbml0ZGIvdC8wMDFfaW5pdGRiLnBsCisrKyBiL3NyYy9iaW4vaW5pdGRiL3QvMDAx X2luaXRkYi5wbApAQCAtMTExLDYgKzExMSw0NSBAQCBpZiAoJEVOVnt3aXRoX2ljdX0gZXEgJ3ll cycpCiAJCV0sCiAJCSdvcHRpb24gLS1pY3UtbG9jYWxlJyk7CiAKKwkjIHRyYW5zZm9ybWVkIHRv IHByb3ZpZGVyPW5vbmUKKwljb21tYW5kX29rKAorCQlbCisJCQknaW5pdGRiJywgICAgICAgICAg ICAgICAgJy0tbm8tc3luYycsCisJCQknLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxv Y2FsZT1DJywKKwkJCSIkdGVtcGRpci9kYXRhNGEiCisJCV0sCisJCSdvcHRpb24gLS1pY3UtbG9j YWxlPUMnKTsKKworCSMgdHJhbnNmb3JtZWQgdG8gcHJvdmlkZXI9bm9uZQorCWNvbW1hbmRfb2so CisJCVsKKwkJCSdpbml0ZGInLCAgICAgICAgICAgICAgICAnLS1uby1zeW5jJywKKwkJCSctLWxv Y2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPUMnLAorCQkJJy0tbG9jYWxlPUMnLAor CQkJIiR0ZW1wZGlyL2RhdGE0YiIKKwkJXSwKKwkJJ29wdGlvbiAtLWljdS1sb2NhbGU9QyAtLWxv Y2FsZT1DJyk7CisKKwkjIHRyYW5zZm9ybWVkIHRvIHByb3ZpZGVyPW5vbmUKKwljb21tYW5kX29r KAorCQlbCisJCQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycsCisJCQknLS1s b2NhbGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJCSctLWxjLWNvbGxhdGU9 QycsCisJCQkiJHRlbXBkaXIvZGF0YTRjIgorCQldLAorCQknb3B0aW9uIC0taWN1LWxvY2FsZT1D IC0tbGMtY29sbGF0ZT1DJyk7CisKKwkjIHRyYW5zZm9ybWVkIHRvIHByb3ZpZGVyPW5vbmUKKwlj b21tYW5kX29rKAorCQlbCisJCQknaW5pdGRiJywgICAgICAgICAgICAgICAgJy0tbm8tc3luYycs CisJCQknLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJCSctLWxj LWN0eXBlPUMnLAorCQkJIiR0ZW1wZGlyL2RhdGE0ZCIKKwkJXSwKKwkJJ29wdGlvbiAtLWljdS1s b2NhbGU9QyAtLWxjLWN0eXBlPUMnKTsKKwogCWNvbW1hbmRfZmFpbHNfbGlrZSgKIAkJWwogCQkJ J2luaXRkYicsICAgICAgICAgICAgICAgICctLW5vLXN5bmMnLApkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9zY3JpcHRzL2NyZWF0ZWRiLmMgYi9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYwppbmRleCA3 OTM2N2Q5MzNiLi45Y2FmOTE5MGNmIDEwMDY0NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvY3JlYXRl ZGIuYworKysgYi9zcmMvYmluL3NjcmlwdHMvY3JlYXRlZGIuYwpAQCAtMTcyLDYgKzE3MiwxNyBA QCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlsY19jb2xsYXRlID0gbG9jYWxlOwog CX0KIAorCWlmIChsb2NhbGVfcHJvdmlkZXIgJiYgcGdfc3RyY2FzZWNtcChsb2NhbGVfcHJvdmlk ZXIsICJpY3UiKSA9PSAwICYmCisJCWljdV9sb2NhbGUgJiYKKwkJKHBnX3N0cmNhc2VjbXAoaWN1 X2xvY2FsZSwgIkMiKSA9PSAwIHx8CisJCSBwZ19zdHJjYXNlY21wKGljdV9sb2NhbGUsICJQT1NJ WCIpID09IDApKQorCXsKKwkJcGdfbG9nX2luZm8oInVzaW5nIGxvY2FsZSBwcm92aWRlciBcIm5v bmVcIiBmb3IgSUNVIGxvY2FsZSBcIiVzXCIiLAorCQkJCQkgaWN1X2xvY2FsZSk7CisJCWljdV9s b2NhbGUgPSBOVUxMOworCQlsb2NhbGVfcHJvdmlkZXIgPSAibm9uZSI7CisJfQorCiAJaWYgKGVu Y29kaW5nKQogCXsKIAkJaWYgKHBnX2NoYXJfdG9fZW5jb2RpbmcoZW5jb2RpbmcpIDwgMCkKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbCBiL3NyYy9iaW4vc2Ny aXB0cy90LzAyMF9jcmVhdGVkYi5wbAppbmRleCA1YWE2NThiNjcxLi5lYjM2ODJmMGZkIDEwMDY0 NAotLS0gYS9zcmMvYmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKKysrIGIvc3JjL2Jpbi9z Y3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCkBAIC03NSw2ICs3NSwxOCBAQCBpZiAoJEVOVnt3aXRo X2ljdX0gZXEgJ3llcycpCiAJJG5vZGUyLT5jb21tYW5kX29rKAogCQlbICdjcmVhdGVkYicsICct VCcsICd0ZW1wbGF0ZTAnLCAnLS1pY3UtbG9jYWxlJywgJ2VuLVVTJywgJ2Zvb2JhcjU2JyBdLAog CQknY3JlYXRlIGRhdGFiYXNlIHdpdGggaWN1IGxvY2FsZSBmcm9tIHRlbXBsYXRlIGRhdGFiYXNl IHdpdGggaWN1IHByb3ZpZGVyJyk7CisKKwkjIHRyYW5zZm9ybWVkIGludG8gcHJvdmlkZXIgIm5v bmUiCisJJG5vZGUtPmNvbW1hbmRfb2soCisJCVsgJ2NyZWF0ZWRiJywgJy1UJywgJ3RlbXBsYXRl MCcsICctLWxvY2FsZS1wcm92aWRlcj1pY3UnLCAnLS1pY3UtbG9jYWxlPUMnLAorCQkgICd0ZXN0 X25vbmVfaWN1MScgXSwKKwkJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHByb3ZpZGVyICJpY3UiIGFu ZCBJQ1VfTE9DQUxFPSJDIicpOworCisJIyB0cmFuc2Zvcm1lZCBpbnRvIHByb3ZpZGVyICJub25l IgorCSRub2RlLT5jb21tYW5kX29rKAorCQlbICdjcmVhdGVkYicsICctVCcsICd0ZW1wbGF0ZTAn LCAnLS1sb2NhbGUtcHJvdmlkZXI9aWN1JywgJy0taWN1LWxvY2FsZT1DJywKKwkJICAnLS1sYy1j dHlwZT1DJywgJ3Rlc3Rfbm9uZV9pY3VfMicgXSwKKwkJJ2NyZWF0ZSBkYXRhYmFzZSB3aXRoIHBy b3ZpZGVyICJpY3UiIGFuZCBJQ1VfTE9DQUxFPSJDIiBhbmQgTENfQ1RZUEU9QycpOwogfQogZWxz ZQogewpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51 dGY4Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQK aW5kZXggMTJhZmMzYjY1YS4uYzA0MzcyMzFhZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CkBAIC0xMDM1LDYgKzEwMzUsOSBAQCBCRUdJTgog RU5ECiAkJDsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSB1c2VzICJub25lIiBwcm92 aWRlciBpbnN0ZWFkCitDUkVBVEUgQ09MTEFUSU9OIHRlc3RjIChwcm92aWRlciA9IGljdSwgbG9j YWxlPSdDJyk7CitOT1RJQ0U6ICB1c2luZyBsb2NhbGUgcHJvdmlkZXIgIm5vbmUiIGZvciBJQ1Ug bG9jYWxlICJDIgogQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2Nv bGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWVkcyAibG9jYWxlIgogRVJST1I6ICBw YXJhbWV0ZXIgImxvY2FsZSIgbXVzdCBiZSBzcGVjaWZpZWQKIFNFVCBpY3VfdmFsaWRhdGlvbl9s ZXZlbCA9IEVSUk9SOwpAQCAtMTA2OSw3ICsxMDcyLDggQEAgU0VMRUNUIGNvbGxuYW1lIEZST00g cGdfY29sbGF0aW9uIFdIRVJFIGNvbGxuYW1lIExJS0UgJ3Rlc3QlJyBPUkRFUiBCWSAxOwogIHRl c3QwCiAgdGVzdDEKICB0ZXN0NQotKDMgcm93cykKKyB0ZXN0YworKDQgcm93cykKIAogQUxURVIg Q09MTEFUSU9OIHRlc3QxIFJFTkFNRSBUTyB0ZXN0MTE7CiBBTFRFUiBDT0xMQVRJT04gdGVzdDAg UkVOQU1FIFRPIHRlc3QxMTsgLS0gZmFpbApAQCAtMTA5MCw3ICsxMDk0LDggQEAgU0VMRUNUIGNv bGxuYW1lLCBuc3BuYW1lLCBvYmpfZGVzY3JpcHRpb24ocGdfY29sbGF0aW9uLm9pZCwgJ3BnX2Nv bGxhdGlvbicpCiAgdGVzdDAgICAgfCBjb2xsYXRlX3Rlc3RzIHwgVVMgRW5nbGlzaAogIHRlc3Qx MSAgIHwgdGVzdF9zY2hlbWEgICB8IAogIHRlc3Q1ICAgIHwgY29sbGF0ZV90ZXN0cyB8IAotKDMg cm93cykKKyB0ZXN0YyAgICB8IGNvbGxhdGVfdGVzdHMgfCAKKyg0IHJvd3MpCiAKIERST1AgQ09M TEFUSU9OIHRlc3QwLCB0ZXN0X3NjaGVtYS50ZXN0MTEsIHRlc3Q1OwogRFJPUCBDT0xMQVRJT04g dGVzdDA7IC0tIGZhaWwKQEAgLTExMDAsNyArMTEwNSw4IEBAIE5PVElDRTogIGNvbGxhdGlvbiAi dGVzdDAiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZwogU0VMRUNUIGNvbGxuYW1lIEZST00gcGdf Y29sbGF0aW9uIFdIRVJFIGNvbGxuYW1lIExJS0UgJ3Rlc3QlJzsKICBjb2xsbmFtZSAKIC0tLS0t LS0tLS0KLSgwIHJvd3MpCisgdGVzdGMKKygxIHJvdykKIAogRFJPUCBTQ0hFTUEgdGVzdF9zY2hl bWE7CiBEUk9QIFJPTEUgcmVncmVzc190ZXN0X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bGxhdGUuaWN1LnV0Zjguc3FsCmluZGV4IDY1NWM5NjVmNDYuLjYzYzI5ZGZlMmEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCkBAIC0zNzUsNiArMzc1LDkgQEAg JCQ7CiAKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAKKy0tIHVzZXMgIm5vbmUiIHByb3Zp ZGVyIGluc3RlYWQKK0NSRUFURSBDT0xMQVRJT04gdGVzdGMgKHByb3ZpZGVyID0gaWN1LCBsb2Nh bGU9J0MnKTsKKwogQ1JFQVRFIENPTExBVElPTiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2Nv bGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBmYWlsLCBuZWVkcyAibG9jYWxlIgogU0VUIGljdV92 YWxpZGF0aW9uX2xldmVsID0gRVJST1I7CiBDUkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRl ciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNlLW5vd2hlcmUnKTsgLS0gZmFpbHMKLS0gCjIuMzQu MQoK --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename*0=v5-0006-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.pat; filename*1=ch Content-Type: text/x-patch; name="v5-0006-Make-LOCALE-apply-to-ICU_LOCALE-for-CREATE-DATABA.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA3OTczMmIyZjk0ZDUwOTdiNWNlZWJkMmEyMmZkYmI2OTJjNzgwMTU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU dWUsIDI1IEFwciAyMDIzIDE1OjAxOjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSA2LzddIE1h a2UgTE9DQUxFIGFwcGx5IHRvIElDVV9MT0NBTEUgZm9yIENSRUFURSBEQVRBQkFTRS4KCkxPQ0FM RSBpcyBub3cgYW4gYWxpYXMgZm9yIExDX0NPTExBVEUsIExDX0NUWVBFLCBhbmQgKGlmIHRoZSBw cm92aWRlcgppcyBJQ1UpIElDVV9MT0NBTEUuIFRoZSBJQ1UgcHJvdmlkZXIgYWNjZXB0cyBtb3Jl IGxvY2FsZSBuYW1lcyB0aGFuCmxpYmMgKGUuZy4gbGFuZ3VhZ2UgdGFncyBhbmQgbG9jYWxlIG5h bWVzIGNvbnRhaW5pbmcgY29sbGF0aW9uCmF0dHJpYnV0ZXMpLCBzbyBpbiBzb21lIGNhc2VzIExD X0NPTExBVEUsIExDX0NUWVBFLCBhbmQgSUNVX0xPQ0FMRQp3aWxsIHN0aWxsIG5lZWQgdG8gYmUg c3BlY2lmaWVkIHNlcGFyYXRlbHkuCgpQcmV2aW91c2x5LCBMT0NBTEUgYXBwbGllZCBvbmx5IHRv IExDX0NPTExBVEUgYW5kIExDX0NUWVBFIChhbmQKc2ltaWxhcmx5IGZvciAtLWxvY2FsZSBpbiBp bml0ZGIgYW5kIGNyZWF0ZWRiKS4gVGhhdCBjb3VsZCBsZWFkIHRvCmNvbmZ1c2lvbiB3aGVuIHRo ZSBwcm92aWRlciBpcyBpbXBsaWNpdCwgc3VjaCBhcyB3aGVuIGl0IGlzIGluaGVyaXRlZApmcm9t IHRoZSB0ZW1wbGF0ZSBkYXRhYmFzZSwgb3Igd2hlbiBJQ1Ugd2FzIG1hZGUgZGVmYXVsdCBhdCBp bml0ZGIKdGltZSBpbiBjb21taXQgMjdiNjIzNzdiNC4KClJldmVydHMgaW5jb21wbGV0ZSBmaXgg NWNkMWE1YWY0ZC4KCkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vMzM5MTkzMi4xNjgy MTA3MjA5QHNzcy5wZ2gucGEudXMKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFz ZS5zZ21sICAgICAgICAgfCAgNiArKy0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZWRiLnNnbWwg ICAgICAgICAgICAgICAgfCAgNSArKystCiBkb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sICAg ICAgICAgICAgICAgICAgfCAgNyArKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9u Y21kcy5jICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMu YyAgICAgICAgICAgICB8IDE1ICsrKysrKystLS0KIHNyYy9iaW4vaW5pdGRiL2luaXRkYi5jICAg ICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKy0tCiBzcmMvYmluL3NjcmlwdHMvY3JlYXRl ZGIuYyAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrLS0tLS0KIHNyYy9iaW4vc2NyaXB0cy90 LzAyMF9jcmVhdGVkYi5wbCAgICAgICAgICAgICB8ICA0ICstLQogc3JjL3Rlc3QvaWN1L3QvMDEw X2RhdGFiYXNlLnBsICAgICAgICAgICAgICAgIHwgMjMgKysrKysrKysrLS0tLS0tCiAuLi4vcmVn cmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dCAgICAgfCAyOCArKysrKysrKystLS0t LS0tLS0tCiAxMCBmaWxlcyBjaGFuZ2VkLCA2OCBpbnNlcnRpb25zKCspLCA0NiBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZGF0YWJhc2Uuc2dtbAppbmRleCBjNzMwZDAyZTE1Li5k YzU3YmEwYzhiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9kYXRhYmFzZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2RhdGFiYXNlLnNnbWwKQEAgLTE0NSw4 ICsxNDUsMTAgQEAgQ1JFQVRFIERBVEFCQVNFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5sb2NhbGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KICAg ICAgICA8cGFyYT4KLSAgICAgICAgVGhpcyBpcyBhIHNob3J0Y3V0IGZvciBzZXR0aW5nIDxzeW1i b2w+TENfQ09MTEFURTwvc3ltYm9sPgotICAgICAgICBhbmQgPHN5bWJvbD5MQ19DVFlQRTwvc3lt Ym9sPiBhdCBvbmNlLgorICAgICAgICBUaGlzIGlzIGEgc2hvcnRjdXQgZm9yIHNldHRpbmcgPHN5 bWJvbD5MQ19DT0xMQVRFPC9zeW1ib2w+LAorICAgICAgICA8c3ltYm9sPkxDX0NUWVBFPC9zeW1i b2w+IGFuZCA8c3ltYm9sPklDVV9MT0NBTEU8L3N5bWJvbD4gYXQKKyAgICAgICAgb25jZS4gU29t ZSBsb2NhbGVzIGFyZSBvbmx5IHZhbGlkIGZvciBJQ1UsIGFuZCBtdXN0IGJlIHNldCBzZXBhcmF0 ZWx5CisgICAgICAgIHdpdGggPHN5bWJvbD5JQ1VfTE9DQUxFPC9zeW1ib2w+LgogICAgICAgIDwv cGFyYT4KICAgICAgICA8dGlwPgogICAgICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlZGIuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlZGIuc2dtbApp bmRleCA3YzU3M2U4NDhhLi43OTkxMTUzZWNjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZWRiLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVkYi5zZ21sCkBAIC0x MjQsNyArMTI0LDEwIEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPGxpc3RpdGVt PgogICAgICAgIDxwYXJhPgogICAgICAgICBTcGVjaWZpZXMgdGhlIGxvY2FsZSB0byBiZSB1c2Vk IGluIHRoaXMgZGF0YWJhc2UuICBUaGlzIGlzIGVxdWl2YWxlbnQKLSAgICAgICAgdG8gc3BlY2lm eWluZyBib3RoIDxvcHRpb24+LS1sYy1jb2xsYXRlPC9vcHRpb24+IGFuZCA8b3B0aW9uPi0tbGMt Y3R5cGU8L29wdGlvbj4uCisgICAgICAgIHRvIHNwZWNpZnlpbmcgPG9wdGlvbj4tLWxjLWNvbGxh dGU8L29wdGlvbj4sCisgICAgICAgIDxvcHRpb24+LS1sYy1jdHlwZTwvb3B0aW9uPiwgYW5kIDxv cHRpb24+LS1pY3UtbG9jYWxlPC9vcHRpb24+IHRvIHRoZQorICAgICAgICBzYW1lIHZhbHVlLiBT b21lIGxvY2FsZXMgYXJlIG9ubHkgdmFsaWQgZm9yIElDVSBhbmQgbXVzdCBiZSBzZXQgd2l0aAor ICAgICAgICA8b3B0aW9uPi0taWN1LWxvY2FsZTwvb3B0aW9uPi4KICAgICAgICA8L3BhcmE+CiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvaW5pdGRiLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2luaXRkYi5zZ21sCmlu ZGV4IDc2OTkzYWNkZmUuLmQ5ZWYyMWM0MjIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv aW5pdGRiLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9pbml0ZGIuc2dtbApAQCAtMTE2LDkg KzExNiwxMCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgPHBhcmE+CiAgICBUbyBjaG9v c2UgYSBkaWZmZXJlbnQgbG9jYWxlIGZvciB0aGUgY2x1c3RlciwgdXNlIHRoZSBvcHRpb24KICAg IDxvcHRpb24+LS1sb2NhbGU8L29wdGlvbj4uICBUaGVyZSBhcmUgYWxzbyBpbmRpdmlkdWFsIG9w dGlvbnMKLSAgIDxvcHRpb24+LS1sYy0qPC9vcHRpb24+IChzZWUgYmVsb3cpIHRvIHNldCB2YWx1 ZXMgZm9yIHRoZSBpbmRpdmlkdWFsIGxvY2FsZQotICAgY2F0ZWdvcmllcy4gIE5vdGUgdGhhdCBp bmNvbnNpc3RlbnQgc2V0dGluZ3MgZm9yIGRpZmZlcmVudCBsb2NhbGUKLSAgIGNhdGVnb3JpZXMg Y2FuIGdpdmUgbm9uc2Vuc2ljYWwgcmVzdWx0cywgc28gdGhpcyBzaG91bGQgYmUgdXNlZCB3aXRo IGNhcmUuCisgICA8b3B0aW9uPi0tbGMtKjwvb3B0aW9uPiBhbmQgPG9wdGlvbj4tLWljdS1sb2Nh bGU8L29wdGlvbj4gKHNlZSBiZWxvdykgdG8KKyAgIHNldCB2YWx1ZXMgZm9yIHRoZSBpbmRpdmlk dWFsIGxvY2FsZSBjYXRlZ29yaWVzLiAgTm90ZSB0aGF0IGluY29uc2lzdGVudAorICAgc2V0dGlu Z3MgZm9yIGRpZmZlcmVudCBsb2NhbGUgY2F0ZWdvcmllcyBjYW4gZ2l2ZSBub25zZW5zaWNhbCBy ZXN1bHRzLCBzbworICAgdGhpcyBzaG91bGQgYmUgdXNlZCB3aXRoIGNhcmUuCiAgIDwvcGFyYT4K IAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwppbmRleCBlZDY0ZTE3 NTA0Li45YTgzZjlmMzAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRp b25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCkBAIC0z MDIsNyArMzAyLDcgQEAgRGVmaW5lQ29sbGF0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAq bmFtZXMsIExpc3QgKnBhcmFtZXRlcnMsIGJvb2wgaWZfbm90X2UKIAkJCQlpZiAobGFuZ3RhZyAm JiBzdHJjbXAoY29sbGljdWxvY2FsZSwgbGFuZ3RhZykgIT0gMCkKIAkJCQl7CiAJCQkJCWVyZXBv cnQoTk9USUNFLAotCQkJCQkJCShlcnJtc2coInVzaW5nIHN0YW5kYXJkIGZvcm0gXCIlc1wiIGZv ciBsb2NhbGUgXCIlc1wiIiwKKwkJCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFuZGFyZCBmb3JtIFwi JXNcIiBmb3IgSUNVIGxvY2FsZSBcIiVzXCIiLAogCQkJCQkJCQkJbGFuZ3RhZywgY29sbGljdWxv Y2FsZSkpKTsKIAogCQkJCQljb2xsaWN1bG9jYWxlID0gbGFuZ3RhZzsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2RiY29tbWFuZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ri Y29tbWFuZHMuYwppbmRleCA2ZGM3MzdhZWJiLi4xNTRmMjA1NzNjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9kYmNvbW1hbmRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZGJjb21tYW5kcy5jCkBAIC0xMDE5LDcgKzEwMTksMTIgQEAgY3JlYXRlZGIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJaWYgKGRibG9jcHJvdmlkZXIgPT0g J1wwJykKIAkJZGJsb2Nwcm92aWRlciA9IHNyY19sb2Nwcm92aWRlcjsKIAlpZiAoZGJpY3Vsb2Nh bGUgPT0gTlVMTCAmJiBkYmxvY3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9JQ1UpCi0JCWRiaWN1 bG9jYWxlID0gc3JjX2ljdWxvY2FsZTsKKwl7CisJCWlmIChkbG9jYWxlICYmIGRsb2NhbGUtPmFy ZykKKwkJCWRiaWN1bG9jYWxlID0gZGVmR2V0U3RyaW5nKGRsb2NhbGUpOworCQllbHNlCisJCQlk YmljdWxvY2FsZSA9IHNyY19pY3Vsb2NhbGU7CisJfQogCWlmIChkYmljdXJ1bGVzID09IE5VTEwg JiYgZGJsb2Nwcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVKQogCQlkYmljdXJ1bGVzID0gc3Jj X2ljdXJ1bGVzOwogCkBAIC0xMDMzLDEyICsxMDM4LDE0IEBAIGNyZWF0ZWRiKFBhcnNlU3RhdGUg KnBzdGF0ZSwgY29uc3QgQ3JlYXRlZGJTdG10ICpzdG10KQogCWlmICghY2hlY2tfbG9jYWxlKExD X0NPTExBVEUsIGRiY29sbGF0ZSwgJmNhbm9ubmFtZSkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiaW52YWxp ZCBsb2NhbGUgbmFtZTogXCIlc1wiIiwgZGJjb2xsYXRlKSkpOworCQkJCSBlcnJtc2coImludmFs aWQgTENfQ09MTEFURSBsb2NhbGUgbmFtZTogXCIlc1wiIiwgZGJjb2xsYXRlKSwKKwkJCQkgZXJy aGludCgiSWYgdGhlIGxvY2FsZSBuYW1lIGlzIHNwZWNpZmljIHRvIElDVSwgdXNlIElDVV9MT0NB TEUuIikpKTsKIAlkYmNvbGxhdGUgPSBjYW5vbm5hbWU7CiAJaWYgKCFjaGVja19sb2NhbGUoTENf Q1RZUEUsIGRiY3R5cGUsICZjYW5vbm5hbWUpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJj b2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coImludmFsaWQgbG9j YWxlIG5hbWU6IFwiJXNcIiIsIGRiY3R5cGUpKSk7CisJCQkJIGVycm1zZygiaW52YWxpZCBMQ19D VFlQRSBsb2NhbGUgbmFtZTogXCIlc1wiIiwgZGJjdHlwZSksCisJCQkJIGVycmhpbnQoIklmIHRo ZSBsb2NhbGUgbmFtZSBpcyBzcGVjaWZpYyB0byBJQ1UsIHVzZSBJQ1VfTE9DQUxFLiIpKSk7CiAJ ZGJjdHlwZSA9IGNhbm9ubmFtZTsKIAogCWNoZWNrX2VuY29kaW5nX2xvY2FsZV9tYXRjaGVzKGVu Y29kaW5nLCBkYmNvbGxhdGUsIGRiY3R5cGUpOwpAQCAtMTA5NCw3ICsxMTAxLDcgQEAgY3JlYXRl ZGIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBDcmVhdGVkYlN0bXQgKnN0bXQpCiAJCQlpZiAo bGFuZ3RhZyAmJiBzdHJjbXAoZGJpY3Vsb2NhbGUsIGxhbmd0YWcpICE9IDApCiAJCQl7CiAJCQkJ ZXJlcG9ydChOT1RJQ0UsCi0JCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFuZGFyZCBmb3JtIFwiJXNc IiBmb3IgbG9jYWxlIFwiJXNcIiIsCisJCQkJCQkoZXJybXNnKCJ1c2luZyBzdGFuZGFyZCBmb3Jt IFwiJXNcIiBmb3IgSUNVIGxvY2FsZSBcIiVzXCIiLAogCQkJCQkJCQlsYW5ndGFnLCBkYmljdWxv Y2FsZSkpKTsKIAogCQkJCWRiaWN1bG9jYWxlID0gbGFuZ3RhZzsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vaW5pdGRiL2luaXRkYi5jIGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKaW5kZXggZWEyNmJm ODM2MS4uY2NiMjQxNGZlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKKysr IGIvc3JjL2Jpbi9pbml0ZGIvaW5pdGRiLmMKQEAgLTIxNTcsNyArMjE1NywxMSBAQCBjaGVja19s b2NhbGVfbmFtZShpbnQgY2F0ZWdvcnksIGNvbnN0IGNoYXIgKmxvY2FsZSwgY2hhciAqKmNhbm9u bmFtZSkKIAlpZiAocmVzID09IE5VTEwpCiAJewogCQlpZiAoKmxvY2FsZSkKLQkJCXBnX2ZhdGFs KCJpbnZhbGlkIGxvY2FsZSBuYW1lIFwiJXNcIiIsIGxvY2FsZSk7CisJCXsKKwkJCXBnX2xvZ19l cnJvcigiaW52YWxpZCBsb2NhbGUgbmFtZSBcIiVzXCIiLCBsb2NhbGUpOworCQkJcGdfbG9nX2Vy cm9yX2hpbnQoIklmIHRoZSBsb2NhbGUgbmFtZSBpcyBzcGVjaWZpYyB0byBJQ1UsIHVzZSAtLWlj dS1sb2NhbGUuIik7CisJCQlleGl0KDEpOworCQl9CiAJCWVsc2UKIAkJewogCQkJLyoKQEAgLTI0 NjcsNyArMjQ3MSw3IEBAIHNldGxvY2FsZXModm9pZCkKIHsKIAljaGFyCSAgICpjYW5vbm5hbWU7 CiAKLQkvKiBzZXQgZW1wdHkgbGNfKiB2YWx1ZXMgdG8gbG9jYWxlIGNvbmZpZyBpZiBzZXQgKi8K KwkvKiBzZXQgZW1wdHkgbGNfKiBhbmQgaWN1bG9jYWxlIHZhbHVlcyB0byBsb2NhbGUgY29uZmln IGlmIHNldCAqLwogCiAJaWYgKGxvY2FsZV9wcm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORSkK IAl7CkBAIC0yNDk5LDYgKzI1MDMsOCBAQCBzZXRsb2NhbGVzKHZvaWQpCiAJCQlsY19tb25ldGFy eSA9IGxvY2FsZTsKIAkJaWYgKCFsY19tZXNzYWdlcykKIAkJCWxjX21lc3NhZ2VzID0gbG9jYWxl OworCQlpZiAoIWljdV9sb2NhbGUgJiYgbG9jYWxlX3Byb3ZpZGVyID09IENPTExQUk9WSURFUl9J Q1UpCisJCQlpY3VfbG9jYWxlID0gbG9jYWxlOwogCX0KIAogCWlmIChpY3VfbG9jYWxlICYmIGxv Y2FsZV9wcm92aWRlciA9PSBDT0xMUFJPVklERVJfSUNVICYmCkBAIC0zMzkyLDcgKzMzOTgsNiBA QCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQkJYnJlYWs7CiAJCQljYXNlIDg6CiAJ CQkJbG9jYWxlID0gIkMiOwotCQkJCWxvY2FsZV9wcm92aWRlciA9IENPTExQUk9WSURFUl9MSUJD OwogCQkJCWJyZWFrOwogCQkJY2FzZSA5OgogCQkJCXB3ZmlsZW5hbWUgPSBwZ19zdHJkdXAob3B0 YXJnKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vc2NyaXB0cy9jcmVhdGVkYi5jIGIvc3JjL2Jpbi9z Y3JpcHRzL2NyZWF0ZWRiLmMKaW5kZXggOWNhZjkxOTBjZi4uNTFjNGJiMzU5MiAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0ZWRiLmMKKysrIGIvc3JjL2Jpbi9zY3JpcHRzL2NyZWF0 ZWRiLmMKQEAgLTE2NCwxNCArMTY0LDYgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQog CQkJZXhpdCgxKTsKIAl9CiAKLQlpZiAobG9jYWxlKQotCXsKLQkJaWYgKCFsY19jdHlwZSkKLQkJ CWxjX2N0eXBlID0gbG9jYWxlOwotCQlpZiAoIWxjX2NvbGxhdGUpCi0JCQlsY19jb2xsYXRlID0g bG9jYWxlOwotCX0KLQogCWlmIChsb2NhbGVfcHJvdmlkZXIgJiYgcGdfc3RyY2FzZWNtcChsb2Nh bGVfcHJvdmlkZXIsICJpY3UiKSA9PSAwICYmCiAJCWljdV9sb2NhbGUgJiYKIAkJKHBnX3N0cmNh c2VjbXAoaWN1X2xvY2FsZSwgIkMiKSA9PSAwIHx8CkBAIC0yMzAsNiArMjIyLDExIEBAIG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXBwZW5kUFFFeHBCdWZmZXIoJnNxbCwgIiBTVFJB VEVHWSAlcyIsIGZtdElkKHN0cmF0ZWd5KSk7CiAJaWYgKHRlbXBsYXRlKQogCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmc3FsLCAiIFRFTVBMQVRFICVzIiwgZm10SWQodGVtcGxhdGUpKTsKKwlpZiAobG9j YWxlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnNxbCwgIiBMT0NBTEUgIik7CisJCWFw cGVuZFN0cmluZ0xpdGVyYWxDb25uKCZzcWwsIGxvY2FsZSwgY29ubik7CisJfQogCWlmIChsY19j b2xsYXRlKQogCXsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJnNxbCwgIiBMQ19DT0xMQVRFICIp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsIGIvc3JjL2Jp bi9zY3JpcHRzL3QvMDIwX2NyZWF0ZWRiLnBsCmluZGV4IGViMzY4MmYwZmQuLjgxYTk5MzFjMDkg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vc2NyaXB0cy90LzAyMF9jcmVhdGVkYi5wbAorKysgYi9zcmMv YmluL3NjcmlwdHMvdC8wMjBfY3JlYXRlZGIucGwKQEAgLTE2Nyw3ICsxNjcsNyBAQCAkbm9kZS0+ Y29tbWFuZF9jaGVja3NfYWxsKAogCTEsCiAJW3FyL14kL10sCiAJWwotCQlxci9eY3JlYXRlZGI6 IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgaW52YWxpZCBsb2NhbGUg bmFtZXxeY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAg bmV3IGNvbGxhdGlvbiBcKGZvbyc7IFNFTEVDVCAnMVwpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRo ZSBjb2xsYXRpb24gb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlL3MKKwkJcXIvXmNyZWF0ZWRiOiBl cnJvcjogZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjogIGludmFsaWQgTENfQ09MTEFU RSBsb2NhbGUgbmFtZXxeY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6 IEVSUk9SOiAgbmV3IGNvbGxhdGlvbiBcKGZvbyc7IFNFTEVDVCAnMVwpIGlzIGluY29tcGF0aWJs ZSB3aXRoIHRoZSBjb2xsYXRpb24gb2YgdGhlIHRlbXBsYXRlIGRhdGFiYXNlL3MKIAldLAogCSdj cmVhdGVkYiB3aXRoIGluY29ycmVjdCAtLWxjLWNvbGxhdGUnKTsKICRub2RlLT5jb21tYW5kX2No ZWNrc19hbGwoCkBAIC0xNzUsNyArMTc1LDcgQEAgJG5vZGUtPmNvbW1hbmRfY2hlY2tzX2FsbCgK IAkxLAogCVtxci9eJC9dLAogCVsKLQkJcXIvXmNyZWF0ZWRiOiBlcnJvcjogZGF0YWJhc2UgY3Jl YXRpb24gZmFpbGVkOiBFUlJPUjogIGludmFsaWQgbG9jYWxlIG5hbWV8XmNyZWF0ZWRiOiBlcnJv cjogZGF0YWJhc2UgY3JlYXRpb24gZmFpbGVkOiBFUlJPUjogIG5ldyBMQ19DVFlQRSBcKGZvbyc7 IFNFTEVDVCAnMVwpIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBMQ19DVFlQRSBvZiB0aGUgdGVt cGxhdGUgZGF0YWJhc2UvcworCQlxci9eY3JlYXRlZGI6IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlv biBmYWlsZWQ6IEVSUk9SOiAgaW52YWxpZCBMQ19DVFlQRSBsb2NhbGUgbmFtZXxeY3JlYXRlZGI6 IGVycm9yOiBkYXRhYmFzZSBjcmVhdGlvbiBmYWlsZWQ6IEVSUk9SOiAgbmV3IExDX0NUWVBFIFwo Zm9vJzsgU0VMRUNUICcxXCkgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIExDX0NUWVBFIG9mIHRo ZSB0ZW1wbGF0ZSBkYXRhYmFzZS9zCiAJXSwKIAknY3JlYXRlZGIgd2l0aCBpbmNvcnJlY3QgLS1s Yy1jdHlwZScpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJhc2UucGwg Yi9zcmMvdGVzdC9pY3UvdC8wMTBfZGF0YWJhc2UucGwKaW5kZXggNzE1YjFiZmZkNi4uZGY0YWYw MGFmZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaWN1L3QvMDEwX2RhdGFiYXNlLnBsCisrKyBiL3Ny Yy90ZXN0L2ljdS90LzAxMF9kYXRhYmFzZS5wbApAQCAtNTEsMTYgKzUxLDIzIEBAIGIpLAogCSdz b3J0IGJ5IGV4cGxpY2l0IGNvbGxhdGlvbiB1cHBlciBmaXJzdCcpOwogCiAKLSMgVGVzdCBlcnJv ciBjYXNlcyBpbiBDUkVBVEUgREFUQUJBU0UgaW52b2x2aW5nIGxvY2FsZS1yZWxhdGVkIG9wdGlv bnMKKyMgVGVzdCB0aGF0IExPQ0FMRT0nQycgd29ya3MgZm9yIElDVQogCi1teSAoJHJldCwgJHN0 ZG91dCwgJHN0ZGVycikgPSAkbm9kZTEtPnBzcWwoJ3Bvc3RncmVzJywKLQlxe0NSRUFURSBEQVRB QkFTRSBkYmljdSBMT0NBTEVfUFJPVklERVIgaWN1IExPQ0FMRSAnQycgVEVNUExBVEUgdGVtcGxh dGUwIEVOQ09ESU5HIFVURjh9KTsKLWlzbnQoJHJldCwgMCwKLQkiSUNVIGxvY2FsZSBtdXN0IGJl IHNwZWNpZmllZCBmb3IgSUNVIHByb3ZpZGVyOiBleGl0IGNvZGUgbm90IDAiKTsKK215ICRyZXQx ID0gJG5vZGUxLT5wc3FsKCdwb3N0Z3JlcycsCisJcXtDUkVBVEUgREFUQUJBU0UgZGJpY3UyIExP Q0FMRV9QUk9WSURFUiBpY3UgTE9DQUxFICdDJyBURU1QTEFURSB0ZW1wbGF0ZTAgRU5DT0RJTkcg VVRGOH0pOworaXMoJHJldDEsIDAsCisJIkMgbG9jYWxlIHdvcmtzIGZvciBJQ1UiKTsKKworIyBU ZXN0IHRoYXQgSUNVLXNwZWNpZmljIGxvY2FsZSBzdHJpbmcgbXVzdCBiZSBzcGVjaWZpZWQgd2l0 aCBJQ1VfTE9DQUxFLAorIyBub3QgTE9DQUxFCisKK215ICgkcmV0MiwgJHN0ZG91dCwgJHN0ZGVy cikgPSAkbm9kZTEtPnBzcWwoJ3Bvc3RncmVzJywKKwlxe0NSRUFURSBEQVRBQkFTRSBkYmljdTMg TE9DQUxFX1BST1ZJREVSIGljdSBMT0NBTEUgJ0Bjb2xTdHJlbmd0aD1wcmltYXJ5JyBURU1QTEFU RSB0ZW1wbGF0ZTAgRU5DT0RJTkcgVVRGOH0pOworaXNudCgkcmV0MiwgMCwKKwkiSUNVLXNwZWNp ZmljIGxvY2FsZSBtdXN0IGJlIHNwZWNpZmllZCB3aXRoIElDVV9MT0NBTEU6IGV4aXQgY29kZSBu b3QgMCIpOwogbGlrZSgKIAkkc3RkZXJyLAotCXFyL0VSUk9SOiAgSUNVIGxvY2FsZSBtdXN0IGJl IHNwZWNpZmllZC8sCi0JIklDVSBsb2NhbGUgbXVzdCBiZSBzcGVjaWZpZWQgZm9yIElDVSBwcm92 aWRlcjogZXJyb3IgbWVzc2FnZSIpOwotCisJcXIvRVJST1I6ICBpbnZhbGlkIExDX0NPTExBVEUg bG9jYWxlIG5hbWUvLAorCSJJQ1Utc3BlY2lmaWMgbG9jYWxlIG11c3QgYmUgc3BlY2lmaWVkIHdp dGggSUNVX0xPQ0FMRTogZXJyb3IgbWVzc2FnZSIpOwogCiBkb25lX3Rlc3RpbmcoKTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbGxhdGUuaWN1LnV0Zjgub3V0CmluZGV4IGMwNDM3 MjMxYWQuLjM5ZjYxY2EyODEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29sbGF0ZS5pY3UudXRmOC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xs YXRlLmljdS51dGY4Lm91dApAQCAtMTA1OCwxMSArMTA1OCwxMSBAQCBDUkVBVEUgQ09MTEFUSU9O IHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BBU0RGJyk7IERST1AgQ09MTEFUSU9O IHRlc3R4OwogV0FSTklORzogIGNvdWxkIG5vdCBjb252ZXJ0IGxvY2FsZSBuYW1lICJAQVNERiIg dG8gbGFuZ3VhZ2UgdGFnOiBVX0lMTEVHQUxfQVJHVU1FTlRfRVJST1IKIC0tIHRlc3Qgc3BlY2lh bCB2YXJpYW50cwogQ1JFQVRFIENPTExBVElPTiB0ZXN0eCAocHJvdmlkZXIgPSBpY3UsIGxvY2Fs ZSA9ICdARVVSTycpOyBEUk9QIENPTExBVElPTiB0ZXN0eDsKLU5PVElDRTogIHVzaW5nIHN0YW5k YXJkIGZvcm0gInVuZC11LWN1LWV1ciIgZm9yIGxvY2FsZSAiQEVVUk8iCitOT1RJQ0U6ICB1c2lu ZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1jdS1ldXIiIGZvciBJQ1UgbG9jYWxlICJARVVSTyIKIENS RUFURSBDT0xMQVRJT04gdGVzdHggKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQHBpbnlpbicp OyBEUk9QIENPTExBVElPTiB0ZXN0eDsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVu ZC11LWNvLXBpbnlpbiIgZm9yIGxvY2FsZSAiQHBpbnlpbiIKK05PVElDRTogIHVzaW5nIHN0YW5k YXJkIGZvcm0gInVuZC11LWNvLXBpbnlpbiIgZm9yIElDVSBsb2NhbGUgIkBwaW55aW4iCiBDUkVB VEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0BzdHJva2UnKTsg RFJPUCBDT0xMQVRJT04gdGVzdHg7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQt dS1jby1zdHJva2UiIGZvciBsb2NhbGUgIkBzdHJva2UiCitOT1RJQ0U6ICB1c2luZyBzdGFuZGFy ZCBmb3JtICJ1bmQtdS1jby1zdHJva2UiIGZvciBJQ1UgbG9jYWxlICJAc3Ryb2tlIgogQ1JFQVRF IENPTExBVElPTiB0ZXN0NCBGUk9NIG5vbnNlbnNlOwogRVJST1I6ICBjb2xsYXRpb24gIm5vbnNl bnNlIiBmb3IgZW5jb2RpbmcgIlVURjgiIGRvZXMgbm90IGV4aXN0CiBDUkVBVEUgQ09MTEFUSU9O IHRlc3Q1IEZST00gdGVzdDA7CkBAIC0xMjExLDkgKzEyMTEsOSBAQCBTRUxFQ1QgJ2NvdMOpJyA8 ICdjw7R0ZScgQ09MTEFURSAidW5kLXgtaWN1IiwgJ2NvdMOpJyA+ICdjw7R0ZScgQ09MTEFURSB0 ZXN0Y29sbAogKDEgcm93KQogCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3Rjb2xsX2xvd2VyX2ZpcnN0 IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xDYXNlRmlyc3Q9bG93ZXInKTsKLU5PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLWxvd2VyIiBmb3IgbG9jYWxlICJAY29s Q2FzZUZpcnN0PWxvd2VyIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kLXUta2Yt bG93ZXIiIGZvciBJQ1UgbG9jYWxlICJAY29sQ2FzZUZpcnN0PWxvd2VyIgogQ1JFQVRFIENPTExB VElPTiB0ZXN0Y29sbF91cHBlcl9maXJzdCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29s Q2FzZUZpcnN0PXVwcGVyJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1r Zi11cHBlciIgZm9yIGxvY2FsZSAiQGNvbENhc2VGaXJzdD11cHBlciIKK05PVElDRTogIHVzaW5n IHN0YW5kYXJkIGZvcm0gInVuZC11LWtmLXVwcGVyIiBmb3IgSUNVIGxvY2FsZSAiQGNvbENhc2VG aXJzdD11cHBlciIKIFNFTEVDVCAnYWFhJyA8ICdBQUEnIENPTExBVEUgdGVzdGNvbGxfbG93ZXJf Zmlyc3QsICdhYWEnID4gJ0FBQScgQ09MTEFURSB0ZXN0Y29sbF91cHBlcl9maXJzdDsKICA/Y29s dW1uPyB8ID9jb2x1bW4/IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0xMjIxLDcgKzEyMjEs NyBAQCBTRUxFQ1QgJ2FhYScgPCAnQUFBJyBDT0xMQVRFIHRlc3Rjb2xsX2xvd2VyX2ZpcnN0LCAn YWFhJyA+ICdBQUEnIENPTExBVEUgdGVzdGNvbAogKDEgcm93KQogCiBDUkVBVEUgQ09MTEFUSU9O IHRlc3Rjb2xsX3NoaWZ0ZWQgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnQGNvbEFsdGVybmF0 ZT1zaGlmdGVkJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rYS1zaGlm dGVkIiBmb3IgbG9jYWxlICJAY29sQWx0ZXJuYXRlPXNoaWZ0ZWQiCitOT1RJQ0U6ICB1c2luZyBz dGFuZGFyZCBmb3JtICJ1bmQtdS1rYS1zaGlmdGVkIiBmb3IgSUNVIGxvY2FsZSAiQGNvbEFsdGVy bmF0ZT1zaGlmdGVkIgogU0VMRUNUICdkZS1sdWdlJyA8ICdkZWFuemEnIENPTExBVEUgInVuZC14 LWljdSIsICdkZS1sdWdlJyA+ICdkZWFuemEnIENPTExBVEUgdGVzdGNvbGxfc2hpZnRlZDsKICA/ Y29sdW1uPyB8ID9jb2x1bW4/IAogLS0tLS0tLS0tLSstLS0tLS0tLS0tCkBAIC0xMjM4LDEyICsx MjM4LDEyIEBAIFNFTEVDVCAnQS0yMScgPiAnQS0xMjMnIENPTExBVEUgInVuZC14LWljdSIsICdB LTIxJyA8ICdBLTEyMycgQ09MTEFURSB0ZXN0Y29sbF9uCiAoMSByb3cpCiAKIENSRUFURSBDT0xM QVRJT04gdGVzdGNvbGxfZXJyb3IxIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ0Bjb2xOdW1l cmljPWxvd2VyJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQtdS1rbi1sb3dl ciIgZm9yIGxvY2FsZSAiQGNvbE51bWVyaWM9bG93ZXIiCitOT1RJQ0U6ICB1c2luZyBzdGFuZGFy ZCBmb3JtICJ1bmQtdS1rbi1sb3dlciIgZm9yIElDVSBsb2NhbGUgIkBjb2xOdW1lcmljPWxvd2Vy IgogRVJST1I6ICBjb3VsZCBub3Qgb3BlbiBjb2xsYXRvciBmb3IgbG9jYWxlICJ1bmQtdS1rbi1s b3dlciI6IFVfSUxMRUdBTF9BUkdVTUVOVF9FUlJPUgogLS0gdGVzdCB0aGF0IGF0dHJpYnV0ZXMg bm90IGhhbmRsZWQgYnkgaWN1X3NldF9jb2xsYXRpb25fYXR0cmlidXRlcygpCiAtLSAoaGFuZGxl ZCBieSB1Y29sX29wZW4oKSBkaXJlY3RseSkgYWxzbyB3b3JrCiBDUkVBVEUgQ09MTEFUSU9OIHRl c3Rjb2xsX2RlX3Bob25lYm9vayAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdkZUBjb2xsYXRp b249cGhvbmVib29rJyk7Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJkZS11LWNvLXBo b25lYmsiIGZvciBsb2NhbGUgImRlQGNvbGxhdGlvbj1waG9uZWJvb2siCitOT1RJQ0U6ICB1c2lu ZyBzdGFuZGFyZCBmb3JtICJkZS11LWNvLXBob25lYmsiIGZvciBJQ1UgbG9jYWxlICJkZUBjb2xs YXRpb249cGhvbmVib29rIgogU0VMRUNUICdHb2xkbWFubicgPCAnR8O2dHonIENPTExBVEUgImRl LXgtaWN1IiwgJ0dvbGRtYW5uJyA+ICdHw7Z0eicgQ09MTEFURSB0ZXN0Y29sbF9kZV9waG9uZWJv b2s7CiAgP2NvbHVtbj8gfCA/Y29sdW1uPyAKIC0tLS0tLS0tLS0rLS0tLS0tLS0tLQpAQCAtMTI1 Miw3ICsxMjUyLDcgQEAgU0VMRUNUICdHb2xkbWFubicgPCAnR8O2dHonIENPTExBVEUgImRlLXgt aWN1IiwgJ0dvbGRtYW5uJyA+ICdHw7Z0eicgQ09MTEFURSB0ZXMKIAogLS0gcnVsZXMKIENSRUFU RSBDT0xMQVRJT04gdGVzdGNvbGxfcnVsZXMxIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJycs IHJ1bGVzID0gJyZhIDwgZycpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBm b3IgbG9jYWxlICIiCitOT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1Ug bG9jYWxlICIiCiBDUkVBVEUgVEFCTEUgdGVzdDcgKGEgdGV4dCk7CiAtLSBleGFtcGxlIGZyb20g aHR0cHM6Ly91bmljb2RlLW9yZy5naXRodWIuaW8vaWN1L3VzZXJndWlkZS9jb2xsYXRpb24vY3Vz dG9taXphdGlvbi8jc3ludGF4CiBJTlNFUlQgSU5UTyB0ZXN0NyBWQUxVRVMgKCdBYmVybmF0aHkn KSwgKCdhcHBsZScpLCAoJ2JpcmQnKSwgKCdCb3N0b24nKSwgKCdHcmFoYW0nKSwgKCdncmVlbicp OwpAQCAtMTI4MCwxMyArMTI4MCwxMyBAQCBTRUxFQ1QgKiBGUk9NIHRlc3Q3IE9SREVSIEJZIGEg Q09MTEFURSB0ZXN0Y29sbF9ydWxlczE7CiAKIERST1AgVEFCTEUgdGVzdDc7CiBDUkVBVEUgQ09M TEFUSU9OIHRlc3Rjb2xsX3J1bGVzeCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnLCBydWxl cyA9ICchIXdyb25nISEnKTsKLU5PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9y IGxvY2FsZSAiIgorTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgSUNVIGxv Y2FsZSAiIgogRVJST1I6ICBjb3VsZCBub3Qgb3BlbiBjb2xsYXRvciBmb3IgbG9jYWxlICJ1bmQi IHdpdGggcnVsZXMgIiEhd3JvbmchISI6IFVfSU5WQUxJRF9GT1JNQVRfRVJST1IKIC0tIG5vbmRl dGVybWluaXN0aWMgY29sbGF0aW9ucwogQ1JFQVRFIENPTExBVElPTiBjdGVzdF9kZXQgKHByb3Zp ZGVyID0gaWN1LCBsb2NhbGUgPSAnJywgZGV0ZXJtaW5pc3RpYyA9IHRydWUpOwotTk9USUNFOiAg dXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgbG9jYWxlICIiCitOT1RJQ0U6ICB1c2luZyBz dGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9jYWxlICIiCiBDUkVBVEUgQ09MTEFUSU9OIGN0 ZXN0X25vbmRldCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICcnLCBkZXRlcm1pbmlzdGljID0g ZmFsc2UpOwotTk9USUNFOiAgdXNpbmcgc3RhbmRhcmQgZm9ybSAidW5kIiBmb3IgbG9jYWxlICIi CitOT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBJQ1UgbG9jYWxlICIiCiBD UkVBVEUgVEFCTEUgdGVzdDYgKGEgaW50LCBiIHRleHQpOwogLS0gc2FtZSBzdHJpbmcgaW4gZGlm ZmVyZW50IG5vcm1hbCBmb3JtcwogSU5TRVJUIElOVE8gdGVzdDYgVkFMVUVTICgxLCBVJidcMDBF NGJjJyk7CkBAIC0xMzM2LDkgKzEzMzYsOSBAQCBTRUxFQ1QgKiBGUk9NIHRlc3Q2YSBXSEVSRSBi ID0gQVJSQVlbJ8OkYmMnXSBDT0xMQVRFIGN0ZXN0X25vbmRldDsKICgyIHJvd3MpCiAKIENSRUFU RSBDT0xMQVRJT04gY2FzZV9zZW5zaXRpdmUgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnJyk7 Ci1OT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJ1bmQiIGZvciBsb2NhbGUgIiIKK05PVElD RTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZCIgZm9yIElDVSBsb2NhbGUgIiIKIENSRUFURSBD T0xMQVRJT04gY2FzZV9pbnNlbnNpdGl2ZSAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdAY29s U3RyZW5ndGg9c2Vjb25kYXJ5JywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsKLU5PVElDRTogIHVz aW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtzLWxldmVsMiIgZm9yIGxvY2FsZSAiQGNvbFN0cmVu Z3RoPXNlY29uZGFyeSIKK05PVElDRTogIHVzaW5nIHN0YW5kYXJkIGZvcm0gInVuZC11LWtzLWxl dmVsMiIgZm9yIElDVSBsb2NhbGUgIkBjb2xTdHJlbmd0aD1zZWNvbmRhcnkiCiBTRUxFQ1QgJ2Fi YycgPD0gJ0FCQycgQ09MTEFURSBjYXNlX3NlbnNpdGl2ZSwgJ2FiYycgPj0gJ0FCQycgQ09MTEFU RSBjYXNlX3NlbnNpdGl2ZTsKICA/Y29sdW1uPyB8ID9jb2x1bW4/IAogLS0tLS0tLS0tLSstLS0t LS0tLS0tCi0tIAoyLjM0LjEKCg== --=-MRRvylN7ApmEOtfiDDp5 Content-Disposition: attachment; filename="v5-0007-Add-default_collation_provider-GUC.patch" Content-Type: text/x-patch; name="v5-0007-Add-default_collation_provider-GUC.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAzY2E4ZTBhODRmNjU5M2ZmZmY5YTQwOWJkMzFkYzFjOWVkMjUzZDNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDExIE1heSAyMDIzIDEyOjU0OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2NSA3LzddIEFk ZCBkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlciBHVUMuCgpDb250cm9scyBkZWZhdWx0IGNvbGxh dGlvbiBwcm92aWRlciBmb3IgQ1JFQVRFIENPTExBVElPTi4gRG9lcyBub3QKYWZmZWN0IENSRUFU RSBEQVRBQkFTRSwgd2hpY2ggZ2V0cyBpdHMgZGVmYXVsdCBmcm9tIHRoZSB0ZW1wbGF0ZQpkYXRh YmFzZS4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAg IHwgMTcgKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNt ZHMuYyAgICAgICAgICAgfCAgMyArKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxl cy5jICAgICAgICAgICAgfCAxOCArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSAgfCAgNCArKysrCiBzcmMvaW5jbHVkZS9jb21t YW5kcy9jb2xsYXRpb25jbWRzLmggICAgICAgICAgIHwgIDIgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQgfCAxNyArKysrKysrKysrKysrKysrKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY29sbGF0ZS5pY3UudXRmOC5zcWwgICAgICB8IDEwICsrKysrKysr KysKIDcgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcu c2dtbAppbmRleCBjNGE5ZGNiOWFlLi4wMzhlY2Y5ODExIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC05ODE5LDYg Kzk4MTksMjMgQEAgU0VUIFhNTCBPUFRJT04geyBET0NVTUVOVCB8IENPTlRFTlQgfTsKICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkg aWQ9Imd1Yy1kZWZhdWx0LWNvbGxhdGlvbi1wcm92aWRlciIgeHJlZmxhYmVsPSJkZWZhdWx0X2Nv bGxhdGlvbl9wcm92aWRlciI+CisgICAgICA8dGVybT48dmFybmFtZT5kZWZhdWx0X2NvbGxhdGlv bl9wcm92aWRlcjwvdmFybmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQorICAgICAgPGluZGV4dGVy bT4KKyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5kZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlcjwv dmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgRGVmYXVsdCBjb2xsYXRpb24gcHJvdmlkZXIgZm9yIDxjb21tYW5kPkNSRUFURQorICAg ICAgICBDT0xMQVRJT048L2NvbW1hbmQ+LiBEb2VzIG5vdCBhZmZlY3QgPGNvbW1hbmQ+Q1JFQVRF CisgICAgICAgIERBVEFCQVNFPC9jb21tYW5kPiwgd2hpY2ggZ2V0cyB0aGUgZGVmYXVsdCBjb2xs YXRpb24gcHJvdmlkZXIgZnJvbSB0aGUKKyAgICAgICAgdGVtcGxhdGUgZGF0YWJhc2UuIFZhbGlk IHZhbHVlcyBhcmUgPGxpdGVyYWw+aWN1PC9saXRlcmFsPiBhbmQKKyAgICAgICAgPGxpdGVyYWw+ bGliYzwvbGl0ZXJhbD4uIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmxpYmM8L2xpdGVyYWw+Lgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CiAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1pY3UtdmFsaWRhdGlvbi1sZXZlbCIgeHJlZmxh YmVsPSJpY3VfdmFsaWRhdGlvbl9sZXZlbCI+CiAgICAgICA8dGVybT48dmFybmFtZT5pY3VfdmFs aWRhdGlvbl9sZXZlbDwvdmFybmFtZT4gKDx0eXBlPmVudW08L3R5cGU+KQogICAgICAgPGluZGV4 dGVybT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGxhdGlvbmNtZHMuYwppbmRleCA5YTgzZjlmMzAzLi5i NDJhNjYwMzg2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xsYXRpb25jbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sbGF0aW9uY21kcy5jCkBAIC00Nyw2ICs0 Nyw3IEBAIHR5cGVkZWYgc3RydWN0CiAJaW50CQkJZW5jOwkJCS8qIGVuY29kaW5nICovCiB9IENv bGxBbGlhc0RhdGE7CiAKK2ludAkJZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXIgPSAoaW50KSBD T0xMUFJPVklERVJfTElCQzsKIAogLyoKICAqIENSRUFURSBDT0xMQVRJT04KQEAgLTIyOCw3ICsy MjksNyBAQCBEZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywg TGlzdCAqcGFyYW1ldGVycywgYm9vbCBpZl9ub3RfZQogCQkJCQkJCQljb2xscHJvdmlkZXJzdHIp KSk7CiAJCX0KIAkJZWxzZQotCQkJY29sbHByb3ZpZGVyID0gQ09MTFBST1ZJREVSX0xJQkM7CisJ CQljb2xscHJvdmlkZXIgPSAoY2hhcikgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXI7CiAKIAkJ aWYgKGNvbGxwcm92aWRlciA9PSBDT0xMUFJPVklERVJfTk9ORQogCQkJJiYgKGxvY2FsZUVsIHx8 IGxjY29sbGF0ZUVsIHx8IGxjY3R5cGVFbCkpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5j CmluZGV4IDhjODQzZjRhYjYuLmQ2NGIzYTlhNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3Rh Ymxlcy5jCkBAIC0zNSw4ICszNSwxMCBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3Zlcnku aCIKICNpbmNsdWRlICJhcmNoaXZlL2FyY2hpdmVfbW9kdWxlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgogI2luY2x1 ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxl c3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvdXNlci5oIgpAQCAtMTY2LDYgKzE2OCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZp Z19lbnVtX2VudHJ5IGludGVydmFsc3R5bGVfb3B0aW9uc1tdID0gewogCXtOVUxMLCAwLCBmYWxz ZX0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgY29sbGF0aW9u X3Byb3ZpZGVyX29wdGlvbnNbXSA9IHsKKwl7ImljdSIsIChpbnQpICdpJywgZmFsc2V9LAorCXsi bGliYyIsIChpbnQpICdjJywgZmFsc2V9LAorCXtOVUxMLCAwLCBmYWxzZX0KK307CisKIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgaWN1X3ZhbGlkYXRpb25fbGV2ZWxfb3B0 aW9uc1tdID0gewogCXsiZGlzYWJsZWQiLCAtMSwgZmFsc2V9LAogCXsiZGVidWc1IiwgREVCVUc1 LCBmYWxzZX0sCkBAIC00NjgzLDYgKzQ2OTEsMTYgQEAgc3RydWN0IGNvbmZpZ19lbnVtIENvbmZp Z3VyZU5hbWVzRW51bVtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsiZGVm YXVsdF9jb2xsYXRpb25fcHJvdmlkZXIiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fTE9DQUxF LAorCQkgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IGNvbGxhdGlvbiBwcm92aWRlciBmb3IgQ1JFQVRF IENPTExBVElPTi4iKSwKKwkJIE5VTEwKKwkJfSwKKwkJJmRlZmF1bHRfY29sbGF0aW9uX3Byb3Zp ZGVyLAorCQkoaW50KSBDT0xMUFJPVklERVJfTElCQywgY29sbGF0aW9uX3Byb3ZpZGVyX29wdGlv bnMsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAorCiAJewogCQl7ImljdV92YWxpZGF0aW9uX2xl dmVsIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX0xPQ0FMRSwKIAkJIGdldHRleHRfbm9vcCgi TG9nIGxldmVsIGZvciByZXBvcnRpbmcgaW52YWxpZCBJQ1UgbG9jYWxlIHN0cmluZ3MuIiksCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggODdi YWQ4ZWNiZi4uYjJiMDE1YjMxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQpAQCAtNzM0LDYgKzczNCwxMCBAQAogI2xjX251bWVyaWMgPSAnQycJ CQkjIGxvY2FsZSBmb3IgbnVtYmVyIGZvcm1hdHRpbmcKICNsY190aW1lID0gJ0MnCQkJCSMgbG9j YWxlIGZvciB0aW1lIGZvcm1hdHRpbmcKIAorI2RlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyID0g J2xpYmMnCSMgZGVmYXVsdCBjb2xsYXRpb24gcHJvdmlkZXIKKwkJCQkJIyBmb3IgQ1JFQVRFIENP TExBVElPTgorCQkJCQkjIChub25lLCBpY3UsIGxpYmMpCisKICNpY3VfdmFsaWRhdGlvbl9sZXZl bCA9IFdBUk5JTkcJCSMgcmVwb3J0IElDVSBsb2NhbGUgdmFsaWRhdGlvbgogCQkJCQkjIGVycm9y cyBhdCB0aGUgZ2l2ZW4gbGV2ZWwKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv Y29sbGF0aW9uY21kcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sbGF0aW9uY21kcy5oCmlu ZGV4IGI3NmM3YjNkYzMuLmY1NDM4OTUyNWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL2NvbGxhdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xsYXRpb25j bWRzLmgKQEAgLTE4LDYgKzE4LDggQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3Mu aCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogCitleHRlcm4gUEdETExJTVBPUlQg aW50IGRlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyOworCiBleHRlcm4gT2JqZWN0QWRkcmVzcyBE ZWZpbmVDb2xsYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpuYW1lcywgTGlzdCAqcGFy YW1ldGVycywgYm9vbCBpZl9ub3RfZXhpc3RzKTsKIGV4dGVybiB2b2lkIElzVGhlcmVDb2xsYXRp b25Jbk5hbWVzcGFjZShjb25zdCBjaGFyICpjb2xsbmFtZSwgT2lkIG5zcE9pZCk7CiBleHRlcm4g T2JqZWN0QWRkcmVzcyBBbHRlckNvbGxhdGlvbihBbHRlckNvbGxhdGlvblN0bXQgKnN0bXQpOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2xsYXRlLmljdS51dGY4Lm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sbGF0ZS5pY3UudXRmOC5vdXQKaW5kZXgg MzlmNjFjYTI4MS4uZDlkYThkMTMxMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jb2xsYXRlLmljdS51dGY4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvbGxhdGUuaWN1LnV0Zjgub3V0CkBAIC0xMDM4LDYgKzEwMzgsMjMgQEAgUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIC0tIHVzZXMgIm5vbmUiIHByb3ZpZGVyIGluc3RlYWQKIENSRUFURSBD T0xMQVRJT04gdGVzdGMgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGU9J0MnKTsKIE5PVElDRTogIHVz aW5nIGxvY2FsZSBwcm92aWRlciAibm9uZSIgZm9yIElDVSBsb2NhbGUgIkMiCitTRVQgZGVmYXVs dF9jb2xsYXRpb25fcHJvdmlkZXIgPSAnbGliYyc7CitDUkVBVEUgQ09MTEFUSU9OIGRlZl9saWJj IChMT0NBTEUgPSAnQycpOworU0VMRUNUIGNvbGxuYW1lLCBjb2xscHJvdmlkZXIgRlJPTSBwZ19j b2xsYXRpb24gV0hFUkUgY29sbG5hbWU9J2RlZl9saWJjJzsKKyBjb2xsbmFtZSB8IGNvbGxwcm92 aWRlciAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBkZWZfbGliYyB8IGMKKygxIHJvdykK KworU0VUIGRlZmF1bHRfY29sbGF0aW9uX3Byb3ZpZGVyID0gJ2ljdSc7CitDUkVBVEUgQ09MTEFU SU9OIGRlZl9pY3UgKExPQ0FMRSA9ICd1bmQnKTsKK1NFTEVDVCBjb2xsbmFtZSwgY29sbHByb3Zp ZGVyIEZST00gcGdfY29sbGF0aW9uIFdIRVJFIGNvbGxuYW1lPSdkZWZfaWN1JzsKKyBjb2xsbmFt ZSB8IGNvbGxwcm92aWRlciAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBkZWZfaWN1ICB8 IGkKKygxIHJvdykKKworUkVTRVQgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXI7CiBDUkVBVEUg Q09MTEFUSU9OIHRlc3QzIChwcm92aWRlciA9IGljdSwgbGNfY29sbGF0ZSA9ICdlbl9VUy51dGY4 Jyk7IC0tIGZhaWwsIG5lZWRzICJsb2NhbGUiCiBFUlJPUjogIHBhcmFtZXRlciAibG9jYWxlIiBt dXN0IGJlIHNwZWNpZmllZAogU0VUIGljdV92YWxpZGF0aW9uX2xldmVsID0gRVJST1I7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jb2xsYXRlLmljdS51dGY4LnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCmluZGV4IDYzYzI5ZGZlMmEuLjEz MDg5YzdmOGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0 Zjguc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbGxhdGUuaWN1LnV0Zjguc3FsCkBA IC0zNzgsNiArMzc4LDE2IEBAIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiAtLSB1c2VzICJu b25lIiBwcm92aWRlciBpbnN0ZWFkCiBDUkVBVEUgQ09MTEFUSU9OIHRlc3RjIChwcm92aWRlciA9 IGljdSwgbG9jYWxlPSdDJyk7CiAKK1NFVCBkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlciA9ICds aWJjJzsKK0NSRUFURSBDT0xMQVRJT04gZGVmX2xpYmMgKExPQ0FMRSA9ICdDJyk7CitTRUxFQ1Qg Y29sbG5hbWUsIGNvbGxwcm92aWRlciBGUk9NIHBnX2NvbGxhdGlvbiBXSEVSRSBjb2xsbmFtZT0n ZGVmX2xpYmMnOworCitTRVQgZGVmYXVsdF9jb2xsYXRpb25fcHJvdmlkZXIgPSAnaWN1JzsKK0NS RUFURSBDT0xMQVRJT04gZGVmX2ljdSAoTE9DQUxFID0gJ3VuZCcpOworU0VMRUNUIGNvbGxuYW1l LCBjb2xscHJvdmlkZXIgRlJPTSBwZ19jb2xsYXRpb24gV0hFUkUgY29sbG5hbWU9J2RlZl9pY3Un OworCitSRVNFVCBkZWZhdWx0X2NvbGxhdGlvbl9wcm92aWRlcjsKKwogQ1JFQVRFIENPTExBVElP TiB0ZXN0MyAocHJvdmlkZXIgPSBpY3UsIGxjX2NvbGxhdGUgPSAnZW5fVVMudXRmOCcpOyAtLSBm YWlsLCBuZWVkcyAibG9jYWxlIgogU0VUIGljdV92YWxpZGF0aW9uX2xldmVsID0gRVJST1I7CiBD UkVBVEUgQ09MTEFUSU9OIHRlc3R4IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ25vbnNlbnNl LW5vd2hlcmUnKTsgLS0gZmFpbHMKLS0gCjIuMzQuMQoK --=-MRRvylN7ApmEOtfiDDp5--