Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tBpyx-006RG8-71 for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Nov 2024 06:39:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tBpys-0086dt-Sh for pgsql-hackers@arkaria.postgresql.org; Fri, 15 Nov 2024 06:38:59 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tBpys-0086dl-6O for pgsql-hackers@lists.postgresql.org; Fri, 15 Nov 2024 06:38:59 +0000 Received: from mail-pg1-x52c.google.com ([2607:f8b0:4864:20::52c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tBpyk-0021kf-QX for pgsql-hackers@lists.postgresql.org; Fri, 15 Nov 2024 06:38:57 +0000 Received: by mail-pg1-x52c.google.com with SMTP id 41be03b00d2f7-7edb6879196so1058595a12.3 for ; Thu, 14 Nov 2024 22:38:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1731652729; x=1732257529; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=IbPZqRo832EwLE0SwgUn5x6gWDQHSrYgPuReZf+dPjY=; b=15Tmtzi8XkpL8Q5r98XGq4tsoGWBN+yjVXKjE++JggIsfoSDmqiAZhUrxx2RVUjLwe YfI0mGEfZlLUP9B8xVgRD4ok7AqYKlDabytQrtOf6mrYd08h2dxlHtYC7Aoha11A4rS4 3zkMNAD1Es+SaA+tUag3vRbFlr59kJTgCmfvsHh1utnSMqW+zlyhd+nHYdFCydK2ZaSk RhHj6YiKoSQ82SOZPZESaIHeL/V+L10U/kcuvzZ11UvazLqz/1iUmsQ0vg81u9Huk25x RU0skI+2oulW9/GdwdP52orZgoCpWWwFLypR6w4Bn/VWSdVq0J6TwA6OUIuCLqXDUihp jvSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731652729; x=1732257529; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IbPZqRo832EwLE0SwgUn5x6gWDQHSrYgPuReZf+dPjY=; b=r4WsELmkLJajUuowG9oJaD3R5iSHY3ACSLU7XOtop3Q4Zchckgh1vJowdlEHAaxMf+ LCIhijySWuDd06SqSjx8xmjLPiBMQCqpw3YTqXgEQWFN914FuTtMxYoM25W6RdGJRbjR 5uOYUXAONsQrWCAuWEEQg3IQtlYKsELPisy+8DmPWGddKxdCGerOmUU89eG2u1ZRP1N9 ejWZBdpAEoooTW9gykYL9vZ2f3v/3kYdbNxD9JwANEGYQbceaLBvvSetqJJ/iNFJ90Xv jxwmnp+P8ZXVlORZ7av32QOPhjwNNaeu+V+E/tXNyyDNghwC88BnABUWVhaWc/ZrZOEl N9AQ== X-Forwarded-Encrypted: i=1; AJvYcCVa8HExz4t0HnXWJYaPId5JSRpy0EDwgFZVDa+C/+2yXo9PY82BB92Jf74Hzxld2UVoqdF6xJ7Lnc6kyTHJ@lists.postgresql.org X-Gm-Message-State: AOJu0YxBl2K0sXEO12rwVBxlYWS5APMTkVyNjawYb8vLXws0Ebi0gdam BOTVt3zO+BgsvKGFeh7ZBSubWuy8Uk3bRHUu49oauMFSmqCVLbNYqyRTQR7QkKw= X-Google-Smtp-Source: AGHT+IEpwWDXoQDobObQtVHVYIfdXog0EQdOxl2DdCWcamVqzY+KyhHJ0IryUGvg09zUB4qFWEmbEA== X-Received: by 2002:a05:6a20:430f:b0:1db:f05f:55c1 with SMTP id adf61e73a8af0-1dc90be213emr1815907637.30.1731652728961; Thu, 14 Nov 2024 22:38:48 -0800 (PST) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id d2e1a72fcca58-724770ee8afsm685612b3a.23.2024.11.14.22.38.47 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Nov 2024 22:38:47 -0800 (PST) Content-Type: multipart/mixed; boundary="------------SmHgFLT9iu1c5DMXfpoz35vj" Message-ID: <04579cbf-b134-45e1-8f2d-8c54c849c1ee@illuminatedcomputing.com> Date: Thu, 14 Nov 2024 22:38:47 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time From: Paul Jungwirth To: Sam Gabrielsson Cc: Peter Eisentraut , jian he , Isaac Morland , Robert Haas , Jeff Davis , PostgreSQL Hackers References: <73d09e24-b6b9-4c89-8c0a-8842ca0f81f9@illuminatedcomputing.com> <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> <9b7cb814-c78c-489f-85b2-32be4398647f@illuminatedcomputing.com> <95c6d49b-7d60-4ad0-820c-e00ae1b2a3d4@illuminatedcomputing.com> <57ea0668-5205-426e-b934-efc89f2186c2@illuminatedcomputing.com> <3b0e067d-9a78-46f7-8027-99c19e7cde44@illuminatedcomputing.com> <78b43581-35f6-4478-8d8a-98e66a763e74@illuminatedcomputing.com> Content-Language: en-US In-Reply-To: <78b43581-35f6-4478-8d8a-98e66a763e74@illuminatedcomputing.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------SmHgFLT9iu1c5DMXfpoz35vj Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 11/14/24 09:31, Paul Jungwirth wrote: >> Thank you for the report! I confirmed that this is a problem. In ri_restrict we fail if any fk >> records still match the being-changed pk, but for temporal if you're merely shrinking the pk >> range, fk references could still wind up being valid (if you're only shrinking it a little). So we >> need to do more work. > > I'm nearly done with a patch for this. I'll try to wrap it up today and get it sent this evening. Here are patches fixing the foreign key problems, as well as the outstanding logical replication fix (with more explanation in the commit message). There is also a commit to add the without_portion support function (originally intended for FOR PORTION OF, but useful here too). For NOACTION, we might as well skip ri_Check_Pk_Match, because we need to look up the details of the referenced/referencing time periods, and we can do that in the main SQL query below. On 11/4/24 13:16, Sam Gabrielsson wrote: > SELECT 1 > FROM (SELECT range_agg(pkperiodatt) AS r > FROM > WHERE pkatt1 = $1 [AND ...] > AND pkperiodatt && $n) AS pktable, > (SELECT fkperiodatt AS r > FROM > WHERE fkatt1 = $1 [AND ...] > AND fkperiodatt && $n) AS fktable > WHERE NOT fktable.r <@ pktable.r This query doesn't quite work, because the FK record can span multiple PK records, so finding only PK records that overlap the changed range may miss them. That means we could still fail erroneously. One fix is to consider *all* PK ranges with the same scalar key part, but that will get expensive. A better fix is to consider only FK ranges after truncating them to fit within the updated PK span. We can use the intersect operator for that. Since temporal foreign keys only support ranges & multiranges, we can hardcode that operator lookup. (I still hope to support arbitrary types in the future, and asking for an intersect operator isn't hard.) Here is some SQL using that approach to find invalid references. Variables like $1 and $n are from oldslot, and $n is the range value (like the normal FK check). SELECT 1 FROM [ONLY] x WHERE $1 = x.fkatt1 [AND ...] AND $n && x.fkperiod AND NOT coalesce((x.fkperiod * $n) <@ (SELECT range_agg(r) FROM (SELECT y.pkperiod r FROM [ONLY] y WHERE $1 = y.pkatt1 [AND ...] AND $n && y.pkperiod FOR KEY SHARE OF y) y2), false) FOR KEY SHARE OF x We need the coalesce because the range_agg subquery could return no rows, and `NOT x <@ NULL` is null. We need another subquery because FOR KEY SHARE isn't permitted in aggregate queries. On 11/14/24 09:31, Paul Jungwirth wrote: > The RESTRICT case needs to find the *lost* time span(s) (because it might not be the whole thing) > and check for references to those. To do that, it calls our without_portion support function. That > function was intended to support FOR PORTION OF, but it happens to be exactly what we need here. So > I'm reordering the patches a bit and adjusting the documentation there. To elaborate: Here is what SQL:2011 says for ON UPDATE RESTRICT (4.18.3.3): > ON UPDATE RESTRICT: any change to a referenced column in the referenced table is prohibited if there is a matching row. I think this requires some interpretation for temporal foreign keys. It is not talking about the PERIOD part, but about the scalar part(s). (Recall that in the standard the PERIOD is not even a column.) It helps to apply the principle that a temporal table behaves the same as a table with one row per second (or millisecond or whatever). We should fail if the key changes for a referenced moment. But we don't get a chance to find replacements in the PK table. Instead of asking whether FKs' requirements are still fulfilled, we need to ask what was lost and then fail if we find references to that. There are several cases to consider: Did you change the start/end times? Did you change the scalar key part? Did you use FOR PORTION OF? Assume you didn't use FOR PORTION OF. Let $old and $new indicate the old and new valid-time values. If you changed the scalar key part, then all of $old is treated as lost. $new doesn't matter. If you didn't change it, then only `$old - $new` is treated as lost. (Note that `$old - $new` could be empty---say you expanded the span---meaning nothing was lost here.) If there are any references overlapping the lost part(s), we fail. With FOR PORTION OF things are a little different. IMO even a RESTRICT key should not fail if it references "leftovers" that weren't targeted by FOR PORTION OF. It's true that we shrink the referenced row, and the reference now depends on the newly-inserted replacements. But conceptually the replacements are representing the timeline that *didn't change*. Also if you take the opposite position, then FOR PORTION OF is simply unusable with RESTRICT keys. With that understanding, if you change the scalar key part, the lost part is $new, not $old. And if you don't change the scalar key part, nothing is lost at all. I could be wrong though. I didn't find anything in the standard addressing this specifically, and I'm only working from a draft of SQL:2011. If someone with a more current copy has specific guidance, I'd be happy to see that. In any case, FOR PORTION OF isn't merged yet. For now I've only attached patches to fix the outstanding problems. After rebasing tonight I ran into some tricky conflicts with my FOR PORTION OF and PERIODs patches, so I will re-submit those later. Adapting the RESTRICT code for FOR PORTION OF, using the plan above, is pretty simple. We just set $n to $new/empty instead of $old. Rebased to 818119afcc. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------SmHgFLT9iu1c5DMXfpoz35vj Content-Type: text/x-patch; charset=UTF-8; name="v44-0001-Fix-logical-replication-for-temporal-tables.patch" Content-Disposition: attachment; filename*0="v44-0001-Fix-logical-replication-for-temporal-tables.patch" Content-Transfer-Encoding: base64 RnJvbSA1MTBiMDBkY2Y4ODFjNWM1MzU5MWZiZDczODcxNjU0ZDViZjM2MjE1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMTYgT2N0IDIwMjQgMTE6MDY6NDAgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NCAxLzRdIEZpeCBsb2dpY2FsIHJlcGxpY2F0aW9uIGZv ciB0ZW1wb3JhbCB0YWJsZXMKCkEgV0lUSE9VVCBPVkVSTEFQUyBwcmltYXJ5IGtleSBvciB1 bmlxdWUgY29uc3RyYWludCBzaG91bGQgd29yayBhcyBhClJFUExJQ0EgSURFTlRJVFksIHNp bmNlIGl0IGd1YXJhbnRlZXMgdW5pcXVlbmVzcy4gQnV0IHRoZXJlIHdlcmUgdHdvCmJ1Z3Mg KGJvdGggZml4ZWQgaGVyZSk6ICgxKSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIGRp ZCBub3QgYWNjZXB0CmEgR2lTVCBpbmRleC4gVGhpcyBzaG91bGQgYmUgYWxsb3dlZCB3aGVu IHVzZWQgYXMgYSB0ZW1wb3JhbCBwcmltYXJ5CmtleS4gKDIpIFN1YnNjcmliZXJzIGFwcGx5 aW5nIGxvZ2ljYWwgZGVjb2RpbmcgbWVzc2FnZXMgZ290IGNvbmZ1c2VkCmJlY2F1c2UgdGhl eSB0cmllZCB0byBsb29rIHVwIHRoZSBlcXVhbHMgb3BlcmF0b3IgYmFzZWQgb24gYnRyZWUK c3RyYXRlZ3kgbnVtYmVycy4gRm9yIEdpU1QgaW5kZXhlcyB3ZSBjYW4gdXNlIHRoZSBzdHJh dG51bSBHaVNUIHN1cHBvcnQKZnVuY3Rpb24uCgpBdXRob3I6IFBhdWwgSnVuZ3dpcnRoCi0t LQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDEx ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAgICAgICAgfCAg IDkgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAgICB8 ICAxMSArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAg IHwgICAyICstCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwgICAg ICAgfCA2NjggKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDY5NCBpbnNl cnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0 L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggY2NkOTY0NWU3ZDIuLmNiZDFkOWM1NmZjIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwpAQCAtMTcyNDQsOSArMTcyNDQsMTQgQEAgQVRFeGVjUmVwbGljYUlk ZW50aXR5KFJlbGF0aW9uIHJlbCwgUmVwbGljYUlkZW50aXR5U3RtdCAqc3RtdCwgTE9DS01P REUgbG9ja21vZGUKIAkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGFuIGluZGV4IGZvciB0 YWJsZSBcIiVzXCIiLAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUoaW5kZXhSZWwp LAogCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKLQkvKiBUaGUgQU0g bXVzdCBzdXBwb3J0IHVuaXF1ZW5lc3MsIGFuZCB0aGUgaW5kZXggbXVzdCBpbiBmYWN0IGJl IHVuaXF1ZS4gKi8KLQlpZiAoIWluZGV4UmVsLT5yZF9pbmRhbS0+YW1jYW51bmlxdWUgfHwK LQkJIWluZGV4UmVsLT5yZF9pbmRleC0+aW5kaXN1bmlxdWUpCisJLyoKKwkgKiBUaGUgQU0g bXVzdCBzdXBwb3J0IHVuaXF1ZW5lc3MsIGFuZCB0aGUgaW5kZXggbXVzdCBpbiBmYWN0IGJl IHVuaXF1ZS4KKwkgKiBJZiB3ZSBoYXZlIGEgV0lUSE9VVCBPVkVSTEFQUyBjb25zdHJhaW50 IChpZGVudGlmaWVkIGJ5IHVuaXF1ZW5lc3MgKworCSAqIGV4Y2x1c2lvbiksIHdlIGNhbiB1 c2UgdGhhdCB0b28uCisJICovCisJaWYgKCghaW5kZXhSZWwtPnJkX2luZGFtLT5hbWNhbnVu aXF1ZSB8fAorCQkhaW5kZXhSZWwtPnJkX2luZGV4LT5pbmRpc3VuaXF1ZSkgJiYKKwkJIShp bmRleFJlbC0+cmRfaW5kZXgtPmluZGlzdW5pcXVlICYmIGluZGV4UmVsLT5yZF9pbmRleC0+ aW5kaXNleGNsdXNpb24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugbm9uLXVu aXF1ZSBpbmRleCBcIiVzXCIgYXMgcmVwbGljYSBpZGVudGl0eSIsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCmluZGV4IDU0MDI1YzlmMTUwLi4xNTJmZTMxNDBh MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKQEAgLTE1LDYg KzE1LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL2dl bmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJhY2Nlc3MvcmVs c2Nhbi5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgiCiAjaW5jbHVkZSAiYWNjZXNz L3RyYW5zYW0uaCIKQEAgLTc3LDcgKzc4LDExIEBAIGdldF9lcXVhbF9zdHJhdGVneV9udW1i ZXIoT2lkIG9wY2xhc3MpCiB7CiAJT2lkCQkJYW0gPSBnZXRfb3BjbGFzc19tZXRob2Qob3Bj bGFzcyk7CiAKLQlyZXR1cm4gZ2V0X2VxdWFsX3N0cmF0ZWd5X251bWJlcl9mb3JfYW0oYW0p OworCS8qIEZvciBHaVNUIGluZGV4ZXMgd2UgbmVlZCB0byBhc2sgdGhlIG9wY2xhc3Mgd2hh dCBzdHJhdGVneSBudW1iZXIgdG8gdXNlLiAqLworCWlmIChhbSA9PSBHSVNUX0FNX09JRCkK KwkJcmV0dXJuIEdpc3RUcmFuc2xhdGVTdHJhdG51bShvcGNsYXNzLCBSVEVxdWFsU3RyYXRl Z3lOdW1iZXIpOworCWVsc2UKKwkJcmV0dXJuIGdldF9lcXVhbF9zdHJhdGVneV9udW1iZXJf Zm9yX2FtKGFtKTsKIH0KIAogLyoKQEAgLTEzNCw2ICsxMzksOCBAQCBidWlsZF9yZXBsaW5k ZXhfc2Nhbl9rZXkoU2NhbktleSBza2V5LCBSZWxhdGlvbiByZWwsIFJlbGF0aW9uIGlkeHJl bCwKIAkJb3B0eXBlID0gZ2V0X29wY2xhc3NfaW5wdXRfdHlwZShvcGNsYXNzLT52YWx1ZXNb aW5kZXhfYXR0b2ZmXSk7CiAJCW9wZmFtaWx5ID0gZ2V0X29wY2xhc3NfZmFtaWx5KG9wY2xh c3MtPnZhbHVlc1tpbmRleF9hdHRvZmZdKTsKIAkJZXFfc3RyYXRlZ3kgPSBnZXRfZXF1YWxf c3RyYXRlZ3lfbnVtYmVyKG9wY2xhc3MtPnZhbHVlc1tpbmRleF9hdHRvZmZdKTsKKwkJaWYg KCFPaWRJc1ZhbGlkKGVxX3N0cmF0ZWd5KSkKKwkJCWVsb2coRVJST1IsICJtaXNzaW5nIGVx dWFsIHN0cmF0ZWd5IGZvciBvcGNsYXNzICV1Iiwgb3BjbGFzcy0+dmFsdWVzW2luZGV4X2F0 dG9mZl0pOwogCiAJCW9wZXJhdG9yID0gZ2V0X29wZmFtaWx5X21lbWJlcihvcGZhbWlseSwg b3B0eXBlLAogCQkJCQkJCQkJICAgb3B0eXBlLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXggZDZjYjY1ZTlhNjMuLjMxOTY2 MmJkNThkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRf b3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQKQEAgLTk3OCw5ICs5NzgsMTYgQEAgU0VMRUNUICogRlJPTSB0cDIgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk OwogLS0gQUxURVIgVEFCTEUgUkVQTElDQSBJREVOVElUWQotLS0gKHNob3VsZCBmYWlsKQog QUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVgg dGVtcG9yYWxfcm5nX3BrOwotRVJST1I6ICBjYW5ub3QgdXNlIG5vbi11bmlxdWUgaW5kZXgg InRlbXBvcmFsX3JuZ19wayIgYXMgcmVwbGljYSBpZGVudGl0eQorXGQgdGVtcG9yYWxfcm5n CisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcm5nIgorICBDb2x1bW4g IHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlk ICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9h dCB8IGRhdGVyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAg ICJ0ZW1wb3JhbF9ybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykgUkVQTElDQSBJREVOVElUWQorCiAtLQogLS0gT04gQ09ORkxJQ1Q6IHJhbmdl cwogLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zlcmxh cHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5k ZXggOTQzZWRmM2RhNjMuLmViZWUyZjI5MzJlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtNjkxLDggKzY5MSw4IEBAIFNFTEVDVCAqIEZS T00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQ7CiAKIC0tIEFMVEVSIFRBQkxFIFJFUExJQ0EgSURFTlRJVFkKLS0tIChzaG91 bGQgZmFpbCkKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZyBSRVBMSUNBIElERU5USVRZIFVT SU5HIElOREVYIHRlbXBvcmFsX3JuZ19wazsKK1xkIHRlbXBvcmFsX3JuZwogCiAtLQogLS0g T04gQ09ORkxJQ1Q6IHJhbmdlcwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9u L3QvMDM0X3RlbXBvcmFsLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM0X3RlbXBv cmFsLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWY0MjQ5 YTlmZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90 ZW1wb3JhbC5wbApAQCAtMCwwICsxLDY2OCBAQAorCisjIENvcHlyaWdodCAoYykgMjAyMS0y MDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwg cmVwbGljYXRpb24gdGVzdHMgZm9yIHRlbXBvcmFsIHRhYmxlcwordXNlIHN0cmljdDsKK3Vz ZSB3YXJuaW5ncyBGQVRBTCA9PiAnYWxsJzsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVz dGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisK KyMgc2V0dXAKKworbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5pdChhbGxvd3Nf c3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0OworCitt eSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdz dWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0OworJG5vZGVfc3Vic2NyaWJl ci0+c3RhcnQ7CisKK215ICRwdWJsaXNoZXJfY29ubnN0ciA9ICRub2RlX3B1Ymxpc2hlci0+ Y29ubnN0ciAuICcgZGJuYW1lPXBvc3RncmVzJzsKKworbXkgKCRyZXN1bHQsICRzdGRvdXQs ICRzdGRlcnIpOworCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHdpdGggUkVQTElDQSBJREVOVElUWSBERUZBVUxUOgorIyAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworIyBjcmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUg dGVtcG9yYWxfbm9fa2V5IChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0 ZXh0KSIKKyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9wayAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRl cmFuZ2UsIGEgdGV4dCwgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSkiCispOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIChpZCBpbnQ0cmFuZ2UgTk9UIE5VTEws IHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwgYSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworCisjIGNyZWF0ZSB0YWJsZXMgb24gc3Vi c2NyaWJlcgorCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX25vX2tleSAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBk YXRlcmFuZ2UsIGEgdGV4dCkiCispOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BrIChpZCBpbnQ0cmFuZ2Us IHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIChpZCBpbnQ0 cmFuZ2UgTk9UIE5VTEwsIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwgYSB0ZXh0LCBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworCisjIHN5bmMg aW5pdGlhbCBkYXRhOgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdy ZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwgYSkK KyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIp OworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJU IElOVE8gdGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIp JywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5p cXVlIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0w MSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMi KTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg U1VCU0NSSVBUSU9OIHN1YjEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJM SUNBVElPTiBwdWIxIgorKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlw dGlvbl9zeW5jOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlk LCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCcpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7Citpcygk cmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2Vk IHRlbXBvcmFsX3BrIERFRkFVTFQnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3VuaXF1 ZSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LAorCXFxe1sxLDIpfFsy MDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LAorCSdzeW5jZWQgdGVtcG9yYWxfdW5pcXVlIERF RkFVTFQnKTsKKworIyByZXBsaWNhdGUgd2l0aCBubyBrZXk6CisKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX25v X2tleSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSknLCAnYScpLAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJy KSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9y YWxfbm9fa2V5IFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworaXMoICRzdGRl cnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAi dGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlk ZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElOVDogIFRvIGVuYWJsZSB1cGRhdGlu ZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiks CisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIpOworCisoJHJlc3Vs dCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVz JywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfbm9fa2V5IFdIRVJFIGlkID0gJ1szLDQpJyIp OworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRl bGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3Qg aGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAg VG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElU WSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVtcG9yYWxfbm9fa2V5 IERFRkFVTFQiKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIx Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ub19rZXkgT1JERVIgQlkgaWQsIHZhbGlk X2F0Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8 YQorWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YQorWzMsNCl8WzIwMDAtMDEtMDEs MjAxMC0wMS0wMSl8YQorWzQsNSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBs aWNhdGVkIHRlbXBvcmFsX25vX2tleSBERUZBVUxUJyk7CisKKyMgcmVwbGljYXRlIHdpdGgg YSBwcmltYXJ5IGtleToKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfcGsgKGlkLCB2YWxpZF9hdCwgYSkKKyAg IFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAg ICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAg ICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOwor Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVt cG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFs X3BrIFdIRVJFIGlkID0gJ1szLDQpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9y X2NhdGNodXAoJ3N1YjEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZ IGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIw MTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsy MDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9wayBERUZB VUxUJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgorCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3Jh bF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAw LTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAw LTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAw LTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0 ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRl bXBvcmFsX3VuaXF1ZSBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAk c3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFi bGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGlj YSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBk YXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJM RS4pLAorCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfdW5pcXVlIERFRkFVTFQiKTsKKworKCRy ZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0 Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdbMyw0 KSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5v dCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMg bm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElO VDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURF TlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX3Vu aXF1ZSBERUZBVUxUIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgn c3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlkLCB2 YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpfGEKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAn cmVwbGljYXRlZCB0ZW1wb3JhbF91bmlxdWUgREVGQVVMVCcpOworCisjIGNsZWFudXAKKwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVt cG9yYWxfbm9fa2V5Iik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF9wayIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBQVUJMSUNBVElPTiBwdWIx Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFC TEUgdGVtcG9yYWxfbm9fa2V5Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfcGsiKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUiKTsK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJ UFRJT04gc3ViMSIpOworCisKKyMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisjIFRlc3Qgd2l0aCBSRVBMSUNBIElERU5USVRZIEZVTEw6CisjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGNyZWF0ZSB0YWJsZXMgb24gcHVibGlzaGVyCisK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJM RSB0ZW1wb3JhbF9ub19rZXkgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBh IHRleHQpIgorKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkFMVEVSIFRBQkxFIHRlbXBvcmFsX25vX2tleSBSRVBMSUNBIElERU5USVRZIEZVTEwiKTsK KworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3BrIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0 ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wayBSRVBMSUNBIElERU5USVRZIEZVTEwiKTsKKworJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Vu aXF1ZSAoaWQgaW50NHJhbmdlIE5PVCBOVUxMLCB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5V TEwsIGEgdGV4dCwgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgor KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRB QkxFIHRlbXBvcmFsX3VuaXF1ZSBSRVBMSUNBIElERU5USVRZIEZVTEwiKTsKKworIyBjcmVh dGUgdGFibGVzIG9uIHN1YnNjcmliZXIKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ub19rZXkgKGlkIGludDRy YW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQpIgorKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ub19r ZXkgUkVQTElDQSBJREVOVElUWSBGVUxMIik7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRy YW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNBIElE RU5USVRZIEZVTEwiKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlkIGludDRyYW5nZSBOT1Qg TlVMTCwgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBhIHRleHQsIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIFJF UExJQ0EgSURFTlRJVFkgRlVMTCIpOworCisjIHN5bmMgaW5pdGlhbCBkYXRhOgorCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywg J1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoCisJJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfcGsgKGlk LCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDAwLTAxLTAxLDIwMTAt MDEtMDEpJywgJ2EnKSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5pcXVlIChpZCwgdmFsaWRfYXQsIGEp CisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyki KTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMiKTsKKyRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEgQ09O TkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBwdWIxIgorKTsKKyRu b2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jOworCiskcmVzdWx0 ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAq IEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRy ZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNl ZCB0ZW1wb3JhbF9ub19rZXkgRlVMTCcpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsg T1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcygkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3N5bmNlZCB0ZW1wb3JhbF9wayBGVUxMJyk7CisKKyRy ZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VM RUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7Citp cyggJHJlc3VsdCwKKwlxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwkn c3luY2VkIHRlbXBvcmFsX3VuaXF1ZSBGVUxMJyk7CisKKyMgcmVwbGljYXRlIHdpdGggbm8g a2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ub19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVF UyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAg ICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAg ICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxf bm9fa2V5IFNFVCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9wdWJs aXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9u b19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5IE9S REVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0 LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF9u b19rZXkgRlVMTCcpOworCisjIHJlcGxpY2F0ZSB3aXRoIGEgcHJpbWFyeSBrZXk6CisKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRP IHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMiwzKScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbMyw0KScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisgICAgICAgICAgKCdbNCw1KScsICdb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3BrIFNFVCBhID0gJ2In IFdIRVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0 KSciKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CisK KyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lz KCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCitbMiwzKXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAx KXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgRlVMTCcpOworCisjIHJlcGxpY2F0ZSB3 aXRoIGEgdW5pcXVlIGtleToKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bv c3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfdW5pcXVlIChpZCwgdmFsaWRfYXQs IGEpCisgICBWQUxVRVMgKCdbMiwzKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdh JyksCisgICAgICAgICAgKCdbMyw0KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdh JyksCisgICAgICAgICAgKCdbNCw1KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdh JykiKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiVVBE QVRFIHRlbXBvcmFsX3VuaXF1ZSBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsK KworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZS T00gdGVtcG9yYWxfdW5pcXVlIFdIRVJFIGlkID0gJ1szLDQpJyIpOworCiskbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3VuaXF1ZSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LCBxcXtb MSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCitbMiwzKXxbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKXxiCitbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0 ZWQgdGVtcG9yYWxfdW5pcXVlIEZVTEwnKTsKKworIyBjbGVhbnVwCisKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX25vX2tl eSIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgVEFC TEUgdGVtcG9yYWxfcGsiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVfcHVibGlzaGVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gcHViMSIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFs X25vX2tleSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJE Uk9QIFRBQkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEi KTsKKworCisjICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHdp dGggUkVQTElDQSBJREVOVElUWSBVU0lORyBJTkRFWAorIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIyBjcmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGsgKGlkIGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxFIHRlbXBv cmFsX3BrIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVtcG9yYWxfcGtfcGtleSIp OworCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VEFCTEUgdGVtcG9yYWxfdW5pcXVlIChpZCBpbnQ0cmFuZ2UgTk9UIE5VTEwsIHZhbGlkX2F0 IGRhdGVyYW5nZSBOT1QgTlVMTCwgYSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIFJFUExJQ0EgSURFTlRJVFkg VVNJTkcgSU5ERVggdGVtcG9yYWxfdW5pcXVlX2lkX3ZhbGlkX2F0X2tleSIKKyk7CisKKyMg Y3JlYXRlIHRhYmxlcyBvbiBzdWJzY3JpYmVyCisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGsgKGlkIGludDRy YW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykpIgorKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wayBSRVBMSUNBIElE RU5USVRZIFVTSU5HIElOREVYIHRlbXBvcmFsX3BrX3BrZXkiKTsKKworJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91 bmlxdWUgKGlkIGludDRyYW5nZSBOT1QgTlVMTCwgdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBO VUxMLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIK Kyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIg VEFCTEUgdGVtcG9yYWxfdW5pcXVlIFJFUExJQ0EgSURFTlRJVFkgVVNJTkcgSU5ERVggdGVt cG9yYWxfdW5pcXVlX2lkX3ZhbGlkX2F0X2tleSIKKyk7CisKKyMgc3luYyBpbml0aWFsIGRh dGE6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklO U0VSVCBJTlRPIHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdb MSwyKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFs X3VuaXF1ZSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAt MDEtMDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFC TEVTIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JF QVRFIFNVQlNDUklQVElPTiBzdWIxIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicg UFVCTElDQVRJT04gcHViMSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJz Y3JpcHRpb25fc3luYzsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlk LCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAx MC0wMS0wMSl8YX0sCisJJ3N5bmNlZCB0ZW1wb3JhbF9wayBVU0lORyBJTkRFWCcpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwor aXMoICRyZXN1bHQsCisJcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJ J3N5bmNlZCB0ZW1wb3JhbF91bmlxdWUgVVNJTkcgSU5ERVgnKTsKKworIyByZXBsaWNhdGUg d2l0aCBhIHByaW1hcnkga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkn cG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wayAoaWQsIHZhbGlkX2F0LCBh KQorICAgVkFMVUVTICgnWzIsMyknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp LAorICAgICAgICAgICgnWzMsNCknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp LAorICAgICAgICAgICgnWzQsNSknLCAnWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSknLCAnYScp Iik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFU RSB0ZW1wb3JhbF9wayBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKworJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVt cG9yYWxfcGsgV0hFUkUgaWQgPSAnWzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGsgT1JE RVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEt MDEsMjAxMC0wMS0wMSl8YQorWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgorWzQs NSl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3Br IFVTSU5HIElOREVYJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5OgorCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5U TyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMp JywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQp JywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUp JywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIFNF VCBhID0gJ2InIFdIRVJFIGlkID0gJ1syLDMpJyIpOworCiskbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hF UkUgaWQgPSAnWzMsNCknIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1 cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfdW5pcXVlIE9SREVSIEJZIGlk LCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGIKK1s0LDUpfFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF91bmlxdWUgVVNJ TkcgSU5ERVgnKTsKKworIyBjbGVhbnVwCisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF91bmlxdWUi KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFBVQkxJ Q0FUSU9OIHB1YjEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAiRFJPUCBUQUJMRSB0ZW1wb3JhbF9wayIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFNVQlNDUklQVElPTiBz dWIxIik7CisKKworIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVz dCB3aXRoIFJFUExJQ0EgSURFTlRJVFkgTk9USElORworIyAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIyBjcmVhdGUgdGFibGVzIG9uIHB1Ymxpc2hlcgorCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFCTEUgdGVt cG9yYWxfbm9fa2V5IChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwgYSB0ZXh0 LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ub19rZXkgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7CisKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wayAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCBkYXRlcmFuZ2UsIGEgdGV4dCwgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxf cGsgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgKGlk IGludDRyYW5nZSwgdmFsaWRfYXQgZGF0ZXJhbmdlLCBhIHRleHQsIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpKSIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBUQUJMRSB0ZW1wb3JhbF91bmlxdWUgUkVQTElD QSBJREVOVElUWSBOT1RISU5HIik7CisKKyMgY3JlYXRlIHRhYmxlcyBvbiBzdWJzY3JpYmVy CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VEFCTEUgdGVtcG9yYWxfbm9fa2V5IChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5n ZSwgYSB0ZXh0KSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQUxURVIgVEFCTEUgdGVtcG9yYWxfbm9fa2V5IFJFUExJQ0EgSURFTlRJVFkgTk9U SElORyIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BrIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVy YW5nZSwgYSB0ZXh0LCBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpKSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki QUxURVIgVEFCTEUgdGVtcG9yYWxfcGsgUkVQTElDQSBJREVOVElUWSBOT1RISU5HIik7CisK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgVEFC TEUgdGVtcG9yYWxfdW5pcXVlIChpZCBpbnQ0cmFuZ2UsIHZhbGlkX2F0IGRhdGVyYW5nZSwg YSB0ZXh0LCBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSkiCispOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFRBQkxF IHRlbXBvcmFsX3VuaXF1ZSBSRVBMSUNBIElERU5USVRZIE5PVEhJTkciKTsKKworIyBzeW5j IGluaXRpYWwgZGF0YToKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3Rn cmVzJywKKwkiSU5TRVJUIElOVE8gdGVtcG9yYWxfbm9fa2V5IChpZCwgdmFsaWRfYXQsIGEp CisgICBWQUxVRVMgKCdbMSwyKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyki KTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VS VCBJTlRPIHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisgICBWQUxVRVMgKCdbMSwy KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3Vu aXF1ZSAoaWQsIHZhbGlkX2F0LCBhKQorICAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEt MDEsMjAxMC0wMS0wMSknLCAnYScpIik7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiBwdWIxIEZPUiBBTEwgVEFCTEVT Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRF IFNVQlNDUklQVElPTiBzdWIxIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVC TElDQVRJT04gcHViMSIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3Jp cHRpb25fc3luYzsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX25vX2tleSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQiKTsKK2lzKCAkcmVzdWx0LAorCXFxe1sxLDIpfFsyMDAwLTAxLTAxLDIw MTAtMDEtMDEpfGF9LAorCSdzeW5jZWQgdGVtcG9yYWxfbm9fa2V5IE5PVEhJTkcnKTsKKwor JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMo JHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YX0sCisJJ3N5bmNl ZCB0ZW1wb3JhbF9wayBOT1RISU5HJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlx dWUgT1JERVIgQlkgaWQsIHZhbGlkX2F0Iik7CitpcyggJHJlc3VsdCwKKwlxcXtbMSwyKXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwKKwknc3luY2VkIHRlbXBvcmFsX3VuaXF1ZSBO T1RISU5HJyk7CisKKyMgcmVwbGljYXRlIHdpdGggbm8ga2V5OgorCiskbm9kZV9wdWJsaXNo ZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF9u b19rZXkgKGlkLCB2YWxpZF9hdCwgYSkKKyAgIFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAgICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAx LTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOworCisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVy cikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBv cmFsX25vX2tleSBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3Rk ZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUg InRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBp ZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRp bmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4p LAorCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfbm9fa2V5IE5PVEhJTkciKTsKKworKCRyZXN1 bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3Jl cycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25vX2tleSBXSEVSRSBpZCA9ICdbMyw0KSci KTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBk ZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90 IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDog IFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJ VFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX25vX2tl eSBOT1RISU5HIik7CisKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3Vi MScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9yYWxfbm9fa2V5IE9SREVSIEJZIGlkLCB2YWxp ZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp fGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGEKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVw bGljYXRlZCB0ZW1wb3JhbF9ub19rZXkgTk9USElORycpOworCisjIHJlcGxpY2F0ZSB3aXRo IGEgcHJpbWFyeSBrZXk6CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsCisJIklOU0VSVCBJTlRPIHRlbXBvcmFsX3BrIChpZCwgdmFsaWRfYXQsIGEpCisg ICBWQUxVRVMgKCdbMiwzKScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisg ICAgICAgICAgKCdbMyw0KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJyksCisg ICAgICAgICAgKCdbNCw1KScsICdbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKScsICdhJykiKTsK KworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3Fs KCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBTRVQgYSA9ICdiJyBXSEVSRSBp ZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJP UjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0IGRvZXMg bm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcworSElO VDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZ IHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9wayBOT1RI SU5HIik7CisKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hl ci0+cHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBp ZCA9ICdbMyw0KSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJP UjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGsiIGJlY2F1c2UgaXQg ZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVz CitISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElD QSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgdGVtcG9y YWxfcGsgTk9USElORyIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAo J3N1YjEnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxp ZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEp fGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGEKK1s0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVw bGljYXRlZCB0ZW1wb3JhbF9wayBOT1RISU5HJyk7CisKKyMgcmVwbGljYXRlIHdpdGggYSB1 bmlxdWUga2V5OgorCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMn LAorCSJJTlNFUlQgSU5UTyB0ZW1wb3JhbF91bmlxdWUgKGlkLCB2YWxpZF9hdCwgYSkKKyAg IFZBTFVFUyAoJ1syLDMpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAg ICAgICAgICAoJ1szLDQpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSwKKyAg ICAgICAgICAoJ1s0LDUpJywgJ1syMDAwLTAxLTAxLDIwMTAtMDEtMDEpJywgJ2EnKSIpOwor CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwo J3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBTRVQgYSA9ICdiJyBXSEVS RSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBF UlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBp dCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0 ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJ REVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxf dW5pcXVlIE5PVEhJTkciKTsKKworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5v ZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFs X3VuaXF1ZSBXSEVSRSBpZCA9ICdbMyw0KSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6 PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxf dW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFu ZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRo ZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwki Y2FuJ3QgREVMRVRFIHRlbXBvcmFsX3VuaXF1ZSBOT1RISU5HIik7CisKKyRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCAqIEZST00gdGVtcG9y YWxfdW5pcXVlIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOworaXMoICRyZXN1bHQsIHFxe1sx LDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1syLDMpfFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpfGEKK1szLDQpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKK1s0LDUpfFsyMDAw LTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0ZW1wb3JhbF91bmlxdWUgTk9U SElORycpOworCisjIGNsZWFudXAKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfcGsiKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJEUk9QIFRBQkxFIHRlbXBvcmFsX3VuaXF1ZSIpOwor JG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJ T04gcHViMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJE Uk9QIFRBQkxFIHRlbXBvcmFsX3BrIik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRST1AgVEFCTEUgdGVtcG9yYWxfdW5pcXVlIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHN1YjEi KTsKKworCitkb25lX3Rlc3RpbmcoKTsKKwotLSAKMi40Mi4wCgo= --------------SmHgFLT9iu1c5DMXfpoz35vj Content-Type: text/x-patch; charset=UTF-8; name="v44-0002-Add-without_portion-GiST-support-proc.patch" Content-Disposition: attachment; filename="v44-0002-Add-without_portion-GiST-support-proc.patch" Content-Transfer-Encoding: base64 RnJvbSA1MTY5OGI3YTRlMjVkODI3YjQ4ODAzOGNhNjk3Y2UzYzIyYmE4YWM5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NCAyLzRdIEFkZCB3aXRob3V0X3BvcnRpb24gR2lTVCBz dXBwb3J0IHByb2MKClRoaXMgbmV3IHN1cHBvcnQgcHJvYyBpcyB1c2VkIGJ5IFJFU1RSSUNU IGZvcmVpZ24ga2V5cyB0byBjb21wdXRlIHRoZQpwb3J0aW9uIG9mIGhpc3RvcnkgdGhhdCB3 YXMgbG9zdCB3aGVuIHRoZSBhcHBsaWNhdGlvbi10aW1lIGJvdW5kcyBvZiBhCnJlY29yZCBj aGFuZ2UuIFRoaXMgY29tbWl0IGRlZmluZXMgaW1wbGVtZW50YXRpb25zIGZvciByYW5nZXMg YW5kCm11bHRpcmFuZ2VzLgoKVGhlIHByb2NzIHJldHVybiBTRVRPRiB0aGVpciBpbnB1dCB0 eXBlIGFuZCB3b3JrIGxpa2UgbWludXMgYnV0IGRvbid0CmZhaWwgb24gc3BsaXRzLiBUaGUg cmVzdWx0cyBuZXZlciBjb250YWluIGVtcHR5IGVsZW1lbnRzLgoKV2hlbiB3ZSBpbXBsZW1l bnQgRk9SIFBPUlRJT04gT0YsIHdlIHdpbGwgdXNlIHRoZXNlIHByb2NzIHNpbWlhcmx5OiB0 bwpjb21wdXRlIGxlZnRvdmVycyB0aGF0IHdlcmVuJ3QgdG91Y2hlZCBieSB0aGUgVVBEQVRF L0RFTEVURS4KCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBjb250cmliL2Jsb29tL2Js dmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9n aXN0LnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrKy0KIGRv Yy9zcmMvc2dtbC94aW5kZXguc2dtbCAgICAgICAgICAgICAgICAgICAgICB8ICAgOCArLQog c3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0ZS5jICAgICAgIHwgICA4ICst CiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZhbGlkYXRlLmMgICAgICAgICAgfCAgMTIg Ky0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jICAgICAgICB8ICAy NSArLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jICAgICAgICB8 ICAgNCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYyAgICAgICAg IHwgICA5ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMgICAg ICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYyAg ICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5j ICAgICAgIHwgIDcxICsrKysrKysrCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBl cy5jICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRl L2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvaW5j bHVkZS91dGlscy9yYW5nZXR5cGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9tdWx0aXJhbmdldHlwZXMub3V0IHwgMTE2ICsrKysrKysr KysrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQgICAgICB8 ICA1NCArKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwg ICAgICB8ICAyMiArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsICAg ICAgICAgICB8ICAxMCArKwogMjEgZmlsZXMgY2hhbmdlZCwgNjEwIGluc2VydGlvbnMoKyks IDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0 ZS5jIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKaW5kZXggMjBkM2FiOTEwOWIuLjRi MmUwY2E5MGE1IDEwMDY0NAotLS0gYS9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYworKysg Yi9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUuYwpAQCAtMTAzLDcgKzEwMyw3IEBAIGJsdmFs aWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkK IAkJewogCQkJY2FzZSBCTE9PTV9IQVNIX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAorCQkJCW9rID0g Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxz ZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTEsIDEsIG9wY2tleXR5cGUpOwogCQkJCWJyZWFrOwog CQkJY2FzZSBCTE9PTV9PUFRJT05TX1BST0M6CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv Z2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCA2MzhkOTEyZGMyZC4u MWZiZGRmMWJmYjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMjY2LDcgKzI2Niw3IEBAIENSRUFURSBJTkRF WCBPTiBteV90YWJsZSBVU0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAK ICA8cGFyYT4KICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhhdCBhbiBpbmRleCBvcGVy YXRvciBjbGFzcyBmb3IKLSAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3QgcHJvdmlk ZSwgYW5kIHNldmVuIHRoYXQgYXJlIG9wdGlvbmFsLgorICAgPGFjcm9ueW0+R2lTVDwvYWNy b255bT4gbXVzdCBwcm92aWRlLCBhbmQgZWlnaHQgdGhhdCBhcmUgb3B0aW9uYWwuCiAgICBD b3JyZWN0bmVzcyBvZiB0aGUgaW5kZXggaXMgZW5zdXJlZAogICAgYnkgcHJvcGVyIGltcGxl bWVudGF0aW9uIG9mIHRoZSA8ZnVuY3Rpb24+c2FtZTwvZnVuY3Rpb24+LCA8ZnVuY3Rpb24+ Y29uc2lzdGVudDwvZnVuY3Rpb24+CiAgICBhbmQgPGZ1bmN0aW9uPnVuaW9uPC9mdW5jdGlv bj4gbWV0aG9kcywgd2hpbGUgZWZmaWNpZW5jeSAoc2l6ZSBhbmQgc3BlZWQpIG9mIHRoZQpA QCAtMjk0LDYgKzI5NCw5IEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lORyBHSVNU IChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICA8ZmlsZW5hbWU+c3JjL2luY2x1ZGUv YWNjZXNzL3N0cmF0bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1iZXJzCiAg ICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRoaXMgbGV0cyB0aGUgY29yZSBjb2Rl IGxvb2sgdXAgb3BlcmF0b3JzIGZvcgogICAgdGVtcG9yYWwgY29uc3RyYWludCBpbmRleGVz LgorICAgVGhlIG9wdGlvbmFsIHRoaXJ0ZWVudGggbWV0aG9kIDxmdW5jdGlvbj53aXRob3V0 X3BvcnRpb248L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5CisgICA8bGl0ZXJhbD5SRVNUUklDVDwv bGl0ZXJhbD4gZm9yZWlnbiBrZXlzIHRvIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgaGlzdG9y eQorICAgdGhhdCB3YXMgbG9zdC4KICA8L3BhcmE+CiAKICA8dmFyaWFibGVsaXN0PgpAQCAt MTIzNSw2ICsxMjM4LDEwOCBAQCBteV9zdHJhdG51bShQR19GVU5DVElPTl9BUkdTKQogICAg ICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgorICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248 L2Z1bmN0aW9uPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAg ICAgR2l2ZW4gdHdvIHZhbHVlcyBvZiB0aGlzIG9wY2xhc3MsIGl0IHN1YnRyYWN0cyB0aGUg c2Vjb25kIGZvciB0aGUgZmlyc3QKKyAgICAgICBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiB0 aGUgcmVzdWx0cy4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMg aXMgdXNlZCBieSB0ZW1wb3JhbCBmb3JlaWduIGtleXMgdG8gY29tcHV0ZSB0aGUgcGFydAor ICAgICAgIG9mIGhpc3RvcnkgdGhhdCB3YXMgbG9zdCBieSBhbiB1cGRhdGUuCisgICAgICA8 L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9u eW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQorICAgICAg IHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbjwvbGl0ZXJh bD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSwgYW55cmFu Z2UpCitSRVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0Ug QyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9wYXJhPgorCisgICAgICAg PHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3Vs ZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVt CitteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKyAgICB0 eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIFJhbmdlVHlwZSAgKnJzWzJdOworICAgICAgICBp bnQgICAgICAgICBuOworICAgIH0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKyAg ICBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisgICAgcmFuZ2Vfd2l0aG91dF9wb3J0aW9u X2ZjdHggKmZjdHg7CisgICAgTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisgICAgLyog c3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLwor ICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisgICAgeworICAgICAgICBSYW5nZVR5cGUg ICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIyOworICAgICAgICBPaWQg ICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBUeXBlQ2FjaGVFbnRyeSAgKnR5cGNh Y2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNvbnRleHQgZm9yIGNyb3Nz LWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9IFNSRl9GSVJTVENBTExf SU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRjaCB0byBtZW1vcnkgY29u dGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMKKyAgICAgICAg ICovCisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0 eC0mZ3Q7bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAgICByMSA9IFBHX0dFVEFS R19SQU5HRV9QKDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19SQU5HRV9QKDEpOworCisg ICAgICAgIC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJB TkdFIG1hdGNoaW5nIHJ1bGVzICovCisgICAgICAgIGlmIChSYW5nZVR5cGVHZXRPaWQocjEp ICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisgICAgICAgICAgICBlbG9nKEVSUk9SLCAicmFu Z2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICAgICAgLyogYWxsb2NhdGUgbWVtb3J5 IGZvciB1c2VyIGNvbnRleHQgKi8KKyAgICAgICAgZmN0eCA9IChyYW5nZV93aXRob3V0X3Bv cnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4 KSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6ZSBzdGF0ZS4KKyAgICAg ICAgICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hlIGluIGZuX2V4dHJhIGJl Y2F1c2UgdGhlIGNhbGxlcgorICAgICAgICAgKiB1c2VzIHRoYXQgZm9yIHRoZSBTUkYgc3Rh dGUuCisgICAgICAgICAqLworICAgICAgICBybmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChy MSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZ UEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYgKHR5cGNhY2hlLSZndDtybmdlbGVt dHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwgInR5cGUgJXUgaXMgbm90 IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0O3JzLCAmYW1wO2ZjdHgt Jmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0eCA9IGZjdHg7CisgICAg ICAgIE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKyAgICB9CisKKyAgICAv KiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisgICAgZnVu Y2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9IGZ1bmNjdHgtJmd0O3Vz ZXJfZmN0eDsKKworICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2NudHIgJmx0OyBmY3R4LSZn dDtuKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2UgbXVzdCBrZWVwIHRoZXNl IG9uIHNlcGFyYXRlIGxpbmVzCisgICAgICAgICAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhU IGRvZXMgY2FsbF9jbnRyKys6CisgICAgICAgICAqLworICAgICAgICBSYW5nZVR5cGUgKnJl dCA9IGZjdHgtJmd0O3JzW2Z1bmNjdHgtJmd0O2NhbGxfY250cl07CisgICAgICAgIFNSRl9S RVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0ocmV0KSk7CisgICAgfQor ICAgIGVsc2UKKyAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8K KyAgICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQorPC9wcm9ncmFtbGlzdGlu Zz4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRy eT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKaW5kZXggM2Ex OWRhYjE1ZTAuLjg1ZWY1MzlkMDdjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwveGluZGV4 LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCkBAIC01MDgsNyArNTA4LDcg QEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNUIGluZGV4ZXMgaGF2ZSB0d2Vs dmUgc3VwcG9ydCBmdW5jdGlvbnMsIHNldmVuIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKKyAg IEdpU1QgaW5kZXhlcyBoYXZlIHRoaXJ0ZWVuIHN1cHBvcnQgZnVuY3Rpb25zLCBlaWdodCBv ZiB3aGljaCBhcmUgb3B0aW9uYWwsCiAgICBhcyBzaG93biBpbiA8eHJlZiBsaW5rZW5kPSJ4 aW5kZXgtZ2lzdC1zdXBwb3J0LXRhYmxlIi8+LgogICAgKEZvciBtb3JlIGluZm9ybWF0aW9u IHNlZSA8eHJlZiBsaW5rZW5kPSJnaXN0Ii8+LikKICAgPC9wYXJhPgpAQCAtNTk2LDYgKzU5 NiwxMiBAQAogICAgICAgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcyAob3B0aW9uYWwp PC9lbnRyeT4KICAgICAgICA8ZW50cnk+MTI8L2VudHJ5PgogICAgICAgPC9yb3c+CisgICAg ICA8cm93PgorICAgICAgIDxlbnRyeT48ZnVuY3Rpb24+d2l0aG91dF9wb3J0aW9uPC9mdW5j dGlvbj48L2VudHJ5PgorICAgICAgIDxlbnRyeT5jb21wdXRlcyByZW1haW5pbmcgZHVyYXRp b24ocykgYWZ0ZXIgZGVsZXRpbmcKKyAgICAgICBzZWNvbmQgcGFyYW1ldGVyIGZyb20gZmly c3QgKG9wdGlvbmFsKTwvZW50cnk+CisgICAgICAgPGVudHJ5PjEzPC9lbnRyeT4KKyAgICAg IDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwppbmRleCA1MzlhYzljYjA2 NC4uMDgyZjk2Yjg0N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fdmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlk YXRlLmMKQEAgLTg3LDIxICs4NywyMSBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQp CiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCUklOX1BS T0NOVU1fT1BDSU5GTzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwK IAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBC UklOX1BST0NOVU1fQUREVkFMVUU6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQk0LCA0LCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5f UFJPQ05VTV9DT05TSVNURU5UOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMywgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5UNE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5fUFJPQ05V TV9VTklPTjoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTMs IDMsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQp OwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxpZGF0ZS5jCmluZGV4 IDc0NDIwYTEyOWFhLi43NDhiOTRhODkzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW52YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu dmFsaWRhdGUuYwpAQCAtMTA0LDM3ICsxMDQsMzcgQEAgZ2ludmFsaWRhdGUoT2lkIG9wY2xh c3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBH SU5fQ09NUEFSRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQkyLCAyLCBvcGNrZXl0eXBlLCBvcGNrZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lOX0VYVFJBQ1RWQUxVRV9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9t aXQgbnVsbEZsYWdzICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCBmYWxz ZSwKIAkJCQkJCQkJCQkJMiwgMywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJ CQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fRVhUUkFDVFFVRVJZ X1BST0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBudWxsRmxhZ3MgYW5kIHNlYXJj aE1vZGUgKi8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQk1LCA3LCBvcGNpbnR5cGUsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlQy T0lELCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT05TSVNURU5UX1BS T0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBxdWVyeUtleXMgYW5kIG51bGxGbGFn cyAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk2LCA4 LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJTlQ0T0lE LAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlO VEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT01Q QVJFX1BBUlRJQUxfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJ CQkJCQkJCQkJNCwgNCwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSwKIAkJCQkJCQkJCQkJSU5U Mk9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fVFJJQ09OU0lT VEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBDSEFST0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQ0hBUk9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJ CQk3LCA3LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJ TlQ0T0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCmluZGV4IDA5MDE1NDNhNjBhLi4zODc0 MGI0NmJiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlk YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKQEAg LTEwNiwzNiArMTA2LDM2IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dp dGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEdJU1RfQ09OU0lTVEVO VF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk1 LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJTlQyT0lELCBPSURP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9VTklPTl9QUk9D OgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBv cGNrZXl0eXBlLCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgb3Bja2V5dHlwZSwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQky LCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBH SVNUX0NPTVBSRVNTX1BST0M6CiAJCQljYXNlIEdJU1RfREVDT01QUkVTU19QUk9DOgogCQkJ Y2FzZSBHSVNUX0ZFVENIX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2Us IHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lTVF9QRU5BTFRZX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFs c2UsIHRydWUsCiAJCQkJCQkJCQkJCTMsIDMsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNUX1BJ Q0tTUExJVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBHSVNUX0VRVUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQs IGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMywgMywgb3Bja2V5dHlwZSwgb3Bja2V5dHlw ZSwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNU X0RJU1RBTkNFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsIGZhbHNlLAog CQkJCQkJCQkJCQk1LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJ TlQyT0lELCBPSURPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKQEAgLTE0MywxMyAr MTQzLDE3IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlvayA9IGNoZWNr X2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MpOwogCQkJCWJyZWFrOwog CQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgZmFsc2UsIHRy dWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVDJPSUQpOwogCQkJCWJyZWFrOworCQkJY2FzZSBH SVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNpbnR5cGUsIHRydWUsIHRydWUsCisJCQkJCQkJ CQkJCTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1 bHQ6CiAJCQkJZXJlcG9ydChJTkZPLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKQEAgLTI3MSw3ICsyNzUsNyBAQCBnaXN0dmFsaWRhdGUo T2lkIG9wY2xhc3NvaWQpCiAJCWlmIChpID09IEdJU1RfRElTVEFOQ0VfUFJPQyB8fCBpID09 IEdJU1RfRkVUQ0hfUFJPQyB8fAogCQkJaSA9PSBHSVNUX0NPTVBSRVNTX1BST0MgfHwgaSA9 PSBHSVNUX0RFQ09NUFJFU1NfUFJPQyB8fAogCQkJaSA9PSBHSVNUX09QVElPTlNfUFJPQyB8 fCBpID09IEdJU1RfU09SVFNVUFBPUlRfUFJPQyB8fAotCQkJaSA9PSBHSVNUX1NUUkFUTlVN X1BST0MpCisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQyB8fCBpID09IEdJU1RfV0lUSE9V VF9QT1JUSU9OX1BST0MpCiAJCQljb250aW51ZTsJCQkvKiBvcHRpb25hbCBtZXRob2RzICov CiAJCWVyZXBvcnQoSU5GTywKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNU X0RFRklOSVRJT04pLApAQCAtMzQ0LDYgKzM0OCw3IEBAIGdpc3RhZGp1c3RtZW1iZXJzKE9p ZCBvcGZhbWlseW9pZCwKIAkJCWNhc2UgR0lTVF9PUFRJT05TX1BST0M6CiAJCQljYXNlIEdJ U1RfU09SVFNVUFBPUlRfUFJPQzoKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9QUk9DOgorCQkJ Y2FzZSBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9DOgogCQkJCS8qIE9wdGlvbmFsLCBzbyBm b3JjZSBpdCB0byBiZSBhIHNvZnQgZmFtaWx5IGRlcGVuZGVuY3kgKi8KIAkJCQlvcC0+cmVm X2lzX2hhcmQgPSBmYWxzZTsKIAkJCQlvcC0+cmVmX2lzX2ZhbWlseSA9IHRydWU7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCmluZGV4IDY2YTNiN2I0OWFkLi4z YThiZDYzNWIzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZh bGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMK QEAgLTEwNCwxMSArMTA0LDExIEBAIGhhc2h2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJ c3dpdGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEhBU0hTVEFOREFS RF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBJTlQ0T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwg MSwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgSEFT SEVYVEVOREVEX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVDhPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDhPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJ CQkJCQkyLCAyLCBwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsIElOVDhPSUQpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBIQVNIT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRl eC9hbXZhbGlkYXRlLmMKaW5kZXggMzJiYjQ3N2YzMjguLmIxMDMwOGI5YjY2IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMKQEAgLTE0OSw3ICsxNDksNyBAQCBp ZGVudGlmeV9vcGZhbWlseV9ncm91cHMoQ2F0Q0xpc3QgKm9wcmxpc3QsIENhdENMaXN0ICpw cm9jbGlzdCkKICAqIEluIGFueSBjYXNlIHRoZSBmdW5jdGlvbiByZXN1bHQgdHlwZSBtdXN0 IG1hdGNoIHJlc3R5cGUgZXhhY3RseS4KICAqLwogYm9vbAotY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKK2NoZWNrX2FtcHJv Y19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgcmV0c2V0LCBib29s IGV4YWN0LAogCQkJCQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3MsLi4uKQogewogCWJv b2wJCXJlc3VsdCA9IHRydWU7CkBAIC0xNjMsOCArMTYzLDkgQEAgY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKIAkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsK IAlwcm9jZm9ybSA9IChGb3JtX3BnX3Byb2MpIEdFVFNUUlVDVCh0cCk7CiAKLQlpZiAocHJv Y2Zvcm0tPnByb3JldHR5cGUgIT0gcmVzdHlwZSB8fCBwcm9jZm9ybS0+cHJvcmV0c2V0IHx8 Ci0JCXByb2Nmb3JtLT5wcm9uYXJncyA8IG1pbmFyZ3MgfHwgcHJvY2Zvcm0tPnByb25hcmdz ID4gbWF4YXJncykKKwlpZiAoKHByb2Nmb3JtLT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgJiYg T2lkSXNWYWxpZChyZXN0eXBlKSkKKwkJfHwgcHJvY2Zvcm0tPnByb3JldHNldCAhPSByZXRz ZXQgfHwgcHJvY2Zvcm0tPnByb25hcmdzIDwgbWluYXJncworCQl8fCBwcm9jZm9ybS0+cHJv bmFyZ3MgPiBtYXhhcmdzKQogCQlyZXN1bHQgPSBmYWxzZTsKIAogCXZhX3N0YXJ0KGFwLCBt YXhhcmdzKTsKQEAgLTE5MSw3ICsxOTIsNyBAQCBjaGVja19hbXByb2Nfc2lnbmF0dXJlKE9p ZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAogYm9vbAogY2hlY2tfYW1vcHRz cHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCkKIHsKLQlyZXR1cm4gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShmdW5jaWQsIFZPSURPSUQsIHRydWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKKwly ZXR1cm4gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShmdW5jaWQsIFZPSURPSUQsIGZhbHNlLCB0 cnVlLCAxLCAxLCBJTlRFUk5BTE9JRCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv bmJ0cmVlL25idHZhbGlkYXRlLmMKaW5kZXggZTlkNGNkNjBkZTMuLjA0ZTQzZWYxZGNlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jCkBAIC05MSwxNiAr OTEsMTYgQEAgYnR2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNoIChwcm9jZm9y bS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEJUT1JERVJfUFJPQzoKLQkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgdHJ1ZSwK KwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5U NE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIHByb2Nmb3JtLT5hbXByb2Ns ZWZ0dHlwZSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY3JpZ2h0dHlwZSk7CiAJCQkJ YnJlYWs7CiAJCQljYXNlIEJUU09SVFNVUFBPUlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwgdHJ1ZSwKKwkJCQlv ayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9JRE9JRCwg ZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgQlRJTlJBTkdFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0 cnVlLAogCQkJCQkJCQkJCQk1LCA1LAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVm dHR5cGUsCiAJCQkJCQkJCQkJCXByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSwKQEAgLTEwOCw3 ICsxMDgsNyBAQCBidHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCQkJCQkJCQlCT09M T0lELCBCT09MT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRFUVVBTElNQUdFX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJP T0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBPSURP SUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVE9QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRhdGUuYwppbmRleCA4NTBjM2I2NzVkNi4uZjdhMzk3 Y2I4Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFsaWRh dGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKQEAg LTEwOSw3ICsxMDksNyBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dpdGNo IChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIFNQR0lTVF9DT05GSUdfUFJP QzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Vk9JRE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElO VEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJY29uZmlnSW4uYXR0VHlwZSA9IHByb2Nm b3JtLT5hbXByb2NsZWZ0dHlwZTsKIAkJCQltZW1zZXQoJmNvbmZpZ091dCwgMCwgc2l6ZW9m KGNvbmZpZ091dCkpOwpAQCAtMTY0LDExICsxNjQsMTEgQEAgc3BndmFsaWRhdGUoT2lkIG9w Y2xhc3NvaWQpCiAJCQljYXNlIFNQR0lTVF9DSE9PU0VfUFJPQzoKIAkJCWNhc2UgU1BHSVNU X1BJQ0tTUExJVF9QUk9DOgogCQkJY2FzZSBTUEdJU1RfSU5ORVJfQ09OU0lTVEVOVF9QUk9D OgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBW T0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgSU5U RVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX0xF QUZfQ09OU0lTVEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgU1BHSVNUX0NPTVBSRVNTX1BST0M6CkBAIC0xNzcsNyArMTc3LDcgQEAgc3Bn dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJCW9rID0gZmFsc2U7CiAJCQkJZWxzZQog CQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywKLQkJ CQkJCQkJCQkJCWNvbmZpZ091dExlYWZUeXBlLCB0cnVlLAorCQkJCQkJCQkJCQkJY29uZmln T3V0TGVhZlR5cGUsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkJMSwgMSwgcHJvY2Zvcm0t PmFtcHJvY2xlZnR0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgU1BHSVNUX09QVElPTlNf UFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlw ZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwppbmRleCA1 NThjNmMxOGMzNC4uOGY3MjJiNjcyMmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9tdWx0aXJhbmdldHlwZXMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVs dGlyYW5nZXR5cGVzLmMKQEAgLTEyMjUsNiArMTIyNSw3NyBAQCBtdWx0aXJhbmdlX21pbnVz X2ludGVybmFsKE9pZCBtbHRybmd0eXBvaWQsIFR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5cCwK IAlyZXR1cm4gbWFrZV9tdWx0aXJhbmdlKG1sdHJuZ3R5cG9pZCwgcmFuZ2V0eXAsIHJhbmdl X2NvdW50MywgcmFuZ2VzMyk7CiB9CiAKKy8qCisgKiBtdWx0aXJhbmdlIG1pbnVzIGJ1dCBy ZXR1cm5pbmcgdGhlIHJlc3VsdCBhcyBhIFNSRiwKKyAqIHdpdGggbm8gcm93cyBpZiB0aGUg cmVzdWx0IHdvdWxkIGJlIGVtcHR5LgorICovCitEYXR1bQorbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNj dHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RD QUxMKCkpCisJeworCQkvKiBXZSBuZXZlciBoYXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICov CisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUo ZnVuY2N0eCk7CisJfQorCWVsc2UKKwl7CisJCU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11 bHRpcmFuZ2VUeXBlICptcjI7CisJCU9pZAkJCW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hl RW50cnkgKnR5cGNhY2hlOworCQlUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMy CQlyYW5nZV9jb3VudDE7CisJCWludDMyCQlyYW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAq KnJhbmdlczE7CisJCVJhbmdlVHlwZSAqKnJhbmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICpt cjsKKworCQlmdW5jY3R4ID0gU1JGX0ZJUlNUQ0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICog c3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFwcHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5j dGlvbiBjYWxscworCQkgKi8KKwkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhmdW5jY3R4LT5tdWx0aV9jYWxsX21lbW9yeV9jdHgpOworCisJCS8qIGdldCBhcmdzLCBk ZXRvYXN0aW5nIGludG8gbXVsdGktY2FsbCBtZW1vcnkgY29udGV4dCAqLworCQltcjEgPSBQ R19HRVRBUkdfTVVMVElSQU5HRV9QKDApOworCQltcjIgPSBQR19HRVRBUkdfTVVMVElSQU5H RV9QKDEpOworCisJCW1sdHJuZ3R5cG9pZCA9IE11bHRpcmFuZ2VUeXBlR2V0T2lkKG1yMSk7 CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUobWx0cm5ndHlwb2lkLCBUWVBFQ0FD SEVfTVVMVElSQU5HRV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmd0eXBlID09IE5VTEwp CisJCQllbG9nKEVSUk9SLCAidHlwZSAldSBpcyBub3QgYSBtdWx0aXJhbmdlIHR5cGUiLCBt bHRybmd0eXBvaWQpOworCQlyYW5nZXR5cCA9IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlm IChNdWx0aXJhbmdlSXNFbXB0eShtcjEpIHx8IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJ CQltciA9IG1yMTsKKwkJZWxzZQorCQl7CisJCQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJh bmdldHlwLCBtcjEsICZyYW5nZV9jb3VudDEsICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2Vf ZGVzZXJpYWxpemUocmFuZ2V0eXAsIG1yMiwgJnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOwor CisJCQltciA9IG11bHRpcmFuZ2VfbWludXNfaW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJ CQkJCQkJCSAgIHJhbmdldHlwLAorCQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJ CQkJCQkgICByYW5nZXMxLAorCQkJCQkJCQkJCSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJ CQkgICByYW5nZXMyKTsKKwkJfQorCisJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250 ZXh0KTsKKworCQlmdW5jY3R4ID0gU1JGX1BFUkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRp cmFuZ2VJc0VtcHR5KG1yKSkKKwkJCVNSRl9SRVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxz ZQorCQkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNjdHgsIE11bHRpcmFuZ2VUeXBlUEdldERhdHVt KG1yKSk7CisJfQorfQorCiAvKiBtdWx0aXJhbmdlIGludGVyc2VjdGlvbiAqLwogRGF0dW0K IG11bHRpcmFuZ2VfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3JhbmdldHlwZXMuYwppbmRleCAyZDk0YTZiODc3NC4uY2QwZmZlMjMxZTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRlICJjb21tb24vaGFzaGZuLmgiCisjaW5jbHVk ZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0 MCw3IEBACiAjaW5jbHVkZSAib3B0aW1pemVyL2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRp bWl6ZXIvY29zdC5oIgogI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNs dWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5j bHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAt MTIxMyw2ICsxMjE1LDE2NyBAQCByYW5nZV9zcGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRy eSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlwZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVy biBmYWxzZTsKIH0KIAorLyogc3VidHJhY3Rpb24gYnV0IHJldHVybmluZyBhbiBhcnJheSB0 byBhY2NvbW1vZGF0ZSBzcGxpdHMgKi8KK0RhdHVtCityYW5nZV93aXRob3V0X3BvcnRpb24o UEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0eXBlZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAg KnJzWzJdOworCQlpbnQJCQluOworCX0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisK KwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2Zj dHggKmZjdHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJLyogc3R1ZmYgZG9u ZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZf SVNfRklSU1RDQUxMKCkpCisJeworCQlSYW5nZVR5cGUJICAgKnIxOworCQlSYW5nZVR5cGUJ ICAgKnIyOworCQlPaWQJCQkJcm5ndHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNo ZTsKKworCQkvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1jYWxsIHBl cnNpc3RlbmNlICovCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkv KgorCQkgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRp cGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4 dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQ R19HRVRBUkdfUkFOR0VfUCgwKTsKKwkJcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKwor CQkvKiBEaWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBt YXRjaGluZyBydWxlcyAqLworCQlpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5 cGVHZXRPaWQocjIpKQorCQkJZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRj aCIpOworCisJCS8qIGFsbG9jYXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZj dHggPSAocmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5n ZV93aXRob3V0X3BvcnRpb25fZmN0eCkpOworCisJCS8qCisJCSAqIEluaXRpYWxpemUgc3Rh dGUuCisJCSAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRy YSBiZWNhdXNlIHRoZSBjYWxsZXIKKwkJICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRl LgorCQkgKi8KKwkJcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOworCQl0eXBjYWNo ZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7 CisJCWlmICh0eXBjYWNoZS0+cm5nZWxlbXR5cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1Is ICJ0eXBlICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisJCXJhbmdlX3dp dGhvdXRfcG9ydGlvbl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LT5ycywgJmZj dHgtPm4pOworCisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IGZjdHg7CisJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKwl9CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5 IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICovCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQ KCk7CisJZmN0eCA9IGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxs X2NudHIgPCBmY3R4LT5uKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9u IHNlcGFyYXRlIGxpbmVzCisJCSAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2Fs bF9jbnRyKys6CisJCSAqLworCQlSYW5nZVR5cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgt PmNhbGxfY250cl07CisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0 RGF0dW0ocmV0KSk7CisJfQorCWVsc2UKKwkJLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3Jl IGxlZnQgKi8KKwkJU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQorCisvKgorICogcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsIC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRu IHRvIHRoZSByYW5nZXMKKyAqIHJlbWFpbmluZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3Rp dmVseSkgYWZ0ZXIgc3VidHJhY3RpbmcgcjIgZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91 bGQgbmV2ZXIgY29udGFpbiBlbXB0eSByYW5nZXMuCisgKiBUaGUgb3V0cHV0cyB3aWxsIGJl IG9yZGVyZWQuIFdlIGV4cGVjdCB0aGF0IG91dHB1dHMgaXMgYW4gYXJyYXkgb2YKKyAqIFJh bmdlVHlwZSBwb2ludGVycywgYWxyZWFkeSBhbGxvY2F0ZWQgd2l0aCB0d28gZWxlbWVudHMu CisgKi8KK3ZvaWQKK3JhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJICAgUmFuZ2VUeXBlICpy MiwgUmFuZ2VUeXBlICoqb3V0cHV0cywgaW50ICpvdXRwdXRuKQoreworCWludAkJCWNtcF9s MWwyLAorCQkJCWNtcF9sMXUyLAorCQkJCWNtcF91MWwyLAorCQkJCWNtcF91MXUyOworCVJh bmdlQm91bmQJbG93ZXIxLAorCQkJCWxvd2VyMjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwKKwkJ CQl1cHBlcjI7CisJYm9vbAkJZW1wdHkxLAorCQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2Vy aWFsaXplKHR5cGNhY2hlLCByMSwgJmxvd2VyMSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFu Z2VfZGVzZXJpYWxpemUodHlwY2FjaGUsIHIyLCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHky KTsKKworCWlmIChlbXB0eTEpCisJeworCQkvKiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0g cjIgaXMgZW1wdHksIHNvIHJldHVybiB6ZXJvIHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAw OworCQlyZXR1cm47CisJfQorCWVsc2UgaWYgKGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVt cHR5IHNvIHRoZSByZXN1bHQgaXMganVzdCByMSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1w dHkpICovCisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47 CisJfQorCisJLyoKKwkgKiBVc2UgdGhlIHNhbWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50 ZXJuYWwsCisJICogYnV0IHN1cHBvcnQgdGhlIHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFs MiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNt cF9sMXUyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7 CisJY21wX3UxbDIgPSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmdXBwZXIxLCAmbG93 ZXIyKTsKKwljbXBfdTF1MiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEs ICZ1cHBlcjIpOworCisJaWYgKGNtcF9sMWwyIDwgMCAmJiBjbXBfdTF1MiA+IDApCisJewor CQlsb3dlcjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dl ciA9IGZhbHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0 cHV0c1swXSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNl LCBOVUxMKTsKKworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJ CXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3Vu ZCAqLworCQlvdXRwdXRzWzFdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVw cGVyMSwgZmFsc2UsIE5VTEwpOworCisJCSpvdXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAo Y21wX2wxdTIgPiAwIHx8IGNtcF91MWwyIDwgMCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsK KwkJKm91dHB1dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91 MXUyIDw9IDApCisJeworCQkqb3V0cHV0biA9IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwy IDw9IDAgJiYgY21wX3UxbDIgPj0gMCAmJiBjbXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIy LmluY2x1c2l2ZSA9ICFsb3dlcjIuaW5jbHVzaXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxz ZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhlIHVwcGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0g PSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmbG93ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7 CisJCSpvdXRwdXRuID0gMTsKKwl9CisJZWxzZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBf dTF1MiA+PSAwICYmIGNtcF9sMXUyIDw9IDApCisJeworCQl1cHBlcjIuaW5jbHVzaXZlID0g IXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwg YmVjb21lIHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0 eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwpOworCQkqb3V0cHV0biA9 IDE7CisJfQorCWVsc2UKKwl7CisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGNhc2UgaW4g cmFuZ2Vfd2l0aG91dF9wb3J0aW9uIik7CisJfQorfQorCiAvKiByYW5nZSAtPiByYW5nZSBh Z2dyZWdhdGUgZnVuY3Rpb25zICovCiAKIERhdHVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvYW12YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUu aAppbmRleCA0MjRhYjYzZmE1YS4uNjEwMzk1NDJkYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFs aWRhdGUuaApAQCAtMjgsOCArMjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVu Y0dyb3VwCiAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICov CiBleHRlcm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJs aXN0LCBDYXRDTGlzdCAqcHJvY2xpc3QpOwotZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJ ICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CitleHRlcm4gYm9vbCBjaGVja19h bXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwK KwkJCQkJCQkJICAgYm9vbCBleGFjdCwgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7 CiBleHRlcm4gYm9vbCBjaGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsK IGV4dGVybiBib29sIGNoZWNrX2Ftb3Bfc2lnbmF0dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlw ZSwKIAkJCQkJCQkJIE9pZCBsZWZ0dHlwZSwgT2lkIHJpZ2h0dHlwZSk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3Qu aAppbmRleCAyMmRkMDRjMTQxOC4uOGQ2Yzk5ZjVlYmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaApAQCAt NDAsNyArNDAsOCBAQAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmlu ZSBHSVNUX1NPUlRTVVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BS T0MJCQkJMTIKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9XSVRI T1VUX1BPUlRJT05fUFJPQwkJMTMKKyNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTMKIAogLyoK ICAqIFBhZ2Ugb3BhcXVlIGRhdGEgaW4gYSBHaVNUIGluZGV4IHBhZ2UuCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2FtcHJvYy5kYXQKaW5kZXggNWQ3ZmUyOTJiZjYuLjBhNGRiMzI1ZmFhIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC02MDksNiArNjA5LDkgQEAKIHsgYW1w cm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnly YW5nZScsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4g JzEyJywKICAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAoreyBhbXBy b2NmYW1pbHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJh bmdlJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAn MTMnLAorICBhbXByb2MgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSxhbnly YW5nZSknIH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1w cm9jbnVtID0+ICcxJywKICAgYW1wcm9jID0+ICdpbmV0X2dpc3RfY29uc2lzdGVudCcgfSwK QEAgLTY0OSw2ICs2NTIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5n ZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTInLAogICBhbXBy b2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAn Z2lzdC9tdWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdl JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ ICcxMycsCisgIGFtcHJvYyA9PiAnbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVs dGlyYW5nZSxhbnltdWx0aXJhbmdlKScgfSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGNiYmU4YWNkMzgyLi40MTM5ZGY5NGM5YiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMDczOSw2ICsxMDczOSwxMCBAQAogeyBv aWQgPT4gJzM4NjknLAogICBwcm9uYW1lID0+ICdyYW5nZV9taW51cycsIHByb3JldHR5cGUg PT4gJ2FueXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywg cHJvc3JjID0+ICdyYW5nZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA4JywgZGVzY3IgPT4g J3JlbW92ZSBwb3J0aW9uIGZyb20gcmFuZ2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93aXRo b3V0X3BvcnRpb24nLCBwcm9yb3dzID0+ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJv cmV0dHlwZSA9PiAnYW55cmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55 cmFuZ2UnLCBwcm9zcmMgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ ICczODcwJywgZGVzY3IgPT4gJ2xlc3MtZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4g J3JhbmdlX2NtcCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAn YW55cmFuZ2UgYW55cmFuZ2UnLCBwcm9zcmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTExMDI2 LDYgKzExMDMwLDEwIEBACiB7IG9pZCA9PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRp cmFuZ2VfbWludXMnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJn dHlwZXMgPT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVs dGlyYW5nZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBw b3J0aW9uIGZyb20gbXVsdGlyYW5nZScsCisgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uJywgcHJvcm93cyA9PiAnMScsCisgIHByb3JldHNldCA9PiAndCcsIHBy b3JldHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55bXVs dGlyYW5nZSBhbnltdWx0aXJhbmdlJywgcHJvc3JjID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbicgfSwKIHsgb2lkID0+ICc0MjcyJywKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5n ZV9pbnRlcnNlY3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJn dHlwZXMgPT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9yYW5n ZXR5cGVzLmgKaW5kZXggMmI1NzQ4NzNjZWYuLmUxYjI1NmI2NWY0IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMv cmFuZ2V0eXBlcy5oCkBAIC0xNjQsNSArMTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFr ZV9lbXB0eV9yYW5nZShUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wg cmFuZ2Vfc3BsaXRfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBS YW5nZVR5cGUgKnIxLAogCQkJCQkJCQkgY29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBl ICoqb3V0cHV0MSwKIAkJCQkJCQkJIFJhbmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZv aWQgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBj YWNoZSwgUmFuZ2VUeXBlICpyMSwKKwkJCQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlw ZSAqKm91dHB1dHMsIGludCAqb3V0cHV0bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZ UEVTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGly YW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dAppbmRleCBjNjM2M2ViZWIyNC4uMTFhYTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQKQEAgLTIyMDAsNiAr MjIwMCwxMjIgQEAgU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFu Z2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDAKICB7WzEsMiksWzQsNSl9 CiAoMSByb3cpCiAKKy0tIHdpdGhvdXRfcG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93 cykKKworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB7WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9 CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsK KyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDIsMykpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs NCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKKyBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIs NCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiks IG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsMyksWzQsOCl9CisoMSByb3cpCisKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsOCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkp KTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB7WzEsMiksWzMsNSl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdl KDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93 aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIp LFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24o bnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGly YW5nZShudW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQor CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1y YW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUp KSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitT RUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5n ZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7 CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSg4LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQor KDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1y YW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygx IHJvdykKKwogLS0gaW50ZXJzZWN0aW9uCiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVt bXVsdGlyYW5nZSgpOwogID9jb2x1bW4/IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9yYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cmFuZ2V0eXBlcy5vdXQKaW5kZXggYTdjYzIyMGJmMGQuLmFiMjMwOWU4YzFkIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKQEAgLTQ4MSw2ICs0ODEs NjAgQEAgc2VsZWN0IHJhbmdlX21pbnVzKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVt cmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKICBlbXB0eQogKDEgcm93KQogCitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMu MCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisoMCByb3dzKQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEu MSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVj dCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgy LjAsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3Bv cnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdl X3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIp CisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4x LCAyLjIsJ1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKwor c2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJh bmdlKDEuNSwgMi4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBbMS4wLDEuNSkKKyBbMi4wLDMuMCkKKygyIHJvd3MpCisKK3NlbGVj dCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1y YW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMTAuMSwxMi4yXQorKDEgcm93KQorCitzZWxlY3Qg cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFu Z2UoMC4wLDEyMC4yLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1yYW5nZSgxLjAsMy4wLCdbXScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsK KyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsx LjAsMS41XQorICgyLjAsMy4wXQorKDIgcm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwg NS41LCAnW10nKSAmJiBudW1yYW5nZSg1LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0 MWQ1NTI0Mjg1YS4uMGJmYTcxY2FjYTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL211bHRpcmFuZ2V0eXBlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVs dGlyYW5nZXR5cGVzLnNxbApAQCAtNDE0LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVt cmFuZ2UoMiw5KQogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFu Z2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpOwogU0VMRUNUIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdl KG51bXJhbmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKTsKIAorLS0gd2l0aG91dF9wb3J0aW9u CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgpLCBu dW1tdWx0aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIp KSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0 aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwz KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw4KSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0 KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMCwyKSwgbnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSwgbnVtcmFuZ2UoNSxudWxsKSkpOworU0VMRUNUIG11 bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwg bnVtcmFuZ2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkp KTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMyksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIs OSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDgsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJh bmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKSk7CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNU IG51bW11bHRpcmFuZ2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKIFNFTEVDVCBudW1tdWx0aXJh bmdlKCkgKiBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9yYW5nZXR5cGVzLnNxbAppbmRleCBhNWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNl bGVjdCBudW1yYW5nZSgxLjEsIDIuMiwnW10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNl bGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDEx MC4wLDEyMC4yLCcoXScpKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEy LjIsJ1tdJyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93 aXRob3V0X3BvcnRpb24oJ2VtcHR5Jzo6bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7 CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2Vt cHR5Jzo6bnVtcmFuZ2UpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5n ZSgxLjEsIDIuMiksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3Nl bGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51 bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJh bmdlKDEuMCwgMy4wKSwgbnVtcmFuZ2UoMS41LCAyLjApKTsKK3NlbGVjdCByYW5nZV93aXRo b3V0X3BvcnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwx MjAuMiwnKF0nKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEw LjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41 LDIuMCwnKF0nKSk7CisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVt cmFuZ2UoNS41LCA2LjUpOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1yYW5n ZSgzLjAsIDQuMCk7CiBzZWxlY3QgbnVtcmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFu Z2UoMy4wLCA0LjAsJ1tdJyk7Ci0tIAoyLjQyLjAKCg== --------------SmHgFLT9iu1c5DMXfpoz35vj Content-Type: text/x-patch; charset=UTF-8; name="v44-0003-Fix-NOACTION-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v44-0003-Fix-NOACTION-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBiYjhmZDhmNDQ1OGYzNmUzYmEyMTg5NzEzMjFiNGJkODU2NTJmODczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBOb3YgMjAyNCAxNDowNTo0OCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjQ0IDMvNF0gRml4IE5PQUNUSU9OIHRlbXBvcmFsIGZvcmVp Z24ga2V5cyB3aGVuIHRoZQogcmVmZXJlbmNlZCBlbmRwb2ludHMgY2hhbmdlCgpJZiBhIHJl ZmVyZW5jZWQgVVBEQVRFIGNoYW5nZXMgdGhlIHRlbXBvcmFsIHN0YXJ0L2VuZCB0aW1lcywg c2hyaW5raW5nCnRoZSBzcGFuIHRoZSByb3cgaXMgdmFsaWQsIHdlIGdldCBhIGZhbHNlIHJl dHVybiBmcm9tIHJpX0NoZWNrX1BrX01hdGNoLApidXQgb3ZlcmxhcHBpbmcgcmVmZXJlbmNl cyBtYXkgc3RpbGwgYmUgdmFsaWQsIGlmIHRoZWlyIHJlZmVyZW5jZSBkaWRuJ3QKb3Zlcmxh cCB3aXRoIHRoZSByZW1vdmVkIHNwYW4uCgpXZSBuZWVkIHRvIGNvbnNpZGVyIHdoYXQgc3Bh bihzKSBhcmUgc3RpbGwgcHJvdmlkZWQgaW4gdGhlIHJlZmVyZW5jZWQKdGFibGUuIEluc3Rl YWQgb2YgcmV0dXJuaW5nIHRoYXQgZnJvbSByaV9DaGVja19Qa19NYXRjaCwgd2UgY2FuIGp1 c3QKd2UgbG9vayBpdCB1cCBpbiB0aGUgbWFpbiBTUUwgcXVlcnkuCgpSZXBvcnRlZC1ieTog U2FtIEdhYnJpZWxzc29uCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyAgICAgICAgICAgfCAxNCArKy0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCA5OSArKysrKysrKysr KysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAgICAg ICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAg ICAgIHwgIDYgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 ICAgICB8IDY4ICsrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsICAgICB8IDYwICsrKysrKysrKystCiA3IGZpbGVzIGNoYW5nZWQsIDI0 MyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y29uc3RyYWludC5jCmluZGV4IDljMDVhOThkMjhjLi5jN2ZkYmVlZGMwYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE2MTMsNyArMTYxMyw4IEBAIERlY29u c3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiB2 b2lkCiBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKIAkJCQkgIE9pZCAqY29udGFp bmVkYnlvcGVyb2lkLAotCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCkKKwkJ CQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJICBPaWQgKmludGVyc2Vj dG9wZXJvaWQpCiB7CiAJT2lkCQkJb3BmYW1pbHkgPSBJbnZhbGlkT2lkOwogCU9pZAkJCW9w Y2ludHlwZSA9IEludmFsaWRPaWQ7CkBAIC0xNjU0LDYgKzE2NTUsMTcgQEAgRmluZEZLUGVy aW9kT3BlcnMoT2lkIG9wY2xhc3MsCiAJCQkJCQkJCQkgQU5ZTVVMVElSQU5HRU9JRCwKIAkJ CQkJCQkJCSBhZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKIAkJCQkJCQkJCSAmc3RyYXQpOwor CisJc3dpdGNoIChvcGNpbnR5cGUpIHsKKwkJY2FzZSBBTllSQU5HRU9JRDoKKwkJCSppbnRl cnNlY3RvcGVyb2lkID0gT0lEX1JBTkdFX0lOVEVSU0VDVF9SQU5HRV9PUDsKKwkJCWJyZWFr OworCQljYXNlIEFOWU1VTFRJUkFOR0VPSUQ6CisJCQkqaW50ZXJzZWN0b3Blcm9pZCA9IE9J RF9NVUxUSVJBTkdFX0lOVEVSU0VDVF9NVUxUSVJBTkdFX09QOworCQkJYnJlYWs7CisJCWRl ZmF1bHQ6CisJCQllbG9nKEVSUk9SLCAiVW5leHBlY3RlZCBvcGNpbnR5cGU6ICV1Iiwgb3Bj aW50eXBlKTsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4 IGNiZDFkOWM1NmZjLi5kYzFlN2Q0ZjQzOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMKQEAgLTEwMTc2LDggKzEwMTc2LDEwIEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQo TGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJ ewogCQlPaWQJCQlwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBlcmlvZG9wZXJvaWQ7 CisJCU9pZAkJCWludGVyc2VjdG9wZXJvaWQ7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnMob3Bj bGFzc2VzW251bXBrcyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Blcm9p ZCk7CisJCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwgJnBlcmlv ZG9wZXJvaWQsICZhZ2dlZHBlcmlvZG9wZXJvaWQsCisJCQkJCQkgICZpbnRlcnNlY3RvcGVy b2lkKTsKIAl9CiAKIAkvKiBGaXJzdCwgY3JlYXRlIHRoZSBjb25zdHJhaW50IGNhdGFsb2cg ZW50cnkgaXRzZWxmLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRl eCA2ODk2ZTFhZTYzOC4uYTA2ZmNhZmRiN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jCkBAIC0xMjksNiArMTI5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3Ry YWludEluZm8KIAlPaWQJCQlmZl9lcV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxp dHkgb3BlcmF0b3JzIChGSyA9IEZLKSAqLwogCU9pZAkJCXBlcmlvZF9jb250YWluZWRfYnlf b3BlcjsJLyogYW55cmFuZ2UgPEAgYW55cmFuZ2UgKi8KIAlPaWQJCQlhZ2dlZF9wZXJpb2Rf Y29udGFpbmVkX2J5X29wZXI7IC8qIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKSAqLwor CU9pZAkJCXBlcmlvZF9pbnRlcnNlY3Rfb3BlcjsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAq LwogCWRsaXN0X25vZGUJdmFsaWRfbGluazsJCS8qIExpbmsgaW4gbGlzdCBvZiB2YWxpZCBl bnRyaWVzICovCiB9IFJJX0NvbnN0cmFpbnRJbmZvOwogCkBAIC03MzEsOCArNzMyLDExIEBA IHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24p CiAJICogbm90IGRvIGFueXRoaW5nLiAgSG93ZXZlciwgdGhpcyBjaGVjayBzaG91bGQgb25s eSBiZSBtYWRlIGluIHRoZSBOTwogCSAqIEFDVElPTiBjYXNlOyBpbiBSRVNUUklDVCBjYXNl cyB3ZSBkb24ndCB3aXNoIHRvIGFsbG93IGFub3RoZXIgcm93IHRvIGJlCiAJICogc3Vic3Rp dHV0ZWQuCisJICoKKwkgKiBJZiB0aGUgZm9yZWlnbiBrZXkgaGFzIFBFUklPRCwgd2UgaW5j b3Jwb3JhdGUgbG9va2luZyBmb3IgcmVwbGFjZW1lbnQKKwkgKiByb3dzIGluIHRoZSBtYWlu IFNRTCBxdWVyeSBiZWxvdywgc28gd2UgbmVlZG4ndCBkbyBpdCBoZXJlLgogCSAqLwotCWlm IChpc19ub19hY3Rpb24gJiYKKwlpZiAoaXNfbm9fYWN0aW9uICYmICFyaWluZm8tPmhhc3Bl cmlvZCAmJgogCQlyaV9DaGVja19Qa19NYXRjaChwa19yZWwsIGZrX3JlbCwgb2xkc2xvdCwg cmlpbmZvKSkKIAl7CiAJCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93U2hhcmVMb2NrKTsKQEAg LTc1MCw4ICs3NTQsMTAgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBi b29sIGlzX25vX2FjdGlvbikKIAlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4o JnFrZXkpKSA9PSBOVUxMKQogCXsKIAkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCWNo YXIJCXBrcmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CiAJCWNoYXIJCWZrcmVs bmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CiAJCWNoYXIJCWF0dG5hbWVbTUFYX1FV T1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBlcmlvZGF0dG5hbWVbTUFYX1FVT1RFRF9OQU1F X0xFTl07CiAJCWNoYXIJCXBhcmFtbmFtZVsxNl07CiAJCWNvbnN0IGNoYXIgKnF1ZXJ5c2Vw OwogCQlPaWQJCQlxdWVyeW9pZHNbUklfTUFYX05VTUtFWVNdOwpAQCAtNzYzLDYgKzc2OSwy NiBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0 aW9uKQogCQkgKgkJICAgRk9SIEtFWSBTSEFSRSBPRiB4CiAJCSAqIFRoZSB0eXBlIGlkJ3Mg Zm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQogCQkgKiBjb3JyZXNwb25k aW5nIFBLIGF0dHJpYnV0ZXMuCisJCSAqCisJCSAqIEZvciB0ZW1wb3JhbCBmb3JlaWduIGtl eXMgYSByZWZlcmVuY2UgY291bGQgc3RpbGwgYmUgdmFsaWQsCisJCSAqIGlmIHRoZSByZWZl cmVuY2VkIHJhbmdlIGRpZG4ndCBjaGFuZ2UgdG9vIG11Y2guCisJCSAqIEFsc28gaWYgdGhl IHJlZmVyZW5jaW5nIHRpbWUgc3BhbiBleHRlbmRzIHBhc3QgdGhlIGN1cnJlbnQgUEsgcm93 LAorCQkgKiB3ZSBkb24ndCB3YW50IHRvIGNoZWNrIHRoYXQgcGFydDogc29tZSBvdGhlciBQ SyByb3cgc2hvdWxkIGZ1bGZpbGwgaXQuCisJCSAqIFdlIG9ubHkgd2FudCB0byB2YWxpZGF0 ZSB0aGUgcGFydCBtYXRjaGluZyB0aGUgUEsgcmVjb3JkIHdlJ3ZlIGNoYW5nZWQuCisJCSAq IFRoZXJlZm9yZSB0byBmaW5kIGludmFsaWQgcmVjb3JkcyB3ZSBkbyB0aGlzOgorCQkgKiBT RUxFQ1QgMQorCQkgKiBGUk9NIFtPTkxZXSA8Zmt0YWJsZT4geAorCQkgKiBXSEVSRSAkMSA9 IHguZmthdHQxIFtBTkQgLi4uXSBBTkQgJG4gJiYgeC5ma3BlcmlvZAorCQkgKiBBTkQgTk9U IGNvYWxlc2NlKCh4LmZrcGVyaW9kICogJG4pIDxACisJCSAqICAoU0VMRUNUIHJhbmdlX2Fn ZyhyKQorCQkgKiAgIEZST00gKFNFTEVDVCB5LnBrcGVyaW9kIHIKKwkJICogICAgICAgICBG Uk9NIFtPTkxZXSA8cGt0YWJsZT4geQorCQkgKiAgICAgICAgIFdIRVJFICQxID0geS5wa2F0 dDEgW0FORCAuLi5dIEFORCAkbiAmJiB5LnBrcGVyaW9kCisJCSAqICAgICAgICAgRk9SIEtF WSBTSEFSRSBPRiB5KSwgZmFsc2UpCisJCSAqIEZPUiBLRVkgU0hBUkUgT0YgeAorCQkgKiBX ZSBuZWVkIHRoZSBjb2FsZXNjZSBpbiBjYXNlIHRoZSBmaXJzdCBzdWJxdWVyeSByZXR1cm5z IG5vIHJvd3MuCisJCSAqIFdlIG5lZWQgdGhlIHNlY29uZCBzdWJxdWVyeSBiZWNhdXNlIEZP UiBLRVkgU0hBUkUgZG9lc24ndCBzdXBwb3J0CisJCSAqIGFnZ3JlZ2F0ZSBxdWVyaWVzLgog CQkgKiAtLS0tLS0tLS0tCiAJCSAqLwogCQlpbml0U3RyaW5nSW5mbygmcXVlcnlidWYpOwpA QCAtNzkxLDYgKzgxNyw3NCBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEs IGJvb2wgaXNfbm9fYWN0aW9uKQogCQkJcXVlcnlzZXAgPSAiQU5EIjsKIAkJCXF1ZXJ5b2lk c1tpXSA9IHBrX3R5cGU7CiAJCX0KKworCQkvKgorCQkgKiBEb24ndCBmYWlsIGlmIHRoZSBy ZW1haW5pbmcgaGlzdG9yeSBzdGlsbCBmdWxmaWxscyB0aGUgcmVmZXJlbmNlcy4KKwkJICog T25seSBjaGVjayB0aGUgcGFydCBvZiB0aGUgcmVmZXJlbmNlcyBpbnRlcnNlY3Rpbmcgd2l0 aCBvbGRzbG90LAorCQkgKiBzaW5jZSB0aGUgcmVzdCB3b3VsZCBiZSBmdWxmaWxsZWQgYnkg c29tZSBvdGhlciBwayByZWNvcmQuCisJCSAqCisJCSAqIEZvciBOT0FDVElPTiB3ZSBjYW4g cXVlcnkgdGhlIHBrIHRhYmxlIGFuZCB1c2Ugd2hhdGV2ZXIgd2UgZmluZAorCQkgKiAoaW5z dGVhZCBvZiBjYWxsaW5nIHJpX0NoZWNrX1BrX01hdGNoIGFib3ZlKS4KKwkJICovCisJCWlm IChyaWluZm8tPmhhc3BlcmlvZCAmJiBpc19ub19hY3Rpb24pCisJCXsKKwkJCU9pZAkJCQlw a19wZXJpb2RfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1ty aWluZm8tPm5rZXlzIC0gMV0pOworCQkJT2lkCQkJCWZrX3BlcmlvZF90eXBlID0gUklBdHRU eXBlKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisJ CQlTdHJpbmdJbmZvRGF0YQlpbnRlcnNlY3RidWY7CisJCQlTdHJpbmdJbmZvRGF0YQlyZXBs YWNlbWVudHNidWY7CisJCQljaGFyICpwa19vbmx5ID0gcGtfcmVsLT5yZF9yZWwtPnJlbGtp bmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSA/CisJCQkJIiIgOiAiT05MWSAiOwor CisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5m a19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSkpOworCQkJc3ByaW50ZihwYXJhbW5hbWUs ICIkJWQiLCByaWluZm8tPm5rZXlzKTsKKworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm cXVlcnlidWYsICIgQU5EIE5PVCBjb2FsZXNjZSgiKTsKKworCQkJLyogSW50ZXJzZWN0IHRo ZSBmayB3aXRoIHRoZSBvbGQgcGsgcmFuZ2UgKi8KKwkJCWluaXRTdHJpbmdJbmZvKCZpbnRl cnNlY3RidWYpOworCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmaW50ZXJzZWN0YnVmLCAi KCIpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZpbnRlcnNlY3RidWYsICIiLAorCQkJCQkJCWF0 dG5hbWUsIGZrX3BlcmlvZF90eXBlLAorCQkJCQkJCXJpaW5mby0+cGVyaW9kX2ludGVyc2Vj dF9vcGVyLAorCQkJCQkJCXBhcmFtbmFtZSwgcGtfcGVyaW9kX3R5cGUpOworCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZygmaW50ZXJzZWN0YnVmLCAiKSIpOworCisJCQkvKiBGaW5kIHRo ZSByZW1haW5pbmcgaGlzdG9yeSAqLworCQkJaW5pdFN0cmluZ0luZm8oJnJlcGxhY2VtZW50 c2J1Zik7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZyZXBsYWNlbWVudHNidWYsICIo U0VMRUNUIHBnX2NhdGFsb2cucmFuZ2VfYWdnKHIpIEZST00gIik7CisKKwkJCXF1b3RlT25l TmFtZShwZXJpb2RhdHRuYW1lLCBSSUF0dE5hbWUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51 bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisJCQlxdW90ZVJlbGF0aW9uTmFtZShwa3JlbG5h bWUsIHBrX3JlbCk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZyZXBsYWNlbWVudHNidWYsICIo U0VMRUNUIHkuJXMgciBGUk9NICVzJXMgeSIsCisJCQkJCQkJIHBlcmlvZGF0dG5hbWUsIHBr X29ubHksIHBrcmVsbmFtZSk7CisKKwkJCS8qIFJlc3RyaWN0IHBrIHJvd3MgdG8gd2hhdCBt YXRjaGVzICovCisJCQlxdWVyeXNlcCA9ICJXSEVSRSI7CisJCQlmb3IgKGludCBpID0gMDsg aSA8IHJpaW5mby0+bmtleXM7IGkrKykKKwkJCXsKKwkJCQlPaWQJCXBrX3R5cGUgPSBSSUF0 dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbaV0pOworCisJCQkJcXVvdGVPbmVO YW1lKGF0dG5hbWUsCisJCQkJCQkJIFJJQXR0TmFtZShwa19yZWwsIHJpaW5mby0+cGtfYXR0 bnVtc1tpXSkpOworCQkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOworCQkJ CXJpX0dlbmVyYXRlUXVhbCgmcmVwbGFjZW1lbnRzYnVmLCBxdWVyeXNlcCwKKwkJCQkJCQkJ cGFyYW1uYW1lLCBwa190eXBlLAorCQkJCQkJCQlyaWluZm8tPnBwX2VxX29wcnNbaV0sCisJ CQkJCQkJCWF0dG5hbWUsIHBrX3R5cGUpOworCQkJCXF1ZXJ5c2VwID0gIkFORCI7CisJCQkJ cXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKKwkJCX0KKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJnJlcGxhY2VtZW50c2J1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHkpIik7CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZyZXBsYWNlbWVudHNidWYsICIgeTIpIik7CisKKwkJCXJp X0dlbmVyYXRlUXVhbCgmcXVlcnlidWYsICIiLAorCQkJCQkJCWludGVyc2VjdGJ1Zi5kYXRh LCBma19wZXJpb2RfdHlwZSwKKwkJCQkJCQlyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWlu ZWRfYnlfb3BlciwKKwkJCQkJCQlyZXBsYWNlbWVudHNidWYuZGF0YSwgQU5ZTVVMVElSQU5H RU9JRCk7CisJCQkvKiBlbmQgb2YgY29hbGVzY2U6ICovCisJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZxdWVyeWJ1ZiwgIiwgZmFsc2UpIik7CisJCX0KKwogCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZxdWVyeWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKIAogCQkvKiBQ cmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCkBAIC0yMjYyLDcgKzIzNTYsOCBAQCByaV9M b2FkQ29uc3RyYWludEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAKIAkJRmluZEZLUGVyaW9k T3BlcnMob3BjbGFzcywKIAkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9v cGVyLAotCQkJCQkJICAmcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIp OworCQkJCQkJICAmcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJ CQkJCQkgICZyaWluZm8tPnBlcmlvZF9pbnRlcnNlY3Rfb3Blcik7CiAJfQogCiAJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4 IDRiNDQ3NjczOGEyLi41ZWRkNGViOGEzMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25z dHJhaW50LmgKQEAgLTI4OCw3ICsyODgsOCBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVjdEZr Q29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJ ICAgaW50ICpudW1fZmtfZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2Nv bHMpOwogZXh0ZXJuIHZvaWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCiAJCQkJ CQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250 YWluZWRieW9wZXJvaWQpOworCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9p ZCwKKwkJCQkJCQkgIE9pZCAqaW50ZXJzZWN0b3Blcm9pZCk7CiAKIGV4dGVybiBib29sIGNo ZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJlbGlkLAogCQkJCQkJCQkJICBJbmRleCB2 YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX29wZXJhdG9yLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3Iu ZGF0CmluZGV4IDBlNzUxMWRkZTFjLi5hZWRkZDI5MmUyYyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19vcGVyYXRvci5kYXQKQEAgLTMxNTAsNyArMzE1MCw4IEBACiB7IG9pZCA9PiAnMzg5 OScsIGRlc2NyID0+ICdyYW5nZSBkaWZmZXJlbmNlJywKICAgb3BybmFtZSA9PiAnLScsIG9w cmxlZnQgPT4gJ2FueXJhbmdlJywgb3BycmlnaHQgPT4gJ2FueXJhbmdlJywKICAgb3BycmVz dWx0ID0+ICdhbnlyYW5nZScsIG9wcmNvZGUgPT4gJ3JhbmdlX21pbnVzJyB9LAoteyBvaWQg PT4gJzM5MDAnLCBkZXNjciA9PiAncmFuZ2UgaW50ZXJzZWN0aW9uJywKK3sgb2lkID0+ICcz OTAwJywgb2lkX3N5bWJvbCA9PiAnT0lEX1JBTkdFX0lOVEVSU0VDVF9SQU5HRV9PUCcsCisg IGRlc2NyID0+ICdyYW5nZSBpbnRlcnNlY3Rpb24nLAogICBvcHJuYW1lID0+ICcqJywgb3By bGVmdCA9PiAnYW55cmFuZ2UnLCBvcHJyaWdodCA9PiAnYW55cmFuZ2UnLAogICBvcHJyZXN1 bHQgPT4gJ2FueXJhbmdlJywgb3ByY29tID0+ICcqKGFueXJhbmdlLGFueXJhbmdlKScsCiAg IG9wcmNvZGUgPT4gJ3JhbmdlX2ludGVyc2VjdCcgfSwKQEAgLTM0MTcsNyArMzQxOCw4IEBA CiB7IG9pZCA9PiAnNDM5MycsIGRlc2NyID0+ICdtdWx0aXJhbmdlIG1pbnVzJywKICAgb3By bmFtZSA9PiAnLScsIG9wcmxlZnQgPT4gJ2FueW11bHRpcmFuZ2UnLCBvcHJyaWdodCA9PiAn YW55bXVsdGlyYW5nZScsCiAgIG9wcnJlc3VsdCA9PiAnYW55bXVsdGlyYW5nZScsIG9wcmNv ZGUgPT4gJ211bHRpcmFuZ2VfbWludXMnIH0sCi17IG9pZCA9PiAnNDM5NCcsIGRlc2NyID0+ ICdtdWx0aXJhbmdlIGludGVyc2VjdCcsCit7IG9pZCA9PiAnNDM5NCcsIG9pZF9zeW1ib2wg PT4gJ09JRF9NVUxUSVJBTkdFX0lOVEVSU0VDVF9NVUxUSVJBTkdFX09QJywKKyAgZGVzY3Ig PT4gJ211bHRpcmFuZ2UgaW50ZXJzZWN0JywKICAgb3BybmFtZSA9PiAnKicsIG9wcmxlZnQg PT4gJ2FueW11bHRpcmFuZ2UnLCBvcHJyaWdodCA9PiAnYW55bXVsdGlyYW5nZScsCiAgIG9w cnJlc3VsdCA9PiAnYW55bXVsdGlyYW5nZScsIG9wcmNvbSA9PiAnKihhbnltdWx0aXJhbmdl LGFueW11bHRpcmFuZ2UpJywKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3Qn IH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBz Lm91dAppbmRleCAzMTk2NjJiZDU4ZC4uZGY5NTViZDFiM2MgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMTY4MSw3ICsx NjgxLDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK IElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKICAgKCdb NSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAogICAoJ1s1 LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7Ci1JTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAn WzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCiBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywg JzIwMTgtMDMtMDEnKTsKIC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2Vl biB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMTY5NCw2ICsxNjk1LDM3IEBAIFVQREFURSB0 ZW1wb3JhbF9ybmcKIFNFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkg PSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0w NScpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgt MDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBFTkQK IFdIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVm ZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVy ZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhl ciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSksCisgICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMSwyKScpLAorICAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSwgJ1sxLDIp Jyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUg cmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEg UEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcg dGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUn LCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEp KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci LgorLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhl IHdob2xlIHJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknCitX SEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVu Y2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRhdGUg dGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIs MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyks ICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAt LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK IFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAx LTAxJywgJzIwMTYtMDItMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBAIC0yMTY5LDcgKzIy MDEsOCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNikn OwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwog ICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpLAogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSksICdbNSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScp OwogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRn ZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0yMTgyLDYgKzIyMTUsMzcgQEAg VVBEQVRFIHRlbXBvcmFsX21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2Vy KHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAgICAgICAgICAgIFdI RU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECiBXSEVSRSBpZCA9 ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVs dGlyYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6 IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxm aWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1sy LDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUt MDEnKSksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScp KQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRh dGU7CistLSBhIFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2Ug aXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJF IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0g YSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNo YW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUg aWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMy0wMSl9KSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmci LgorLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhl IHdob2xlIG11bHRpcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdb MiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9t bHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgt MDMtMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJv dGggZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1 JywgJzIwMTgtMDItMDEnKSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAn MjAxOC0wMi0xNScpKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhh dCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CiBVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0w MS0wMScsICcyMDE2LTAyLTAxJykpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4 IGViZWUyZjI5MzJlLi45Yjg0NGQxZmEzYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTEyMzQsNyArMTIzNCw4IEBAIERFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT CisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAn WzUsNiknKTsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAtLSBB IFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93 czoKQEAgLTEyNDcsNiArMTI0OCwzMyBAQCBVUERBVEUgdGVtcG9yYWxfcm5nCiBTRVQgdmFs aWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQogICAgICAgICAgICAgICAg ICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5n ZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECiBXSEVSRSBpZCA9ICdbNiw3KSc7 CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0 aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVk IGJ5IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGgg cGsgcm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAzLTAxJykpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgt MDYtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MTUnLCAnMjAxOC0wMi0wMScpLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0xNScsICcyMDE4LTA1LTAxJyksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0w MScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6 ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMg ZmluZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcg dGhlIHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0 aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScs IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKQorV0hF UkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7Cist LSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hv bGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJF IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0g YSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3Rp bGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcy MDE4LTAyLTAxJyksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9 ICdbMiwzKSc7CiAtLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUg cmVmZXJlbmNlZDoKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBA IC0xNjkxLDcgKzE3MTksOCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzUsNiknOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUwogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1Jywg JzIwMTgtMDEtMTAnKSksICdbNSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSksICdbNSw2KScpOwogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQog V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xp ZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0xNzA0LDYg KzE3MzMsMzMgQEAgVVBEQVRFIHRlbXBvcmFsX21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FT RSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAg ICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5E CiBXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJl ZmVyZW5jZWQgbXVsdGlyYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdv IHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRo ZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkp LAorICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywg JzIwMTgtMDYtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwy KScpLAorICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1 JywgJzIwMTgtMDUtMDEnKSksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAn MjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAx OC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2Vk IG11bHRpcmFuZ2UgaXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMt MDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUn OjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRp cmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGly YW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0w MScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6 OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRl cyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlk ID0gJ1syLDMpJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0w MS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3Ro IGVuZHMsIGJ1dCBpcyBzdGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMKKyAgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScs ICcyMDE4LTAyLTAxJykpLCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIw MTgtMDItMTUnKSkKK1dIRVJFIGlkID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgogVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEt MDEnLCAnMjAxNi0wMi0wMScpKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykp OwotLSAKMi40Mi4wCgo= --------------SmHgFLT9iu1c5DMXfpoz35vj Content-Type: text/x-patch; charset=UTF-8; name="v44-0004-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v44-0004-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxMmE4NGZlNzg4MWQ5YThhNjBjYmM2OGFhNmFmNGYzNmVjYThlYjMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMTIgTm92IDIwMjQgMDk6MTk6NDQgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NCA0LzRdIEZpeCBSRVNUUklDVCB0ZW1wb3JhbCBmb3Jl aWduIGtleXMgd2hlbiB0aGUKIHJlZmVyZW5jZWQgZW5kcG9pbnRzIGNoYW5nZQoKQSBSRVNU SUNUIGZvcmVpZ24ga2V5IG11c3QgZmFpbCBpZiB0aGUgcmVmZXJlbmNlZCBrZXkgY2hhbmdl cy4gQQp0ZW1wb3JhbCBSRVNUUklDVCBmb3JlaWduIGtleSBzaG91bGQgZmFpbCBpZiB0aGUg a2V5IGNoYW5nZXMgZm9yIGEgc3Bhbgp0aGF0IGlzIHJlZmVyZW5jZWQuIENoYW5naW5nIHRo ZSBrZXkgZm9yIGFuIHVucmVmZXJlbmNlZCBzcGFuIGlzIG9rYXksCmV2ZW4gaWYgdGhhdCBy b3cgaXMgcmVmZXJlbmNlZCBkdXJpbmcgc29tZSBwb3J0aW9uIG9mIGl0cyBzcGFuIHRoYXQK ZGlkbid0IGNoYW5nZS4gVGhlcmVmb3JlIHdlIGhhdmUgdG8gY29tcHV0ZSB3aGljaCBwYXJ0 KHMpIHdlcmUgbG9zdCwgYW5kCmZhaWwgaWYgd2UgZmluZCBhbnkgcmVmZXJlbmNlcyBvdmVy bGFwcGluZyB0aG9zZSBwYXJ0cy4gV2UgY2FuIHN0aWxsIHVzZQp0aGUgc2FtZSBTUUwgYXMg bm9ybWFsLCBiZWNhdXNlIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBQRVJJT0QgcGFyYW1ldGVy CndlIHNlYXJjaCBmb3IuIFdlIGNhbiBjYWxsIHdpdGhvdXRfcG9ydGlvbiB0byBnZXQgdGhl IGxvc3QgcGFydHM6IHRoZXkKYXJlIG9sZHNsb3QucGtwZXJpb2QgLSBuZXdzbG90LnBrcGVy aW9kLiBUaGlzIGNvbW1pdCBhZGRzIGNvZGUgZm9yIHRoYXQKdG8gcmlfcmVzdHJpY3QsIGFs b25nIHdpdGggdGVzdHMuCgpBdXRob3I6IFBhdWwgSnVuZ3dpcnRoCi0tLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgIDI1ICsrLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCAxNjEgKysrKysr KysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAg ICAgICAgfCAgIDkgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0ICAgICB8ICA2OCArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwgICAgIHwgIDYwICsrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjkyIGlu c2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25z dHJhaW50LmMKaW5kZXggYzdmZGJlZWRjMGEuLjBhOGQ3NDFkNjUwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTYwMCwyMSArMTYwMCwyNSBAQCBEZWNvbnN0 cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogfQog CiAvKgotICogRmluZEZrUGVyaW9kT3BlcnMgLQorICogRmluZEZrUGVyaW9kT3BlcnNBbmRQ cm9jcyAtCiAgKgotICogTG9va3MgdXAgdGhlIG9wZXJhdG9yIG9pZHMgdXNlZCBmb3IgdGhl IFBFUklPRCBwYXJ0IG9mIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXkuCisgKiBMb29rcyB1cCB0 aGUgb3BlcmF0b3IgYW5kIHByb2NlZHVyZSBvaWRzIHVzZWQgZm9yIHRoZSBQRVJJT0QgcGFy dCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LgogICogVGhlIG9wY2xhc3Mgc2hvdWxkIGJl IHRoZSBvcGNsYXNzIG9mIHRoYXQgUEVSSU9EIGVsZW1lbnQuCiAgKiBFdmVyeXRoaW5nIGVs c2UgaXMgYW4gb3V0cHV0OiBjb250YWluZWRieW9wZXJvaWQgaXMgdGhlIENvbnRhaW5lZEJ5 IG9wZXJhdG9yIGZvcgogICogdHlwZXMgbWF0Y2hpbmcgdGhlIFBFUklPRCBlbGVtZW50Lgog ICogYWdnZWRjb250YWluZWRieW9wZXJvaWQgaXMgYWxzbyBhIENvbnRhaW5lZEJ5IG9wZXJh dG9yLAogICogYnV0IG9uZSB3aG9zZSByaHMgaXMgYSBtdWx0aXJhbmdlLgogICogVGhhdCB3 YXkgZm9yZWlnbiBrZXlzIGNhbiBjb21wYXJlIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRy KS4KKyAqIHdpdGhvdXRwb3J0aW9ub2lkIGlzIGEgc2V0LXJldHVybmluZyBmdW5jdGlvbiBj b21wdXRpbmcKKyAqIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gb25lIHJhbmdlIGFuZCBhbm90 aGVyLAorICogcmV0dXJuaW5nIGVhY2ggcmVzdWx0IHJhbmdlIGluIGEgc2VwYXJhdGUgcm93 LgogICovCiB2b2lkCi1GaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKLQkJCQkgIE9p ZCAqY29udGFpbmVkYnlvcGVyb2lkLAotCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Bl cm9pZCwKLQkJCQkgIE9pZCAqaW50ZXJzZWN0b3Blcm9pZCkKK0ZpbmRGS1BlcmlvZE9wZXJz QW5kUHJvY3MoT2lkIG9wY2xhc3MsCisJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lk LAorCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJICBPaWQg KmludGVyc2VjdG9wZXJvaWQsCisJCQkJCQkgIE9pZCAqd2l0aG91dHBvcnRpb25vaWQpCiB7 CiAJT2lkCQkJb3BmYW1pbHkgPSBJbnZhbGlkT2lkOwogCU9pZAkJCW9wY2ludHlwZSA9IElu dmFsaWRPaWQ7CkBAIC0xNjY2LDYgKzE2NzAsMTUgQEAgRmluZEZLUGVyaW9kT3BlcnMoT2lk IG9wY2xhc3MsCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAiVW5leHBlY3RlZCBvcGNp bnR5cGU6ICV1Iiwgb3BjaW50eXBlKTsKIAl9CisKKwkqd2l0aG91dHBvcnRpb25vaWQgPSBJ bnZhbGlkT2lkOworCSp3aXRob3V0cG9ydGlvbm9pZCA9IGdldF9vcGZhbWlseV9wcm9jKG9w ZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJP Qyk7CisJaWYgKCFPaWRJc1ZhbGlkKCp3aXRob3V0cG9ydGlvbm9pZCkpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCWVy cm1zZygiY291bGQgbm90IGlkZW50aWZ5IGEgd2l0aG91dF9vdmVybGFwcyBzdXBwb3J0IGZ1 bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBlKSksCisJCQkJ ZXJyaGludCgiRGVmaW5lIGEgd2l0aG91dF9vdmVybGFwcyBzdXBwb3J0IGZ1bmN0aW9uIGZv ciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2QgXCIlc1wiLiIsCisJ CQkJCQlvcGNsYXNzLCAiZ2lzdCIpKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKaW5kZXggZGMxZTdkNGY0MzkuLjFjM2MwMWViMDcyIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYwpAQCAtMTAxNzcsOSArMTAxNzcsMTEgQEAgQVRBZGRGb3JlaWduS2V5 Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKIAkJT2lkCQkJcGVyaW9kb3Blcm9pZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2Rv cGVyb2lkOwogCQlPaWQJCQlpbnRlcnNlY3RvcGVyb2lkOworCQlPaWQJCQl3aXRob3V0b3Zl cmxhcHNvaWQ7CiAKLQkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzc2VzW251bXBrcyAtIDFd LCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2VkcGVyaW9kb3Blcm9pZCwKLQkJCQkJCSAgJmludGVy c2VjdG9wZXJvaWQpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3Nlc1tu dW1wa3MgLSAxXSwgJnBlcmlvZG9wZXJvaWQsCisJCQkJCQkJCSAgJmFnZ2VkcGVyaW9kb3Bl cm9pZCwgJmludGVyc2VjdG9wZXJvaWQsCisJCQkJCQkJCSAgJndpdGhvdXRvdmVybGFwc29p ZCk7CiAJfQogCiAJLyogRmlyc3QsIGNyZWF0ZSB0aGUgY29uc3RyYWludCBjYXRhbG9nIGVu dHJ5IGl0c2VsZi4gKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXgg YTA2ZmNhZmRiN2UuLjE5MzI5NTVkZWE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJp Z2dlcnMuYwpAQCAtMTMwLDYgKzEzMCw3IEBAIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFp bnRJbmZvCiAJT2lkCQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8 QCBhbnlyYW5nZSAqLwogCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Blcjsg LyogZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIpICovCiAJT2lkCQkJcGVyaW9kX2ludGVy c2VjdF9vcGVyOwkvKiBhbnlyYW5nZSAqIGFueXJhbmdlICovCisJT2lkCQkJd2l0aG91dF9w b3J0aW9uX3Byb2M7CS8qIGFueXJhbmdlIC0gYW55cmFuZ2UgU1JGICovCiAJZGxpc3Rfbm9k ZQl2YWxpZF9saW5rOwkJLyogTGluayBpbiBsaXN0IG9mIHZhbGlkIGVudHJpZXMgKi8KIH0g UklfQ29uc3RyYWludEluZm87CiAKQEAgLTIwNyw3ICsyMDgsNyBAQCBzdGF0aWMgdm9pZCBy aV9CdWlsZFF1ZXJ5S2V5KFJJX1F1ZXJ5S2V5ICprZXksCiAJCQkJCQkJIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJIGludDMyIGNvbnN0cl9xdWVyeW5vKTsK IHN0YXRpYyBib29sIHJpX0tleXNFcXVhbChSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90 ICpvbGRzbG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKLQkJCQkJCSBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19wayk7CisJCQkJCQkgY29uc3Qg UklfQ29uc3RyYWludEluZm8gKnJpaW5mbywgYm9vbCByZWxfaXNfcGssIGJvb2wgc2tpcF9w ZXJpb2QpOwogc3RhdGljIGJvb2wgcmlfQ29tcGFyZVdpdGhDYXN0KE9pZCBlcV9vcHIsIE9p ZCB0eXBlaWQsCiAJCQkJCQkJICAgRGF0dW0gbGhzLCBEYXR1bSByaHMpOwogCkBAIC0yMjks NiArMjMwLDcgQEAgc3RhdGljIGJvb2wgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0 cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5Q dHIgcXBsYW4sCiAJCQkJCQkJUmVsYXRpb24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJ CQkJCQkJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90 LAorCQkJCQkJCWludCBwZXJpb2RQYXJhbSwgRGF0dW0gcGVyaW9kLAogCQkJCQkJCWJvb2wg ZGV0ZWN0TmV3Um93cywgaW50IGV4cGVjdF9PSyk7CiBzdGF0aWMgdm9pZCByaV9FeHRyYWN0 VmFsdWVzKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJIGNv bnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sIGJvb2wgcmVsX2lzX3BrLApAQCAtNDUw LDYgKzQ1Miw3IEBAIFJJX0ZLZXlfY2hlY2soVHJpZ2dlckRhdGEgKnRyaWdkYXRhKQogCXJp X1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19y ZWwsCiAJCQkJCU5VTEwsIG5ld3Nsb3QsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXBr X3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUsCiAJ CQkJCVNQSV9PS19TRUxFQ1QpOwogCkBAIC02MTQsNiArNjE3LDcgQEAgcmlfQ2hlY2tfUGtf TWF0Y2goUmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJcmVzdWx0ID0gcmlf UGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQkJCSBma19yZWwsIHBr X3JlbCwKIAkJCQkJCQkgb2xkc2xvdCwgTlVMTCwKKwkJCQkJCQkgLTEsIChEYXR1bSkgMCwK IAkJCQkJCQkgdHJ1ZSwJLyogdHJlYXQgbGlrZSB1cGRhdGUgKi8KIAkJCQkJCQkgU1BJX09L X1NFTEVDVCk7CiAKQEAgLTcxMSw4ICs3MTUsMTggQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRh dGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAlSZWxhdGlvbglma19yZWw7CiAJ UmVsYXRpb24JcGtfcmVsOwogCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVR1cGxlVGFi bGVTbG90ICpuZXdzbG90OwogCVJJX1F1ZXJ5S2V5IHFrZXk7CiAJU1BJUGxhblB0cglxcGxh bjsKKwlBdHRyTnVtYmVyCXBrcGVyaW9kYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlB dHRyTnVtYmVyCWZrcGVyaW9kYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlpbnQJCQl0 YXJnZXRSYW5nZVBhcmFtID0gLTE7CisJRGF0dW0JCXRhcmdldFJhbmdlID0gKERhdHVtKSAw OworCUZtZ3JJbmZvCWZsaW5mbzsKKwlSZXR1cm5TZXRJbmZvCXJzaTsKKwlMT0NBTF9GQ0lO Rk8oZmNpbmZvLCAyKTsKKwlib29sCQltdWx0aXBsZWxvc3QgPSBmYWxzZTsKKwlib29sCQlm aW5pc2hlZCA9IGZhbHNlOwogCiAJcmlpbmZvID0gcmlfRmV0Y2hDb25zdHJhaW50SW5mbyh0 cmlnZGF0YS0+dGdfdHJpZ2dlciwKIAkJCQkJCQkJCXRyaWdkYXRhLT50Z19yZWxhdGlvbiwg dHJ1ZSk7CkBAIC03MjYsNiArNzQwLDcgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRy aWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5m by0+ZmtfcmVsaWQsIFJvd1NoYXJlTG9jayk7CiAJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3Jl bGF0aW9uOwogCW9sZHNsb3QgPSB0cmlnZGF0YS0+dGdfdHJpZ3Nsb3Q7CisJbmV3c2xvdCA9 IHRyaWdkYXRhLT50Z19uZXdzbG90OwogCiAJLyoKIAkgKiBJZiBhbm90aGVyIFBLIHJvdyBu b3cgZXhpc3RzIHByb3ZpZGluZyB0aGUgb2xkIGtleSB2YWx1ZXMsIHdlIHNob3VsZApAQCAt NzQzLDYgKzc1OCwxMiBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJv b2wgaXNfbm9fYWN0aW9uKQogCQlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOwogCX0K IAorCWlmIChyaWluZm8tPmhhc3BlcmlvZCkKKwl7CisJCXBrcGVyaW9kYXR0bm8gPSByaWlu Zm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdOworCQlma3BlcmlvZGF0dG5vID0g cmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKKwl9CisKIAlTUElfY29u bmVjdCgpOwogCiAJLyoKQEAgLTc4NCwxMSArODA1LDIxIEBAIHJpX3Jlc3RyaWN0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJCSAqICAgRlJPTSAoU0VM RUNUIHkucGtwZXJpb2QgcgogCQkgKiAgICAgICAgIEZST00gW09OTFldIDxwa3RhYmxlPiB5 CiAJCSAqICAgICAgICAgV0hFUkUgJDEgPSB5LnBrYXR0MSBbQU5EIC4uLl0gQU5EICRuICYm IHkucGtwZXJpb2QKLQkJICogICAgICAgICBGT1IgS0VZIFNIQVJFIE9GIHkpLCBmYWxzZSkK KwkJICogICAgICAgICBGT1IgS0VZIFNIQVJFIE9GIHkpIHkyKSwgZmFsc2UpCiAJCSAqIEZP UiBLRVkgU0hBUkUgT0YgeAogCQkgKiBXZSBuZWVkIHRoZSBjb2FsZXNjZSBpbiBjYXNlIHRo ZSBmaXJzdCBzdWJxdWVyeSByZXR1cm5zIG5vIHJvd3MuCiAJCSAqIFdlIG5lZWQgdGhlIHNl Y29uZCBzdWJxdWVyeSBiZWNhdXNlIEZPUiBLRVkgU0hBUkUgZG9lc24ndCBzdXBwb3J0CiAJ CSAqIGFnZ3JlZ2F0ZSBxdWVyaWVzLgorCQkgKgorCQkgKiBGb3IgUkVTVFJJQ1Qga2V5cyB3 ZSBjYW4ndCBxdWVyeSBwa3RhYmxlLCBzbyBpbnN0ZWFkIHdlIHVzZSB0aGUgb2xkCisJCSAq IGFuZCBuZXcgcGVyaW9kcyB0byBzZWUgd2hhdCB3YXMgcmVtb3ZlZCwgYW5kIGxvb2sgZm9y IHJlZmVyZW5jZXMKKwkJICogbWF0Y2hpbmcgdGhhdC4gSWYgdGhlIHNjYWxhciBrZXkgcGFy dCBjaGFuZ2VkLCB0aGVuIHRoaXMgaXMKKwkJICogKHdoZXJlICRuIGlzIHRoZSBvbGQgcGVy aW9kIGFuZCAkMm4gdGhlIG5ldyk6CisJCSAqICAgJG4gJiYgeC5ma3BlcmlvZAorCQkgKiBC dXQgaWYgdGhlIHNjYWxhciBrZXkgcGFydCBkaWRuJ3QgY2hhbmdlLCB0aGVuIHdlIG9ubHkg bG9zdCBwYXJ0IG9mCisJCSAqIHRoZSB0aW1lIHNwYW4sIHNvIHdlIHNob3VsZCBsb29rIGZv cjoKKwkJICogICAoU0VMRUNUIHJhbmdlX2FnZyhyKSBGUk9NIHdpdGhvdXRfcG9ydGlvbigk biwgJDJuKSB3byhyKSkKKwkJICogICAgICYmIHguZmtwZXJpb2QKIAkJICogLS0tLS0tLS0t LQogCQkgKi8KIAkJaW5pdFN0cmluZ0luZm8oJnF1ZXJ5YnVmKTsKQEAgLTgyOCwxNCArODU5 LDE0IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19h Y3Rpb24pCiAJCSAqLwogCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QgJiYgaXNfbm9fYWN0aW9u KQogCQl7Ci0JCQlPaWQJCQkJcGtfcGVyaW9kX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCBy aWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKLQkJCU9pZAkJCQlma19w ZXJpb2RfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV0pOworCQkJT2lkCQkJCXBrX3BlcmlvZF90eXBlID0gUklBdHRUeXBl KHBrX3JlbCwgcGtwZXJpb2RhdHRubyk7CisJCQlPaWQJCQkJZmtfcGVyaW9kX3R5cGUgPSBS SUF0dFR5cGUoZmtfcmVsLCBma3BlcmlvZGF0dG5vKTsKIAkJCVN0cmluZ0luZm9EYXRhCWlu dGVyc2VjdGJ1ZjsKIAkJCVN0cmluZ0luZm9EYXRhCXJlcGxhY2VtZW50c2J1ZjsKIAkJCWNo YXIgKnBrX29ubHkgPSBwa19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFID8KIAkJCQkiIiA6ICJPTkxZICI7CiAKLQkJCXF1b3RlT25lTmFtZShh dHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5u a2V5cyAtIDFdKSk7CisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3Jl bCwgZmtwZXJpb2RhdHRubykpOwogCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCByaWlu Zm8tPm5rZXlzKTsKIAogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcXVlcnlidWYsICIg QU5EIE5PVCBjb2FsZXNjZSgiKTsKQEAgLTg1Myw3ICs4ODQsNyBAQCByaV9yZXN0cmljdChU cmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCQkJaW5pdFN0cmlu Z0luZm8oJnJlcGxhY2VtZW50c2J1Zik7CiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZy ZXBsYWNlbWVudHNidWYsICIoU0VMRUNUIHBnX2NhdGFsb2cucmFuZ2VfYWdnKHIpIEZST00g Iik7CiAKLQkJCXF1b3RlT25lTmFtZShwZXJpb2RhdHRuYW1lLCBSSUF0dE5hbWUocGtfcmVs LCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisJCQlxdW90ZU9u ZU5hbWUocGVyaW9kYXR0bmFtZSwgUklBdHROYW1lKHBrX3JlbCwgcGtwZXJpb2RhdHRubykp OwogCQkJcXVvdGVSZWxhdGlvbk5hbWUocGtyZWxuYW1lLCBwa19yZWwpOwogCQkJYXBwZW5k U3RyaW5nSW5mbygmcmVwbGFjZW1lbnRzYnVmLCAiKFNFTEVDVCB5LiVzIHIgRlJPTSAlcyVz IHkiLAogCQkJCQkJCSBwZXJpb2RhdHRuYW1lLCBwa19vbmx5LCBwa3JlbG5hbWUpOwpAQCAt ODc0LDggKzkwNSw3IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9v bCBpc19ub19hY3Rpb24pCiAJCQkJcXVlcnlzZXAgPSAiQU5EIjsKIAkJCQlxdWVyeW9pZHNb aV0gPSBwa190eXBlOwogCQkJfQotCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcmVwbGFj ZW1lbnRzYnVmLCAiIEZPUiBLRVkgU0hBUkUgT0YgeSkiKTsKLQkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJnJlcGxhY2VtZW50c2J1ZiwgIiB5MikiKTsKKwkJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoJnJlcGxhY2VtZW50c2J1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHkpIHkyKSIp OwogCiAJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCAiIiwKIAkJCQkJCQlpbnRlcnNl Y3RidWYuZGF0YSwgZmtfcGVyaW9kX3R5cGUsCkBAIC04OTQsMTIgKzkyNCw4NSBAQCByaV9y ZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCiAJ LyoKIAkgKiBXZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byBjaGVjayBmb3IgZXhpc3Rp bmcgcmVmZXJlbmNlcy4KKwkgKgorCSAqIE5vcm1hbGx5IHdlIG9ubHkgbG9vcCBvbmNlIGhl cmUuIEJ1dCBpZgorCSAqIHdlIGhhdmUgYSBSRVNUUklDVCBjb25zdHJhaW50IHdpdGggYSBQ RVJJT0QsCisJICogd2UgbXVzdCBvbmx5IGNvbnNpZGVyIHRoZSB0aW1lc3BhbiB0aGF0IHdh cyBsb3N0LgorCSAqCisJICogSWYgdGhlIHNjYWxhciBrZXkgcGFydCB3YXMgVVBEQVRFZCwK KwkgKiB0aGVuIGFsbCBvZiBvbGRzbG90LnBrcGVyaW9kIHdhcyBsb3N0CisJICogKHdoZXRo ZXIgdGhlIGVuZHBvaW50cyBjaGFuZ2VkIG9yIG5vdCkuCisJICogVGhhdCdzIHdoYXQgd2Ug YWxyZWFkeSBjaGVjayBieSBkZWZhdWx0LgorCSAqCisJICogT3RoZXJ3aXNlIG9ubHkgb2xk c2xvdC5wa3BlcmlvZCAtIG5ld3Nsb3QucGtwZXJpb2Qgd2FzIGxvc3QuCisJICogVGhhdCBt YXkgYmUgbW9yZSB0aGFuIG9uZSByYW5nZSwgc28gd2UgdXNlIHRoZQorCSAqIHdpdGhvdXRf cG9ydGlvbiBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9uIGFuZCBsb29wCisJICogb3ZlciBpdHMg cmVzdWx0cy4gSXQgYWxzbyBtYXkgYmUgZW1wdHksCisJICogbWVhbmluZyBub3RoaW5nIHdh cyBsb3N0LCBhbmQgbm8gY2hlY2sgaXMgcmVxdWlyZWQuCisJICogV2Ugc2hvdWxkbid0IGJl IGhlcmUgaWYgbmVpdGhlciB0aGUgc2NhbGFyIG5vciBQRVJJT0QgcGFydCBjaGFuZ2VkLAor CSAqIGJ1dCBpdCdzIGVhc3kgdG8gc3VwcG9ydCBhbnl3YXkuCisJICoKKwkgKiBGb3IgYSBE RUxFVEUsIG9sZHNsb3QucGtwZXJpb2Qgd2FzIGxvc3QsCisJICogd2hpY2ggaXMgd2hhdCB3 ZSBjaGVjayBmb3IgYnkgZGVmYXVsdC4KIAkgKi8KLQlyaV9QZXJmb3JtQ2hlY2socmlpbmZv LCAmcWtleSwgcXBsYW4sCi0JCQkJCWZrX3JlbCwgcGtfcmVsLAotCQkJCQlvbGRzbG90LCBO VUxMLAotCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KLQkJCQkJU1BJ X09LX1NFTEVDVCk7CisJaWYgKHJpaW5mby0+aGFzcGVyaW9kICYmICFpc19ub19hY3Rpb24p CisJeworCQlpZiAoVFJJR0dFUl9GSVJFRF9CWV9VUERBVEUodHJpZ2RhdGEtPnRnX2V2ZW50 KQorCQkJJiYgcmlfS2V5c0VxdWFsKHBrX3JlbCwgb2xkc2xvdCwgbmV3c2xvdCwgcmlpbmZv LCB0cnVlLCB0cnVlKSkKKwkJeworCQkJbXVsdGlwbGVsb3N0ID0gdHJ1ZTsKKworCQkJZm1n cl9pbmZvKHJpaW5mby0+d2l0aG91dF9wb3J0aW9uX3Byb2MsICZmbGluZm8pOworCQkJcnNp LnR5cGUgPSBUX1JldHVyblNldEluZm87CisJCQlyc2kuZWNvbnRleHQgPSBDcmVhdGVTdGFu ZGFsb25lRXhwckNvbnRleHQoKTsKKwkJCXJzaS5leHBlY3RlZERlc2MgPSBOVUxMOworCQkJ cnNpLmFsbG93ZWRNb2RlcyA9IChpbnQpIChTRlJNX1ZhbHVlUGVyQ2FsbCk7CisJCQlyc2ku cmV0dXJuTW9kZSA9IFNGUk1fVmFsdWVQZXJDYWxsOworCQkJcnNpLnNldFJlc3VsdCA9IE5V TEw7CisJCQlyc2kuc2V0RGVzYyA9IE5VTEw7CisKKwkJCUluaXRGdW5jdGlvbkNhbGxJbmZv RGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCAoTm9kZSAqKSAm cnNpKTsKKwkJCWZjaW5mby0+YXJnc1swXS52YWx1ZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90 LCBwa3BlcmlvZGF0dG5vLAorCQkJCQkJCQkJCQkJICZmY2luZm8tPmFyZ3NbMF0uaXNudWxs KTsKKwkJCWZjaW5mby0+YXJnc1sxXS52YWx1ZSA9IHNsb3RfZ2V0YXR0cihuZXdzbG90LCBw a3BlcmlvZGF0dG5vLAorCQkJCQkJCQkJCQkJICZmY2luZm8tPmFyZ3NbMV0uaXNudWxsKTsK KworCQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IHJpaW5mby0+bmtleXM7CisJCX0KKwl9CisKKwlk bworCXsKKwkJaWYgKG11bHRpcGxlbG9zdCkKKwkJeworCQkJLyogQ29tcHV0ZSBhIHNwYW4g dGhhdCB3YXMgYWN0dWFsbHkgbG9zdC4gKi8KKwkJCXRhcmdldFJhbmdlID0gRnVuY3Rpb25D YWxsSW52b2tlKGZjaW5mbyk7CisKKwkJCS8qCisJCQkgKiBJZiB3ZSBoYXZlIG5vIG1vcmUg bG9zdCBzcGFucyB0byBjaGVjaywgd2UncmUgZG9uZS4KKwkJCSAqIElmIG5vIHNwYW4gd2Fz IGxvc3QsIHdlIGRvbid0IGV2ZW4gbmVlZCB0byBjaGVjayB0aGUgZm9yZWlnbiBrZXkuCisJ CQkgKi8KKwkJCWlmIChyc2kuaXNEb25lID09IEV4cHJFbmRSZXN1bHQpCisJCQkJYnJlYWs7 CisKKwkJCWlmIChmY2luZm8tPmlzbnVsbCkKKwkJCQllbG9nKEVSUk9SLCAiR2V0IGEgbnVs bCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIpOworCQl9CisJCWVsc2UKKwkJCWZp bmlzaGVkID0gdHJ1ZTsKKworCQlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBs YW4sCisJCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJ CQl0YXJnZXRSYW5nZVBhcmFtLCB0YXJnZXRSYW5nZSwKKwkJCQkJCXRydWUsCQkvKiBtdXN0 IGRldGVjdCBuZXcgcm93cyAqLworCQkJCQkJU1BJX09LX1NFTEVDVCk7CisKKwl9IHdoaWxl ICghZmluaXNoZWQpOworCisJLyogRnJlZSB0aGlzIGJlZm9yZSB3ZSBzaHV0IGRvd24gU1BJ IHNpbmNlIG91ciBtZW1jdHggaXMgYSBjaGlsZCAqLworCWlmIChtdWx0aXBsZWxvc3QpCisJ CUZyZWVFeHByQ29udGV4dChyc2kuZWNvbnRleHQsIGZhbHNlKTsKIAogCWlmIChTUElfZmlu aXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKIAkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFp bGVkIik7CkBAIC0xMDAzLDYgKzExMDYsNyBAQCBSSV9GS2V5X2Nhc2NhZGVfZGVsKFBHX0ZV TkNUSU9OX0FSR1MpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAog CQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJLTEsIChE YXR1bSkgMCwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJ CVNQSV9PS19ERUxFVEUpOwogCkBAIC0xMTIzLDYgKzEyMjcsNyBAQCBSSV9GS2V5X2Nhc2Nh ZGVfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFr ZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBrX3JlbCwKIAkJCQkJb2xkc2xvdCwgbmV3c2xv dCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5l dyByb3dzICovCiAJCQkJCVNQSV9PS19VUERBVEUpOwogCkBAIC0xMzU0LDYgKzE0NTksNyBA QCByaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQg dGdraW5kKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJ ZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCS0xLCAoRGF0dW0p IDAsCiAJCQkJCXRydWUsCQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElf T0tfVVBEQVRFKTsKIApAQCAtMTQxMSw3ICsxNTE3LDcgQEAgUklfRktleV9wa191cGRfY2hl Y2tfcmVxdWlyZWQoVHJpZ2dlciAqdHJpZ2dlciwgUmVsYXRpb24gcGtfcmVsLAogCQlyZXR1 cm4gZmFsc2U7CiAKIAkvKiBJZiBhbGwgb2xkIGFuZCBuZXcga2V5IHZhbHVlcyBhcmUgZXF1 YWwsIG5vIGNoZWNrIGlzIG5lZWRlZCAqLwotCWlmIChuZXdzbG90ICYmIHJpX0tleXNFcXVh bChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgdHJ1ZSkpCisJaWYgKG5ld3Ns b3QgJiYgcmlfS2V5c0VxdWFsKHBrX3JlbCwgb2xkc2xvdCwgbmV3c2xvdCwgcmlpbmZvLCB0 cnVlLCBmYWxzZSkpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qIEVsc2Ugd2UgbmVlZCB0byBm aXJlIHRoZSB0cmlnZ2VyLiAqLwpAQCAtMTUwNCw3ICsxNjEwLDcgQEAgUklfRktleV9ma191 cGRfY2hlY2tfcmVxdWlyZWQoVHJpZ2dlciAqdHJpZ2dlciwgUmVsYXRpb24gZmtfcmVsLAog CQlyZXR1cm4gdHJ1ZTsKIAogCS8qIElmIGFsbCBvbGQgYW5kIG5ldyBrZXkgdmFsdWVzIGFy ZSBlcXVhbCwgbm8gY2hlY2sgaXMgbmVlZGVkICovCi0JaWYgKHJpX0tleXNFcXVhbChma19y ZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgZmFsc2UpKQorCWlmIChyaV9LZXlzRXF1 YWwoZmtfcmVsLCBvbGRzbG90LCBuZXdzbG90LCByaWluZm8sIGZhbHNlLCBmYWxzZSkpCiAJ CXJldHVybiBmYWxzZTsKIAogCS8qIEVsc2Ugd2UgbmVlZCB0byBmaXJlIHRoZSB0cmlnZ2Vy LiAqLwpAQCAtMjM1NCwxMCArMjQ2MCwxMSBAQCByaV9Mb2FkQ29uc3RyYWludEluZm8oT2lk IGNvbnN0cmFpbnRPaWQpCiAJewogCQlPaWQJCQlvcGNsYXNzID0gZ2V0X2luZGV4X2NvbHVt bl9vcGNsYXNzKGNvbkZvcm0tPmNvbmluZGlkLCByaWluZm8tPm5rZXlzKTsKIAotCQlGaW5k RktQZXJpb2RPcGVycyhvcGNsYXNzLAotCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfY29udGFp bmVkX2J5X29wZXIsCi0JCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRf Ynlfb3BlciwKLQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9vcGVyKTsKKwkJ RmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhvcGNsYXNzLAorCQkJCQkJCQkgICZyaWluZm8t PnBlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJCQkJCQkJICAmcmlpbmZvLT5hZ2dlZF9w ZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2lu dGVyc2VjdF9vcGVyLAorCQkJCQkJCQkgICZyaWluZm8tPndpdGhvdXRfcG9ydGlvbl9wcm9j KTsKIAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKQEAgLTI1MDAsNiArMjYwNyw3IEBA IHJpX1BlcmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQkJ CVJJX1F1ZXJ5S2V5ICpxa2V5LCBTUElQbGFuUHRyIHFwbGFuLAogCQkJCVJlbGF0aW9uIGZr X3JlbCwgUmVsYXRpb24gcGtfcmVsLAogCQkJCVR1cGxlVGFibGVTbG90ICpvbGRzbG90LCBU dXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKKwkJCQlpbnQgcGVyaW9kUGFyYW0sIERhdHVtIHBl cmlvZCwKIAkJCQlib29sIGRldGVjdE5ld1Jvd3MsIGludCBleHBlY3RfT0spCiB7CiAJUmVs YXRpb24JcXVlcnlfcmVsLApAQCAtMjU1NSw2ICsyNjYzLDEyIEBAIHJpX1BlcmZvcm1DaGVj ayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQlyaV9FeHRyYWN0VmFsdWVz KHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJCQkJIHZh bHMsIG51bGxzKTsKIAl9CisJLyogQWRkL3JlcGxhY2UgYSBxdWVyeSBwYXJhbSBmb3IgdGhl IFBFUklPRCBpZiBuZWVkZWQgKi8KKwlpZiAocGVyaW9kKQorCXsKKwkJdmFsc1twZXJpb2RQ YXJhbSAtIDFdID0gcGVyaW9kOworCQludWxsc1twZXJpb2RQYXJhbSAtIDFdID0gJyAnOwor CX0KIAogCS8qCiAJICogSW4gUkVBRCBDT01NSVRURUQgbW9kZSwgd2UganVzdCBuZWVkIHRv IHVzZSBhbiB1cC10by1kYXRlIHJlZ3VsYXIKQEAgLTI5NzUsNiArMzA4OSw5IEBAIHJpX0hh c2hQcmVwYXJlZFBsYW4oUklfUXVlcnlLZXkgKmtleSwgU1BJUGxhblB0ciBwbGFuKQogICog Rm9yIG5vcm1hbCBGS3Mgd2UgY2hlY2sgZm9yIGVxdWFsaXR5LgogICogRm9yIHRlbXBvcmFs IEZLcyB3ZSBjaGVjayB0aGF0IHRoZSBQSyBzaWRlIGlzIGEgc3VwZXJzZXQgb2YgaXRzIG9s ZCB2YWx1ZSwKICAqIG9yIHRoZSBGSyBzaWRlIGlzIGEgc3Vic2V0IG9mIGl0cyBvbGQgdmFs dWUuCisgKiBJZiBza2lwX3BlcmlvZCBpcyBzZXQsIHdlIGlnbm9yZSB0aGUgbGFzdCBrZXkg ZWxlbWVudC4KKyAqIFRoaXMgbGV0cyB1cyBhc2sgaWYgdGhlIHNjYWxhciBrZXkgcGFydHMg Y2hhbmdlZCwKKyAqIGlnbm9yaW5nIHRoZSBQRVJJT0QuCiAgKgogICogTm90ZTogYXQgc29t ZSBwb2ludCB3ZSBtaWdodCB3aXNoIHRvIHJlZGVmaW5lIHRoaXMgYXMgY2hlY2tpbmcgZm9y CiAgKiAiSVMgTk9UIERJU1RJTkNUIiByYXRoZXIgdGhhbiAiPSIsIHRoYXQgaXMsIGFsbG93 IHR3byBudWxscyB0byBiZQpAQCAtMjk4MywxNyArMzEwMCwxOSBAQCByaV9IYXNoUHJlcGFy ZWRQbGFuKFJJX1F1ZXJ5S2V5ICprZXksIFNQSVBsYW5QdHIgcGxhbikKICAqLwogc3RhdGlj IGJvb2wKIHJpX0tleXNFcXVhbChSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVTbG90ICpvbGRz bG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKLQkJCSBjb25zdCBSSV9Db25zdHJhaW50 SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waykKKwkJCSBjb25zdCBSSV9Db25zdHJhaW50 SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waywgYm9vbCBza2lwX3BlcmlvZCkKIHsKIAlj b25zdCBpbnQxNiAqYXR0bnVtczsKIAorCUFzc2VydChza2lwX3BlcmlvZCA/IHJpaW5mby0+ aGFzcGVyaW9kIDogdHJ1ZSk7CisKIAlpZiAocmVsX2lzX3BrKQogCQlhdHRudW1zID0gcmlp bmZvLT5wa19hdHRudW1zOwogCWVsc2UKIAkJYXR0bnVtcyA9IHJpaW5mby0+ZmtfYXR0bnVt czsKIAogCS8qIFhYWDogY291bGQgYmUgd29ydGh3aGlsZSB0byBmZXRjaCBhbGwgbmVjZXNz YXJ5IGF0dHJzIGF0IG9uY2UgKi8KLQlmb3IgKGludCBpID0gMDsgaSA8IHJpaW5mby0+bmtl eXM7IGkrKykKKwlmb3IgKGludCBpID0gMDsgaSA8IHJpaW5mby0+bmtleXMgLSAoc2tpcF9w ZXJpb2QgPyAxIDogMCk7IGkrKykKIAl7CiAJCURhdHVtCQlvbGR2YWx1ZTsKIAkJRGF0dW0J CW5ld3ZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAppbmRleCA1ZWRk NGViOGEzMy4uNWYyNWM1YTAwNjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29uc3RyYWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5oCkBAIC0yODYsMTAgKzI4NiwxMSBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVjdEZrQ29u c3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJICAg QXR0ck51bWJlciAqY29ua2V5LCBBdHRyTnVtYmVyICpjb25ma2V5LAogCQkJCQkJCQkJICAg T2lkICpwZl9lcV9vcHJzLCBPaWQgKnBwX2VxX29wcnMsIE9pZCAqZmZfZXFfb3BycywKIAkJ CQkJCQkJCSAgIGludCAqbnVtX2ZrX2RlbF9zZXRfY29scywgQXR0ck51bWJlciAqZmtfZGVs X3NldF9jb2xzKTsKLWV4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNz LAotCQkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCi0JCQkJCQkJICBPaWQgKmFn Z2VkY29udGFpbmVkYnlvcGVyb2lkLAotCQkJCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lk KTsKK2V4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3Ms CisJCQkJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQg KmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmludGVyc2VjdG9w ZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqd2l0aG91dHBvcnRpb25vaWQpOwogCiBleHRlcm4g Ym9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKIAkJCQkJCQkJCSAg SW5kZXggdmFybm8sIEluZGV4IHZhcmxldmVsc3VwLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXggZGY5NTViZDFiM2MuLjFh Yjc3ODcwNDFmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhv dXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91 dF9vdmVybGFwcy5vdXQKQEAgLTE3NjksNyArMTc2OSw4IEBAIERFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSwKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNikn KTsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAyLTAxJywgJzIwMTYtMDMtMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAtLSBBIFBLIHVw ZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKQEAg LTE3ODQsNiArMTc4NSwzNyBAQCBTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFs aWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLQogV0hFUkUg aWQgPSAnWzYsNyknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCist LSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxs IHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5 IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsg cm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAz LTAxJykpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUn LCAnMjAxOC0wMi0wMScpLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTA1LTAxJyksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScp CitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0 ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMgZmlu ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9h dCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhl IHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUg d2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScsIHZh bGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKQorV0hFUkUg aWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCBbMjAxOC0wMS0wMSwyMDE4LTAzLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGEgUEsgdXBkYXRlIGNoYW5n aW5nIG9ubHkgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0w MSwyMDE4LTAzLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJv dGggZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0wMScpLCAnWzIsMyknKTsKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgt MDItMTUnKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWls cyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CiBC RUdJTjsKICAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwpAQCAtMjI4NSw3ICsy MzE3LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYp JzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK ICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpKSwKICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JykpLCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNikn KTsKIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpKTsKIC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVk Z2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMjMwMCw2ICsyMzMzLDM3IEBA IFNFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0w MScgVEhFTiBkYXRlbXVsdGlyYW5nZShkYXRlCiBXSEVSRSBpZCA9ICdbNiw3KSc7CiBFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs2LDcpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmci LgorLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2Ug YnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVs ZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5 IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpKSwKKyAgKCdbMSwyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTA2LTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJykpLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTA1LTAxJykpLCAn WzEsMiknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKSkKK1dIRVJF IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0g YSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCBtdWx0aXJhbmdlIGlzIGZpbmU6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpCitXSEVSRSBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBk YXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCBtdWx0aXJhbmdlIGFuZCBjaGFuZ2luZyB0 aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIG11bHRpcmFuZ2U6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sx LDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpfSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGEg UEsgdXBkYXRlIGNoYW5naW5nIG9ubHkgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSBt dWx0aXJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzIsMyknCitX SEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAzLTAxKX0p IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyIuCistLSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMs IGJ1dCBpcyBzdGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg KCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAyLTAxJykpLCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDIt MTUnKSkKK1dIRVJFIGlkID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMg YmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgogQkVH SU47CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXggOWI4NDRkMWZhM2Iu LmI2MjAxMzMwMTEyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0 X292ZXJsYXBzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJs YXBzLnNxbApAQCAtMTMxNSw3ICsxMzE1LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkID0gJ1s1LDYpJzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpLAogICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwogVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEn LCAnMjAxNi0wMy0wMScpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIEEgUEsgdXBkYXRlIHNs aWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMTMyOCw2 ICsxMzI5LDMzIEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIFNFVCB2YWxpZF9hdCA9IENBU0Ug V0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93 ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDMtMDEnKSBFTkQKIFdIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBk YXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6Cist LSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0 IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJp bmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwor ICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSksCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAy LTAxJyksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1Jywg JzIwMTgtMDUtMDEnKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQ SyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4 LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNl ZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5n ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwy KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRl IGNoYW5naW5nIG9ubHkgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJworV0hFUkUgaWQgPSAnWzEsMikn IEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBzdGlsbCB2YWxpZDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMiwz KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSwg J1syLDMpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JykKK1dIRVJFIGlkID0gJ1syLDMpJzsKIC0t IGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChl dmVuIGJlZm9yZSBjb21taXQpOgogQkVHSU47CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKQEAgLTE3OTYsNyArMTgyNCw4IEBAIERFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSksCiAgICgnWzUsNiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT CisgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAn MjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2 LTAzLTAxJykpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CiAtLSBBIFBL IHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoK QEAgLTE4MDksNiArMTgzOCwzMyBAQCBVUERBVEUgdGVtcG9yYWxfbWx0cm5nCiBTRVQgdmFs aWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4g ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkK ICAgICAgICAgICAgICAgICAgICAgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMi0w MScgVEhFTiBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0w My0wMScpKSBFTkQKIFdIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlu a2luZyB0aGUgcmVmZXJlbmNlZCBtdWx0aXJhbmdlIGJ1dCBzdGlsbCB2YWxpZDoKKy0tIFRo ZXJlIGFyZSB0d28gcmVmZXJlbmNlczogb25lIGZ1bGZpbGxlZCBieSB0aGUgZmlyc3QgcGsg cm93LAorLS0gdGhlIG90aGVyIGZ1bGZpbGxlZCBieSBib3RoIHBrIHJvd3MgY29tYmluZWQu CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMy0wMScpKSksCisgICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEs MiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0w MScpKSwgJ1sxLDIpJyksCisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMTUnLCAnMjAxOC0wNS0wMScpKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlk X2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhl IHJlZmVyZW5jZWQgbXVsdGlyYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX21sdHJu ZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAn MjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVy ZW5jZWQgbXVsdGlyYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3 aG9sZSBtdWx0aXJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzIs MyknLCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScs ICcyMDE4LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGNoYW5naW5nIG9ubHkgdGhlIGlk IGludmFsaWRhdGVzIHRoZSB3aG9sZSBtdWx0aXJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX21s dHJuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGlt ZSBmcm9tIGJvdGggZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFs X21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMTUnLCAnMjAxOC0wMi0xNScpKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1 cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVm b3JlIGNvbW1pdCk6CiBCRUdJTjsKICAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZwotLSAKMi40Mi4wCgo= --------------SmHgFLT9iu1c5DMXfpoz35vj--