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 1tEssW-00AHos-9O for pgsql-hackers@arkaria.postgresql.org; Sat, 23 Nov 2024 16:21:00 +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 1tEssU-001yHR-W0 for pgsql-hackers@arkaria.postgresql.org; Sat, 23 Nov 2024 16:20:58 +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 1tEssU-001yFD-Fr for pgsql-hackers@lists.postgresql.org; Sat, 23 Nov 2024 16:20:58 +0000 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tEssS-003Swe-0b for pgsql-hackers@postgresql.org; Sat, 23 Nov 2024 16:20:57 +0000 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-38241435528so2062836f8f.2 for ; Sat, 23 Nov 2024 08:20:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732378855; x=1732983655; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DHczLmJS1pDUixgL3RlOWS/lEb1VbxBGTAiChwIyQWk=; b=LWi0voAylnHB+7iOz2M6caQh8HVWTR3o1KWeYo+jnzSwLmVAybrX9sjZwBtjxIIua5 bM92rbw5IYZVeewyPR3QsBESW6iJTSjr5ylMune5A67L2AA3bBpyXmA40NMIkWbjkGG5 WAJNeEXJZRxER4FAwEf0M7bYeD2f9k6suCKbfRiWuGXwUHoTjjaTw/8XNtR9FHtYg8Zp 1ibMvZbuwQSAjKQZUTxTSzOAem86np+hG0256MePL1gpakmIFCBlYGuS0ufHNXxMou9Z 7Em8+MpszmtFrBA8jzKaOEIdvrnLLDGtiOLSGxgcsO/y6bz1Ekuy3MSAu8IY+bFDEQVs XGhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732378855; x=1732983655; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DHczLmJS1pDUixgL3RlOWS/lEb1VbxBGTAiChwIyQWk=; b=vFEgLC2iOrOKTtAUZyVA+mjIvBYV2pBJoJriyKfVUW0/DZHR8wAyGJdmG/hUQHF5jI fzSlQwDs08QW4DjbkcZ4Y4qRZlYaLMCx7KGFKFCbGHLb861q7QWsndBSQirBaqZc7doS aeudbiK4qW6LbKT4pzQEQpvdVmY9G2Kplk40cwE2evMsXiREoepXlyLbmEHGa2Pr2nJV IXRWagAOcPOejia/DxFDukOAohgjnufQgmasc34l3qHPFaYg+Q8bsVRlfEhjV8Jbi7gm 4Gx2a6G9K/pblom8Pa63R/qxqzM7tKxwERB4twqjdxmVGN2rZZE9aXlw1AU7XCHCHR+D b6RQ== X-Forwarded-Encrypted: i=1; AJvYcCU0TyOsJkV4NqrztXaS8+OLLKPzAw/9UPVqm75APjlPpJCDY0UTEzsyqi7wuS9TVxFSB73o6w41gXmzqrro@postgresql.org X-Gm-Message-State: AOJu0YxrOz3Og2hatZICzzFFB48pycJUULL4LTR5qap4GscukLfE2vCr XrxuY3d16jYFac437pH1DVX0wyOQYnOkL8mVWxkwpejY1L3+f/tw3lnxm/d9ci+i54Rk+H9hT87 JvkiAyEsiwiYyLLBhKOk1uUi5nvk= X-Gm-Gg: ASbGncuGoQ629X+Ip7JctxC20WhKvWYCtlcDA9jTO19gOZCzBquYLlWmRI4PHFv4svn PNBAa6dz0ceHAeFWw06V89X2HdSD1Ke4FAwHUahYidh0ep97TPAnCzDAuP3d6xavqcQ== X-Google-Smtp-Source: AGHT+IGccjLx0Yab/rbkam2Km4UHS5tdb3Dh7M+HOGoDwz6Xx3vdKwqqW5prodnQAEosqdBNsu8gDqbMqstfVd8MCro= X-Received: by 2002:a05:6000:2d01:b0:382:41ad:d8e2 with SMTP id ffacd0b85a97d-38260bcfc2bmr4610994f8f.39.1732378854871; Sat, 23 Nov 2024 08:20:54 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Michail Nikolaev Date: Sat, 23 Nov 2024 17:20:41 +0100 Message-ID: Subject: Re: [BUG?] check_exclusion_or_unique_constraint false negative To: "Zhijie Hou (Fujitsu)" Cc: Amit Kapila , "Hayato Kuroda (Fujitsu)" , PostgreSQL Hackers , Andres Freund Content-Type: multipart/mixed; boundary="00000000000043d8e6062796e213" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000043d8e6062796e213 Content-Type: multipart/alternative; boundary="00000000000043d8e5062796e211" --00000000000043d8e5062796e211 Content-Type: text/plain; charset="UTF-8" Hello, everyone! A rebased version is attached. Also, fixed potential race in the test and detailed commit messages. Best regards, Mikhail. > --00000000000043d8e5062796e211 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello, everyone!

A rebased v= ersion is attached. Also, fixed potential=C2=A0race in the test=C2=A0and de= tailed commit messages.

Best regards,
Mi= khail.
--00000000000043d8e5062796e211-- --00000000000043d8e6062796e213 Content-Type: application/octet-stream; name="v3-0001-Fix-possible-lost-tuples-in-non-MVCC-index-scans-.patch" Content-Disposition: attachment; filename="v3-0001-Fix-possible-lost-tuples-in-non-MVCC-index-scans-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3u5a80r0 RnJvbSBmMWQ2YjlkMDA5NmUxOGM5ZjE4NzkxNGQzNzIyYmE4Njc1YmM5NjRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMyBOb3YgMjAyNCAxMzoxNDo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMS8y XSBGaXggcG9zc2libGUgbG9zdCB0dXBsZXMgaW4gbm9uLU1WQ0MgaW5kZXggc2NhbnMgdXNpbmcK IFNuYXBzaG90RGlydHkKCkluIGNlcnRhaW4gc2NlbmFyaW9zLCBub24tTVZDQyBpbmRleCBzY2Fu cyB1c2luZyBTbmFwc2hvdERpcnR5IGNhbiBtaXNzIHR1cGxlcyB0aGF0IGFyZSBkZWxldGVkIGFu ZCByZS1pbnNlcnRlZCBjb25jdXJyZW50bHkgZHVyaW5nIHRoZSBzY2FuLiBUaGlzIGlzc3VlIGFy aXNlcyBiZWNhdXNlIHRoZSBzY2FuIG1pZ2h0IHNraXAgb3ZlciBkZWxldGVkIHR1cGxlcyBhbmQg ZmFpbCB0byBzZWUgbmV3bHkgaW5zZXJ0ZWQgb25lcyBpZiB0aGUgcGFnZSBjb250ZW50IGlzIGNh Y2hlZC4KClRvIGFkZHJlc3MgdGhpcywgd2UgbW9kaWZ5IHRoZSBTbmFwc2hvdERpcnR5IG1lY2hh bmlzbSB0byB0cmFjayB0aGUgbWF4aW11bSB4bWF4ICh0aGUgaGlnaGVzdCB0cmFuc2FjdGlvbiBJ RCBvZiBkZWxldGluZyB0cmFuc2FjdGlvbnMpIGVuY291bnRlcmVkIGR1cmluZyB0aGUgc2Nhbi4g SWYgdGhpcyB4bWF4IGlzIG5ld2VyIHRoYW4gdGhlIGxhdGVzdCBjb21wbGV0ZWQgdHJhbnNhY3Rp b24gSUQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzY2FuLCB3ZSByZXRyeSB0aGUgaW5kZXggc2NhbiB0 byBlbnN1cmUgYWxsIHJlbGV2YW50IHR1cGxlcyBhcmUgb2JzZXJ2ZWQuCgpLZXkgY2hhbmdlcyBp bmNsdWRlOgoKKiBVcGRhdGVkIEhlYXBUdXBsZVNhdGlzZmllc0RpcnR5IHRvIHJlY29yZCB0aGUg bWF4aW11bSB4bWF4IHNlZW4uCiogTW9kaWZpZWQgSW5pdERpcnR5U25hcHNob3QgdG8gYWNjZXB0 IGFuIG9wdGlvbmFsIHBhcmFtZXRlciBmb3IgdHJhY2tpbmcgeG1heC4KKiBBZGRlZCBsb2dpYyBp biBpbmRleCB1bmlxdWVuZXNzIGNoZWNrcyAoX2J0X2NoZWNrX3VuaXF1ZSkgYW5kIHJlcGxpY2F0 aW9uIHR1cGxlIHNlYXJjaGVzIChSZWxhdGlvbkZpbmRSZXBsVHVwbGVCeUluZGV4KSB0byByZXRy eSBzY2FucyBiYXNlZCBvbiB0aGUgdHJhY2tlZCB4bWF4LgoqIEludHJvZHVjZWQgYSBuZXcgZnVu Y3Rpb24gUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCB0byBvYnRhaW4gdGhlIGxh dGVzdCBjb21wbGV0ZWQgdHJhbnNhY3Rpb24gSUQuCiogVXBkYXRlZCBkb2N1bWVudGF0aW9uIGlu IG5idHJlZS9SRUFETUUgdG8gZXhwbGFpbiB0aGUgaXNzdWUgYW5kIHRoZSBzb2x1dGlvbi4KKiBB ZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdCB0byBjb3ZlciB0aGlzIGVkZ2UgY2FzZS4KClRoaXMgZml4 IGVuc3VyZXMgdGhhdCBub24tTVZDQyBpbmRleCBzY2FucyBhcmUgbW9yZSByb2J1c3QgaW4gdGhl IGZhY2Ugb2YgY29uY3VycmVudCBkYXRhIG1vZGlmaWNhdGlvbnMsIHByZXZlbnRpbmcgcG90ZW50 aWFsIGRhdGEgaW5jb25zaXN0ZW5jaWVzLgotLS0KIGNvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0 dHVwbGUuYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3Zpc2liaWxpdHkuYyAgIHwgMjAgKysrKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv UkVBRE1FICAgICAgICAgICAgICB8IDEwICsrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0aW5zZXJ0LmMgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS92 YXJzdXAuYyAgICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgICAgICAgICAgIHwgMjkgKysrKysrKysrKystCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUmVwbGljYXRpb24uYyAgICAgICAgfCAyNiArKysrKysrKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNj ZXNzL3RyYW5zYW0uaCAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKwogc3JjL2luY2x1ZGUv dXRpbHMvc25hcG1nci5oICAgICAgICAgICAgICAgICAgIHwgIDggKysrLQogc3JjL2luY2x1ZGUv dXRpbHMvc25hcHNob3QuaCAgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy90ZXN0L21vZHVs ZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkICAgICAgICB8ICAxICsKIC4uLi90ZXN0X21pc2MvdC8w MDdfZGlydHlfaW5kZXhfc2Nhbi5wbCAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysKIDE0 IGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAwN19kaXJ0eV9pbmRl eF9zY2FuLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5j IGIvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5jCmluZGV4IDQ4Y2I4ZjU5YzRmLi5i YzMxMGZjYjMzMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5j CisrKyBiL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYwpAQCAtMzM1LDcgKzMzNSw3 IEBAIHBnc3RhdF9oZWFwKFJlbGF0aW9uIHJlbCwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMLCB0 cnVlLCBmYWxzZSk7CiAJaHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCi0JSW5pdERpcnR5 U25hcHNob3QoU25hcHNob3REaXJ0eSk7CisJSW5pdERpcnR5U25hcHNob3QoU25hcHNob3REaXJ0 eSwgTlVMTCk7CiAKIAluYmxvY2tzID0gaHNjYW4tPnJzX25ibG9ja3M7CS8qICMgYmxvY2tzIHRv IGJlIHNjYW5uZWQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK aW5kZXggYThkOTVlMGYxYzEuLjRlOTllYTYxYzZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV9oYW5kbGVyLmMKQEAgLTQwMiw3ICs0MDIsNyBAQCB0dXBsZV9sb2NrX3JldHJ5Ogog CQkJICoKIAkJCSAqIExvb3AgaGVyZSB0byBkZWFsIHdpdGggdXBkYXRlZCBvciBidXN5IHR1cGxl cwogCQkJICovCi0JCQlJbml0RGlydHlTbmFwc2hvdChTbmFwc2hvdERpcnR5KTsKKwkJCUluaXRE aXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHksIE5VTEwpOwogCQkJZm9yICg7OykKIAkJCXsKIAkJ CQlpZiAoSXRlbVBvaW50ZXJJbmRpY2F0ZXNNb3ZlZFBhcnRpdGlvbnModGlkKSkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IDkyNDNmZWVkMDFmLi45 MDAxY2U0MzYyYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zp c2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0 eS5jCkBAIC03MTksNiArNzE5LDEyIEBAIEhlYXBUdXBsZVNhdGlzZmllc1VwZGF0ZShIZWFwVHVw bGUgaHR1cCwgQ29tbWFuZElkIGN1cmNpZCwKIAkJcmV0dXJuIFRNX0RlbGV0ZWQ7CQkvKiBkZWxl dGVkIGJ5IG90aGVyICovCiB9CiAKK3N0YXRpYyB2b2lkIFVwZGF0ZURpcnR5TWF4WG1heChTbmFw c2hvdCBzbmFwc2hvdCwgVHJhbnNhY3Rpb25JZCB4bWF4KQoreworCWlmIChzbmFwc2hvdC0+eGlw ICE9IE5VTEwpCisJCXNuYXBzaG90LT54aXBbMF0gPSBUcmFuc2FjdGlvbklkTmV3ZXIoeG1heCwg c25hcHNob3QtPnhpcFswXSk7Cit9CisKIC8qCiAgKiBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eQog ICoJCVRydWUgaWZmIGhlYXAgdHVwbGUgaXMgdmFsaWQgaW5jbHVkaW5nIGVmZmVjdHMgb2Ygb3Bl biB0cmFuc2FjdGlvbnMuCkBAIC03MzcsNyArNzQzLDkgQEAgSGVhcFR1cGxlU2F0aXNmaWVzVXBk YXRlKEhlYXBUdXBsZSBodHVwLCBDb21tYW5kSWQgY3VyY2lkLAogICogU2ltaWxhcmx5IGZvciBz bmFwc2hvdC0+eG1heCBhbmQgdGhlIHR1cGxlJ3MgeG1heC4gIElmIHRoZSB0dXBsZSB3YXMKICAq IGluc2VydGVkIHNwZWN1bGF0aXZlbHksIG1lYW5pbmcgdGhhdCB0aGUgaW5zZXJ0ZXIgbWlnaHQg c3RpbGwgYmFjayBkb3duCiAgKiBvbiB0aGUgaW5zZXJ0aW9uIHdpdGhvdXQgYWJvcnRpbmcgdGhl IHdob2xlIHRyYW5zYWN0aW9uLCB0aGUgYXNzb2NpYXRlZAotICogdG9rZW4gaXMgYWxzbyByZXR1 cm5lZCBpbiBzbmFwc2hvdC0+c3BlY3VsYXRpdmVUb2tlbi4KKyAqIHRva2VuIGlzIGFsc28gcmV0 dXJuZWQgaW4gc25hcHNob3QtPnNwZWN1bGF0aXZlVG9rZW4uIElmIHhpcCBpcyAhPSBOVUxMCisg KiB4aXBbMF0gbWF5IGJlIHNldCB0byB4aWQgb2YgZGVsZXRlciBpZiBpdCBuZXdlciB0aGFuIHBy ZXZpb3VzbHkgc3RvcmUKKyAqIHZhbHVlLgogICovCiBzdGF0aWMgYm9vbAogSGVhcFR1cGxlU2F0 aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LApAQCAtNzUwLDYg Kzc1OCwxMCBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFwVHVwbGUgaHR1cCwgU25hcHNo b3Qgc25hcHNob3QsCiAKIAlzbmFwc2hvdC0+eG1pbiA9IHNuYXBzaG90LT54bWF4ID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CiAJc25hcHNob3QtPnNwZWN1bGF0aXZlVG9rZW4gPSAwOworCS8qCisJ ICogV2UgaW50ZW50aW9uYWxseSBrZWVwIHNuYXBzaG90LT54aXAgdmFsdWVzIHVuY2hhbmdlZCBh cyB0aGV5IHNob3VsZAorCSAqIGJlIHJlc2V0IGJ5IGxvZ2ljIG91dCBvZiB0aGUgc2luZ2xlIGhl YXAgZmV0Y2guCisJICovCiAKIAlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21taXR0ZWQodHVw bGUpKQogCXsKQEAgLTg3MCw2ICs4ODIsNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFw VHVwbGUgaHR1cCwgU25hcHNob3Qgc25hcHNob3QsCiAJewogCQlpZiAoSEVBUF9YTUFYX0lTX0xP Q0tFRF9PTkxZKHR1cGxlLT50X2luZm9tYXNrKSkKIAkJCXJldHVybiB0cnVlOworCQlVcGRhdGVE aXJ0eU1heFhtYXgoc25hcHNob3QsIEhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsK IAkJcmV0dXJuIGZhbHNlOwkJCS8qIHVwZGF0ZWQgYnkgb3RoZXIgKi8KIAl9CiAKQEAgLTg5Myw3 ICs5MDYsMTAgQEAgSGVhcFR1cGxlU2F0aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBz aG90IHNuYXBzaG90LAogCQkJcmV0dXJuIHRydWU7CiAJCX0KIAkJaWYgKFRyYW5zYWN0aW9uSWRE aWRDb21taXQoeG1heCkpCisJCXsKKwkJCVVwZGF0ZURpcnR5TWF4WG1heChzbmFwc2hvdCwgeG1h eCk7CiAJCQlyZXR1cm4gZmFsc2U7CisJCX0KIAkJLyogaXQgbXVzdCBoYXZlIGFib3J0ZWQgb3Ig Y3Jhc2hlZCAqLwogCQlyZXR1cm4gdHJ1ZTsKIAl9CkBAIC05MDIsNiArOTE4LDcgQEAgSGVhcFR1 cGxlU2F0aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LAogCXsK IAkJaWYgKEhFQVBfWE1BWF9JU19MT0NLRURfT05MWSh0dXBsZS0+dF9pbmZvbWFzaykpCiAJCQly ZXR1cm4gdHJ1ZTsKKwkJVXBkYXRlRGlydHlNYXhYbWF4KHNuYXBzaG90LCBIZWFwVHVwbGVIZWFk ZXJHZXRSYXdYbWF4KHR1cGxlKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTkzMSw2ICs5 NDgsNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qg c25hcHNob3QsCiAKIAlTZXRIaW50Qml0cyh0dXBsZSwgYnVmZmVyLCBIRUFQX1hNQVhfQ09NTUlU VEVELAogCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsKKwlVcGRhdGVEaXJ0 eU1heFhtYXgoc25hcHNob3QsIEhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsKIAly ZXR1cm4gZmFsc2U7CQkJCS8qIHVwZGF0ZWQgYnkgb3RoZXIgKi8KIH0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9SRUFETUUgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL1JFQURNRQppbmRleCA1MmU2NDZjN2Y3NS4uNmRlNzJhMjljYTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvUkVBRE1FCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvUkVBRE1FCkBAIC00ODksNiArNDg5LDE2IEBAIG9uIHRoZSBsZWFmIHBhZ2UgYXQgYWxs IHdoZW4gdGhlIHBhZ2UncyBMU04gaGFzIGNoYW5nZWQuICAoVGhhdCB3b24ndCB3b3JrCiB3aXRo IGFuIHVubG9nZ2VkIGluZGV4LCBzbyBmb3Igbm93IHdlIGRvbid0IGV2ZXIgYXBwbHkgdGhlICJk b24ndCBob2xkCiBvbnRvIHBpbiIgb3B0aW1pemF0aW9uIHRoZXJlLikKIAorRGVzcGl0ZSB0aGUg bG9ja2luZyBwcm90b2NvbCBpbiBwbGFjZSwgaXQgaXMgc3RpbGwgcG9zc2libGUgdG8gcmVjZWl2 ZSBhbgoraW5jb3JyZWN0IHJlc3VsdCBkdXJpbmcgbm9uLU1WQ0Mgc2NhbnMuIFRoaXMgaXNzdWUg Y2FuIG9jY3VyIGlmIGEgY29uY3VycmVudAordHJhbnNhY3Rpb24gZGVsZXRlcyBhIHR1cGxlIGFu ZCBpbnNlcnRzIGEgbmV3IHR1cGxlIHdpdGggYSBuZXcgVElEIGluIHRoZQorc2FtZSBwYWdlLiBJ ZiB0aGUgc2NhbiBoYXMgYWxyZWFkeSB2aXNpdGVkIHRoZSBwYWdlIGFuZCBjYWNoZWQgaXRzIGNv bnRlbnQKK2luIHRoZSBidWZmZXIgY2FjaGUsIGl0IG1pZ2h0IHNraXAgdGhlIG9sZCB0dXBsZSBk dWUgdG8gZGVsZXRpb24gYW5kIG1pc3MKK3RoZSBuZXcgdHVwbGUgYmVjYXVzZSBvZiB0aGUgY2Fj aGUuIFRoaXMgaXMgYSBrbm93biBsaW1pdGF0aW9uIG9mIHRoZQorU25hcHNob3REaXJ0eSBhbmQg U25hcHNob3RBbnkgbm9uLU1WQ0Mgc2NhbnMuIEhvd2V2ZXIsIGZvciBTbmFwc2hvdERpcnR5LAor aXQgaXMgcG9zc2libGUgdG8gd29yayBhcm91bmQgdGhpcyBsaW1pdGF0aW9uIGJ5IHVzaW5nIHRo ZSByZXR1cm5lZCBtYXgoeG1heCkKK3RvIGNvbXBhcmUgaXQgd2l0aCB0aGUgbGF0ZXN0IGNvbW1p dHRlZCB0cmFuc2FjdGlvbiBiZWZvcmUgdGhlIHNjYW4gc3RhcnRlZC4KKwogRmFzdHBhdGggRm9y IEluZGV4IEluc2VydGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGluc2VydC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYwppbmRleCA5OTA0M2RhODQxMi4uZWY2M2Q2Mjc3OGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0aW5zZXJ0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYwpAQCAtNDI3LDcgKzQyNyw3IEBA IF9idF9jaGVja191bmlxdWUoUmVsYXRpb24gcmVsLCBCVEluc2VydFN0YXRlIGluc2VydHN0YXRl LCBSZWxhdGlvbiBoZWFwUmVsLAogCS8qIEFzc3VtZSB1bmlxdWUgdW50aWwgd2UgZmluZCBhIGR1 cGxpY2F0ZSAqLwogCSppc191bmlxdWUgPSB0cnVlOwogCi0JSW5pdERpcnR5U25hcHNob3QoU25h cHNob3REaXJ0eSk7CisJSW5pdERpcnR5U25hcHNob3QoU25hcHNob3REaXJ0eSwgTlVMTCk7CiAK IAlwYWdlID0gQnVmZmVyR2V0UGFnZShpbnNlcnRzdGF0ZS0+YnVmKTsKIAlvcGFxdWUgPSBCVFBh Z2VHZXRPcGFxdWUocGFnZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS92YXJzdXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3ZhcnN1cC5jCmluZGV4IGNm ZThjNmNmOGRjLi40MzAyNmU1ODQwNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vdmFyc3VwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdmFyc3VwLmMK QEAgLTI5Niw2ICsyOTYsMTcgQEAgUmVhZE5leHRGdWxsVHJhbnNhY3Rpb25JZCh2b2lkKQogCXJl dHVybiBmdWxsWGlkOwogfQogCitGdWxsVHJhbnNhY3Rpb25JZCBSZWFkTGFzdENvbXBsZXRlZEZ1 bGxUcmFuc2FjdGlvbklkKHZvaWQpCit7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnVsbFhpZDsKKwor CUxXTG9ja0FjcXVpcmUoWGlkR2VuTG9jaywgTFdfU0hBUkVEKTsKKwlmdWxsWGlkID0gVHJhbnNh bVZhcmlhYmxlcy0+bGF0ZXN0Q29tcGxldGVkWGlkOworCUxXTG9ja1JlbGVhc2UoWGlkR2VuTG9j ayk7CisKKwlyZXR1cm4gZnVsbFhpZDsKK30KKwogLyoKICAqIEFkdmFuY2UgbmV4dFhpZCB0byB0 aGUgdmFsdWUgYWZ0ZXIgYSBnaXZlbiB4aWQuICBUaGUgZXBvY2ggaXMgaW5mZXJyZWQuCiAgKiBU aGlzIG11c3Qgb25seSBiZSBjYWxsZWQgZHVyaW5nIHJlY292ZXJ5IG9yIGZyb20gdHdvLXBoYXNl IHN0YXJ0LXVwIGNvZGUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5k ZXhpbmcuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCmluZGV4IGY5YTJm YWM3OWU0Li4zNGUwOWRlZTE3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0luZGV4aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKQEAg LTExNyw2ICsxMTcsNyBAQAogI2luY2x1ZGUgInV0aWxzL211bHRpcmFuZ2V0eXBlcy5oIgogI2lu Y2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisj aW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCiAKIC8qIHdhaXRNb2RlIGFyZ3VtZW50 IHRvIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludCgpICovCiB0eXBlZGVmIGVu dW0KQEAgLTcxMSw2ICs3MTIsOCBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFp bnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJSW5kZXhTY2FuRGVzYyBpbmRleF9z Y2FuOwogCVNjYW5LZXlEYXRhIHNjYW5rZXlzW0lOREVYX01BWF9LRVlTXTsKIAlTbmFwc2hvdERh dGEgRGlydHlTbmFwc2hvdDsKKwlUcmFuc2FjdGlvbklkIG1heFhtYXgsCisJCQkJICBsYXRlc3RD b21wbGV0ZWRYaWQ7CiAJaW50CQkJaTsKIAlib29sCQljb25mbGljdDsKIAlib29sCQlmb3VuZF9z ZWxmOwpAQCAtNzczLDkgKzc3NiwxMCBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0 cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAKIAkvKgogCSAqIFNlYXJjaCB0 aGUgdHVwbGVzIHRoYXQgYXJlIGluIHRoZSBpbmRleCBmb3IgYW55IHZpb2xhdGlvbnMsIGluY2x1 ZGluZwotCSAqIHR1cGxlcyB0aGF0IGFyZW4ndCB2aXNpYmxlIHlldC4KKwkgKiB0dXBsZXMgdGhh dCBhcmVuJ3QgdmlzaWJsZSB5ZXQuIEFsc28sIGRldGVjdCBjYXNlcyBpbmRleCBzY2FuIHNraXAg dGhlCisJICogdHVwbGUgaW4gY2FzZSBvZiBwYXJhbGxlbCB1cGRhdGUgYWZ0ZXIgaW5kZXggcGFn ZSBjb250ZW50IHdhcyBjYWNoZWQuCiAJICovCi0JSW5pdERpcnR5U25hcHNob3QoRGlydHlTbmFw c2hvdCk7CisJSW5pdERpcnR5U25hcHNob3QoRGlydHlTbmFwc2hvdCwgJm1heFhtYXgpOwogCiAJ Zm9yIChpID0gMDsgaSA8IGluZG5rZXlhdHRzOyBpKyspCiAJewpAQCAtODA5LDYgKzgxMywxMiBA QCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVs YXRpb24gaW5kZXgsCiByZXRyeToKIAljb25mbGljdCA9IGZhbHNlOwogCWZvdW5kX3NlbGYgPSBm YWxzZTsKKwkvKgorCSAqIEVhY2ggdGltZSB3ZSByZXRyeSAtIHJlbWVtYmVyIGxhc3QgY29tcGxl dGVkIHRyYW5zYWN0aW9uIGJlZm9yZSBzdGFydAorCSAqIG9mIHRoZSBzY2FuLiBBc28gcmVzZXQg bWF4WG1heC4KKwkgKi8KKwlsYXRlc3RDb21wbGV0ZWRYaWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0 aW9uSWQoUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCgpKTsKKwltYXhYbWF4ID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFw LCBpbmRleCwgJkRpcnR5U25hcHNob3QsIGluZG5rZXlhdHRzLCAwKTsKIAlpbmRleF9yZXNjYW4o aW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIApAQCAtOTI0LDYg KzkzNCwxOSBAQCByZXRyeToKIAl9CiAKIAlpbmRleF9lbmRzY2FuKGluZGV4X3NjYW4pOworCS8q CisJICogQ2hlY2sgZm9yIHRoZSBjYXNlIHdoZW4gaW5kZXggc2NhbiBmZXRjaGVkIHJlY29yZHMg YmVmb3JlIHNvbWUgb3RoZXIKKwkgKiB0cmFuc2FjdGlvbiBkZWxldGVkIHR1cGxlIGFuZCBpbnNl cnRlZCBhIG5ldyBvbmUuCisJICovCisJaWYgKCFjb25mbGljdCAmJiBUcmFuc2FjdGlvbklkSXNW YWxpZChtYXhYbWF4KSAmJiAhVHJhbnNhY3Rpb25JZElzQ3VycmVudFRyYW5zYWN0aW9uSWQobWF4 WG1heCkpCisJeworCQkvKgorCQkgKiBJZiB3ZSBoYXZlIHNraXBwZWQgc29tZSB0dXBsZSBiZWNh dXNlIGl0IHdhcyBkZWxldGVkLCBidXQgZGVsZXRpb24gaGFwcGVuZWQgYWZ0ZXIKKwkJICogc3Rh cnQgb2YgdGhlIGluZGV4IHNjYW4gLSByZXRyeSB0byBiZSBzdXJlLgorCQkgKi8KKwkJaWYgKFRy YW5zYWN0aW9uSWRQcmVjZWRlcyhsYXRlc3RDb21wbGV0ZWRYaWQsIG1heFhtYXgpKQorCQkJZ290 byByZXRyeTsKKwl9CiAKIAkvKgogCSAqIE9yZGluYXJpbHksIGF0IHRoaXMgcG9pbnQgdGhlIHNl YXJjaCBzaG91bGQgaGF2ZSBmb3VuZCB0aGUgb3JpZ2luYWxseQpAQCAtOTM3LDYgKzk2MCw4IEBA IHJldHJ5OgogCiAJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChleGlzdGluZ19zbG90KTsK IAorCWlmICghY29uZmxpY3QpCisJCUlOSkVDVElPTl9QT0lOVCgiY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Iik7CiAJcmV0dXJuICFjb25mbGljdDsKIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCA1NDAyNWM5ZjE1MC4u Y2Y4ZTg0NzI2MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0y MjksNiArMjI5LDggQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWws IE9pZCBpZHhvaWQsCiAJSW5kZXhTY2FuRGVzYyBzY2FuOwogCVNuYXBzaG90RGF0YSBzbmFwOwog CVRyYW5zYWN0aW9uSWQgeHdhaXQ7CisJVHJhbnNhY3Rpb25JZCBtYXhYbWF4LAorCQkJCSAgbGF0 ZXN0Q29tcGxldGVkWGlkOwogCVJlbGF0aW9uCWlkeHJlbDsKIAlib29sCQlmb3VuZDsKIAlUeXBl Q2FjaGVFbnRyeSAqKmVxID0gTlVMTDsKQEAgLTIzOSw3ICsyNDEsNyBAQCBSZWxhdGlvbkZpbmRS ZXBsVHVwbGVCeUluZGV4KFJlbGF0aW9uIHJlbCwgT2lkIGlkeG9pZCwKIAogCWlzSWR4U2FmZVRv U2tpcER1cGxpY2F0ZXMgPSAoR2V0UmVsYXRpb25JZGVudGl0eU9yUEsocmVsKSA9PSBpZHhvaWQp OwogCi0JSW5pdERpcnR5U25hcHNob3Qoc25hcCk7CisJSW5pdERpcnR5U25hcHNob3Qoc25hcCwg Jm1heFhtYXgpOwogCiAJLyogQnVpbGQgc2NhbiBrZXkuICovCiAJc2tleV9hdHRvZmYgPSBidWls ZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwpAQCAt MjQ5LDYgKzI1MSwxMiBAQCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVCeUluZGV4KFJlbGF0aW9uIHJl bCwgT2lkIGlkeG9pZCwKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxzZTsKKwkvKgorCSAqIEVhY2gg dGltZSB3ZSByZXRyeSAtIHJlbWVtYmVyIGxhc3QgY29tcGxldGVkIHRyYW5zYWN0aW9uIGJlZm9y ZSBzdGFydAorIAkgKiBvZiB0aGUgc2Nhbi4gQXNvIHJlc2V0IG1heFhtYXguCisgCSAqLworCW1h eFhtYXggPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlsYXRlc3RDb21wbGV0ZWRYaWQgPSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCgp KTsKIAogCWluZGV4X3Jlc2NhbihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAK QEAgLTI4OCw2ICsyOTYsMjAgQEAgcmV0cnk6CiAJCWJyZWFrOwogCX0KIAorCS8qCisJICogQ2hl Y2sgZm9yIHRoZSBjYXNlIHdoZW4gaW5kZXggc2NhbiBmZXRjaGVkIHJlY29yZHMgYmVmb3JlIHNv bWUgb3RoZXIKKwkgKiB0cmFuc2FjdGlvbiBkZWxldGVkIHR1cGxlIGFuZCBpbnNlcnRlZCBhIG5l dyBvbmUuCisJICovCisJaWYgKCFmb3VuZCAmJiBUcmFuc2FjdGlvbklkSXNWYWxpZChtYXhYbWF4 KSAmJiAhVHJhbnNhY3Rpb25JZElzQ3VycmVudFRyYW5zYWN0aW9uSWQobWF4WG1heCkpCisJewor CQkvKgorCQkgKiBJZiB3ZSBoYXZlIHNraXBwZWQgc29tZSB0dXBsZSBiZWNhdXNlIGl0IHdhcyBk ZWxldGVkLCBidXQgZGVsZXRpb24gaGFwcGVuZWQgYWZ0ZXIKKwkJICogc3RhcnQgb2YgdGhlIGlu ZGV4IHNjYW4gLSByZXRyeSB0byBiZSBzdXJlLgorCQkgKi8KKwkJaWYgKFRyYW5zYWN0aW9uSWRQ cmVjZWRlcyhsYXRlc3RDb21wbGV0ZWRYaWQsIG1heFhtYXgpKQorCQkJZ290byByZXRyeTsKKwl9 CisKIAkvKiBGb3VuZCB0dXBsZSwgdHJ5IHRvIGxvY2sgaXQgaW4gdGhlIGxvY2ttb2RlLiAqLwog CWlmIChmb3VuZCkKIAl7CkBAIC00MTEsNyArNDMzLDcgQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxl U2VxKFJlbGF0aW9uIHJlbCwgTG9ja1R1cGxlTW9kZSBsb2NrbW9kZSwKIAllcSA9IHBhbGxvYzAo c2l6ZW9mKCplcSkgKiBvdXRzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLT5uYXR0cyk7CiAKIAkv KiBTdGFydCBhIGhlYXAgc2Nhbi4gKi8KLQlJbml0RGlydHlTbmFwc2hvdChzbmFwKTsKKwlJbml0 RGlydHlTbmFwc2hvdChzbmFwLCBOVUxMKTsKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwg JnNuYXAsIDAsIE5VTEwpOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxM KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9vcmlnaW4u YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3JpZ2luLmMKaW5kZXggYmFmNjk2 ZDhlNjguLmUxZTUyYzYzOWQxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL29yaWdpbi5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3Jp Z2luLmMKQEAgLTI4Miw3ICsyODIsNyBAQCByZXBsb3JpZ2luX2NyZWF0ZShjb25zdCBjaGFyICpy b25hbWUpCiAJICogdG8gdGhlIGV4Y2x1c2l2ZSBsb2NrIHRoZXJlJ3Mgbm8gZGFuZ2VyIHRoYXQg bmV3IHJvd3MgY2FuIGFwcGVhciB3aGlsZQogCSAqIHdlJ3JlIGNoZWNraW5nLgogCSAqLwotCUlu aXREaXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHkpOworCUluaXREaXJ0eVNuYXBzaG90KFNuYXBz aG90RGlydHksIE5VTEwpOwogCiAJcmVsID0gdGFibGVfb3BlbihSZXBsaWNhdGlvbk9yaWdpblJl bGF0aW9uSWQsIEV4Y2x1c2l2ZUxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdHJhbnNhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaAppbmRleCAyOGEyZDI4 N2ZkNS4uYWFlMGFkOTBjMmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2Ft LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaApAQCAtMjg4LDYgKzI4OCw3IEBA IGV4dGVybiB2b2lkIFZhcnN1cFNobWVtSW5pdCh2b2lkKTsKIGV4dGVybiBGdWxsVHJhbnNhY3Rp b25JZCBHZXROZXdUcmFuc2FjdGlvbklkKGJvb2wgaXNTdWJYYWN0KTsKIGV4dGVybiB2b2lkIEFk dmFuY2VOZXh0RnVsbFRyYW5zYWN0aW9uSWRQYXN0WGlkKFRyYW5zYWN0aW9uSWQgeGlkKTsKIGV4 dGVybiBGdWxsVHJhbnNhY3Rpb25JZCBSZWFkTmV4dEZ1bGxUcmFuc2FjdGlvbklkKHZvaWQpOwor ZXh0ZXJuIEZ1bGxUcmFuc2FjdGlvbklkIFJlYWRMYXN0Q29tcGxldGVkRnVsbFRyYW5zYWN0aW9u SWQodm9pZCk7CiBleHRlcm4gdm9pZCBTZXRUcmFuc2FjdGlvbklkTGltaXQoVHJhbnNhY3Rpb25J ZCBvbGRlc3RfZGF0ZnJvemVueGlkLAogCQkJCQkJCQkgIE9pZCBvbGRlc3RfZGF0b2lkKTsKIGV4 dGVybiB2b2lkIEFkdmFuY2VPbGRlc3RDbG9nWGlkKFRyYW5zYWN0aW9uSWQgb2xkZXN0X2RhdGZy b3plbnhpZCk7CkBAIC0zNDQsNiArMzQ1LDIxIEBAIFRyYW5zYWN0aW9uSWRPbGRlcihUcmFuc2Fj dGlvbklkIGEsIFRyYW5zYWN0aW9uSWQgYikKIAlyZXR1cm4gYjsKIH0KIAorLyogcmV0dXJuIHRo ZSBuZXdlciBvZiB0aGUgdHdvIElEcyAqLworc3RhdGljIGlubGluZSBUcmFuc2FjdGlvbklkCitU cmFuc2FjdGlvbklkTmV3ZXIoVHJhbnNhY3Rpb25JZCBhLCBUcmFuc2FjdGlvbklkIGIpCit7CisJ aWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChhKSkKKwkJcmV0dXJuIGI7CisKKwlpZiAoIVRyYW5z YWN0aW9uSWRJc1ZhbGlkKGIpKQorCQlyZXR1cm4gYTsKKworCWlmIChUcmFuc2FjdGlvbklkUHJl Y2VkZXMoYSwgYikpCisJCXJldHVybiBiOworCXJldHVybiBhOworfQorCiAvKiByZXR1cm4gdGhl IG9sZGVyIG9mIHRoZSB0d28gSURzLCBhc3N1bWluZyB0aGV5J3JlIGJvdGggbm9ybWFsICovCiBz dGF0aWMgaW5saW5lIFRyYW5zYWN0aW9uSWQKIE5vcm1hbFRyYW5zYWN0aW9uSWRPbGRlcihUcmFu c2FjdGlvbklkIGEsIFRyYW5zYWN0aW9uSWQgYikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL3NuYXBtZ3IuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3IuaAppbmRleCA5Mzk4YTg0 MDUxYy4uNWU2ZjNhN2U3NmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3Iu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgKQEAgLTM2LDkgKzM2LDEzIEBAIGV4 dGVybiBQR0RMTElNUE9SVCBTbmFwc2hvdERhdGEgQ2F0YWxvZ1NuYXBzaG90RGF0YTsKICAqIFdl IGRvbid0IHByb3ZpZGUgYSBzdGF0aWMgU25hcHNob3REaXJ0eSB2YXJpYWJsZSBiZWNhdXNlIGl0 IHdvdWxkIGJlCiAgKiBub24tcmVlbnRyYW50LiAgSW5zdGVhZCwgdXNlcnMgb2YgdGhhdCBzbmFw c2hvdCB0eXBlIHNob3VsZCBkZWNsYXJlIGEKICAqIGxvY2FsIHZhcmlhYmxlIG9mIHR5cGUgU25h cHNob3REYXRhLCBhbmQgaW5pdGlhbGl6ZSBpdCB3aXRoIHRoaXMgbWFjcm8uCisgKiBweGlkIGlz IG9wdGlvbmFsIGFuZCBjYW4gYmUgTlVMTC4gSWYgaXQgaXMgbm90IE5VTEwsIHB4aWRbMF0gd2ls bCBiZSBzZXQKKyAqIHRvIHRoZSB0cmFuc2FjdGlvbiBJRCBvZiBkZWxldGluZyB0cmFuc2FjdGlv biBpZiB0aGUgdHVwbGUgaXMgZGVsZXRlZAorICogYW5kIGl0IG5ld2VyIHRoYW4gcHhpZFswXS4K ICAqLwotI2RlZmluZSBJbml0RGlydHlTbmFwc2hvdChzbmFwc2hvdGRhdGEpICBcCi0JKChzbmFw c2hvdGRhdGEpLnNuYXBzaG90X3R5cGUgPSBTTkFQU0hPVF9ESVJUWSkKKyNkZWZpbmUgSW5pdERp cnR5U25hcHNob3Qoc25hcHNob3RkYXRhLCBweGlkKSAgXAorCSgoc25hcHNob3RkYXRhKS5zbmFw c2hvdF90eXBlID0gU05BUFNIT1RfRElSVFksIFwKKwkgKHNuYXBzaG90ZGF0YSkueGlwID0gKHB4 aWQpKQogCiAvKgogICogU2ltaWxhcmx5LCBzb21lIGluaXRpYWxpemF0aW9uIGlzIHJlcXVpcmVk IGZvciBhIE5vblZhY3V1bWFibGUgc25hcHNob3QuCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91 dGlscy9zbmFwc2hvdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcHNob3QuaAppbmRleCA4ZDFl MzFlODg4ZS4uYTY4MTE0ZTUwMGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBz aG90LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvc25hcHNob3QuaApAQCAtOTYsNyArOTYsMTAg QEAgdHlwZWRlZiBlbnVtIFNuYXBzaG90VHlwZQogCSAqIHhtYXguICBJZiB0aGUgdHVwbGUgd2Fz IGluc2VydGVkIHNwZWN1bGF0aXZlbHksIG1lYW5pbmcgdGhhdCB0aGUKIAkgKiBpbnNlcnRlciBt aWdodCBzdGlsbCBiYWNrIGRvd24gb24gdGhlIGluc2VydGlvbiB3aXRob3V0IGFib3J0aW5nIHRo ZQogCSAqIHdob2xlIHRyYW5zYWN0aW9uLCB0aGUgYXNzb2NpYXRlZCB0b2tlbiBpcyBhbHNvIHJl dHVybmVkIGluCi0JICogc25hcHNob3QtPnNwZWN1bGF0aXZlVG9rZW4uICBTZWUgYWxzbyBJbml0 RGlydHlTbmFwc2hvdCgpLgorCSAqIHNuYXBzaG90LT5zcGVjdWxhdGl2ZVRva2VuLiBJZiB4aXAg aXMgbm9uLU5VTEwsIHRoZSB4aWQgb2YgdGhlCisJICogZGVsZXRpbmcgdHJhbnNhY3Rpb24gaXMg c3RvcmVkIGludG8geGlwWzBdIGlmIGl0IG5ld2VyIHRoYW4gZXhpc3RpbmcKKwkgKiB4aXBbMF0g dmFsdWUuCisJICogU2VlIGFsc28gSW5pdERpcnR5U25hcHNob3QoKS4KIAkgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAJICovCiAJU05BUFNIT1RfRElSVFksCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1 bGVzL3Rlc3RfbWlzYy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9taXNjL21l c29uLmJ1aWxkCmluZGV4IDI4M2ZmYTc1MWFhLi42OGQyOTEzMzZlMSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvbW9kdWxlcy90ZXN0X21pc2MvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X21pc2MvbWVzb24uYnVpbGQKQEAgLTE1LDYgKzE1LDcgQEAgdGVzdHMgKz0gewogICAg ICAgJ3QvMDA0X2lvX2RpcmVjdC5wbCcsCiAgICAgICAndC8wMDVfdGltZW91dHMucGwnLAogICAg ICAgJ3QvMDA2X3NpZ25hbF9hdXRvdmFjdXVtLnBsJywKKyAgICAgICd0LzAwN19kaXJ0eV9pbmRl eF9zY2FuLnBsJywKICAgICBdLAogICB9LAogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X21pc2MvdC8wMDdfZGlydHlfaW5kZXhfc2Nhbi5wbCBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9taXNjL3QvMDA3X2RpcnR5X2luZGV4X3NjYW4ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjRkMTE2ZTY1OWU3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X21pc2MvdC8wMDdfZGlydHlfaW5kZXhfc2Nhbi5wbApAQCAtMCwwICsx LDQ3IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorCisjIFRlc3QgaXNzdWUgd2l0aCBsb3N0IHR1cGxlIGluIGNhc2Ugb2YgRGly dHlTbmFwc2hvdCBpbmRleCBzY2FucwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNl IENvbmZpZzsKK3VzZSBFcnJubzsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1 c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworaWYgKCRFTlZ7 ZW5hYmxlX2luamVjdGlvbl9wb2ludHN9IG5lICd5ZXMnKQoreworCXBsYW4gc2tpcF9hbGwgPT4g J0luamVjdGlvbiBwb2ludHMgbm90IHN1cHBvcnRlZCBieSB0aGlzIGJ1aWxkJzsKK30KKworbXkg KCRub2RlLCAkcmVzdWx0KTsKKyRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3 KCdEaXJ0eVNjYW5fdGVzdCcpOworJG5vZGUtPmluaXQ7Ciskbm9kZS0+YXBwZW5kX2NvbmYoJ3Bv c3RncmVzcWwuY29uZicsICdmc3luYyA9IG9mZicpOworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0 Z3Jlc3FsLmNvbmYnLCAnYXV0b3ZhY3V1bSA9IG9mZicpOworJG5vZGUtPnN0YXJ0OworJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50 cykpOworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKENSRUFURSBUQUJMRSB0YmwoaSBp bnQgcHJpbWFyeSBrZXksIG4gaW50KSkpOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHEoSU5TRVJUIElOVE8gdGJsIFZBTFVFUyg0MiwxKSkpOworJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxKFNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnY2hlY2tfZXhjbHVzaW9u X29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0JywgJ2Vycm9yJykpKTsKKworJG5vZGUt PnBnYmVuY2goCisJJy0tbm8tdmFjdXVtIC0tY2xpZW50PTQwIC0tdHJhbnNhY3Rpb25zPTEwMDAn LAorCTAsCisJW3Fye2FjdHVhbGx5IHByb2Nlc3NlZH1dLAorCVtxcnteJH1dLAorCSdjb25jdXJy ZW50IFVQU0VSVCcsCisJeworCQknb25fY29uZmxpY3RzJyA9PiBxKAorCQkJSU5TRVJUIElOVE8g dGJsIFZBTFVFUyg0MiwxKSBvbiBjb25mbGljdChpKSBkbyB1cGRhdGUgc2V0IG4gPSBFWENMVURF RC5uICsgMTsKKwkJKQorCX0pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHEoU0VM RUNUIGluamVjdGlvbl9wb2ludHNfZGV0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2Nv bnN0cmFpbnRfbm9fY29uZmxpY3QnKSkpOworCiskbm9kZS0+c3RvcDsKK2RvbmVfdGVzdGluZygp OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0gCjIuNDMuMAoK --00000000000043d8e6062796e213 Content-Type: application/octet-stream; name="v3-0002-Add-isolation-test-to-reproduce-dirty-snapshot-sc.patch" Content-Disposition: attachment; filename="v3-0002-Add-isolation-test-to-reproduce-dirty-snapshot-sc.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m3u5a80w1 RnJvbSAzYzY2M2JmZDNmY2I2MmI1YTRkNDcyNjkxOWJlNjdiZWNjN2MxYmE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMyBOb3YgMjAyNCAxMzoyNToxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjMgMi8y XSBBZGQgaXNvbGF0aW9uIHRlc3QgdG8gcmVwcm9kdWNlIGRpcnR5IHNuYXBzaG90IHNjYW4KIGlz c3VlCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGFuIGlzb2xhdGlvbiB0ZXN0IHRvIHJlbGlhYmx5 IHJlcHJvZHVjZSB0aGUgaXNzdWUgd2hlcmUgbm9uLU1WQ0MgaW5kZXggc2NhbnMgdXNpbmcgU25h cHNob3REaXJ0eSBjYW4gbWlzcyB0dXBsZXMgZHVlIHRvIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9u cy4gVGhpcyBzaXR1YXRpb24gY2FuIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMuCgpUbyBmYWNp bGl0YXRlIHRoaXMgdGVzdCwgbmV3IGluamVjdGlvbiBwb2ludHMgYXJlIGFkZGVkIGluIHRoZSBp bmRleF9nZXRuZXh0X3Nsb3QgYW5kIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWlu dCBmdW5jdGlvbnMuIFRoZXNlIGluamVjdGlvbiBwb2ludHMgYWxsb3cgdGhlIHRlc3QgdG8gY29u dHJvbCB0aGUgdGltaW5nIG9mIG9wZXJhdGlvbnMsIGVuc3VyaW5nIHRoZSByYWNlIGNvbmRpdGlv biBpcyB0cmlnZ2VyZWQgY29uc2lzdGVudGx5LgoKQ2hhbmdlcyBpbmNsdWRlOgoKKiBBZGRlZCBp bmplY3Rpb24gcG9pbnRzIGluIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMgYW5k IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jLgoqIFVwZGF0ZWQgTWFrZWZpbGUg YW5kIG1lc29uLmJ1aWxkIHRvIGluY2x1ZGUgdGhlIG5ldyBkaXJ0eV9pbmRleF9zY2FuIGlzb2xh dGlvbiB0ZXN0LgoqIENyZWF0ZWQgYSBuZXcgaXNvbGF0aW9uIHNwZWMgZGlydHlfaW5kZXhfc2Nh bi5zcGVjIGFuZCBpdHMgZXhwZWN0ZWQgb3V0cHV0IHRvIGRlZmluZSBhbmQgdmVyaWZ5IHRoZSB0 ZXN0IHN0ZXBzLgoqIFRoaXMgdGVzdCBjb21wbGVtZW50cyB0aGUgcHJldmlvdXMgZml4IGJ5IGRl bW9uc3RyYXRpbmcgdGhlIGlzc3VlIGFuZCB2ZXJpZnlpbmcgdGhhdCB0aGUgZml4IGVmZmVjdGl2 ZWx5IGFkZHJlc3NlcyBpdC4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5j ICAgICAgICAgICAgfCAgOCArKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcu YyAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFr ZWZpbGUgICAgfCAgMiArLQogLi4uL2V4cGVjdGVkL2RpcnR5X2luZGV4X3NjYW4ub3V0ICAgICAg ICAgICAgIHwgMzkgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9tZXNvbi5idWlsZCB8ICAxICsKIC4uLi9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNw ZWMgICAgICAgICAgICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdl ZCwgOTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9kaXJ0eV9pbmRleF9zY2Fu Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0u YwppbmRleCAxODU5YmU2MTRjMC4uMWE3MGRlMmY0NzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2lu ZGV4YW0uYwpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgInV0aWxzL3J1bGV1dGlscy5oIgog I2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgor I2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY5 Niw2ICs2OTcsMTMgQEAgaW5kZXhfZ2V0bmV4dF9zbG90KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTbG90ICoKIAkJICogdGhlIGluZGV4Lgog CQkgKi8KIAkJQXNzZXJ0KEl0ZW1Qb2ludGVySXNWYWxpZCgmc2Nhbi0+eHNfaGVhcHRpZCkpOwor I2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJCWlmICghSXNDYXRhbG9nUmVsYXRpb25PaWQo c2Nhbi0+aW5kZXhSZWxhdGlvbi0+cmRfaWQpKQorCQl7CisJCQlJTkpFQ1RJT05fUE9JTlQoImlu ZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2giKTsKKwkJfQorI2VuZGlmCisKIAkJaWYgKGlu ZGV4X2ZldGNoX2hlYXAoc2Nhbiwgc2xvdCkpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyBiL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNJbmRleGluZy5jCmluZGV4IDM0ZTA5ZGVlMTdmLi4yY2Y1YmQyMzZkNCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKQEAgLTgxMCw2ICs4MTAsNyBAQCBjaGVja19l eGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5k ZXgsCiAJICogTWF5IGhhdmUgdG8gcmVzdGFydCBzY2FuIGZyb20gdGhpcyBwb2ludCBpZiBhIHBv dGVudGlhbCBjb25mbGljdCBpcwogCSAqIGZvdW5kLgogCSAqLworCUlOSkVDVElPTl9QT0lOVCgi Y2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X2JlZm9yZV9pbmRleF9zY2FuIik7 CiByZXRyeToKIAljb25mbGljdCA9IGZhbHNlOwogCWZvdW5kX3NlbGYgPSBmYWxzZTsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZSBiL3NyYy90 ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9NYWtlZmlsZQppbmRleCAwNzUzYTlkZjU4Yy4u MTFhOWJhY2M3NTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZp bGUKQEAgLTEzLDcgKzEzLDcgQEAgUEdGSUxFREVTQyA9ICJpbmplY3Rpb25fcG9pbnRzIC0gZmFj aWxpdHkgZm9yIGluamVjdGlvbiBwb2ludHMiCiBSRUdSRVNTID0gaW5qZWN0aW9uX3BvaW50cyBy ZWluZGV4X2NvbmMKIFJFR1JFU1NfT1BUUyA9IC0tZGxwYXRoPSQodG9wX2J1aWxkZGlyKS9zcmMv dGVzdC9yZWdyZXNzCiAKLUlTT0xBVElPTiA9IGJhc2ljIGlucGxhY2UKK0lTT0xBVElPTiA9IGJh c2ljIGlucGxhY2UgZGlydHlfaW5kZXhfc2NhbgogCiBUQVBfVEVTVFMgPSAxCiAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9kaXJ0eV9pbmRl eF9zY2FuLm91dCBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9k aXJ0eV9pbmRleF9zY2FuLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uMDQ1MWM3NTEzYjYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvZXhwZWN0ZWQvZGlydHlfaW5kZXhfc2Nhbi5vdXQKQEAgLTAsMCArMSwzOSBA QAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRoIDMgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRp b246IHMxX3MxIHMzX3MxIHMyX3MxIHMzX3MyCitpbmplY3Rpb25fcG9pbnRzX2F0dGFjaAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisK K3N0ZXAgczFfczE6IElOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUyg0MiwgMSkgb24gY29uZmxp Y3QoaSkgZG8gdXBkYXRlIHNldCBuID0gRVhDTFVERUQubiArIDE7IDx3YWl0aW5nIC4uLj4KK3N0 ZXAgczNfczE6IAorCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVz aW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X2JlZm9yZV9pbmRleF9zY2FuJyk7CisJU0VMRUNUIGlu amVjdGlvbl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFp bnRfYmVmb3JlX2luZGV4X3NjYW4nKTsKKworaW5qZWN0aW9uX3BvaW50c19kZXRhY2gKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitp bmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgCisoMSByb3cpCisKK3N0ZXAgczJfczE6IFVQREFURSB0ZXN0LnRibCBT RVQgbiA9IG4gKyAxIFdIRVJFIGkgPSA0MjsKK3N0ZXAgczNfczI6IAorCVNFTEVDVCBpbmplY3Rp b25fcG9pbnRzX2RldGFjaCgnaW5kZXhfZ2V0bmV4dF9zbG90X2JlZm9yZV9mZXRjaCcpOworCVNF TEVDVCBpbmplY3Rpb25fcG9pbnRzX3dha2V1cCgnaW5kZXhfZ2V0bmV4dF9zbG90X2JlZm9yZV9m ZXRjaCcpOworCitpbmplY3Rpb25fcG9pbnRzX2RldGFjaAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKK2luamVjdGlvbl9wb2ludHNf d2FrZXVwCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAK KygxIHJvdykKKworc3RlcCBzMV9zMTogPC4uLiBjb21wbGV0ZWQ+CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1 bGVzL2luamVjdGlvbl9wb2ludHMvbWVzb24uYnVpbGQKaW5kZXggNThmMTkwMDExNTcuLjI2YTk4 YmZhMTQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVz b24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL21lc29uLmJ1 aWxkCkBAIC00NCw2ICs0NCw3IEBAIHRlc3RzICs9IHsKICAgICAnc3BlY3MnOiBbCiAgICAgICAn YmFzaWMnLAogICAgICAgJ2lucGxhY2UnLAorICAgICAgJ2RpcnR5X2luZGV4X3NjYW4nLAogICAg IF0sCiAgIH0sCiAgICd0YXAnOiB7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVj dGlvbl9wb2ludHMvc3BlY3MvZGlydHlfaW5kZXhfc2Nhbi5zcGVjIGIvc3JjL3Rlc3QvbW9kdWxl cy9pbmplY3Rpb25fcG9pbnRzL3NwZWNzL2RpcnR5X2luZGV4X3NjYW4uc3BlYwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmZiNWI5ODU0MzEKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvZGlydHlfaW5kZXhf c2Nhbi5zcGVjCkBAIC0wLDAgKzEsNDMgQEAKK3NldHVwCit7CisJQ1JFQVRFIEVYVEVOU0lPTiBp bmplY3Rpb25fcG9pbnRzOworCUNSRUFURSBTQ0hFTUEgdGVzdDsKKwlDUkVBVEUgVU5MT0dHRUQg VEFCTEUgdGVzdC50YmwoaSBpbnQgcHJpbWFyeSBrZXksIG4gaW50KTsKKwlDUkVBVEUgSU5ERVgg dGJsX25faWR4IE9OIHRlc3QudGJsKG4pOworCUlOU0VSVCBJTlRPIHRlc3QudGJsIFZBTFVFUyg0 MiwxKTsKK30KKwordGVhcmRvd24KK3sKKwlEUk9QIFNDSEVNQSB0ZXN0IENBU0NBREU7CisJRFJP UCBFWFRFTlNJT04gaW5qZWN0aW9uX3BvaW50czsKK30KKworc2Vzc2lvbiBzMQorc2V0dXAJewor CVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX3NldF9sb2NhbCgpOworCVNFTEVDVCBpbmplY3Rpb25f cG9pbnRzX2F0dGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25zdHJhaW50X25vX2Nv bmZsaWN0JywgJ2Vycm9yJyk7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfYXR0YWNoKCdjaGVj a19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfYmVmb3JlX2luZGV4X3NjYW4nLCAnd2Fp dCcpOworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2F0dGFjaCgnaW5kZXhfZ2V0bmV4dF9zbG90 X2JlZm9yZV9mZXRjaCcsICd3YWl0Jyk7Cit9CisKK3N0ZXAgczFfczEJeyBJTlNFUlQgSU5UTyB0 ZXN0LnRibCBWQUxVRVMoNDIsIDEpIG9uIGNvbmZsaWN0KGkpIGRvIHVwZGF0ZSBzZXQgbiA9IEVY Q0xVREVELm4gKyAxOyB9CisKK3Nlc3Npb24gczIKK3N0ZXAgczJfczEJeyBVUERBVEUgdGVzdC50 YmwgU0VUIG4gPSBuICsgMSBXSEVSRSBpID0gNDI7IH0KKworc2Vzc2lvbiBzMworc3RlcCBzM19z MQkJeworCVNFTEVDVCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X2JlZm9yZV9pbmRleF9zY2FuJyk7CisJU0VMRUNUIGluamVjdGlv bl9wb2ludHNfd2FrZXVwKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRfYmVm b3JlX2luZGV4X3NjYW4nKTsKK30KK3N0ZXAgczNfczIJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c19kZXRhY2goJ2luZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gnKTsKKwlTRUxFQ1Qg aW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2luZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gn KTsKK30KKworcGVybXV0YXRpb24KKwlzMV9zMQorCXMzX3MxCisJczJfczEKKwlzM19zMgpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKLS0gCjIuNDMuMAoK --00000000000043d8e6062796e213--