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 1l6b8V-0006S0-6V for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Feb 2021 15:29:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l6b8U-0006dX-2d for pgsql-hackers@arkaria.postgresql.org; Mon, 01 Feb 2021 15:29:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l6b8T-0006dP-C1 for pgsql-hackers@lists.postgresql.org; Mon, 01 Feb 2021 15:29:05 +0000 Received: from mail.postgrespro.ru ([93.174.131.139]) by makus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l6b8O-00056m-B3 for pgsql-hackers@lists.postgresql.org; Mon, 01 Feb 2021 15:29:04 +0000 Received: from mail.postgrespro.ru (cyclops.postgrespro.ru [93.174.131.138]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mail.postgrespro.ru (Postfix) with ESMTPSA id 89CD021C332C; Mon, 1 Feb 2021 18:28:57 +0300 (MSK) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=postgrespro.ru; s=mail; t=1612193337; bh=3Wt+yHyeXF3pxKYjsFPmMSlNK5PLxyuvuY/3i9bNuEU=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=MxcE4ASCKNEhEAPgBCcFfIezhcSa1qwjs4D15LawI6ykqxYGBFfY46VJ4DbSkzeZ1 2iYiU9JE+IDcCB9vR9KiEM3lT0oumwTNeOl8mr6oswUyPv/rTkqlk6SMe3M1dV/fgR iJTs4Gafd+LC6lpR2/XZpBrD5Nvf/GW+YTMUo8mY= MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_07cc10f8654091bb7e0248c1b7fda224" Content-Transfer-Encoding: 7bit Date: Mon, 01 Feb 2021 18:28:57 +0300 From: Alexey Kondratov To: Michael Paquier Cc: Alvaro Herrera , Justin Pryzby , Peter Eisentraut , Masahiko Sawada , Steve Singer , pgsql-hackers@lists.postgresql.org, Robert Haas , Alexander Korotkov , Masahiko Sawada , Jose Luis Tallon Subject: Re: Allow CLUSTER, VACUUM FULL and REINDEX to change tablespace on the fly In-Reply-To: References: <20210127213658.GA736@alvherre.pgsql> <55c6c1526b94d2caf54c33262fe00674@postgrespro.ru> User-Agent: Roundcube Webmail/1.4.0 Message-ID: <1c506564e2a732ec17790bd8c34f042e@postgrespro.ru> X-Sender: a.kondratov@postgrespro.ru List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --=_07cc10f8654091bb7e0248c1b7fda224 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; format=flowed On 2021-01-30 05:23, Michael Paquier wrote: > On Fri, Jan 29, 2021 at 08:56:47PM +0300, Alexey Kondratov wrote: >> On 2021-01-28 14:42, Alexey Kondratov wrote: >>> No, you are right, we are doing REINDEX with AccessExclusiveLock as >>> it >>> was before. This part is a more specific one. It only applies to >>> partitioned indexes, which do not hold any data, so we do not reindex >>> them directly, only their leafs. However, if we are doing a >>> TABLESPACE >>> change, we have to record it in their pg_class entry, so all future >>> leaf partitions were created in the proper tablespace. >>> >>> That way, we open partitioned index relation only for a reference, >>> i.e. read-only, but modify pg_class entry under a proper lock >>> (RowExclusiveLock). That's why I thought that ShareLock will be >>> enough. >>> >>> IIUC, 'ALTER TABLE ... SET TABLESPACE' uses AccessExclusiveLock even >>> for relations with no storage, since AlterTableGetLockLevel() chooses >>> it if AT_SetTableSpace is met. This is very similar to our case, so >>> probably we should do the same? >>> >>> Actually it is not completely clear for me why >>> ShareUpdateExclusiveLock is sufficient for newly added >>> SetRelationTableSpace() as Michael wrote in the comment. > > Nay, it was not fine. That's something Alvaro has mentioned, leading > to 2484329. This also means that the main patch of this thread should > refresh the comments at the top of CheckRelationTableSpaceMove() and > SetRelationTableSpace() to mention that this is used by REINDEX > CONCURRENTLY with a lower lock. > Hm, IIUC, REINDEX CONCURRENTLY doesn't use either of them. It directly uses index_create() with a proper tablespaceOid instead of SetRelationTableSpace(). And its checks structure is more restrictive even without tablespace change, so it doesn't use CheckRelationTableSpaceMove(). >> Changed patch to use AccessExclusiveLock in this part for now. This is >> what >> 'ALTER TABLE/INDEX ... SET TABLESPACE' and 'REINDEX' usually do. >> Anyway, all >> real leaf partitions are processed in the independent transactions >> later. > > + if (partkind == RELKIND_PARTITIONED_INDEX) > + { > + Relation iRel = index_open(partoid, AccessExclusiveLock); > + > + if (CheckRelationTableSpaceMove(iRel, > params->tablespaceOid)) > + SetRelationTableSpace(iRel, > + params->tablespaceOid, > + InvalidOid); > + index_close(iRel, NoLock); > Are you sure that this does not represent a risk of deadlocks as EAL > is not taken consistently across all the partitions? A second issue > here is that this breaks the assumption of REINDEX CONCURRENTLY kicked > on partitioned relations that should use ShareUpdateExclusiveLock for > all its steps. This would make the first transaction invasive for the > user, but we don't want that. > > This makes me really wonder if we would not be better to restrict this > operation for partitioned relation as part of REINDEX as a first step. > Another thing, mentioned upthread, is that we could do this part of > the switch at the last transaction, or we could silently *not* do the > switch for partitioned indexes in the flow of REINDEX, letting users > handle that with an extra ALTER TABLE SET TABLESPACE once REINDEX has > finished on all the partitions, cascading the command only on the > partitioned relation of a tree. It may be interesting to look as well > at if we could lower the lock used for partitioned relations with > ALTER TABLE SET TABLESPACE from AEL to SUEL, choosing AEL only if at > least one partition with storage is involved in the command, > CheckRelationTableSpaceMove() discarding anything that has no need to > change. > I am not sure right now, so I split previous patch into two parts: 0001: Adds TABLESPACE into REINDEX with tests, doc and all the stuff we did before with the only exception that it doesn't move partitioned indexes into the new tablespace. Basically, it implements this option "we could silently *not* do the switch for partitioned indexes in the flow of REINDEX, letting users handle that with an extra ALTER TABLE SET TABLESPACE once REINDEX has finished". It probably makes sense, since we are doing tablespace change altogether with index relation rewrite and don't touch relations without storage. Doing ALTER INDEX ... SET TABLESPACE will be almost cost-less on them, since they do not hold any data. 0002: Implements the remaining part where pg_class entry is also changed for partitioned indexes. I think that we should think more about it, maybe it is not so dangerous and proper locking strategy could be achieved. Regards -- Alexey Kondratov Postgres Professional https://www.postgrespro.com Russian Postgres Company --=_07cc10f8654091bb7e0248c1b7fda224 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v10-0002-Change-tablespace-of-partitioned-indexes-during-.patch Content-Disposition: attachment; filename=v10-0002-Change-tablespace-of-partitioned-indexes-during-.patch; size=8827 RnJvbSA2MzIyMDMyYjQ3MmU2YjFhNzZlMGNhOTMyNjk3NGU1Nzc0MzcxZmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IE1vbiwgMSBGZWIgMjAyMSAxNToyMDoyOSArMDMwMApTdWJqZWN0OiBb UEFUQ0ggdjEwIDIvMl0gQ2hhbmdlIHRhYmxlc3BhY2Ugb2YgcGFydGl0aW9uZWQgaW5kZXhlcyBk dXJpbmcKIFJFSU5ERVguCgpUaGVyZSBhcmUgc29tZSBkb3VidHMgYWJvdXQgcHJvcGVyIGxvY2tp bmcgb2YgcGFydGl0aW9ucwpoZXJlLiBBY2Nlc3NFeGNsdXNpdmVMb2NrIGlzIHN1cmVseSBlbm91 Z2gsIGJ1dCBtYXkgYmUKYSByZWFzb24gb2YgZGVhZGxvY2suIFdoaWxlIFNoYXJlVXBkYXRlRXhj bHVzaXZlTG9jawpvciBTaGFyZUxvY2sgbWF5IGJlIG5vdCBzdWZmaWNpZW50LgoKQ2l0aW5nIE1p Y2hhZWw6CgoiQXJlIHlvdSBzdXJlIHRoYXQgdGhpcyBkb2VzIG5vdCByZXByZXNlbnQgYSByaXNr IG9mIGRlYWRsb2NrcyBhcyBFQUwKaXMgbm90IHRha2VuIGNvbnNpc3RlbnRseSBhY3Jvc3MgYWxs IHRoZSBwYXJ0aXRpb25zPyAgQSBzZWNvbmQgaXNzdWUKaGVyZSBpcyB0aGF0IHRoaXMgYnJlYWtz IHRoZSBhc3N1bXB0aW9uIG9mIFJFSU5ERVggQ09OQ1VSUkVOVExZIGtpY2tlZApvbiBwYXJ0aXRp b25lZCByZWxhdGlvbnMgdGhhdCBzaG91bGQgdXNlIFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9jayBm b3IKYWxsIGl0cyBzdGVwcy4gIFRoaXMgd291bGQgbWFrZSB0aGUgZmlyc3QgdHJhbnNhY3Rpb24g aW52YXNpdmUgZm9yIHRoZQp1c2VyLCBidXQgd2UgZG9uJ3Qgd2FudCB0aGF0LiIKLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3JlaW5kZXguc2dtbCAgICAgICAgICAgICB8ICA0ICstLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uuc291cmNlICB8IDEwICsrLS0t LQogc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UgfCAzNyArKysrKysr KysrKysrLS0tLS0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCA2MSBpbnNlcnRpb25zKCspLCAyNiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3JlaW5kZXguc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRleC5zZ21sCmluZGV4IGQ4NGY4Yzc0YzguLmQ3N2NhOGMy OWIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRleC5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvcmVpbmRleC5zZ21sCkBAIC0zMjEsOSArMzIxLDcgQEAgUkVJTkRFWCBbICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4u Ll0gKSBdIHsgSU4KICAgIHJlbGF0aW9uLCBhbmQgPGxpdGVyYWw+VEFCTEVTUEFDRTwvbGl0ZXJh bD4gd2FzIHNwZWNpZmllZCwgdGhlbiBpdCBtYXkgaGF2ZQogICAgbW92ZWQgaW5kZXhlcyBvbiBz b21lIHBhcnRpdGlvbnMgdG8gdGhlIG5ldyB0YWJsZXNwYWNlLiBSZS1ydW5uaW5nIHRoZSBjb21t YW5kCiAgICB3aWxsIHJlaW5kZXggYWxsIHBhcnRpdGlvbnMgYW5kIG1vdmUgcHJldmlvdXNseS11 bnByb2Nlc3NlZCBpbmRleGVzIHRvIHRoZSBuZXcKLSAgIHRhYmxlc3BhY2UuIE5vdGUgdGhhdCBw YXJ0aXRpb25lZCBpbmRleGVzIGFyZSBub3QgbW92ZWQgdG8gdGhlCi0gICA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X3RhYmxlc3BhY2U8L3JlcGxhY2VhYmxlPiwgb25seSBsZWFm Ci0gICBwYXJ0aXRpb25zIGhvbGRpbmcgZGF0YSBnZXQgcmVpbmRleGVkIGFuZCBtb3ZlZCB0aGVy ZS4KKyAgIHRhYmxlc3BhY2UuCiAgIDwvcGFyYT4KIAogICA8cmVmc2VjdDIgaWQ9InNxbC1yZWlu ZGV4LWNvbmN1cnJlbnRseSIgeHJlZmxhYmVsPSJSZWJ1aWxkaW5nIEluZGV4ZXMgQ29uY3VycmVu dGx5Ij4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggYzljMDU5YmI1OC4uOTlhOTYxM2Yx NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTMwMTgsNiArMzAxOCw0MiBAQCBSZWlu ZGV4UGFydGl0aW9ucyhPaWQgcmVsaWQsIFJlaW5kZXhQYXJhbXMgKnBhcmFtcywgYm9vbCBpc1Rv cExldmVsKQogCQljaGFyCQlwYXJ0a2luZCA9IGdldF9yZWxfcmVsa2luZChwYXJ0b2lkKTsKIAkJ TWVtb3J5Q29udGV4dCBvbGRfY29udGV4dDsKIAorCQkvKgorCQkgKiBGb3JlaWduIHRhYmxlcyBh bmQgcGFydGl0aW9uZWQgcmVsYXRpb25zIGFyZSBub3QgdGhlbXNlbHZlcworCQkgKiByZWluZGV4 ZWQgLSBsZWFmIHBhcnRpdGlvbnMgYXJlIHByb2Nlc3NlZCBkaXJlY3RseS4gIEJ1dCBhbnkKKwkJ ICogdGFibGVzcGFjZSBjaGFuZ2UgaXMgcmVjb3JkZWQgaW4gdGhlIGNhdGFsb2cgZm9yIHBhcnRp dGlvbmVkCisJCSAqIHJlbGF0aW9ucy4KKwkJICovCisJCWlmIChwYXJ0a2luZCA9PSBSRUxLSU5E X1BBUlRJVElPTkVEX0lOREVYKQorCQl7CisJCQlSZWxhdGlvbiBpUmVsID0gaW5kZXhfb3Blbihw YXJ0b2lkLCBBY2Nlc3NFeGNsdXNpdmVMb2NrKTsKKworCQkJaWYgKENoZWNrUmVsYXRpb25UYWJs ZVNwYWNlTW92ZShpUmVsLCBwYXJhbXMtPnRhYmxlc3BhY2VPaWQpKQorCQkJCVNldFJlbGF0aW9u VGFibGVTcGFjZShpUmVsLAorCQkJCQkJCQkJICBwYXJhbXMtPnRhYmxlc3BhY2VPaWQsCisJCQkJ CQkJCQkgIEludmFsaWRPaWQpOworCQkJaW5kZXhfY2xvc2UoaVJlbCwgTm9Mb2NrKTsKKwkJfQor CQllbHNlIGlmIChwYXJ0a2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQl7CisJ CQlSZWxhdGlvbiByZWwgPSB0YWJsZV9vcGVuKHBhcnRvaWQsIFNoYXJlTG9jayk7CisJCQlMaXN0 CSppbmRleElkcyA9IFJlbGF0aW9uR2V0SW5kZXhMaXN0KHJlbCk7CisJCQlMaXN0Q2VsbCAqbGM7 CisKKwkJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwkJCWZvcmVhY2ggKGxjLCBpbmRleElk cykKKwkJCXsKKwkJCQlPaWQgaW5kZXhpZCA9IGxmaXJzdF9vaWQobGMpOworCQkJCVJlbGF0aW9u IGlSZWwgPSBpbmRleF9vcGVuKGluZGV4aWQsIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJCQkJ aWYgKENoZWNrUmVsYXRpb25UYWJsZVNwYWNlTW92ZShpUmVsLCBwYXJhbXMtPnRhYmxlc3BhY2VP aWQpKQorCQkJCQlTZXRSZWxhdGlvblRhYmxlU3BhY2UoaVJlbCwKKwkJCQkJCQkJCQkgIHBhcmFt cy0+dGFibGVzcGFjZU9pZCwKKwkJCQkJCQkJCQkgIEludmFsaWRPaWQpOworCQkJCWluZGV4X2Ns b3NlKGlSZWwsIE5vTG9jayk7CisJCQl9CisJCX0KKwogCQkvKgogCQkgKiBUaGlzIGRpc2NhcmRz IHBhcnRpdGlvbmVkIHRhYmxlcywgcGFydGl0aW9uZWQgaW5kZXhlcyBhbmQgZm9yZWlnbgogCQkg KiB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2lucHV0L3RhYmxlc3BhY2Uu c291cmNlIGIvc3JjL3Rlc3QvcmVncmVzcy9pbnB1dC90YWJsZXNwYWNlLnNvdXJjZQppbmRleCAw ZDFkNDg3MjFiLi5jOGEzMDk4YmY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2lucHV0 L3RhYmxlc3BhY2Uuc291cmNlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFj ZS5zb3VyY2UKQEAgLTUxLDE0ICs1MSwxNSBAQCBSRUlOREVYIChUQUJMRVNQQUNFIHBnX2RlZmF1 bHQpIERBVEFCQVNFIHJlZ3Jlc3Npb247IC0tIG9rIHdpdGggd2FybmluZwogU0VMRUNUIHJlbG5h bWUgRlJPTSBwZ19jbGFzcwogV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBn X3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFjZScpOwogCi0tLSBwYXJ0 aXRpb25lZCBpbmRleGVzIGFyZSBub3QgZGlyZWN0bHkgcmVpbmRleGVkCistLSBwYXJ0aXRpb25l ZCBpbmRleGVzIGFyZSBub3QgZGlyZWN0bHkgcmVpbmRleGVkLCBidXQgd2Ugc3RpbGwgaGF2ZSB0 byBzZXQgcHJvcGVyCistLSB0YWJsZXNwYWNlIGluIHBnX2NsYXNzIGZvciB0aGVtCiBSRUlOREVY IChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF9wdDsgLS0gb2sKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5ERVgg cmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xOyAtLSBvawogUkVJTkRFWCAoVEFCTEVTUEFD RSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzI7 IC0tIG9rCiBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCiBXSEVSRSByZWx0YWJsZXNwYWNl PShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3Ri bHNwYWNlJyk7CiAKLS0tIGluZGV4ZXMgZm9yIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBiZSBjcmVh dGVkIGluIHRoZSBvbGQgdGFibGVzcGFjZQorLS0gaW5kZXhlcyBmb3IgbmV3IHBhcnRpdGlvbnMg c2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIG5ldyB0YWJsZXNwYWNlCiBDUkVBVEUgVEFCTEUgcmVn cmVzc190YmxzcGFjZV90ZXN0X3B0XzIKICAgUEFSVElUSU9OIE9GIHJlZ3Jlc3NfdGJsc3BhY2Vf dGVzdF9wdAogICBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMiwgcmVtYWluZGVyIDEpOwpAQCAt NjgsMTEgKzY5LDYgQEAgQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8xXzEK IFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKIFdIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVD VCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2Un KTsKIAotLS0gcmVpbmRleCBwYXJ0aXRpb25lZCB0YWJsZQotUkVJTkRFWCAoVEFCTEVTUEFDRSBy ZWdyZXNzX3RibHNwYWNlKSBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHQ7IC0tIG9rCi1T RUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCi1XSEVSRSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qg b2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3RibHNwYWNlJyk7 Ci0KIC0tIGNoZWNrIFJFSU5ERVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQogUkVJTkRFWCAoVEFC TEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJs X2lkeDsgLS0gb2sKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUg cmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsgLS0gb2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQv dGFibGVzcGFjZS5zb3VyY2UKaW5kZXggNWYwYjM3MmI0My4uYjdhOTAxNjA1NCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UKQEAgLTYwLDE3ICs2MCwyMiBAQCBX SEVSRSByZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBz cGNuYW1lPSdyZWdyZXNzX3RibHNwYQogLS0tLS0tLS0tCiAoMCByb3dzKQogCi0tLSBwYXJ0aXRp b25lZCBpbmRleGVzIGFyZSBub3QgZGlyZWN0bHkgcmVpbmRleGVkCistLSBwYXJ0aXRpb25lZCBp bmRleGVzIGFyZSBub3QgZGlyZWN0bHkgcmVpbmRleGVkLCBidXQgd2Ugc3RpbGwgaGF2ZSB0byBz ZXQgcHJvcGVyCistLSB0YWJsZXNwYWNlIGluIHBnX2NsYXNzIGZvciB0aGVtCiBSRUlOREVYIChU QUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9w dDsgLS0gb2sKIFJFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5ERVggcmVn cmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xOyAtLSBvawogUkVJTkRFWCAoVEFCTEVTUEFDRSBy ZWdyZXNzX3RibHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzI7IC0t IG9rCiBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCiBXSEVSRSByZWx0YWJsZXNwYWNlPShT RUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdyZXNzX3RibHNw YWNlJyk7Ci0gcmVsbmFtZSAKLS0tLS0tLS0tLQotKDAgcm93cykKKyAgICAgICAgICAgICAgIHJl bG5hbWUgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzEKKyByZWdyZXNzX3RibHNwYWNlX3Rl c3RfcHRfaWR4XzIKKyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMV9jb2wxX2lkeAorIHJlZ3Jl c3NfdGJsc3BhY2VfdGVzdF9wdF8xX2NvbDJfaWR4CisoNCByb3dzKQogCi0tLSBpbmRleGVzIGZv ciBuZXcgcGFydGl0aW9ucyBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgb2xkIHRhYmxlc3BhY2UK Ky0tIGluZGV4ZXMgZm9yIG5ldyBwYXJ0aXRpb25zIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBu ZXcgdGFibGVzcGFjZQogQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8yCiAg IFBBUlRJVElPTiBPRiByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHQKICAgRk9SIFZBTFVFUyBXSVRI IChtb2R1bHVzIDIsIHJlbWFpbmRlciAxKTsKQEAgLTc4LDIyICs4MywxOCBAQCBDUkVBVEUgVEFC TEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzFfMQogICBQQVJUSVRJT04gT0YgcmVncmVzc190 YmxzcGFjZV90ZXN0X3B0XzEKICAgRk9SIFZBTFVFUyBXSVRIIChtb2R1bHVzIDIsIHJlbWFpbmRl ciAwKTsKIFNFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKLVdIRVJFIHJlbHRhYmxlc3BhY2U9 KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJs c3BhY2UnKTsKLSByZWxuYW1lIAotLS0tLS0tLS0tCi0oMCByb3dzKQotCi0tLSByZWluZGV4IHBh cnRpdGlvbmVkIHRhYmxlCi1SRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRB QkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdDsgLS0gb2sKLVNFTEVDVCByZWxuYW1lIEZST00g cGdfY2xhc3MKIFdIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNw YWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKICAgICAgICAgICAgICAgICBy ZWxuYW1lICAgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xCisgcmVncmVzc190YmxzcGFj ZV90ZXN0X3B0X2lkeF8yCiAgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzJfY29sMV9pZHgKICBy ZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMl9jb2wyX2lkeAogIHJlZ3Jlc3NfdGJsc3BhY2VfdGVz dF9wdF8xXzFfY29sMV9pZHgKKyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMV9jb2wxX2lkeAog IHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8xXzFfY29sMl9pZHgKLSg0IHJvd3MpCisgcmVncmVz c190YmxzcGFjZV90ZXN0X3B0XzFfY29sMl9pZHgKKyg4IHJvd3MpCiAKIC0tIGNoZWNrIFJFSU5E RVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQogUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3Ri bHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsgLS0gb2sKQEAgLTEx NiwxMCArMTE3LDE0IEBAIE9SREVSIEJZIHJlbG5hbWU7CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMV8xX2NvbDFfaWR4 CiAgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzFfMV9jb2wyX2lkeAorIHJlZ3Jlc3NfdGJsc3Bh Y2VfdGVzdF9wdF8xX2NvbDFfaWR4CisgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzFfY29sMl9p ZHgKICByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMl9jb2wxX2lkeAogIHJlZ3Jlc3NfdGJsc3Bh Y2VfdGVzdF9wdF8yX2NvbDJfaWR4CisgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xCisg cmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8yCiAgcmVncmVzc190YmxzcGFjZV90ZXN0X3Ri bF9pZHgKLSg1IHJvd3MpCisoOSByb3dzKQogCiBDUkVBVEUgVEVNUCBUQUJMRSBvbGRfcmVpbmRl eF9pbmZvIEFTIFNFTEVDVCByZWxuYW1lLCByZWxmaWxlbm9kZSBGUk9NIHBnX2NsYXNzCiBXSEVS RSByZWxuYW1lIElOIChTRUxFQ1QgcmVsaWQ6Om5hbWUgRlJPTSBwZ19wYXJ0aXRpb25fdHJlZSgn cmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xJzo6cmVnY2xhc3MpIFdIRVJFIGlzbGVhZiA9 IHRydWUpOwpAQCAtMzM3LDcgKzM0Miw3IEBAIFJFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVs dCkgVEFCTEUgdGVzdHNjaGVtYS5wYXJ0OwogIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IAogUGFydGl0aW9uIGtleTogTElTVCAoYSkKIEluZGV4ZXM6Ci0gICAgInBh cnRfYV9pZHgiIGJ0cmVlIChhKSwgdGFibGVzcGFjZSAicmVncmVzc190YmxzcGFjZSIKKyAgICAi cGFydF9hX2lkeCIgYnRyZWUgKGEpCiBOdW1iZXIgb2YgcGFydGl0aW9uczogMiAoVXNlIFxkKyB0 byBsaXN0IHRoZW0uKQogCiBcZCB0ZXN0c2NoZW1hLnBhcnQxCi0tIAoyLjIwLjEKCg== --=_07cc10f8654091bb7e0248c1b7fda224 Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=v10-0001-Allow-REINDEX-to-change-tablespace.patch Content-Disposition: attachment; filename=v10-0001-Allow-REINDEX-to-change-tablespace.patch; size=31363 RnJvbSAxOTU4Y2MyY2ViYzc0NTc2MzNjYzgxYjlhNDlmMDQxYWMyYWRjMTdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgS29uZHJhdG92IDxrb25kcmF0b3YuYWxla3NleUBn bWFpbC5jb20+CkRhdGU6IFdlZCwgMjcgSmFuIDIwMjEgMDA6NDY6MTcgKzAzMDAKU3ViamVjdDog W1BBVENIIHYxMCAxLzJdIEFsbG93IFJFSU5ERVggdG8gY2hhbmdlIHRhYmxlc3BhY2UKClJFSU5E RVggYWxyZWFkeSBkb2VzIGZ1bGwgcmVsYXRpb24gcmV3cml0ZSwgdGhpcyBwYXRjaCBhZGRzIGEK cG9zc2liaWxpdHkgdG8gc3BlY2lmeSBhIG5ldyB0YWJsZXNwYWNlIHdoZXJlIG5ldyByZWxmaWxl bm9kZQp3aWxsIGJlIGNyZWF0ZWQuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9yZWluZGV4LnNnbWwg ICAgICAgICAgICAgfCAgMzMgKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAg ICAgICAgICAgfCAgNDUgKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAg ICAgICAgICB8ICA3NiArKysrKysrKysrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg ICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9pbmRleC5oICAgICAgICAg ICAgICAgfCAgIDkgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFjZS5zb3VyY2Ug IHwgMTEwICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL291dHB1dC90YWJsZXNwYWNl LnNvdXJjZSB8IDE3NiArKysrKysrKysrKysrKysrKysrKysrCiA3IGZpbGVzIGNoYW5nZWQsIDQ0 MyBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL3JlaW5kZXguc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRleC5zZ21sCmluZGV4 IDYyN2IzNjMwMGMuLmQ4NGY4Yzc0YzggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmVp bmRleC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmVpbmRleC5zZ21sCkBAIC0yNyw2ICsy Nyw3IEBAIFJFSU5ERVggWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248 L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSB7IElOCiAKICAgICBDT05DVVJSRU5UTFkgWyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Ym9vbGVhbjwvcmVwbGFjZWFibGU+IF0KICAgICBW RVJCT1NFIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmJvb2xlYW48L3JlcGxhY2Vh YmxlPiBdCisgICAgVEFCTEVTUEFDRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3 X3RhYmxlc3BhY2U8L3JlcGxhY2VhYmxlPgogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2 PgogCkBAIC0xODcsNiArMTg4LDIxIEBAIFJFSU5ERVggWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSB7IElOCiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPlRBQkxFU1BBQ0U8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBTcGVjaWZpZXMgdGhhdCBpbmRleGVzIHdpbGwgYmUgcmVidWls dCBvbiBhIG5ldyB0YWJsZXNwYWNlLgorICAgICAgQ2Fubm90IGJlIHVzZWQgd2l0aCAibWFwcGVk IiBvciAodW5sZXNzIDx2YXJuYW1lPmFsbG93X3N5c3RlbV90YWJsZV9tb2RzPC92YXJuYW1lPikK KyAgICAgIHN5c3RlbSByZWxhdGlvbnMuIElmIDxsaXRlcmFsPlNDSEVNQTwvbGl0ZXJhbD4sCisg ICAgICA8bGl0ZXJhbD5EQVRBQkFTRTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+U1lTVEVNPC9saXRl cmFsPiBhcmUgc3BlY2lmaWVkLAorICAgICAgdGhlbiBhbGwgIm1hcHBlZCIgYW5kIHN5c3RlbSBy ZWxhdGlvbnMgd2lsbCBiZSBza2lwcGVkIGFuZCBhIHNpbmdsZQorICAgICAgPGxpdGVyYWw+V0FS TklORzwvbGl0ZXJhbD4gd2lsbCBiZSBnZW5lcmF0ZWQuIEluZGV4ZXMgb24gVE9BU1QgdGFibGVz CisgICAgICBhcmUgcmVpbmRleGVkLCBidXQgbm90IG1vdmVkIHRvIHRoZSBuZXcgdGFibGVzcGFj ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5WRVJCT1NFPC9saXRlcmFsPjwv dGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0yMTAsNiArMjI2LDE0IEBAIFJFSU5ERVggWyAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5d ICkgXSB7IElOCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf dGFibGVzcGFjZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgdGFibGVzcGFjZSB3aGVyZSBpbmRleGVzIHdpbGwgYmUgcmVidWlsdC4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92 YXJpYWJsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApAQCAtMjkyLDcgKzMxNiwxNCBAQCBSRUlOREVY IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3B0aW9uPC9yZXBsYWNlYWJsZT4g WywgLi4uXSApIF0geyBJTgogICAgd2l0aCA8Y29tbWFuZD5SRUlOREVYIElOREVYPC9jb21tYW5k PiBvciA8Y29tbWFuZD5SRUlOREVYIFRBQkxFPC9jb21tYW5kPiwKICAgIHJlc3BlY3RpdmVseS4g RWFjaCBwYXJ0aXRpb24gb2YgdGhlIHNwZWNpZmllZCBwYXJ0aXRpb25lZCByZWxhdGlvbiBpcwog ICAgcmVpbmRleGVkIGluIGEgc2VwYXJhdGUgdHJhbnNhY3Rpb24uIFRob3NlIGNvbW1hbmRzIGNh bm5vdCBiZSB1c2VkIGluc2lkZQotICAgYSB0cmFuc2FjdGlvbiBibG9jayB3aGVuIHdvcmtpbmcg b24gYSBwYXJ0aXRpb25lZCB0YWJsZSBvciBpbmRleC4KKyAgIGEgdHJhbnNhY3Rpb24gYmxvY2sg d2hlbiB3b3JraW5nIG9uIGEgcGFydGl0aW9uZWQgdGFibGUgb3IgaW5kZXguIElmCisgICBhIDxj b21tYW5kPlJFSU5ERVg8L2NvbW1hbmQ+IGNvbW1hbmQgZmFpbHMgd2hlbiBydW4gb24gYSBwYXJ0 aXRpb25lZAorICAgcmVsYXRpb24sIGFuZCA8bGl0ZXJhbD5UQUJMRVNQQUNFPC9saXRlcmFsPiB3 YXMgc3BlY2lmaWVkLCB0aGVuIGl0IG1heSBoYXZlCisgICBtb3ZlZCBpbmRleGVzIG9uIHNvbWUg cGFydGl0aW9ucyB0byB0aGUgbmV3IHRhYmxlc3BhY2UuIFJlLXJ1bm5pbmcgdGhlIGNvbW1hbmQK KyAgIHdpbGwgcmVpbmRleCBhbGwgcGFydGl0aW9ucyBhbmQgbW92ZSBwcmV2aW91c2x5LXVucHJv Y2Vzc2VkIGluZGV4ZXMgdG8gdGhlIG5ldworICAgdGFibGVzcGFjZS4gTm90ZSB0aGF0IHBhcnRp dGlvbmVkIGluZGV4ZXMgYXJlIG5vdCBtb3ZlZCB0byB0aGUKKyAgIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uZXdfdGFibGVzcGFjZTwvcmVwbGFjZWFibGU+LCBvbmx5IGxlYWYKKyAg IHBhcnRpdGlvbnMgaG9sZGluZyBkYXRhIGdldCByZWluZGV4ZWQgYW5kIG1vdmVkIHRoZXJlLgog ICA8L3BhcmE+CiAKICAgPHJlZnNlY3QyIGlkPSJzcWwtcmVpbmRleC1jb25jdXJyZW50bHkiIHhy ZWZsYWJlbD0iUmVidWlsZGluZyBJbmRleGVzIENvbmN1cnJlbnRseSI+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMK aW5kZXggYjhjZDM1ZTk5NS4uZTlhZjg5OWZmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtNTcsNiAr NTcsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wcm9ncmVzcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgorI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2Vy LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4u aCIKQEAgLTEzOTQsOSArMTM5NSwxMiBAQCBpbmRleF91cGRhdGVfY29sbGF0aW9uX3ZlcnNpb25z KE9pZCByZWxpZCwgT2lkIGNvbGwpCiAgKiBDcmVhdGUgY29uY3VycmVudGx5IGFuIGluZGV4IGJh c2VkIG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBvbmUgcHJvdmlkZWQgYnkKICAqIGNhbGxlci4g IFRoZSBpbmRleCBpcyBpbnNlcnRlZCBpbnRvIGNhdGFsb2dzIGFuZCBuZWVkcyB0byBiZSBidWls dCBsYXRlcgogICogb24uICBUaGlzIGlzIGNhbGxlZCBkdXJpbmcgY29uY3VycmVudCByZWluZGV4 IHByb2Nlc3NpbmcuCisgKgorICogInRhYmxlc3BhY2VPaWQiIGlzIHRoZSB0YWJsZXNwYWNlIHRv IHVzZSBmb3IgdGhpcyBpbmRleC4KICAqLwogT2lkCi1pbmRleF9jb25jdXJyZW50bHlfY3JlYXRl X2NvcHkoUmVsYXRpb24gaGVhcFJlbGF0aW9uLCBPaWQgb2xkSW5kZXhJZCwgY29uc3QgY2hhciAq bmV3TmFtZSkKK2luZGV4X2NvbmN1cnJlbnRseV9jcmVhdGVfY29weShSZWxhdGlvbiBoZWFwUmVs YXRpb24sIE9pZCBvbGRJbmRleElkLAorCQkJCQkJCSAgIE9pZCB0YWJsZXNwYWNlT2lkLCBjb25z dCBjaGFyICpuZXdOYW1lKQogewogCVJlbGF0aW9uCWluZGV4UmVsYXRpb247CiAJSW5kZXhJbmZv ICAqb2xkSW5mbywKQEAgLTE1MjYsNyArMTUzMCw3IEBAIGluZGV4X2NvbmN1cnJlbnRseV9jcmVh dGVfY29weShSZWxhdGlvbiBoZWFwUmVsYXRpb24sIE9pZCBvbGRJbmRleElkLCBjb25zdCBjaGFy CiAJCQkJCQkJICBuZXdJbmZvLAogCQkJCQkJCSAgaW5kZXhDb2xOYW1lcywKIAkJCQkJCQkgIGlu ZGV4UmVsYXRpb24tPnJkX3JlbC0+cmVsYW0sCi0JCQkJCQkJICBpbmRleFJlbGF0aW9uLT5yZF9y ZWwtPnJlbHRhYmxlc3BhY2UsCisJCQkJCQkJICB0YWJsZXNwYWNlT2lkLAogCQkJCQkJCSAgaW5k ZXhSZWxhdGlvbi0+cmRfaW5kY29sbGF0aW9uLAogCQkJCQkJCSAgaW5kY2xhc3MtPnZhbHVlcywK IAkJCQkJCQkgIGluZGNvbG9wdGlvbnMtPnZhbHVlcywKQEAgLTM2MDMsNiArMzYwNyw3IEBAIHJl aW5kZXhfaW5kZXgoT2lkIGluZGV4SWQsIGJvb2wgc2tpcF9jb25zdHJhaW50X2NoZWNrcywgY2hh ciBwZXJzaXN0ZW5jZSwKIAl2b2xhdGlsZSBib29sIHNraXBwZWRfY29uc3RyYWludCA9IGZhbHNl OwogCVBHUlVzYWdlCXJ1MDsKIAlib29sCQlwcm9ncmVzcyA9ICgocGFyYW1zLT5vcHRpb25zICYg UkVJTkRFWE9QVF9SRVBPUlRfUFJPR1JFU1MpICE9IDApOworCWJvb2wJCXNldF90YWJsZXNwYWNl ID0gT2lkSXNWYWxpZChwYXJhbXMtPnRhYmxlc3BhY2VPaWQpOwogCiAJcGdfcnVzYWdlX2luaXQo JnJ1MCk7CiAKQEAgLTM2NTQsMTQgKzM2NTksMjAgQEAgcmVpbmRleF9pbmRleChPaWQgaW5kZXhJ ZCwgYm9vbCBza2lwX2NvbnN0cmFpbnRfY2hlY2tzLCBjaGFyIHBlcnNpc3RlbmNlLAogCQkJIGdl dF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShpUmVsKSksCiAJCQkgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUoaVJlbCkpOwogCisJaWYgKHNldF90YWJsZXNwYWNlKQorCQlzZXRf dGFibGVzcGFjZSA9IENoZWNrUmVsYXRpb25UYWJsZVNwYWNlTW92ZShpUmVsLAorCQkJCQkJCQkJ CQkJCSBwYXJhbXMtPnRhYmxlc3BhY2VPaWQpOworCiAJLyoKLQkgKiBEb24ndCBhbGxvdyByZWlu ZGV4IG9uIHRlbXAgdGFibGVzIG9mIG90aGVyIGJhY2tlbmRzIC4uLiB0aGVpciBsb2NhbAotCSAq IGJ1ZmZlciBtYW5hZ2VyIGlzIG5vdCBnb2luZyB0byBjb3BlLgorCSAqIFdlIGRvbid0IHN1cHBv cnQgbW92aW5nIHN5c3RlbSByZWxhdGlvbnMgaW50byBkaWZmZXJlbnQgdGFibGVzcGFjZXMKKwkg KiB1bmxlc3MgYWxsb3dfc3lzdGVtX3RhYmxlX21vZHM9MS4KIAkgKi8KLQlpZiAoUkVMQVRJT05f SVNfT1RIRVJfVEVNUChpUmVsKSkKKwlpZiAoc2V0X3RhYmxlc3BhY2UgJiYKKwkJIWFsbG93U3lz dGVtVGFibGVNb2RzICYmIElzU3lzdGVtUmVsYXRpb24oaVJlbCkpCiAJCWVyZXBvcnQoRVJST1Is Ci0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJCSBlcnJt c2coImNhbm5vdCByZWluZGV4IHRlbXBvcmFyeSB0YWJsZXMgb2Ygb3RoZXIgc2Vzc2lvbnMiKSkp OworCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVy cm1zZygicGVybWlzc2lvbiBkZW5pZWQ6IFwiJXNcIiBpcyBhIHN5c3RlbSBjYXRhbG9nIiwKKwkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGlSZWwpKSkpOwogCiAJLyoKIAkgKiBEb24ndCBh bGxvdyByZWluZGV4IG9mIGFuIGludmFsaWQgaW5kZXggb24gVE9BU1QgdGFibGUuICBUaGlzIGlz IGEKQEAgLTM2ODAsNiArMzY5MSwyMiBAQCByZWluZGV4X2luZGV4KE9pZCBpbmRleElkLCBib29s IHNraXBfY29uc3RyYWludF9jaGVja3MsIGNoYXIgcGVyc2lzdGVuY2UsCiAJICovCiAJQ2hlY2tU YWJsZU5vdEluVXNlKGlSZWwsICJSRUlOREVYIElOREVYIik7CiAKKwkvKiBTZXQgbmV3IHRhYmxl c3BhY2UsIGlmIHJlcXVlc3RlZC4gKi8KKwlpZiAoc2V0X3RhYmxlc3BhY2UpCisJeworCQlTZXRS ZWxhdGlvblRhYmxlU3BhY2UoaVJlbCwgcGFyYW1zLT50YWJsZXNwYWNlT2lkLCBJbnZhbGlkT2lk KTsKKworCQkvKgorCQkgKiBTY2hlZHVsZSB1bmxpbmtpbmcgb2YgdGhlIG9sZCBpbmRleCBzdG9y YWdlIGF0IHRyYW5zYWN0aW9uIGNvbW1pdC4KKwkJICovCisJCVJlbGF0aW9uRHJvcFN0b3JhZ2Uo aVJlbCk7CisKKwkJUmVsYXRpb25Bc3N1bWVOZXdSZWxmaWxlbm9kZShpUmVsKTsKKworCQkvKiBN YWtlIHN1cmUgdGhlIHJlbHRhYmxlc3BhY2UgY2hhbmdlIGlzIHZpc2libGUgKi8KKwkJQ29tbWFu ZENvdW50ZXJJbmNyZW1lbnQoKTsKKwl9CisKIAkvKgogCSAqIEFsbCBwcmVkaWNhdGUgbG9ja3Mg b24gdGhlIGluZGV4IGFyZSBhYm91dCB0byBiZSBtYWRlIGludmFsaWQuIFByb21vdGUKIAkgKiB0 aGVtIHRvIHJlbGF0aW9uIGxvY2tzIG9uIHRoZSBoZWFwLgpAQCAtMzk2NCwxMCArMzk5MSwxNCBA QCByZWluZGV4X3JlbGF0aW9uKE9pZCByZWxpZCwgaW50IGZsYWdzLCBSZWluZGV4UGFyYW1zICpw YXJhbXMpCiAJCS8qCiAJCSAqIE5vdGUgdGhhdCB0aGlzIHNob3VsZCBmYWlsIGlmIHRoZSB0b2Fz dCByZWxhdGlvbiBpcyBtaXNzaW5nLCBzbwogCQkgKiByZXNldCBSRUlOREVYT1BUX01JU1NJTkdf T0suCisJCSAqCisJCSAqIEV2ZW4gaWYgdGFibGUncyBpbmRleGVzIHdlcmUgbW92ZWQgdG8gYSBu ZXcgdGFibGVzcGFjZSwgdGhlIGluZGV4CisJCSAqIG9uIGl0cyB0b2FzdCB0YWJsZSBpcyBub3Qg bW92ZWQgaW1wbGljaXRseS4KIAkJICovCiAJCVJlaW5kZXhQYXJhbXMgbmV3cGFyYW1zID0gKnBh cmFtczsKIAogCQluZXdwYXJhbXMub3B0aW9ucyAmPSB+KFJFSU5ERVhPUFRfTUlTU0lOR19PSyk7 CisJCW5ld3BhcmFtcy50YWJsZXNwYWNlT2lkID0gSW52YWxpZE9pZDsKIAkJcmVzdWx0IHw9IHJl aW5kZXhfcmVsYXRpb24odG9hc3RfcmVsaWQsIGZsYWdzLCAmbmV3cGFyYW1zKTsKIAl9CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXggZjlmM2ZmM2I2Mi4uYzljMDU5YmI1OCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvaW5kZXhjbWRzLmMKQEAgLTI0NzQsNiArMjQ3NCw3IEBAIEV4ZWNSZWluZGV4KFBh cnNlU3RhdGUgKnBzdGF0ZSwgUmVpbmRleFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAlM aXN0Q2VsbCAgICpsYzsKIAlib29sCQljb25jdXJyZW50bHkgPSBmYWxzZTsKIAlib29sCQl2ZXJi b3NlID0gZmFsc2U7CisJY2hhcgkgICAqdGFibGVzcGFjZSA9IE5VTEw7CiAKIAkvKiBQYXJzZSBv cHRpb24gbGlzdCAqLwogCWZvcmVhY2gobGMsIHN0bXQtPnBhcmFtcykKQEAgLTI0ODQsNiArMjQ4 NSw4IEBAIEV4ZWNSZWluZGV4KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVpbmRleFN0bXQgKnN0bXQs IGJvb2wgaXNUb3BMZXZlbCkKIAkJCXZlcmJvc2UgPSBkZWZHZXRCb29sZWFuKG9wdCk7CiAJCWVs c2UgaWYgKHN0cmNtcChvcHQtPmRlZm5hbWUsICJjb25jdXJyZW50bHkiKSA9PSAwKQogCQkJY29u Y3VycmVudGx5ID0gZGVmR2V0Qm9vbGVhbihvcHQpOworCQllbHNlIGlmIChzdHJjbXAob3B0LT5k ZWZuYW1lLCAidGFibGVzcGFjZSIpID09IDApCisJCQl0YWJsZXNwYWNlID0gZGVmR2V0U3RyaW5n KG9wdCk7CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKQEAgLTI1MDAsNiArMjUwMywyMiBAQCBFeGVjUmVpbmRleChQYXJzZVN0 YXRlICpwc3RhdGUsIFJlaW5kZXhTdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwpCiAJCSh2ZXJi b3NlID8gUkVJTkRFWE9QVF9WRVJCT1NFIDogMCkgfAogCQkoY29uY3VycmVudGx5ID8gUkVJTkRF WE9QVF9DT05DVVJSRU5UTFkgOiAwKTsKIAorCXBhcmFtcy50YWJsZXNwYWNlT2lkID0gdGFibGVz cGFjZSAhPSBOVUxMID8KKwkJZ2V0X3RhYmxlc3BhY2Vfb2lkKHRhYmxlc3BhY2UsIGZhbHNlKSA6 IEludmFsaWRPaWQ7CisKKwkvKiBDaGVjayBwZXJtaXNzaW9ucyBleGNlcHQgd2hlbiB1c2luZyBk YXRhYmFzZSdzIGRlZmF1bHQgKi8KKwlpZiAoT2lkSXNWYWxpZChwYXJhbXMudGFibGVzcGFjZU9p ZCkgJiYKKwkJcGFyYW1zLnRhYmxlc3BhY2VPaWQgIT0gTXlEYXRhYmFzZVRhYmxlU3BhY2UpCisJ eworCQlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJCWFjbHJlc3VsdCA9IHBnX3RhYmxlc3BhY2Vf YWNsY2hlY2socGFyYW1zLnRhYmxlc3BhY2VPaWQsCisJCQkJCQkJCQkJICAgR2V0VXNlcklkKCks IEFDTF9DUkVBVEUpOworCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJYWNsY2hl Y2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVEFCTEVTUEFDRSwKKwkJCQkJCSAgIGdldF90YWJs ZXNwYWNlX25hbWUocGFyYW1zLnRhYmxlc3BhY2VPaWQpKTsKKwl9CisKIAlzd2l0Y2ggKHN0bXQt PmtpbmQpCiAJewogCQljYXNlIFJFSU5ERVhfT0JKRUNUX0lOREVYOgpAQCAtMjczMCw2ICsyNzQ5 LDggQEAgUmVpbmRleE11bHRpcGxlVGFibGVzKGNvbnN0IGNoYXIgKm9iamVjdE5hbWUsIFJlaW5k ZXhPYmplY3RUeXBlIG9iamVjdEtpbmQsCiAJTGlzdAkgICAqcmVsaWRzID0gTklMOwogCWludAkJ CW51bV9rZXlzOwogCWJvb2wJCWNvbmN1cnJlbnRfd2FybmluZyA9IGZhbHNlOworCWJvb2wJCXRh Ymxlc3BhY2Vfd2FybmluZyA9IGZhbHNlOworCWJvb2wJCW1hcHBlZF93YXJuaW5nID0gZmFsc2U7 CiAKIAlBc3NlcnRBcmcob2JqZWN0TmFtZSk7CiAJQXNzZXJ0KG9iamVjdEtpbmQgPT0gUkVJTkRF WF9PQkpFQ1RfU0NIRU1BIHx8CkBAIC0yODU2LDYgKzI4NzcsMzUgQEAgUmVpbmRleE11bHRpcGxl VGFibGVzKGNvbnN0IGNoYXIgKm9iamVjdE5hbWUsIFJlaW5kZXhPYmplY3RUeXBlIG9iamVjdEtp bmQsCiAJCQljb250aW51ZTsKIAkJfQogCisJCWlmIChPaWRJc1ZhbGlkKHBhcmFtcy0+dGFibGVz cGFjZU9pZCkgJiYKKwkJCUlzU3lzdGVtQ2xhc3MocmVsaWQsIGNsYXNzdHVwbGUpKQorCQl7CisJ CQlpZiAoIWFsbG93U3lzdGVtVGFibGVNb2RzKQorCQkJeworCQkJCS8qIFNraXAgYWxsIHN5c3Rl bSByZWxhdGlvbnMsIGlmIG5vdCBhbGxvd1N5c3RlbVRhYmxlTW9kcyAqLworCQkJCWlmICghdGFi bGVzcGFjZV93YXJuaW5nKQorCQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y2hhbmdlIHRhYmxlc3BhY2Ugb2YgaW5kZXhlcyBvbiBzeXN0ZW0gcmVsYXRpb25zLCBza2lwcGlu ZyBhbGwiKSkpOworCQkJCXRhYmxlc3BhY2Vfd2FybmluZyA9IHRydWU7CisJCQkJY29udGludWU7 CisJCQl9CisJCQllbHNlIGlmICghT2lkSXNWYWxpZChjbGFzc3R1cGxlLT5yZWxmaWxlbm9kZSkp CisJCQl7CisJCQkJLyoKKwkJCQkgKiBTa2lwIGFsbCBtYXBwZWQgcmVsYXRpb25zIGlmIFRBQkxF U1BBQ0UgaXMgc3BlY2lmaWVkLgorCQkJCSAqIE9pZElzVmFsaWQocmVsZmlsZW5vZGUpIGNoZWNr cyB0aGF0LCBzaW1pbGFyIHRvCisJCQkJICogUmVsYXRpb25Jc01hcHBlZCgpLgorCQkJCSAqLwor CQkJCWlmICghbWFwcGVkX3dhcm5pbmcpCisJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygi Y2Fubm90IGNoYW5nZSB0YWJsZXNwYWNlIG9mIGluZGV4ZXMgb24gbWFwcGVkIHJlbGF0aW9ucywg c2tpcHBpbmcgYWxsIikpKTsKKwkJCQltYXBwZWRfd2FybmluZyA9IHRydWU7CisJCQkJY29udGlu dWU7CisJCQl9CisJCX0KKwogCQkvKiBTYXZlIHRoZSBsaXN0IG9mIHJlbGF0aW9uIE9JRHMgaW4g cHJpdmF0ZSBjb250ZXh0ICovCiAJCW9sZCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhwcml2YXRl X2NvbnRleHQpOwogCkBAIC0zMDMyLDYgKzMwODIsMjIgQEAgUmVpbmRleE11bHRpcGxlSW50ZXJu YWwoTGlzdCAqcmVsaWRzLCBSZWluZGV4UGFyYW1zICpwYXJhbXMpCiAJCQljb250aW51ZTsKIAkJ fQogCisJCS8qCisJCSAqIEV4ZWNSZWluZGV4KCkgZG9lcyB0aGlzIGNoZWNrLCBidXQgaGVyZSB3 ZSBoYXZlIHRvIHJlY2hlY2sKKwkJICogaXQgYWdhaW4gdG8gYmUgc3VyZSB0aGF0IG5vdGhpbmcg Y2hhbmdlZCBiZXR3ZWVuIHRyYW5zYWN0aW9ucy4KKwkJICovCisJCWlmIChPaWRJc1ZhbGlkKHBh cmFtcy0+dGFibGVzcGFjZU9pZCkgJiYKKwkJCXBhcmFtcy0+dGFibGVzcGFjZU9pZCAhPSBNeURh dGFiYXNlVGFibGVTcGFjZSkKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJYWNs cmVzdWx0ID0gcGdfdGFibGVzcGFjZV9hY2xjaGVjayhwYXJhbXMtPnRhYmxlc3BhY2VPaWQsCisJ CQkJCQkJCQkJCSAgIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwkJCWlmIChhY2xyZXN1bHQg IT0gQUNMQ0hFQ0tfT0spCisJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVEFC TEVTUEFDRSwKKwkJCQkJCQlnZXRfdGFibGVzcGFjZV9uYW1lKHBhcmFtcy0+dGFibGVzcGFjZU9p ZCkpOworCQl9CisKIAkJcmVsa2luZCA9IGdldF9yZWxfcmVsa2luZChyZWxpZCk7CiAJCXJlbHBl cnNpc3RlbmNlID0gZ2V0X3JlbF9wZXJzaXN0ZW5jZShyZWxpZCk7CiAKQEAgLTMzOTAsNiArMzQ1 NiwxMyBAQCBSZWluZGV4UmVsYXRpb25Db25jdXJyZW50bHkoT2lkIHJlbGF0aW9uT2lkLCBSZWlu ZGV4UGFyYW1zICpwYXJhbXMpCiAJCXJldHVybiBmYWxzZTsKIAl9CiAKKwkvKiBJdCdzIG5vdCBh IHNoYXJlZCBjYXRhbG9nLCBzbyByZWZ1c2UgdG8gbW92ZSBpdCB0byBzaGFyZWQgdGFibGVzcGFj ZSAqLworCWlmIChwYXJhbXMtPnRhYmxlc3BhY2VPaWQgPT0gR0xPQkFMVEFCTEVTUEFDRV9PSUQp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCSBlcnJtc2coImNhbm5vdCBtb3ZlIG5vbi1zaGFyZWQgcmVsYXRpb24gdG8g dGFibGVzcGFjZSBcIiVzXCIiLAorCQkJCQkgZ2V0X3RhYmxlc3BhY2VfbmFtZShwYXJhbXMtPnRh Ymxlc3BhY2VPaWQpKSkpOworCiAJQXNzZXJ0KGhlYXBSZWxhdGlvbklkcyAhPSBOSUwpOwogCiAJ LyotLS0tLQpAQCAtMzQ2MSw2ICszNTM0LDkgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5 KE9pZCByZWxhdGlvbk9pZCwgUmVpbmRleFBhcmFtcyAqcGFyYW1zKQogCQkvKiBDcmVhdGUgbmV3 IGluZGV4IGRlZmluaXRpb24gYmFzZWQgb24gZ2l2ZW4gaW5kZXggKi8KIAkJbmV3SW5kZXhJZCA9 IGluZGV4X2NvbmN1cnJlbnRseV9jcmVhdGVfY29weShoZWFwUmVsLAogCQkJCQkJCQkJCQkJCWlk eC0+aW5kZXhJZCwKKwkJCQkJCQkJCQkJCQlPaWRJc1ZhbGlkKHBhcmFtcy0+dGFibGVzcGFjZU9p ZCkgPworCQkJCQkJCQkJCQkJCQlwYXJhbXMtPnRhYmxlc3BhY2VPaWQgOgorCQkJCQkJCQkJCQkJ CQlpbmRleFJlbC0+cmRfcmVsLT5yZWx0YWJsZXNwYWNlLAogCQkJCQkJCQkJCQkJCWNvbmN1cnJl bnROYW1lKTsKIAogCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IDE3ZjcyNjUwMzguLmE3NTY0N2Ix Y2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAgLTM2NDEsNyArMzY0MSw5IEBAIHBzcWxfY29tcGxldGlv bihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSAqIG9uZSB3b3JkLCBz byB0aGUgYWJvdmUgdGVzdCBpcyBjb3JyZWN0LgogCQkgKi8KIAkJaWYgKGVuZHNfd2l0aChwcmV2 X3dkLCAnKCcpIHx8IGVuZHNfd2l0aChwcmV2X3dkLCAnLCcpKQotCQkJQ09NUExFVEVfV0lUSCgi Q09OQ1VSUkVOVExZIiwgIlZFUkJPU0UiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIkNPTkNVUlJFTlRM WSIsICJUQUJMRVNQQUNFIiwgIlZFUkJPU0UiKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRB QkxFU1BBQ0UiKSkKKwkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFi bGVzcGFjZXMpOwogCX0KIAogLyogU0VDVVJJVFkgTEFCRUwgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvaW5kZXguaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaW5kZXguaAppbmRl eCAyNjZmODk1MGRjLi44MTcyYmZmNjE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L2luZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9pbmRleC5oCkBAIC0yOSwxMCArMjks MTYgQEAgdHlwZWRlZiBlbnVtCiAJSU5ERVhfRFJPUF9TRVRfREVBRAogfSBJbmRleFN0YXRlRmxh Z3NBY3Rpb247CiAKLS8qIG9wdGlvbnMgZm9yIFJFSU5ERVggKi8KKy8qCisgKiBPcHRpb25zIGZv ciBSRUlOREVYCisgKgorICogInRhYmxlc3BhY2VPaWQiIGlzIHRoZSB0YWJsZXNwYWNlIHdoZXJl IGluZGV4ZXMgd2lsbCBiZSByZWJ1aWx0LAorICogb3IgSW52YWxpZE9pZCB0byBrZWVwIGVhY2gg aW5kZXggb24gaXRzIGN1cnJlbnQgdGFibGVzcGFjZS4KKyAqLwogdHlwZWRlZiBzdHJ1Y3QgUmVp bmRleFBhcmFtcwogewogCWJpdHMzMgkJb3B0aW9uczsJCS8qIGJpdG1hc2sgb2YgUkVJTkRFWE9Q VF8qICovCisJT2lkICB0YWJsZXNwYWNlT2lkOwkJCS8qIHRhYmxlc3BhY2UgdG8gcmVidWlsZCBp bmRleCAqLwogfSBSZWluZGV4UGFyYW1zOwogCiAvKiBmbGFnIGJpdHMgZm9yIFJlaW5kZXhQYXJh bXMtPmZsYWdzICovCkBAIC05Miw2ICs5OCw3IEBAIGV4dGVybiBPaWQJaW5kZXhfY3JlYXRlKFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKIAogZXh0ZXJuIE9pZAlpbmRleF9jb25jdXJyZW50bHlfY3Jl YXRlX2NvcHkoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQkJCQkJCQkJCSAgIE9pZCBvbGRJbmRl eElkLAorCQkJCQkJCQkJCSAgIE9pZCB0YWJsZXNwYWNlT2lkLAogCQkJCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKm5ld05hbWUpOwogCiBleHRlcm4gdm9pZCBpbmRleF9jb25jdXJyZW50bHlfYnVpbGQo T2lkIGhlYXBSZWxhdGlvbklkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9pbnB1dC90 YWJsZXNwYWNlLnNvdXJjZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvaW5wdXQvdGFibGVzcGFjZS5zb3Vy Y2UKaW5kZXggMWExODEwMTZkNy4uMGQxZDQ4NzIxYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9pbnB1dC90YWJsZXNwYWNlLnNvdXJjZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2lucHV0 L3RhYmxlc3BhY2Uuc291cmNlCkBAIC0xNyw2ICsxNywxMDEgQEAgQUxURVIgVEFCTEVTUEFDRSBy ZWdyZXNzX3RibHNwYWNlIFNFVCAoc29tZV9ub25leGlzdGVudF9wYXJhbWV0ZXIgPSB0cnVlKTsg IC0tIGYKIEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSBSRVNFVCAocmFuZG9tX3Bh Z2VfY29zdCA9IDIuMCk7IC0tIGZhaWwKIEFMVEVSIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFj ZSBSRVNFVCAocmFuZG9tX3BhZ2VfY29zdCwgZWZmZWN0aXZlX2lvX2NvbmN1cnJlbmN5KTsgLS0g b2sKIAorLS0gY3JlYXRlIHRhYmxlICh3aXRoIFRPQVNUKSB0byB0ZXN0IFJFSU5ERVggd2l0aCBU QUJMRVNQQUNFIGNoYW5nZQorQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymwg KG51bTEgYmlnaW50LCBudW0yIGRvdWJsZSBwcmVjaXNpb24sIHQgdGV4dCk7CitJTlNFUlQgSU5U TyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xLCBudW0yLCB0KQorICBTRUxFQ1Qgcm91 bmQocmFuZG9tKCkqMTAwKSwgcmFuZG9tKCksICd0ZXh0JworICBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLCAxMCkgcyhpKTsKK0NSRUFURSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lk eCBPTiByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xKTsKK0NSRUFURSBUQUJMRSByZWdy ZXNzX3RibHNwYWNlX3Rlc3RfcHQoY29sMSBpbnQsIGNvbDIgaW50KSBQQVJUSVRJT04gQlkgSEFT SCAoY29sMSk7CitDUkVBVEUgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzEKKyAgUEFS VElUSU9OIE9GIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdAorICBGT1IgVkFMVUVTIFdJVEggKG1v ZHVsdXMgMiwgcmVtYWluZGVyIDApCisgIFBBUlRJVElPTiBCWSBIQVNIIChjb2wyKTsKK0NSRUFU RSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzEgT04gcmVncmVzc190YmxzcGFj ZV90ZXN0X3B0IChjb2wxKTsKK0NSRUFURSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRf aWR4XzIgT04gcmVncmVzc190YmxzcGFjZV90ZXN0X3B0IChjb2wyKTsKKworLS0gZmlyc3QsIGNo ZWNrIGEgbm8tb3AgY2FzZQorUkVJTkRFWCAoVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSBJTkRFWCBy ZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVm YXVsdCkgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsKK1JFSU5ERVggKFRBQkxFU1BB Q0UgcGdfZGVmYXVsdCkgSU5ERVggcmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8yOworUkVJ TkRFWCAoVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3Rf cHQ7CisKKy0tIGNoZWNrIHRoYXQgUkVJTkRFWCB3aXRoIFRBQkxFU1BBQ0UgY2hhbmdlIGlzIHRy YW5zYWN0aW9uYWwKK0JFR0lOOworUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNl KSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsKK1JFSU5ERVggKFRBQkxFU1BB Q0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsKK1JP TExCQUNLOworU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFj ZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190 YmxzcGFjZScpOworCistLSByZWluZGV4IGFuZCBtb3ZlIHRoZSBlbnRpcmUgZGF0YWJhc2UsIGFm dGVyIHRoYXQgcmV0dXJuIGV2ZXJ5dGhpbmcgYmFjaworUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdy ZXNzX3RibHNwYWNlKSBEQVRBQkFTRSByZWdyZXNzaW9uOyAtLSBvayB3aXRoIHdhcm5pbmcKK1JF SU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkgREFUQUJBU0UgcmVncmVzc2lvbjsgLS0gb2sg d2l0aCB3YXJuaW5nCitTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCitXSEVSRSByZWx0YWJs ZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1lPSdyZWdy ZXNzX3RibHNwYWNlJyk7CisKKy0tIHBhcnRpdGlvbmVkIGluZGV4ZXMgYXJlIG5vdCBkaXJlY3Rs eSByZWluZGV4ZWQKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUg cmVncmVzc190YmxzcGFjZV90ZXN0X3B0OyAtLSBvaworUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdy ZXNzX3RibHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzE7IC0tIG9r CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIElOREVYIHJlZ3Jlc3NfdGJs c3BhY2VfdGVzdF9wdF9pZHhfMjsgLS0gb2sKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MK K1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJF IHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKworLS0gaW5kZXhlcyBmb3IgbmV3IHBhcnRp dGlvbnMgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIG9sZCB0YWJsZXNwYWNlCitDUkVBVEUgVEFC TEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzIKKyAgUEFSVElUSU9OIE9GIHJlZ3Jlc3NfdGJs c3BhY2VfdGVzdF9wdAorICBGT1IgVkFMVUVTIFdJVEggKG1vZHVsdXMgMiwgcmVtYWluZGVyIDEp OworQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8xXzEKKyAgUEFSVElUSU9O IE9GIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8xCisgIEZPUiBWQUxVRVMgV0lUSCAobW9kdWx1 cyAyLCByZW1haW5kZXIgMCk7CitTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCitXSEVSRSBy ZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1l PSdyZWdyZXNzX3RibHNwYWNlJyk7CisKKy0tIHJlaW5kZXggcGFydGl0aW9uZWQgdGFibGUKK1JF SU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgcmVncmVzc190YmxzcGFj ZV90ZXN0X3B0OyAtLSBvaworU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVs dGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0n cmVncmVzc190YmxzcGFjZScpOworCistLSBjaGVjayBSRUlOREVYIHdpdGggVEFCTEVTUEFDRSBj aGFuZ2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5ERVggcmVncmVz c190YmxzcGFjZV90ZXN0X3RibF9pZHg7IC0tIG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jl c3NfdGJsc3BhY2UpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0tIG9rCitSRUlO REVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHBnX2F1dGhpZDsgLS0gZmFp bAorUkVJTkRFWCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBTWVNURU0gQ09OQ1VSUkVO VExZIHBvc3RncmVzOyAtLSBmYWlsCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3Bh Y2UpIFRBQkxFIENPTkNVUlJFTlRMWSBwZ19hbTsgLS0gZmFpbAorUkVJTkRFWCAoVEFCTEVTUEFD RSBwZ19nbG9iYWwpIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4OyAtLSBmYWls CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHBnX2FtOyAtLSBm YWlsCisKKy0tIGNoZWNrIHRoYXQgYWxsIHJlbGF0aW9ucyBtb3ZlZCB0byBuZXcgdGFibGVzcGFj ZQorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VM RUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFj ZScpCitPUkRFUiBCWSByZWxuYW1lOworCitDUkVBVEUgVEVNUCBUQUJMRSBvbGRfcmVpbmRleF9p bmZvIEFTIFNFTEVDVCByZWxuYW1lLCByZWxmaWxlbm9kZSBGUk9NIHBnX2NsYXNzCitXSEVSRSBy ZWxuYW1lIElOIChTRUxFQ1QgcmVsaWQ6Om5hbWUgRlJPTSBwZ19wYXJ0aXRpb25fdHJlZSgncmVn cmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeF8xJzo6cmVnY2xhc3MpIFdIRVJFIGlzbGVhZiA9IHRy dWUpOworSU5TRVJUIElOVE8gb2xkX3JlaW5kZXhfaW5mbyBTRUxFQ1QgcmVsbmFtZSwgcmVsZmls ZW5vZGUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsbmFtZSBJTiAoU0VMRUNUIHJlbGlkOjpuYW1l IEZST00gcGdfcGFydGl0aW9uX3RyZWUoJ3JlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF9pZHhfMic6 OnJlZ2NsYXNzKSBXSEVSRSBpc2xlYWYgPSB0cnVlKTsKK0lOU0VSVCBJTlRPIG9sZF9yZWluZGV4 X2luZm8gU0VMRUNUIHJlbG5hbWUsIHJlbGZpbGVub2RlIEZST00gcGdfY2xhc3MKK1dIRVJFIHJl bG5hbWUgPSAncmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHgnOworCistLSBtb3ZlIGluZGV4 ZXMgYmFjayB0byBwZ19kZWZhdWx0IHRhYmxlc3BhY2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdf ZGVmYXVsdCkgVEFCTEUgQ09OQ1VSUkVOVExZIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0t IG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHBnX2RlZmF1bHQpIFRBQkxFIHJlZ3Jlc3NfdGJsc3Bh Y2VfdGVzdF9wdDsgLS0gb2sKKworLS0gY2hlY2sgdGhhdCBhbGwgcmVsYXRpb25zIG1vdmVkIGJh Y2sgdG8gcGdfZGVmYXVsdAorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVs dGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0n cmVncmVzc190YmxzcGFjZScpOworCitDUkVBVEUgVEVNUCBUQUJMRSBuZXdfcmVpbmRleF9pbmZv IEFTIFNFTEVDVCByZWxuYW1lLCByZWxmaWxlbm9kZSBGUk9NIHBnX2NsYXNzCitXSEVSRSByZWxu YW1lIElOIChTRUxFQ1QgcmVsaWQ6Om5hbWUgRlJPTSBwZ19wYXJ0aXRpb25fdHJlZSgncmVncmVz c190YmxzcGFjZV90ZXN0X3B0X2lkeF8xJzo6cmVnY2xhc3MpIFdIRVJFIGlzbGVhZiA9IHRydWUp OworSU5TRVJUIElOVE8gbmV3X3JlaW5kZXhfaW5mbyBTRUxFQ1QgcmVsbmFtZSwgcmVsZmlsZW5v ZGUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsbmFtZSBJTiAoU0VMRUNUIHJlbGlkOjpuYW1lIEZS T00gcGdfcGFydGl0aW9uX3RyZWUoJ3JlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF9pZHhfMic6OnJl Z2NsYXNzKSBXSEVSRSBpc2xlYWYgPSB0cnVlKTsKK0lOU0VSVCBJTlRPIG5ld19yZWluZGV4X2lu Zm8gU0VMRUNUIHJlbG5hbWUsIHJlbGZpbGVub2RlIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbG5h bWUgPSAncmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHgnOworCitTRUxFQ1QgKiBGUk9NIG5l d19yZWluZGV4X2luZm8gSk9JTiBvbGRfcmVpbmRleF9pbmZvIE9OIG5ld19yZWluZGV4X2luZm8u cmVsbmFtZSA9IG9sZF9yZWluZGV4X2luZm8ucmVsbmFtZQorV0hFUkUgbmV3X3JlaW5kZXhfaW5m by5yZWxmaWxlbm9kZSA9IG9sZF9yZWluZGV4X2luZm8ucmVsZmlsZW5vZGU7CisKIC0tIGNyZWF0 ZSBhIHNjaGVtYSB3ZSBjYW4gdXNlCiBDUkVBVEUgU0NIRU1BIHRlc3RzY2hlbWE7CiAKQEAgLTk2 LDYgKzE5MSwxNCBAQCBTRUxFQ1QgcmVsbmFtZSwgc3BjbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf dGFibGVzcGFjZSB0LCBwZ19jYXRhbG9nLnBnX2NsYXNzIGMKIFxkIHRlc3RzY2hlbWEucGFydF9h X2lkeAogXGQrIHRlc3RzY2hlbWEucGFydF9hX2lkeAogCistLSBSRUlOREVYIHBhcnRpdGlvbmVk IGluZGV4ZXMgdG8gbmV3IHRhYmxlc3BhY2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVs dCkgVEFCTEUgdGVzdHNjaGVtYS5wYXJ0OworXGQgdGVzdHNjaGVtYS5wYXJ0CitcZCB0ZXN0c2No ZW1hLnBhcnQxCitSRUlOREVYIChDT05DVVJSRU5UTFksIFRBQkxFU1BBQ0UgcmVncmVzc190Ymxz cGFjZSkgSU5ERVggdGVzdHNjaGVtYS5wYXJ0X2FfaWR4OworXGQgdGVzdHNjaGVtYS5wYXJ0Citc ZCB0ZXN0c2NoZW1hLnBhcnQxCisKIC0tIHBhcnRpdGlvbmVkIHJlbHMgY2Fubm90IHNwZWNpZnkg dGhlIGRlZmF1bHQgdGFibGVzcGFjZS4gIFRoZXNlIGZhaWw6CiBDUkVBVEUgVEFCTEUgdGVzdHNj aGVtYS5kZmx0IChhIGludCBQUklNQVJZIEtFWSkgUEFSVElUSU9OIEJZIExJU1QgKGEpIFRBQkxF U1BBQ0UgcGdfZGVmYXVsdDsKIENSRUFURSBUQUJMRSB0ZXN0c2NoZW1hLmRmbHQgKGEgaW50IFBS SU1BUlkgS0VZIFVTSU5HIElOREVYIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkgUEFSVElUSU9OIEJZ IExJU1QgKGEpOwpAQCAtMjY4LDYgKzM3MSwxMCBAQCBBTFRFUiBUQUJMRSB0ZXN0c2NoZW1hLnRh Ymxlc3BhY2VfYWNsIE9XTkVSIFRPIHJlZ3Jlc3NfdGFibGVzcGFjZV91c2VyMjsKIAogU0VUIFNF U1NJT04gUk9MRSByZWdyZXNzX3RhYmxlc3BhY2VfdXNlcjI7CiBDUkVBVEUgVEFCTEUgdGFibGVz cGFjZV90YWJsZSAoaSBpbnQpIFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZTsgLS0gZmFpbAor CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIENPTkNVUlJFTlRM WSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsOyAtLSBmYWlsCitSRUlOREVYIChUQUJMRVNQQUNF IHJlZ3Jlc3NfdGJsc3BhY2UpIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF9pZHg7IC0t IGZhaWwKKwogQUxURVIgVEFCTEUgdGVzdHNjaGVtYS50YWJsZXNwYWNlX2FjbCBBTFRFUiBjIFRZ UEUgYmlnaW50OwogUkVTRVQgUk9MRTsKIApAQCAtMjgyLDYgKzM4OSw5IEBAIEFMVEVSIFRBQkxF IEFMTCBJTiBUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2VfcmVuYW1lZCBTRVQgVEFCTEVTUEFD RSBwZ19kZWZhdWx0CiAtLSBTaG91bGQgc3VjY2VlZAogRFJPUCBUQUJMRVNQQUNFIHJlZ3Jlc3Nf dGJsc3BhY2VfcmVuYW1lZDsKIAorRFJPUCBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJs OworRFJPUCBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHQ7CisKIERST1AgU0NIRU1BIHRl c3RzY2hlbWEgQ0FTQ0FERTsKIAogRFJPUCBST0xFIHJlZ3Jlc3NfdGFibGVzcGFjZV91c2VyMTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvb3V0cHV0L3RhYmxlc3BhY2Uuc291cmNlIGIv c3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3VyY2UKaW5kZXggOTRjNWYwMjNj Ni4uNWYwYjM3MmI0MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVz cGFjZS5zb3VyY2UKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9vdXRwdXQvdGFibGVzcGFjZS5zb3Vy Y2UKQEAgLTIwLDYgKzIwLDEzNSBAQCBFUlJPUjogIHVucmVjb2duaXplZCBwYXJhbWV0ZXIgInNv bWVfbm9uZXhpc3RlbnRfcGFyYW1ldGVyIgogQUxURVIgVEFCTEVTUEFDRSByZWdyZXNzX3RibHNw YWNlIFJFU0VUIChyYW5kb21fcGFnZV9jb3N0ID0gMi4wKTsgLS0gZmFpbAogRVJST1I6ICBSRVNF VCBtdXN0IG5vdCBpbmNsdWRlIHZhbHVlcyBmb3IgcGFyYW1ldGVycwogQUxURVIgVEFCTEVTUEFD RSByZWdyZXNzX3RibHNwYWNlIFJFU0VUIChyYW5kb21fcGFnZV9jb3N0LCBlZmZlY3RpdmVfaW9f Y29uY3VycmVuY3kpOyAtLSBvaworLS0gY3JlYXRlIHRhYmxlICh3aXRoIFRPQVNUKSB0byB0ZXN0 IFJFSU5ERVggd2l0aCBUQUJMRVNQQUNFIGNoYW5nZQorQ1JFQVRFIFRBQkxFIHJlZ3Jlc3NfdGJs c3BhY2VfdGVzdF90YmwgKG51bTEgYmlnaW50LCBudW0yIGRvdWJsZSBwcmVjaXNpb24sIHQgdGV4 dCk7CitJTlNFUlQgSU5UTyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xLCBudW0yLCB0 KQorICBTRUxFQ1Qgcm91bmQocmFuZG9tKCkqMTAwKSwgcmFuZG9tKCksICd0ZXh0JworICBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAxMCkgcyhpKTsKK0NSRUFURSBJTkRFWCByZWdyZXNzX3RibHNw YWNlX3Rlc3RfdGJsX2lkeCBPTiByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsIChudW0xKTsKK0NS RUFURSBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHQoY29sMSBpbnQsIGNvbDIgaW50KSBQ QVJUSVRJT04gQlkgSEFTSCAoY29sMSk7CitDUkVBVEUgVEFCTEUgcmVncmVzc190YmxzcGFjZV90 ZXN0X3B0XzEKKyAgUEFSVElUSU9OIE9GIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdAorICBGT1Ig VkFMVUVTIFdJVEggKG1vZHVsdXMgMiwgcmVtYWluZGVyIDApCisgIFBBUlRJVElPTiBCWSBIQVNI IChjb2wyKTsKK0NSRUFURSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzEgT04g cmVncmVzc190YmxzcGFjZV90ZXN0X3B0IChjb2wxKTsKK0NSRUFURSBJTkRFWCByZWdyZXNzX3Ri bHNwYWNlX3Rlc3RfcHRfaWR4XzIgT04gcmVncmVzc190YmxzcGFjZV90ZXN0X3B0IChjb2wyKTsK Ky0tIGZpcnN0LCBjaGVjayBhIG5vLW9wIGNhc2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVm YXVsdCkgSU5ERVggcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9pZHg7CitSRUlOREVYIChUQUJM RVNQQUNFIHBnX2RlZmF1bHQpIFRBQkxFIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7CitSRUlO REVYIChUQUJMRVNQQUNFIHBnX2RlZmF1bHQpIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9w dF9pZHhfMjsKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkgVEFCTEUgcmVncmVzc190 YmxzcGFjZV90ZXN0X3B0OworLS0gY2hlY2sgdGhhdCBSRUlOREVYIHdpdGggVEFCTEVTUEFDRSBj aGFuZ2UgaXMgdHJhbnNhY3Rpb25hbAorQkVHSU47CitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jl c3NfdGJsc3BhY2UpIElOREVYIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4OworUkVJTkRF WCAoVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSByZWdyZXNzX3RibHNwYWNlX3Rl c3RfdGJsOworUk9MTEJBQ0s7CitTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzCitXSEVSRSBy ZWx0YWJsZXNwYWNlPShTRUxFQ1Qgb2lkIEZST00gcGdfdGFibGVzcGFjZSBXSEVSRSBzcGNuYW1l PSdyZWdyZXNzX3RibHNwYWNlJyk7CisgcmVsbmFtZSAKKy0tLS0tLS0tLQorKDAgcm93cykKKwor LS0gcmVpbmRleCBhbmQgbW92ZSB0aGUgZW50aXJlIGRhdGFiYXNlLCBhZnRlciB0aGF0IHJldHVy biBldmVyeXRoaW5nIGJhY2sKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkg REFUQUJBU0UgcmVncmVzc2lvbjsgLS0gb2sgd2l0aCB3YXJuaW5nCitXQVJOSU5HOiAgY2Fubm90 IGNoYW5nZSB0YWJsZXNwYWNlIG9mIGluZGV4ZXMgb24gc3lzdGVtIHJlbGF0aW9ucywgc2tpcHBp bmcgYWxsCitSRUlOREVYIChUQUJMRVNQQUNFIHBnX2RlZmF1bHQpIERBVEFCQVNFIHJlZ3Jlc3Np b247IC0tIG9rIHdpdGggd2FybmluZworV0FSTklORzogIGNhbm5vdCBjaGFuZ2UgdGFibGVzcGFj ZSBvZiBpbmRleGVzIG9uIHN5c3RlbSByZWxhdGlvbnMsIHNraXBwaW5nIGFsbAorU0VMRUNUIHJl bG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNUIG9pZCBGUk9N IHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFjZScpOworIHJlbG5h bWUgCistLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIHBhcnRpdGlvbmVkIGluZGV4ZXMgYXJlIG5v dCBkaXJlY3RseSByZWluZGV4ZWQKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFj ZSkgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0OyAtLSBvaworUkVJTkRFWCAoVEFCTEVT UEFDRSByZWdyZXNzX3RibHNwYWNlKSBJTkRFWCByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4 XzE7IC0tIG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIElOREVYIHJl Z3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF9pZHhfMjsgLS0gb2sKK1NFTEVDVCByZWxuYW1lIEZST00g cGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNw YWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKyByZWxuYW1lIAorLS0tLS0t LS0tCisoMCByb3dzKQorCistLSBpbmRleGVzIGZvciBuZXcgcGFydGl0aW9ucyBzaG91bGQgYmUg Y3JlYXRlZCBpbiB0aGUgb2xkIHRhYmxlc3BhY2UKK0NSRUFURSBUQUJMRSByZWdyZXNzX3RibHNw YWNlX3Rlc3RfcHRfMgorICBQQVJUSVRJT04gT0YgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0Cisg IEZPUiBWQUxVRVMgV0lUSCAobW9kdWx1cyAyLCByZW1haW5kZXIgMSk7CitDUkVBVEUgVEFCTEUg cmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzFfMQorICBQQVJUSVRJT04gT0YgcmVncmVzc190Ymxz cGFjZV90ZXN0X3B0XzEKKyAgRk9SIFZBTFVFUyBXSVRIIChtb2R1bHVzIDIsIHJlbWFpbmRlciAw KTsKK1NFTEVDVCByZWxuYW1lIEZST00gcGdfY2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNF TEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNlIFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3Bh Y2UnKTsKKyByZWxuYW1lIAorLS0tLS0tLS0tCisoMCByb3dzKQorCistLSByZWluZGV4IHBhcnRp dGlvbmVkIHRhYmxlCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxF IHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdDsgLS0gb2sKK1NFTEVDVCByZWxuYW1lIEZST00gcGdf Y2xhc3MKK1dIRVJFIHJlbHRhYmxlc3BhY2U9KFNFTEVDVCBvaWQgRlJPTSBwZ190YWJsZXNwYWNl IFdIRVJFIHNwY25hbWU9J3JlZ3Jlc3NfdGJsc3BhY2UnKTsKKyAgICAgICAgICAgICAgICByZWxu YW1lICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzJfY29sMV9pZHgKKyByZWdyZXNzX3RibHNw YWNlX3Rlc3RfcHRfMl9jb2wyX2lkeAorIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8xXzFfY29s MV9pZHgKKyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfMV8xX2NvbDJfaWR4CisoNCByb3dzKQor CistLSBjaGVjayBSRUlOREVYIHdpdGggVEFCTEVTUEFDRSBjaGFuZ2UKK1JFSU5ERVggKFRBQkxF U1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5ERVggcmVncmVzc190YmxzcGFjZV90ZXN0X3RibF9p ZHg7IC0tIG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jlc3NfdGJsc3BhY2UpIFRBQkxFIHJl Z3Jlc3NfdGJsc3BhY2VfdGVzdF90Ymw7IC0tIG9rCitSRUlOREVYIChUQUJMRVNQQUNFIHJlZ3Jl c3NfdGJsc3BhY2UpIFRBQkxFIHBnX2F1dGhpZDsgLS0gZmFpbAorRVJST1I6ICBjYW5ub3QgbW92 ZSBzeXN0ZW0gcmVsYXRpb24gInBnX2F1dGhpZF9yb2xuYW1lX2luZGV4IgorUkVJTkRFWCAoVEFC TEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBTWVNURU0gQ09OQ1VSUkVOVExZIHBvc3RncmVzOyAt LSBmYWlsCitFUlJPUjogIGNhbm5vdCByZWluZGV4IHN5c3RlbSBjYXRhbG9ncyBjb25jdXJyZW50 bHkKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgVEFCTEUgQ09OQ1VSUkVO VExZIHBnX2FtOyAtLSBmYWlsCitFUlJPUjogIGNhbm5vdCByZWluZGV4IHN5c3RlbSBjYXRhbG9n cyBjb25jdXJyZW50bHkKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcGdfZ2xvYmFsKSBJTkRFWCByZWdy ZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeDsgLS0gZmFpbAorRVJST1I6ICBvbmx5IHNoYXJlZCBy ZWxhdGlvbnMgY2FuIGJlIHBsYWNlZCBpbiBwZ19nbG9iYWwgdGFibGVzcGFjZQorUkVJTkRFWCAo VEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBUQUJMRSBwZ19hbTsgLS0gZmFpbAorRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZDogInBnX2FtX25hbWVfaW5kZXgiIGlzIGEgc3lzdGVtIGNhdGFs b2cKKy0tIGNoZWNrIHRoYXQgYWxsIHJlbGF0aW9ucyBtb3ZlZCB0byBuZXcgdGFibGVzcGFjZQor U0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0oU0VMRUNU IG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190YmxzcGFjZScp CitPUkRFUiBCWSByZWxuYW1lOworICAgICAgICAgICAgICAgIHJlbG5hbWUgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Ri bHNwYWNlX3Rlc3RfcHRfMV8xX2NvbDFfaWR4CisgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0XzFf MV9jb2wyX2lkeAorIHJlZ3Jlc3NfdGJsc3BhY2VfdGVzdF9wdF8yX2NvbDFfaWR4CisgcmVncmVz c190YmxzcGFjZV90ZXN0X3B0XzJfY29sMl9pZHgKKyByZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJs X2lkeAorKDUgcm93cykKKworQ1JFQVRFIFRFTVAgVEFCTEUgb2xkX3JlaW5kZXhfaW5mbyBBUyBT RUxFQ1QgcmVsbmFtZSwgcmVsZmlsZW5vZGUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsbmFtZSBJ TiAoU0VMRUNUIHJlbGlkOjpuYW1lIEZST00gcGdfcGFydGl0aW9uX3RyZWUoJ3JlZ3Jlc3NfdGJs c3BhY2VfdGVzdF9wdF9pZHhfMSc6OnJlZ2NsYXNzKSBXSEVSRSBpc2xlYWYgPSB0cnVlKTsKK0lO U0VSVCBJTlRPIG9sZF9yZWluZGV4X2luZm8gU0VMRUNUIHJlbG5hbWUsIHJlbGZpbGVub2RlIEZS T00gcGdfY2xhc3MKK1dIRVJFIHJlbG5hbWUgSU4gKFNFTEVDVCByZWxpZDo6bmFtZSBGUk9NIHBn X3BhcnRpdGlvbl90cmVlKCdyZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzInOjpyZWdjbGFz cykgV0hFUkUgaXNsZWFmID0gdHJ1ZSk7CitJTlNFUlQgSU5UTyBvbGRfcmVpbmRleF9pbmZvIFNF TEVDVCByZWxuYW1lLCByZWxmaWxlbm9kZSBGUk9NIHBnX2NsYXNzCitXSEVSRSByZWxuYW1lID0g J3JlZ3Jlc3NfdGJsc3BhY2VfdGVzdF90YmxfaWR4JzsKKy0tIG1vdmUgaW5kZXhlcyBiYWNrIHRv IHBnX2RlZmF1bHQgdGFibGVzcGFjZQorUkVJTkRFWCAoVEFCTEVTUEFDRSBwZ19kZWZhdWx0KSBU QUJMRSBDT05DVVJSRU5UTFkgcmVncmVzc190YmxzcGFjZV90ZXN0X3RibDsgLS0gb2sKK1JFSU5E RVggKFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCkgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0 OyAtLSBvaworLS0gY2hlY2sgdGhhdCBhbGwgcmVsYXRpb25zIG1vdmVkIGJhY2sgdG8gcGdfZGVm YXVsdAorU0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcworV0hFUkUgcmVsdGFibGVzcGFjZT0o U0VMRUNUIG9pZCBGUk9NIHBnX3RhYmxlc3BhY2UgV0hFUkUgc3BjbmFtZT0ncmVncmVzc190Ymxz cGFjZScpOworIHJlbG5hbWUgCistLS0tLS0tLS0KKygwIHJvd3MpCisKK0NSRUFURSBURU1QIFRB QkxFIG5ld19yZWluZGV4X2luZm8gQVMgU0VMRUNUIHJlbG5hbWUsIHJlbGZpbGVub2RlIEZST00g cGdfY2xhc3MKK1dIRVJFIHJlbG5hbWUgSU4gKFNFTEVDVCByZWxpZDo6bmFtZSBGUk9NIHBnX3Bh cnRpdGlvbl90cmVlKCdyZWdyZXNzX3RibHNwYWNlX3Rlc3RfcHRfaWR4XzEnOjpyZWdjbGFzcykg V0hFUkUgaXNsZWFmID0gdHJ1ZSk7CitJTlNFUlQgSU5UTyBuZXdfcmVpbmRleF9pbmZvIFNFTEVD VCByZWxuYW1lLCByZWxmaWxlbm9kZSBGUk9NIHBnX2NsYXNzCitXSEVSRSByZWxuYW1lIElOIChT RUxFQ1QgcmVsaWQ6Om5hbWUgRlJPTSBwZ19wYXJ0aXRpb25fdHJlZSgncmVncmVzc190YmxzcGFj ZV90ZXN0X3B0X2lkeF8yJzo6cmVnY2xhc3MpIFdIRVJFIGlzbGVhZiA9IHRydWUpOworSU5TRVJU IElOVE8gbmV3X3JlaW5kZXhfaW5mbyBTRUxFQ1QgcmVsbmFtZSwgcmVsZmlsZW5vZGUgRlJPTSBw Z19jbGFzcworV0hFUkUgcmVsbmFtZSA9ICdyZWdyZXNzX3RibHNwYWNlX3Rlc3RfdGJsX2lkeCc7 CitTRUxFQ1QgKiBGUk9NIG5ld19yZWluZGV4X2luZm8gSk9JTiBvbGRfcmVpbmRleF9pbmZvIE9O IG5ld19yZWluZGV4X2luZm8ucmVsbmFtZSA9IG9sZF9yZWluZGV4X2luZm8ucmVsbmFtZQorV0hF UkUgbmV3X3JlaW5kZXhfaW5mby5yZWxmaWxlbm9kZSA9IG9sZF9yZWluZGV4X2luZm8ucmVsZmls ZW5vZGU7CisgcmVsbmFtZSB8IHJlbGZpbGVub2RlIHwgcmVsbmFtZSB8IHJlbGZpbGVub2RlIAor LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKygwIHJvd3Mp CisKIC0tIGNyZWF0ZSBhIHNjaGVtYSB3ZSBjYW4gdXNlCiBDUkVBVEUgU0NIRU1BIHRlc3RzY2hl bWE7CiAtLSB0cnkgYSB0YWJsZQpAQCAtMTk5LDYgKzMyOCw0NyBAQCBQYXJ0aXRpb25zOiB0ZXN0 c2NoZW1hLnBhcnQxX2FfaWR4LAogICAgICAgICAgICAgdGVzdHNjaGVtYS5wYXJ0Ml9hX2lkeAog VGFibGVzcGFjZTogInJlZ3Jlc3NfdGJsc3BhY2UiCiAKKy0tIFJFSU5ERVggcGFydGl0aW9uZWQg aW5kZXhlcyB0byBuZXcgdGFibGVzcGFjZQorUkVJTkRFWCAoVEFCTEVTUEFDRSBwZ19kZWZhdWx0 KSBUQUJMRSB0ZXN0c2NoZW1hLnBhcnQ7CitcZCB0ZXN0c2NoZW1hLnBhcnQKKyAgICAgICAgUGFy dGl0aW9uZWQgdGFibGUgInRlc3RzY2hlbWEucGFydCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitQYXJ0aXRpb24ga2V5OiBMSVNUIChhKQorSW5kZXhlczoKKyAgICAicGFy dF9hX2lkeCIgYnRyZWUgKGEpLCB0YWJsZXNwYWNlICJyZWdyZXNzX3RibHNwYWNlIgorTnVtYmVy IG9mIHBhcnRpdGlvbnM6IDIgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKworXGQgdGVzdHNjaGVt YS5wYXJ0MQorICAgICAgICAgICAgIFRhYmxlICJ0ZXN0c2NoZW1hLnBhcnQxIgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BhcnRpdGlvbiBvZjogdGVzdHNjaGVtYS5wYXJ0 IEZPUiBWQUxVRVMgSU4gKDEpCitJbmRleGVzOgorICAgICJwYXJ0MV9hX2lkeCIgYnRyZWUgKGEp CisKK1JFSU5ERVggKENPTkNVUlJFTlRMWSwgVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlKSBJ TkRFWCB0ZXN0c2NoZW1hLnBhcnRfYV9pZHg7CitcZCB0ZXN0c2NoZW1hLnBhcnQKKyAgICAgICAg UGFydGl0aW9uZWQgdGFibGUgInRlc3RzY2hlbWEucGFydCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCitQYXJ0aXRpb24ga2V5OiBMSVNUIChhKQorSW5kZXhlczoKKyAgICAi cGFydF9hX2lkeCIgYnRyZWUgKGEpLCB0YWJsZXNwYWNlICJyZWdyZXNzX3RibHNwYWNlIgorTnVt YmVyIG9mIHBhcnRpdGlvbnM6IDIgKFVzZSBcZCsgdG8gbGlzdCB0aGVtLikKKworXGQgdGVzdHNj aGVtYS5wYXJ0MQorICAgICAgICAgICAgIFRhYmxlICJ0ZXN0c2NoZW1hLnBhcnQxIgorIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BhcnRpdGlvbiBvZjogdGVzdHNjaGVtYS5w YXJ0IEZPUiBWQUxVRVMgSU4gKDEpCitJbmRleGVzOgorICAgICJwYXJ0MV9hX2lkeCIgYnRyZWUg KGEpLCB0YWJsZXNwYWNlICJyZWdyZXNzX3RibHNwYWNlIgorCiAtLSBwYXJ0aXRpb25lZCByZWxz IGNhbm5vdCBzcGVjaWZ5IHRoZSBkZWZhdWx0IHRhYmxlc3BhY2UuICBUaGVzZSBmYWlsOgogQ1JF QVRFIFRBQkxFIHRlc3RzY2hlbWEuZGZsdCAoYSBpbnQgUFJJTUFSWSBLRVkpIFBBUlRJVElPTiBC WSBMSVNUIChhKSBUQUJMRVNQQUNFIHBnX2RlZmF1bHQ7CiBFUlJPUjogIGNhbm5vdCBzcGVjaWZ5 IGRlZmF1bHQgdGFibGVzcGFjZSBmb3IgcGFydGl0aW9uZWQgcmVsYXRpb25zCkBAIC03MzEsNiAr OTAxLDEwIEBAIEFMVEVSIFRBQkxFIHRlc3RzY2hlbWEudGFibGVzcGFjZV9hY2wgT1dORVIgVE8g cmVncmVzc190YWJsZXNwYWNlX3VzZXIyOwogU0VUIFNFU1NJT04gUk9MRSByZWdyZXNzX3RhYmxl c3BhY2VfdXNlcjI7CiBDUkVBVEUgVEFCTEUgdGFibGVzcGFjZV90YWJsZSAoaSBpbnQpIFRBQkxF U1BBQ0UgcmVncmVzc190YmxzcGFjZTsgLS0gZmFpbAogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3IgdGFibGVzcGFjZSByZWdyZXNzX3RibHNwYWNlCitSRUlOREVYIChUQUJMRVNQQUNFIHJl Z3Jlc3NfdGJsc3BhY2UpIFRBQkxFIENPTkNVUlJFTlRMWSByZWdyZXNzX3RibHNwYWNlX3Rlc3Rf dGJsOyAtLSBmYWlsCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZXNwYWNlIHJl Z3Jlc3NfdGJsc3BhY2UKK1JFSU5ERVggKFRBQkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZSkgSU5E RVggcmVncmVzc190YmxzcGFjZV90ZXN0X3B0X2lkeDsgLS0gZmFpbAorRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3IgdGFibGVzcGFjZSByZWdyZXNzX3RibHNwYWNlCiBBTFRFUiBUQUJMRSB0 ZXN0c2NoZW1hLnRhYmxlc3BhY2VfYWNsIEFMVEVSIGMgVFlQRSBiaWdpbnQ7CiBSRVNFVCBST0xF OwogQUxURVIgVEFCTEVTUEFDRSByZWdyZXNzX3RibHNwYWNlIFJFTkFNRSBUTyByZWdyZXNzX3Ri bHNwYWNlX3JlbmFtZWQ7CkBAIC03NDEsNiArOTE1LDggQEAgQUxURVIgVEFCTEUgQUxMIElOIFRB QkxFU1BBQ0UgcmVncmVzc190YmxzcGFjZV9yZW5hbWVkIFNFVCBUQUJMRVNQQUNFIHBnX2RlZmF1 bHQKIE5PVElDRTogIG5vIG1hdGNoaW5nIHJlbGF0aW9ucyBpbiB0YWJsZXNwYWNlICJyZWdyZXNz X3RibHNwYWNlX3JlbmFtZWQiIGZvdW5kCiAtLSBTaG91bGQgc3VjY2VlZAogRFJPUCBUQUJMRVNQ QUNFIHJlZ3Jlc3NfdGJsc3BhY2VfcmVuYW1lZDsKK0RST1AgVEFCTEUgcmVncmVzc190YmxzcGFj ZV90ZXN0X3RibDsKK0RST1AgVEFCTEUgcmVncmVzc190YmxzcGFjZV90ZXN0X3B0OwogRFJPUCBT Q0hFTUEgdGVzdHNjaGVtYSBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byA2IG90 aGVyIG9iamVjdHMKIERFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdGVzdHNjaGVtYS5m b28KCmJhc2UtY29tbWl0OiA3YzVkNTdjYWVkNGQ4YWY3MDVkMGNjMzEzMWQwZDhlZDcyYjdhNDFk Ci0tIAoyLjIwLjEKCg== --=_07cc10f8654091bb7e0248c1b7fda224--